| | |
| | | PurchaseRecordDto purchaseRecordDto = ConverterUtil.convert(purchaseRecord, PurchaseRecordDto.class); |
| | | purchaseRecordDto.setCurrentPrice(close); |
| | | //持仓市值 |
| | | purchaseRecordDto.setPositionvalue(close.multiply(purchaseRecordDto.getPurchaseQuantity())); |
| | | purchaseRecordDto.setPositionvalue(close.multiply(purchaseRecordDto.getPurchaseQuantity()).setScale(4, RoundingMode.HALF_UP)); |
| | | //均价总额 |
| | | BigDecimal currentTotalPrice = purchaseRecordDto.getPurchaseQuantity().multiply(purchaseRecord.getPurchasePrice()); |
| | | BigDecimal profit = purchaseRecordDto.getPositionvalue().subtract(currentTotalPrice); |
| | | purchaseRecordDto.setProfit(profit.setScale(4, RoundingMode.HALF_UP)); |
| | | BigDecimal profitPercent = (purchaseRecordDto.getPositionvalue().subtract(currentTotalPrice)).divide(currentTotalPrice,4,RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP); |
| | | purchaseRecordDto.setProfitPercent(profitPercent); |
| | | if (currentTotalPrice.compareTo(BigDecimal.ZERO) != 0) { |
| | | BigDecimal profitPercent = (purchaseRecordDto.getPositionvalue().subtract(currentTotalPrice)).divide(currentTotalPrice,4,RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP); |
| | | purchaseRecordDto.setProfitPercent(profitPercent); |
| | | } |
| | | purchaseRecordDto.setLockingTime(LocalDate.of(2026, 2, 9)); |
| | | return Result.succeed(purchaseRecordDto); |
| | | } |