Browse Source

货代:海运进出口明细接口增加amend利润统计

纪新园 9 months ago
parent
commit
b81959ea63

+ 46 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/Bills.java

@@ -1986,5 +1986,51 @@ public class Bills implements Serializable {
 	@TableField(exist = false)
 	private BigDecimal equivalentToRmbCr;
 
+	/**
+	 * Amend本位币应收(CNY)
+	 */
+	@TableField(exist = false)
+	private BigDecimal amountDrAmend;
+	/**
+	 * Amend本位币应付(CNY)
+	 */
+	@TableField(exist = false)
+	private BigDecimal amountCrAmend;
+	/**
+	 * Amend本位币利润(CNY)
+	 */
+	@TableField(exist = false)
+	private BigDecimal amountProfitAmend;
+	/**
+	 * Amend综合 USD 应收(USD)
+	 */
+	@TableField(exist = false)
+	private BigDecimal amountDrUsdAmend;
+	/**
+	 * Amend USD 应付(USD)
+	 */
+	@TableField(exist = false)
+	private BigDecimal amountCrUsdAmend;
+	/**
+	 * Amend USD 利润(USD)
+	 */
+	@TableField(exist = false)
+	private BigDecimal amountProfitUsdAmend;
+	/**
+	 * Amend合计本位币应收(CNY )
+	 */
+	@TableField(exist = false)
+	private BigDecimal amountDrLocAmend;
+	/**
+	 * Amend合计本位币应付(CNY)
+	 */
+	@TableField(exist = false)
+	private BigDecimal amountCrLocAmend;
+	/**
+	 * Amend合计本位币利润(CNY)
+	 */
+	@TableField(exist = false)
+	private BigDecimal amountProfitLocAmend;
+
 
 }

+ 44 - 4
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java

@@ -988,16 +988,56 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			.eq(Amends::getIsDeleted, 0)
 			.eq(Amends::getStatus, 3)
 			.eq(Amends::getOrigId, detail.getId()));
+		BigDecimal amountDr = new BigDecimal("0.00");
+		BigDecimal amountCr = new BigDecimal("0.00");
+		BigDecimal amountProfit;
+		BigDecimal amountDrUsd = new BigDecimal("0.00");
+		BigDecimal amountCrUsd = new BigDecimal("0.00");
+		BigDecimal amountProfitUsd;
+		BigDecimal amountDrLoc = new BigDecimal("0.00");
+		BigDecimal amountCrLoc = new BigDecimal("0.00");
+		BigDecimal amountProfitLoc;
 		if (!amendsList.isEmpty()) {
 			List<Long> ids = amendsList.stream().map(Amends::getId).distinct().collect(Collectors.toList());
-			detail.setFeeCenterAmendList(feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+			List<FeeCenter> feeCenterAmendList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
 				.eq(FeeCenter::getIsDeleted, 0)
 				.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
-				.in(FeeCenter::getPid, ids)
-			));
+				.in(FeeCenter::getPid, ids));
+			detail.setFeeCenterAmendList(feeCenterAmendList.isEmpty() ? new ArrayList<>() : feeCenterAmendList);
+			for (FeeCenter item : feeCenterAmendList) {
+				if ("D".equals(item.getDc())) {
+					if ("CNY".equals(item.getCurCode())) {
+						amountDr = amountDr.add(item.getAmount());
+						amountDrLoc = amountDrLoc.add(item.getAmount());
+					} else {
+						amountDrUsd = amountDrUsd.add(item.getAmount());
+						amountDrLoc = amountDrLoc.add(item.getAmount().multiply(item.getExrate()));
+					}
+				} else {
+					if ("CNY".equals(item.getCurCode())) {
+						amountCr = amountCr.add(item.getAmount());
+						amountCrLoc = amountCrLoc.add(item.getAmount());
+					} else {
+						amountCrUsd = amountCrUsd.add(item.getAmount());
+						amountCrLoc = amountCrLoc.add(item.getAmount().multiply(item.getExrate()));
+					}
+				}
+			}
 		} else {
 			detail.setFeeCenterAmendList(new ArrayList<>());
 		}
+		amountProfit = amountDr.subtract(amountCr);
+		amountProfitUsd = amountDrUsd.subtract(amountCrUsd);
+		amountProfitLoc = amountDrLoc.subtract(amountCrLoc);
+		detail.setAmountDrAmend(amountDr);
+		detail.setAmountCrAmend(amountCr);
+		detail.setAmountProfitAmend(amountProfit);
+		detail.setAmountDrUsdAmend(amountDrUsd);
+		detail.setAmountCrUsdAmend(amountCrUsd);
+		detail.setAmountProfitUsdAmend(amountProfitUsd);
+		detail.setAmountDrLocAmend(amountDrLoc);
+		detail.setAmountCrLocAmend(amountCrLoc);
+		detail.setAmountProfitLocAmend(amountProfitLoc);
 		return detail;
 	}
 
@@ -1895,7 +1935,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			lambdaQueryWrapper.eq(Bills::getBranchId, deptUtils.getDeptPid());
 		}
 		List<Bills> billsList = baseMapper.selectList(lambdaQueryWrapper);
-		if (billsList.size() == 0) {
+		if (billsList.isEmpty()) {
 			throw new RuntimeException("未查到单据信息");
 		}
 		for (Bills detail : billsList) {