Browse Source

2025年3月11日20:40:13

纪新园 10 months ago
parent
commit
7d90616967
13 changed files with 220 additions and 121 deletions
  1. 6 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/entity/FeeCenter.java
  2. 6 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/entity/FinAccBills.java
  3. 4 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/invoices/entity/FinInvoicesItems.java
  4. 11 1
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/trade/entity/InOutStorage.java
  5. 5 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/trade/entity/PayableStorageFees.java
  6. 8 1
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FinAccBillsServiceImpl.java
  7. 7 3
      blade-service/blade-los/src/main/java/org/springblade/los/finance/invoices/service/impl/FinInvoicesServiceImpl.java
  8. 20 31
      blade-service/blade-los/src/main/java/org/springblade/los/finance/stl/service/impl/FinStlBillsServiceImpl.java
  9. 91 62
      blade-service/blade-los/src/main/java/org/springblade/los/statisticAnalysis/service/impl/StatisticAnalysisServiceImpl.java
  10. 39 6
      blade-service/blade-los/src/main/java/org/springblade/los/trade/service/impl/PayableStorageFeesServiceImpl.java
  11. 13 14
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipServiceImpl.java
  12. 8 1
      blade-service/blade-system/src/main/java/org/springblade/system/controller/PostController.java
  13. 2 2
      blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java

+ 6 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/entity/FeeCenter.java

@@ -495,6 +495,7 @@ public class FeeCenter implements Serializable {
 	@ApiModelProperty(value = "对账单日期")
 	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
 	@DateTimeFormat(pattern = "yyyy-MM-dd")
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Date checkDate;
 	/**
 	 * 对账单金额
@@ -610,6 +611,7 @@ public class FeeCenter implements Serializable {
 	@ApiModelProperty(value = "凭证日期")
 	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
 	@DateTimeFormat(pattern = "yyyy-MM-dd")
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Date voucherDate;
 	/**
 	 * 凭证状态 0 = 未开 1=已开
@@ -687,6 +689,7 @@ public class FeeCenter implements Serializable {
 	 * 发票日期
 	 */
 	@ApiModelProperty(value = "发票日期")
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Date invoiceDate;
 
 	/**
@@ -759,6 +762,7 @@ public class FeeCenter implements Serializable {
 	 * 签收日期
 	 */
 	@ApiModelProperty(value = "签收日期")
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Date signforDate;
 
 	/**
@@ -777,6 +781,7 @@ public class FeeCenter implements Serializable {
 	 * 请核时间
 	 */
 	@ApiModelProperty(value = "请核时间")
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Date applyTime;
 
 	/**
@@ -795,6 +800,7 @@ public class FeeCenter implements Serializable {
 	 * 审核时间
 	 */
 	@ApiModelProperty(value = "审核时间")
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Date approveTime;
 
 	/**

+ 6 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/entity/FinAccBills.java

@@ -105,6 +105,7 @@ public class FinAccBills implements Serializable {
 	@ApiModelProperty(value = "账单日期")
 	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
 	@DateTimeFormat(pattern = "yyyy-MM-dd")
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Date billDate;
 
 	/**
@@ -128,6 +129,7 @@ public class FinAccBills implements Serializable {
 	@ApiModelProperty(value = "财务日期")
 	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
 	@DateTimeFormat(pattern = "yyyy-MM-dd")
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Date accountDate;
 
 	/**
@@ -311,6 +313,7 @@ public class FinAccBills implements Serializable {
 	@ApiModelProperty(value = "开船日期")
 	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
 	@DateTimeFormat(pattern = "yyyy-MM-dd")
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Date etd;
 	/**
 	 * 到港日期
@@ -318,6 +321,7 @@ public class FinAccBills implements Serializable {
 	@ApiModelProperty(value = "到港日期")
 	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
 	@DateTimeFormat(pattern = "yyyy-MM-dd")
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Date eta;
 	/**
 	 * 装货港 id
@@ -478,6 +482,7 @@ public class FinAccBills implements Serializable {
 	@ApiModelProperty(value = "发票日期")
 	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
 	@DateTimeFormat(pattern = "yyyy-MM-dd")
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Date invoiceDate;
 	/**
 	 * 发票状态 0 = 未开 9=已开 2 待开 3 不开
@@ -606,6 +611,7 @@ public class FinAccBills implements Serializable {
 	@ApiModelProperty(value = "审核日期")
 	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
 	@DateTimeFormat(pattern = "yyyy-MM-dd")
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Date approvedDate;
 
 	/**

+ 4 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/invoices/entity/FinInvoicesItems.java

@@ -16,6 +16,8 @@
  */
 package org.springblade.los.finance.invoices.entity;
 
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -122,6 +124,7 @@ public class FinInvoicesItems implements Serializable {
 	@ApiModelProperty(value = "对账/结算日期")
 	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
 	@DateTimeFormat(pattern = "yyyy-MM-dd")
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Date billDate;
 	/**
 	 * 业务财务日期
@@ -129,6 +132,7 @@ public class FinInvoicesItems implements Serializable {
 	@ApiModelProperty(value = "业务财务日期")
 	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
 	@DateTimeFormat(pattern = "yyyy-MM-dd")
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Date accountDate;
 	/**
 	 * 财务年

+ 11 - 1
blade-service-api/blade-los-api/src/main/java/org/springblade/los/trade/entity/InOutStorage.java

@@ -275,6 +275,17 @@ public class InOutStorage implements Serializable {
 	 */
 	@ApiModelProperty(value = "是否已生成入出库")
 	private String whetherInOutStorage;
+	/**
+	 * 规格型号
+	 */
+	@ApiModelProperty(value = "规格型号")
+	private String specificationModel;
+
+	/**
+	 * 计费规则
+	 */
+	@ApiModelProperty(value = "计费规则")
+	private String billingRules;
 
 	/**
 	 * 计费日期
@@ -296,5 +307,4 @@ public class InOutStorage implements Serializable {
 	private BigDecimal storageFeePriceC;
 
 
-
 }

+ 5 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/trade/entity/PayableStorageFees.java

@@ -52,6 +52,11 @@ public class PayableStorageFees implements Serializable {
 	@ApiModelProperty(value = "仓库名称")
 	private String warehouseName;
 	/**
+	 * 计费规则
+	 */
+	@ApiModelProperty(value = "计费规则")
+	private String billingRules;
+	/**
 	 * 计费起始时间
 	 */
 	@ApiModelProperty(value = "计费起始时间")

+ 8 - 1
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FinAccBillsServiceImpl.java

@@ -219,13 +219,13 @@ public class FinAccBillsServiceImpl extends ServiceImpl<FinAccBillsMapper, FinAc
 			data.setAccountDate(item.getBillDate());
 			data.setBillKey(item.getBillKey());
 			data.setBusinessType(item.getBusinessType());
+			Bills bills = billsList.stream().filter(e -> e.getId().equals(item.getPid())).findFirst().orElse(new Bills());
 			if ("MH".equals(item.getBusinessType())) {
 				//分单
 				data.setBusinessBillDivideId(item.getPid());
 				data.setBusinessBillDivideNo(item.getBillNo());
 				data.setBusinessDivideDate(item.getEtd());
 				//主单
-				Bills bills = billsList.stream().filter(e -> e.getId().equals(item.getPid())).findFirst().orElse(new Bills());
 				if (ObjectUtils.isNotNull(bills.getMasterId())) {
 					data.setBusinessBillId(bills.getMasterId());
 					data.setBusinessBillNo(bills.getMasterBillNo());
@@ -236,6 +236,13 @@ public class FinAccBillsServiceImpl extends ServiceImpl<FinAccBillsMapper, FinAc
 				data.setBusinessBillNo(item.getBillNo());
 				data.setBusinessDate(item.getBillDate());
 			}
+			data.setSrcId(item.getSrcId());
+			data.setSrcCnName(item.getSrcCnName());
+			data.setSrcEnName(item.getSrcEnName());
+			data.setSrcType(item.getSrcType());
+			data.setOperatorId(bills.getOperatorId());
+			data.setOperatorName(bills.getOperatorName());
+			data.setQuantityCntrDescr(bills.getQuantityCntrDescr());
 			data.setPaymode(item.getPaymode());
 			data.setAccelementid(item.getElementsId());
 			data.setAccelementname(item.getElementsCnName());

+ 7 - 3
blade-service/blade-los/src/main/java/org/springblade/los/finance/invoices/service/impl/FinInvoicesServiceImpl.java

@@ -147,9 +147,6 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 		}
 		this.saveOrUpdate(finInvoices);
 		if (ObjectUtils.isNotNull(finInvoices.getFinInvoicesItemsList())) {
-			finInvoices.setBusinessNo(finInvoices.getFinInvoicesItemsList().stream().map(FinInvoicesItems::getBillNo).distinct().collect(Collectors.joining(",")));
-			finInvoices.setMblno(finInvoices.getFinInvoicesItemsList().stream().map(FinInvoicesItems::getMblno).distinct().collect(Collectors.joining(",")));
-			finInvoices.setHblno(finInvoices.getFinInvoicesItemsList().stream().map(FinInvoicesItems::getHblno).distinct().collect(Collectors.joining(",")));
 			for (FinInvoicesItems item : finInvoices.getFinInvoicesItemsList()) {
 				//计算字段null值处理
 				item.setCurrentAmount(ObjectUtils.isNotNull(item.getCurrentAmount()) ? item.getCurrentAmount() : new BigDecimal("0.00"));
@@ -289,6 +286,10 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 		}
 		FinInvoices detail = baseMapper.selectById(finInvoices.getId());
 		if (ObjectUtils.isNotNull(finInvoices.getFinInvoicesItemsList())) {
+			detail.setBusinessNo(finInvoices.getFinInvoicesItemsList().stream().map(FinInvoicesItems::getBillNo).distinct().collect(Collectors.joining(",")));
+			detail.setMblno(finInvoices.getFinInvoicesItemsList().stream().map(FinInvoicesItems::getMblno).distinct().collect(Collectors.joining(",")));
+			detail.setHblno(finInvoices.getFinInvoicesItemsList().stream().map(FinInvoicesItems::getHblno).distinct().collect(Collectors.joining(",")));
+
 			//明细状态修改  已开发票
 			List<FinAccBills> finAccBillsList = new ArrayList<>();
 			List<FeeCenter> feeCenterList = new ArrayList<>();
@@ -889,6 +890,9 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 		List<FeeCenter> feeCenterList = new ArrayList<>();
 		List<FinAccBills> finAccBillsList = new ArrayList<>();
 		if (ObjectUtils.isNotNull(finInvoices.getFinInvoicesItemsList())) {
+			detail.setBusinessNo(finInvoices.getFinInvoicesItemsList().stream().map(FinInvoicesItems::getBillNo).distinct().collect(Collectors.joining(",")));
+			detail.setMblno(finInvoices.getFinInvoicesItemsList().stream().map(FinInvoicesItems::getMblno).distinct().collect(Collectors.joining(",")));
+			detail.setHblno(finInvoices.getFinInvoicesItemsList().stream().map(FinInvoicesItems::getHblno).distinct().collect(Collectors.joining(",")));
 			for (FinInvoicesItems item : finInvoices.getFinInvoicesItemsList()) {
 				FinAccBills finAccBills = finAccBillsService.getById(item.getAccBillId());
 				if (finAccBills == null) {

+ 20 - 31
blade-service/blade-los/src/main/java/org/springblade/los/finance/stl/service/impl/FinStlBillsServiceImpl.java

@@ -243,11 +243,6 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 		}
 		this.saveOrUpdate(finStlBills);
 		if (ObjectUtils.isNotNull(finStlBills.getFinStlBillsItemsList())) {
-			finStlBills.setBusinessNo(finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getBillNo).distinct().collect(Collectors.joining(",")));
-			finStlBills.setAccountNo(finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getAccBillNo).distinct().collect(Collectors.joining(",")));
-			finStlBills.setMblno(finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getMblno).distinct().collect(Collectors.joining(",")));
-			finStlBills.setHblno(finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getHblno).distinct().collect(Collectors.joining(",")));
-			finStlBills.setInvoiceNo(finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getInvoiceNo).distinct().collect(Collectors.joining(",")));
 			List<FinStlBillsItems> finStlBillsItemsList = new ArrayList<>();
 			for (FinStlBillsItems item : finStlBills.getFinStlBillsItemsList()) {
 				//计算字段null值处理
@@ -355,6 +350,12 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 		}
 		FinStlBills detail = baseMapper.selectById(finStlBills.getId());
 		if (ObjectUtils.isNotNull(finStlBills.getFinStlBillsItemsList())) {
+			detail.setBusinessNo(finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getBillNo).distinct().collect(Collectors.joining(",")));
+			detail.setAccountNo(finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getAccBillNo).distinct().collect(Collectors.joining(",")));
+			detail.setMblno(finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getMblno).distinct().collect(Collectors.joining(",")));
+			detail.setHblno(finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getHblno).distinct().collect(Collectors.joining(",")));
+			detail.setInvoiceNo(finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getInvoiceNo).distinct().collect(Collectors.joining(",")));
+
 			List<FinAccBills> finAccBillsList = new ArrayList<>();
 			List<FeeCenter> feeCenterList = new ArrayList<>();
 			//对账明细状态修改  已对账
@@ -966,6 +967,12 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 		}
 		FinStlBills detail = baseMapper.selectById(finStlBills.getId());
 		if (ObjectUtils.isNotNull(finStlBills.getFinStlBillsItemsList())) {
+			detail.setBusinessNo(finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getBillNo).distinct().collect(Collectors.joining(",")));
+			detail.setAccountNo(finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getAccBillNo).distinct().collect(Collectors.joining(",")));
+			detail.setMblno(finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getMblno).distinct().collect(Collectors.joining(",")));
+			detail.setHblno(finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getHblno).distinct().collect(Collectors.joining(",")));
+			detail.setInvoiceNo(finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getInvoiceNo).distinct().collect(Collectors.joining(",")));
+
 			List<Long> ids = finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getSrcIdInvoices).filter(Objects::nonNull).collect(Collectors.toList());
 			if (!ids.isEmpty()) {
 				if ("D".equals(finStlBills.getDc())) {
@@ -1373,7 +1380,6 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 				finAccBills.setStlAmountCrUsd(ObjectUtils.isNotNull(finAccBills.getStlAmountCrUsd()) ? finAccBills.getStlAmountCrUsd() : new BigDecimal("0.00"));
 				item.setStlTtlAmount(item.getStlTtlAmount().subtract(item.getCurrentStlAmount().subtract(item.getCurrentStlDiscount())));
 				item.setUnsettledAmount(item.getAmount().subtract(item.getStlTtlAmount()));
-				/*-----------------------账单数据处理 收--------------------------- */
 				if ("D".equals(item.getDc())) {
 					if ("CNY".equals(item.getCurCode())) {
 						finAccBills.setStlAmountDr(finAccBills.getStlAmountDr().subtract(item.getCurrentStlAmount().subtract(item.getCurrentStlDiscount())));
@@ -1402,8 +1408,6 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 					}
 
 				}
-				/*-----------------------账单数据处理 收--------------------------- */
-				/*-----------------------账单数据处理 付--------------------------- */
 				else if ("C".equals(item.getDc())) {
 					if ("CNY".equals(item.getCurCode())) {
 						finAccBills.setStlAmountCr(finAccBills.getStlAmountCr().subtract(item.getCurrentStlAmount().subtract(item.getCurrentStlDiscount())));
@@ -1437,7 +1441,6 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 						}
 					}
 				}
-				/*-----------------------账单数据处理 付--------------------------- */
 
 				finAccBills.setStlBillId(0L);
 				finAccBills.setStlBillNo("");
@@ -1446,7 +1449,6 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 				finAccBills.setUpdateTime(new Date());
 				finAccBills.setUpdateUserName(AuthUtil.getUserName());
 				finAccBillsList.add(finAccBills);
-				/*-----------------------费用中心数据处理--------------------------- */
 				List<FeeCenter> feeCenters = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
 					.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
 					.eq(FeeCenter::getIsDeleted, 0)
@@ -1455,11 +1457,6 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 					.apply("stl_ttl_amount != 0")
 					.orderByDesc(FeeCenter::getCreateTime));
 				BigDecimal currentStlAmount = item.getCurrentStlAmount().abs();
-				/*BigDecimal stlTtlAmount = feeCenters.stream().map(FeeCenter::getStlTtlAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-				if (item.getCurrentStlAmount().compareTo(new BigDecimal("0.00")) == 0 ||
-					item.getCurrentStlAmount().compareTo(stlTtlAmount) > 0) {
-					throw new RuntimeException("本次结算金额不能为零或大于已结算金额");
-				}*/
 				for (FeeCenter e : feeCenters) {
 					if (currentStlAmount.compareTo(new BigDecimal("0.00")) == 0) {
 						break;
@@ -1482,18 +1479,6 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 						e.setStlById(0L);
 						e.setStlByName("");
 						if (!ids.isEmpty()) {
-							/*if ("D".equals(e.getDc())) {
-								if (e.getStlTtlAmount().compareTo(currentStlAmount) > 0) {
-									e.setStlTtlAmount(e.getStlTtlAmount().subtract(currentStlAmount));
-									currentStlAmount = new BigDecimal("0.00");
-								} else if (e.getStlTtlAmount().compareTo(currentStlAmount) == 0) {
-									e.setStlTtlAmount(new BigDecimal("0.00"));
-									currentStlAmount = new BigDecimal("0.00");
-								} else {
-									e.setStlTtlAmount(new BigDecimal("0.00"));
-									currentStlAmount = currentStlAmount.subtract(e.getAmount());
-								}
-							} else {*/
 							if (e.getStlTtlAmount().compareTo(currentStlAmount) > 0) {
 								e.setStlTtlAmount(e.getStlTtlAmount().subtract(currentStlAmount));
 								e.setUnsettledAmount(e.getAmount().subtract(e.getStlTtlAmount()));
@@ -1510,7 +1495,6 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 								e.setAppliedAmountStl(new BigDecimal("0.00"));
 								currentStlAmount = currentStlAmount.subtract(e.getAmount());
 							}
-//							}
 						} else {
 							if (e.getStlTtlAmount().compareTo(currentStlAmount) > 0) {
 								e.setStlTtlAmount(e.getStlTtlAmount().subtract(currentStlAmount));
@@ -1532,7 +1516,6 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 				if (currentStlAmount.compareTo(new BigDecimal("0.00")) != 0) {
 					throw new RuntimeException("撤销金额计算错误,操作失败");
 				}
-				/*-----------------------费用中心数据处理--------------------------- */
 			}
 			feeCenterService.saveOrUpdateBatch(feeCenterList);
 			finStlBillsItemsService.saveOrUpdateBatch(finStlBills.getFinStlBillsItemsList());
@@ -1818,6 +1801,12 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 		detail.setStatus(1);
 		detail.setAuditDateFrom(new Date());
 		if (ObjectUtils.isNotNull(finStlBills.getFinStlBillsItemsList())) {
+			detail.setBusinessNo(finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getBillNo).distinct().collect(Collectors.joining(",")));
+			detail.setAccountNo(finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getAccBillNo).distinct().collect(Collectors.joining(",")));
+			detail.setMblno(finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getMblno).distinct().collect(Collectors.joining(",")));
+			detail.setHblno(finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getHblno).distinct().collect(Collectors.joining(",")));
+			detail.setInvoiceNo(finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getInvoiceNo).distinct().collect(Collectors.joining(",")));
+
 			List<FeeCenter> feeCenterList = new ArrayList<>();
 			List<FinAccBills> finAccBillsList = new ArrayList<>();
 			for (FinStlBillsItems item : finStlBills.getFinStlBillsItemsList()) {
@@ -1942,7 +1931,6 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 				item.setUnsettledAmount(ObjectUtils.isNotNull(item.getUnsettledAmount()) ? item.getUnsettledAmount() : new BigDecimal("0.00"));
 				item.setCurrentStlAmount(ObjectUtils.isNotNull(item.getCurrentStlAmount()) ? item.getCurrentStlAmount() : new BigDecimal("0.00"));
 				item.setCurrentStlDiscount(ObjectUtils.isNotNull(item.getCurrentStlDiscount()) ? item.getCurrentStlDiscount() : new BigDecimal("0.00"));
-				/*-----------------------费用中心数据处理--------------------------- */
 				List<FeeCenter> feeCenters = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
 					.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
 					.eq(FeeCenter::getIsDeleted, 0)
@@ -1976,7 +1964,6 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 				if (currentStlAmount.compareTo(new BigDecimal("0.00")) != 0) {
 					throw new RuntimeException("撤销金额计算错误,操作失败");
 				}
-				/*-----------------------费用中心数据处理--------------------------- */
 			}
 			feeCenterService.saveOrUpdateBatch(feeCenterList);
 			finAccBillsService.saveOrUpdateBatch(finAccBillsList);
@@ -2193,6 +2180,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			}
 			feeCenterService.saveOrUpdateBatch(feeCenterList);
 			finAccBillsService.saveOrUpdateBatch(finAccBillsList);
+			finStlBillsItemsService.updateBatchById(finStlBills.getFinStlBillsItemsList());
 		} else {
 			throw new RuntimeException("请选择明细");
 		}
@@ -2230,6 +2218,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			}
 			feeCenterService.saveOrUpdateBatch(feeCenterList);
 			finAccBillsService.saveOrUpdateBatch(finAccBillsList);
+			finStlBillsItemsService.updateBatchById(finStlBills.getFinStlBillsItemsList());
 		} else {
 			throw new RuntimeException("请选择明细");
 		}

+ 91 - 62
blade-service/blade-los/src/main/java/org/springblade/los/statisticAnalysis/service/impl/StatisticAnalysisServiceImpl.java

@@ -36,6 +36,7 @@ import org.springblade.los.trade.entity.DispatchVehicles;
 import org.springblade.los.trade.mapper.AgentMapper;
 import org.springblade.los.trade.mapper.DispatchVehiclesMapper;
 import org.springblade.los.view.entity.BoxNumberProfit;
+import org.springblade.los.view.entity.FinanceProfit;
 import org.springblade.los.view.mapper.BoxNumberProfitMapper;
 import org.springblade.los.view.mapper.FinanceProfitMapper;
 import org.springblade.system.feign.ISysClient;
@@ -109,19 +110,19 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 					financeProfit.setSelecType("1");
 					financeProfit.setSelecTypeId(AuthUtil.getDeptId());
 				} else if (AuthUtil.getUserRole().contains("操作员")) {
-					financeProfit.setSelecTypeId(AuthUtil.getUserId()+"");
+					financeProfit.setSelecTypeId(AuthUtil.getUserId() + "");
 					financeProfit.setSelecType("2");
 				} else if (AuthUtil.getUserRole().contains("销售经理")) {
 					financeProfit.setSelecTypeId(AuthUtil.getDeptId());
 					financeProfit.setSelecType("3");
 				} else if (AuthUtil.getUserRole().contains("业务员")) {
-					financeProfit.setSelecTypeId(AuthUtil.getUserId()+"");
+					financeProfit.setSelecTypeId(AuthUtil.getUserId() + "");
 					financeProfit.setSelecType("4");
 				} else {
-					financeProfit.setSelecTypeId(AuthUtil.getUserId()+"");
+					financeProfit.setSelecTypeId(AuthUtil.getUserId() + "");
 					financeProfit.setSelecType("5");
 				}
-			}else{
+			} else {
 				financeProfit.setSelecType("0");
 			}
 		}
@@ -297,15 +298,29 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 			}
 			financeProfitList = financeProfitMapper.financeProfit(financeProfit, page);
 		}
+		List<FinanceProfit> financeProfitDataList = new ArrayList<>();
+		if (!financeProfitList.isEmpty()) {
+			String mblNo = financeProfitList.stream().map(FinanceProfitDtoList::getMblNo).distinct().collect(Collectors.joining(","));
+			financeProfitDataList = financeProfitMapper.selectList(new LambdaQueryWrapper<FinanceProfit>()
+				.apply("find_in_set(mblno,'" + mblNo + "')")
+				.apply("find_in_set(business_type,'SE,SI,AE,AI')")
+			);
+		}
 		for (FinanceProfitDtoList item : financeProfitList) {
-			if (null != item) {
-				item.setAmountCrLoc(item.getAmountCrUsd().multiply(exrateC).add(item.getAmountCr()).setScale(2, RoundingMode.HALF_UP));
-				item.setRealAmountCrLoc(item.getRealAmountCrUsd().multiply(exrateC).add(item.getRealAmountCr()).setScale(2, RoundingMode.HALF_UP));
-				item.setAmountDrLoc(item.getAmountDrUsd().multiply(exrateC).add(item.getAmountDr()).setScale(2, RoundingMode.HALF_UP));
-				item.setRealAmountDrLoc(item.getRealAmountDrUsd().multiply(exrateC).add(item.getRealAmountDr()).setScale(2, RoundingMode.HALF_UP));
-				item.setAmountProfitLoc(item.getAmountDrLoc().subtract(item.getAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
-				item.setRealAmountProfitLoc(item.getRealAmountDrLoc().subtract(item.getRealAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
+			if ("SEA,SIA,AEA,AIA".contains(item.getBillType()) && !financeProfitDataList.isEmpty()) {
+				FinanceProfit profit = financeProfitDataList.stream().filter(e -> e.getMblno().equals(item.getMblNo())).findFirst().orElse(null);
+				if (profit != null) {
+					item.setSalesman(profit.getSrcCnName());
+					item.setAccDeptName(profit.getAccDeptName());
+					item.setLineCnName(profit.getLineCnName());
+				}
 			}
+			item.setAmountCrLoc(item.getAmountCrUsd().multiply(exrateC).add(item.getAmountCr()).setScale(2, RoundingMode.HALF_UP));
+			item.setRealAmountCrLoc(item.getRealAmountCrUsd().multiply(exrateC).add(item.getRealAmountCr()).setScale(2, RoundingMode.HALF_UP));
+			item.setAmountDrLoc(item.getAmountDrUsd().multiply(exrateC).add(item.getAmountDr()).setScale(2, RoundingMode.HALF_UP));
+			item.setRealAmountDrLoc(item.getRealAmountDrUsd().multiply(exrateC).add(item.getRealAmountDr()).setScale(2, RoundingMode.HALF_UP));
+			item.setAmountProfitLoc(item.getAmountDrLoc().subtract(item.getAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
+			item.setRealAmountProfitLoc(item.getRealAmountDrLoc().subtract(item.getRealAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
 		}
 		return R.data(page.setRecords(financeProfitList));
 	}
@@ -758,12 +773,12 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 			.ge(CustomsDeclaration::getDeclareDate, dateStart)
 			.le(CustomsDeclaration::getDeclareDate, dateEnd)
 			.apply("find_in_set(status,'1,2')");
-			if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
-				customsDeclarationLambdaQueryWrapper.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
-			}
-			if (!AuthUtil.getUserRole().contains("admin")) {
-				customsDeclarationLambdaQueryWrapper.eq(CustomsDeclaration::getBranchId, deptUtils.getDeptPid());
-			}
+		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
+			customsDeclarationLambdaQueryWrapper.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
+		}
+		if (!AuthUtil.getUserRole().contains("admin")) {
+			customsDeclarationLambdaQueryWrapper.eq(CustomsDeclaration::getBranchId, deptUtils.getDeptPid());
+		}
 		customsDeclarationLambdaQueryWrapper.eq(CustomsDeclaration::getBusinessType, "BGSE");
 		BGSE = customsDeclarationMapper.selectCount(customsDeclarationLambdaQueryWrapper);
 		LambdaQueryWrapper<CustomsDeclaration> customsDeclarationLambdaQueryWrapperBGSI = new LambdaQueryWrapper<>();
@@ -772,12 +787,12 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 			.ge(CustomsDeclaration::getDeclareDate, dateStart)
 			.le(CustomsDeclaration::getDeclareDate, dateEnd)
 			.apply("find_in_set(status,'1,2')");
-			if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
-				customsDeclarationLambdaQueryWrapperBGSI.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
-			}
-			if (!AuthUtil.getUserRole().contains("admin")) {
-				customsDeclarationLambdaQueryWrapperBGSI.eq(CustomsDeclaration::getBranchId, deptUtils.getDeptPid());
-			}
+		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
+			customsDeclarationLambdaQueryWrapperBGSI.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
+		}
+		if (!AuthUtil.getUserRole().contains("admin")) {
+			customsDeclarationLambdaQueryWrapperBGSI.eq(CustomsDeclaration::getBranchId, deptUtils.getDeptPid());
+		}
 		customsDeclarationLambdaQueryWrapperBGSI.eq(CustomsDeclaration::getBusinessType, "BGSI");
 		BGSI = customsDeclarationMapper.selectCount(customsDeclarationLambdaQueryWrapperBGSI);
 		LambdaQueryWrapper<CustomsDeclaration> customsDeclarationLambdaQueryWrapperBGAE = new LambdaQueryWrapper<>();
@@ -786,12 +801,12 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 			.ge(CustomsDeclaration::getDeclareDate, dateStart)
 			.le(CustomsDeclaration::getDeclareDate, dateEnd)
 			.apply("find_in_set(status,'1,2')");
-			if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
-				customsDeclarationLambdaQueryWrapperBGAE.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
-			}
-			if (!AuthUtil.getUserRole().contains("admin")) {
-				customsDeclarationLambdaQueryWrapperBGAE.eq(CustomsDeclaration::getBranchId, deptUtils.getDeptPid());
-			}
+		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
+			customsDeclarationLambdaQueryWrapperBGAE.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
+		}
+		if (!AuthUtil.getUserRole().contains("admin")) {
+			customsDeclarationLambdaQueryWrapperBGAE.eq(CustomsDeclaration::getBranchId, deptUtils.getDeptPid());
+		}
 		customsDeclarationLambdaQueryWrapperBGAE.eq(CustomsDeclaration::getBusinessType, "BGAE");
 		BGAE = customsDeclarationMapper.selectCount(customsDeclarationLambdaQueryWrapperBGAE);
 		LambdaQueryWrapper<CustomsDeclaration> customsDeclarationLambdaQueryWrapperBGAI = new LambdaQueryWrapper<>();
@@ -800,12 +815,12 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 			.ge(CustomsDeclaration::getDeclareDate, dateStart)
 			.le(CustomsDeclaration::getDeclareDate, dateEnd)
 			.apply("find_in_set(status,'1,2')");
-			if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
-				customsDeclarationLambdaQueryWrapperBGAI.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
-			}
-			if (!AuthUtil.getUserRole().contains("admin")) {
-				customsDeclarationLambdaQueryWrapperBGAI.eq(CustomsDeclaration::getBranchId, deptUtils.getDeptPid());
-			}
+		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("财务")) {
+			customsDeclarationLambdaQueryWrapperBGAI.apply("find_in_set(team_id,'" + AuthUtil.getPostId() + "')");
+		}
+		if (!AuthUtil.getUserRole().contains("admin")) {
+			customsDeclarationLambdaQueryWrapperBGAI.eq(CustomsDeclaration::getBranchId, deptUtils.getDeptPid());
+		}
 		customsDeclarationLambdaQueryWrapperBGAI.eq(CustomsDeclaration::getBusinessType, "BGAI");
 		BGAI = customsDeclarationMapper.selectCount(customsDeclarationLambdaQueryWrapperBGAI);
 
@@ -1041,19 +1056,19 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 					financeProfit.setSelecType("1");
 					financeProfit.setSelecTypeId(AuthUtil.getDeptId());
 				} else if (AuthUtil.getUserRole().contains("操作员")) {
-					financeProfit.setSelecTypeId(AuthUtil.getUserId()+"");
+					financeProfit.setSelecTypeId(AuthUtil.getUserId() + "");
 					financeProfit.setSelecType("2");
 				} else if (AuthUtil.getUserRole().contains("销售经理")) {
 					financeProfit.setSelecTypeId(AuthUtil.getDeptId());
 					financeProfit.setSelecType("3");
 				} else if (AuthUtil.getUserRole().contains("业务员")) {
-					financeProfit.setSelecTypeId(AuthUtil.getUserId()+"");
+					financeProfit.setSelecTypeId(AuthUtil.getUserId() + "");
 					financeProfit.setSelecType("4");
 				} else {
-					financeProfit.setSelecTypeId(AuthUtil.getUserId()+"");
+					financeProfit.setSelecTypeId(AuthUtil.getUserId() + "");
 					financeProfit.setSelecType("5");
 				}
-			}else{
+			} else {
 				financeProfit.setSelecType("0");
 			}
 		}
@@ -1270,19 +1285,19 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 					financeProfit.setSelecType("1");
 					financeProfit.setSelecTypeId(AuthUtil.getDeptId());
 				} else if (AuthUtil.getUserRole().contains("操作员")) {
-					financeProfit.setSelecTypeId(AuthUtil.getUserId()+"");
+					financeProfit.setSelecTypeId(AuthUtil.getUserId() + "");
 					financeProfit.setSelecType("2");
 				} else if (AuthUtil.getUserRole().contains("销售经理")) {
 					financeProfit.setSelecTypeId(AuthUtil.getDeptId());
 					financeProfit.setSelecType("3");
 				} else if (AuthUtil.getUserRole().contains("业务员")) {
-					financeProfit.setSelecTypeId(AuthUtil.getUserId()+"");
+					financeProfit.setSelecTypeId(AuthUtil.getUserId() + "");
 					financeProfit.setSelecType("4");
 				} else {
-					financeProfit.setSelecTypeId(AuthUtil.getUserId()+"");
+					financeProfit.setSelecTypeId(AuthUtil.getUserId() + "");
 					financeProfit.setSelecType("5");
 				}
-			}else{
+			} else {
 				financeProfit.setSelecType("0");
 			}
 		}
@@ -1456,15 +1471,29 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 			financeProfit.setBillType(financeProfit.getBillType() + ",SEA,SIA,AEA,AIA");
 			financeProfitList = financeProfitMapper.financeProfitSum(financeProfit);
 		}
+		List<FinanceProfit> financeProfitDataList = new ArrayList<>();
+		if (!financeProfitList.isEmpty()) {
+			String mblNo = financeProfitList.stream().map(FinanceProfitDtoList::getMblNo).distinct().collect(Collectors.joining(","));
+			financeProfitDataList = financeProfitMapper.selectList(new LambdaQueryWrapper<FinanceProfit>()
+				.apply("find_in_set(mblno,'" + mblNo + "')")
+				.apply("find_in_set(business_type,'SE,SI,AE,AI')")
+			);
+		}
 		for (FinanceProfitDtoList item : financeProfitList) {
-			if (null != item) {
-				item.setAmountCrLoc(item.getAmountCrUsd().multiply(exrateC).add(item.getAmountCr()).setScale(2, RoundingMode.HALF_UP));
-				item.setRealAmountCrLoc(item.getRealAmountCrUsd().multiply(exrateC).add(item.getRealAmountCr()).setScale(2, RoundingMode.HALF_UP));
-				item.setAmountDrLoc(item.getAmountDrUsd().multiply(exrateC).add(item.getAmountDr()).setScale(2, RoundingMode.HALF_UP));
-				item.setRealAmountDrLoc(item.getRealAmountDrUsd().multiply(exrateC).add(item.getRealAmountDr()).setScale(2, RoundingMode.HALF_UP));
-				item.setAmountProfitLoc(item.getAmountDrLoc().subtract(item.getAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
-				item.setRealAmountProfitLoc(item.getRealAmountDrLoc().subtract(item.getRealAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
+			if ("SEA,SIA,AEA,AIA".contains(item.getBillType()) && !financeProfitDataList.isEmpty()) {
+				FinanceProfit profit = financeProfitDataList.stream().filter(e -> e.getMblno().equals(item.getMblNo())).findFirst().orElse(null);
+				if (profit != null) {
+					item.setSalesman(profit.getSrcCnName());
+					item.setAccDeptName(profit.getAccDeptName());
+					item.setLineCnName(profit.getLineCnName());
+				}
 			}
+			item.setAmountCrLoc(item.getAmountCrUsd().multiply(exrateC).add(item.getAmountCr()).setScale(2, RoundingMode.HALF_UP));
+			item.setRealAmountCrLoc(item.getRealAmountCrUsd().multiply(exrateC).add(item.getRealAmountCr()).setScale(2, RoundingMode.HALF_UP));
+			item.setAmountDrLoc(item.getAmountDrUsd().multiply(exrateC).add(item.getAmountDr()).setScale(2, RoundingMode.HALF_UP));
+			item.setRealAmountDrLoc(item.getRealAmountDrUsd().multiply(exrateC).add(item.getRealAmountDr()).setScale(2, RoundingMode.HALF_UP));
+			item.setAmountProfitLoc(item.getAmountDrLoc().subtract(item.getAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
+			item.setRealAmountProfitLoc(item.getRealAmountDrLoc().subtract(item.getRealAmountCrLoc()).setScale(2, RoundingMode.HALF_UP));
 		}
 		return financeProfitList;
 	}
@@ -1482,19 +1511,19 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 					boxNumberProfit.setSelecType("1");
 					boxNumberProfit.setSelecTypeId(AuthUtil.getDeptId());
 				} else if (AuthUtil.getUserRole().contains("操作员")) {
-					boxNumberProfit.setSelecTypeId(AuthUtil.getUserId()+"");
+					boxNumberProfit.setSelecTypeId(AuthUtil.getUserId() + "");
 					boxNumberProfit.setSelecType("2");
 				} else if (AuthUtil.getUserRole().contains("销售经理")) {
 					boxNumberProfit.setSelecTypeId(AuthUtil.getDeptId());
 					boxNumberProfit.setSelecType("3");
 				} else if (AuthUtil.getUserRole().contains("业务员")) {
-					boxNumberProfit.setSelecTypeId(AuthUtil.getUserId()+"");
+					boxNumberProfit.setSelecTypeId(AuthUtil.getUserId() + "");
 					boxNumberProfit.setSelecType("4");
 				} else {
-					boxNumberProfit.setSelecTypeId(AuthUtil.getUserId()+"");
+					boxNumberProfit.setSelecTypeId(AuthUtil.getUserId() + "");
 					boxNumberProfit.setSelecType("5");
 				}
-			}else{
+			} else {
 				boxNumberProfit.setSelecType("0");
 			}
 		}
@@ -1555,19 +1584,19 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 					boxNumberProfit.setSelecType("1");
 					boxNumberProfit.setSelecTypeId(AuthUtil.getDeptId());
 				} else if (AuthUtil.getUserRole().contains("操作员")) {
-					boxNumberProfit.setSelecTypeId(AuthUtil.getUserId()+"");
+					boxNumberProfit.setSelecTypeId(AuthUtil.getUserId() + "");
 					boxNumberProfit.setSelecType("2");
 				} else if (AuthUtil.getUserRole().contains("销售经理")) {
 					boxNumberProfit.setSelecTypeId(AuthUtil.getDeptId());
 					boxNumberProfit.setSelecType("3");
 				} else if (AuthUtil.getUserRole().contains("业务员")) {
-					boxNumberProfit.setSelecTypeId(AuthUtil.getUserId()+"");
+					boxNumberProfit.setSelecTypeId(AuthUtil.getUserId() + "");
 					boxNumberProfit.setSelecType("4");
 				} else {
-					boxNumberProfit.setSelecTypeId(AuthUtil.getUserId()+"");
+					boxNumberProfit.setSelecTypeId(AuthUtil.getUserId() + "");
 					boxNumberProfit.setSelecType("5");
 				}
-			}else{
+			} else {
 				boxNumberProfit.setSelecType("0");
 			}
 		}
@@ -1668,19 +1697,19 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 					boxNumberProfit.setSelecType("1");
 					boxNumberProfit.setSelecTypeId(AuthUtil.getDeptId());
 				} else if (AuthUtil.getUserRole().contains("操作员")) {
-					boxNumberProfit.setSelecTypeId(AuthUtil.getUserId()+"");
+					boxNumberProfit.setSelecTypeId(AuthUtil.getUserId() + "");
 					boxNumberProfit.setSelecType("2");
 				} else if (AuthUtil.getUserRole().contains("销售经理")) {
 					boxNumberProfit.setSelecTypeId(AuthUtil.getDeptId());
 					boxNumberProfit.setSelecType("3");
 				} else if (AuthUtil.getUserRole().contains("业务员")) {
-					boxNumberProfit.setSelecTypeId(AuthUtil.getUserId()+"");
+					boxNumberProfit.setSelecTypeId(AuthUtil.getUserId() + "");
 					boxNumberProfit.setSelecType("4");
 				} else {
-					boxNumberProfit.setSelecTypeId(AuthUtil.getUserId()+"");
+					boxNumberProfit.setSelecTypeId(AuthUtil.getUserId() + "");
 					boxNumberProfit.setSelecType("5");
 				}
-			}else{
+			} else {
 				boxNumberProfit.setSelecType("0");
 			}
 		}

+ 39 - 6
blade-service/blade-los/src/main/java/org/springblade/los/trade/service/impl/PayableStorageFeesServiceImpl.java

@@ -26,6 +26,8 @@ import org.springblade.core.tool.api.R;
 import org.springblade.los.Util.IDeptUtils;
 import org.springblade.los.basic.business.entity.BusinessType;
 import org.springblade.los.basic.business.service.IBusinessTypeService;
+import org.springblade.los.basic.corps.entity.BCorps;
+import org.springblade.los.basic.corps.service.IBCorpsService;
 import org.springblade.los.basic.fees.entity.BFees;
 import org.springblade.los.basic.fees.service.IBFeesService;
 import org.springblade.los.billno.entity.BusinessBillNo;
@@ -88,6 +90,8 @@ public class PayableStorageFeesServiceImpl extends ServiceImpl<PayableStorageFee
 
 	private final IFinAccBillsService finAccBillsService;
 
+	private final IBCorpsService corpsService;
+
 	@Override
 	public IPage<PayableStorageFeesVO> selectPayableStorageFeesPage(IPage<PayableStorageFeesVO> page, PayableStorageFeesVO payableStorageFees) {
 		return page.setRecords(baseMapper.selectPayableStorageFeesPage(page, payableStorageFees));
@@ -206,18 +210,24 @@ public class PayableStorageFeesServiceImpl extends ServiceImpl<PayableStorageFee
 					} else {
 						dateEnd = payableStorageFees.getChargingEndDate();
 					}
-					diff = dateEnd.getTime() - calendar.getTime().getTime();
+					if (inOutStorage.getChargingDate().compareTo(inOutStorage.getOutStorageDate()) != 0) {
+						inOutStorage.setChargingDate(calendar.getTime());
+					}
+					diff = dateEnd.getTime() - inOutStorage.getChargingDate().getTime();
 				} else {
 					if (new BigDecimal("0.00").compareTo(inOutStorage.getSurplusQuantity()) == 0) {
 						continue;
 					}
+					if (inOutStorage.getChargingDate().compareTo(inOutStorage.getStorageDate()) != 0) {
+						inOutStorage.setChargingDate(calendar.getTime());
+					}
 					dateEnd = payableStorageFees.getChargingEndDate();
-					diff = dateEnd.getTime() - calendar.getTime().getTime();
+					diff = dateEnd.getTime() - inOutStorage.getChargingDate().getTime();
 				}
 				// 计算差多少天
 				long day = diff / nd + 1L;
 				storageFeesItems.setChargingDay((int) day);
-				storageFeesItems.setChargingStartDate(calendar.getTime());
+				storageFeesItems.setChargingStartDate(inOutStorage.getChargingDate());
 				storageFeesItems.setChargingEndDate(dateEnd);
 				StorageFeeItems storageFeeItems = storageFeeItemsList.stream().filter(e -> e.getGoodsType().equals(inOutStorage.getGoodsType())).findFirst().orElse(null);
 				if (storageFeeItems == null) {
@@ -255,6 +265,13 @@ public class PayableStorageFeesServiceImpl extends ServiceImpl<PayableStorageFee
 		if (storage == null) {
 			throw new RuntimeException("未查到仓库信息");
 		}
+		BCorps corps = corpsService.getOne(new LambdaQueryWrapper<BCorps>()
+			.eq(BCorps::getTenantId, AuthUtil.getTenantId())
+			.eq(BCorps::getIsDeleted, 0)
+			.eq(BCorps::getCode, storage.getCode()));
+		if (corps == null) {
+			throw new RuntimeException("请先维护仓库" + storage.getCname() + "对应往来单位信息");
+		}
 		boolean billingRules = true;
 		if ("1".equals(storage.getBillingRules())) {
 			billingRules = false;
@@ -313,8 +330,10 @@ public class PayableStorageFeesServiceImpl extends ServiceImpl<PayableStorageFee
 				feeCenter.setLineNo(1L);
 				feeCenter.setBillNo(bills.getBillNo());
 				feeCenter.setBillDate(bills.getBillDate());
-				feeCenter.setCorpId(bills.getCorpId());
-				feeCenter.setCorpCnName(bills.getCorpCnName());
+				feeCenter.setCorpId(corps.getId());
+				feeCenter.setCorpCnName(corps.getCnName());
+				feeCenter.setShortName(corps.getShortName());
+				feeCenter.setCorpEnName(corps.getEnName());
 				feeCenter.setBillCorpId(bills.getCorpId());
 				feeCenter.setBillCorpCnName(bills.getCorpCnName());
 				feeCenter.setMblno(bills.getMblno());
@@ -425,6 +444,13 @@ public class PayableStorageFeesServiceImpl extends ServiceImpl<PayableStorageFee
 						data.setBusinessBillNo(item.getBillNo());
 						data.setBusinessDate(item.getBillDate());
 					}
+					data.setSrcId(bills.getSrcId());
+					data.setSrcCnName(bills.getSrcCnName());
+					data.setSrcEnName(bills.getSrcEnName());
+					data.setSrcType(bills.getSrcType());
+					data.setOperatorId(bills.getOperatorId());
+					data.setOperatorName(bills.getOperatorName());
+					data.setQuantityCntrDescr(bills.getQuantityCntrDescr());
 					data.setPaymode(item.getPaymode());
 					data.setAccelementid(item.getElementsId());
 					data.setAccelementname(item.getElementsCnName());
@@ -546,7 +572,14 @@ public class PayableStorageFeesServiceImpl extends ServiceImpl<PayableStorageFee
 		for (PayableStorageFeesItems item : payableStorageFees.getStorageFeesItemsList()) {
 			InOutStorage inOutStorage = inOutStorageList.stream().filter(e -> e.getId().equals(item.getItemId())).findFirst().orElse(null);
 			if (inOutStorage != null) {
-				inOutStorage.setChargingDate(item.getChargingStartDate());
+				if (item.getChargingStartDate().compareTo(inOutStorage.getStorageDate()) > 0) {
+					Calendar calendar = Calendar.getInstance();
+					calendar.setTime(item.getChargingStartDate());
+					calendar.add(Calendar.DATE, -1);
+					inOutStorage.setChargingDate(calendar.getTime());
+				} else {
+					inOutStorage.setChargingDate(inOutStorage.getStorageDate());
+				}
 				inOutStorage.setUpdateTime(new Date());
 				inOutStorage.setUpdateUser(AuthUtil.getUserId());
 				inOutStorage.setUpdateUserName(AuthUtil.getUserName());

+ 13 - 14
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipServiceImpl.java

@@ -60,7 +60,6 @@ import org.springblade.salesPart.order.service.IOrderItemsService;
 import org.springblade.salesPart.order.service.IOrderRecordService;
 import org.springblade.salesPart.productLaunch.service.IProductLaunchService;
 import org.springblade.salesPart.serial.service.IPjpfSerialService;
-import org.springblade.salesPart.share.entity.SharePutOnShelves;
 import org.springblade.salesPart.share.service.ISharePutOnShelvesService;
 import org.springblade.salesPart.ship.mapper.ShipMapper;
 import org.springblade.salesPart.ship.service.IShipItemsRecordService;
@@ -941,15 +940,15 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				order.setLogisticsCorpId(ship.getLogisticsCorpId());
 				order.setLogisticsCorpName(ship.getLogisticsCorpName());
 				order.setExpressNo(ship.getExpressNo());
-				System.err.println("=============出库完成-"+order.getOrdNo()+"==============");
+				System.err.println("=============出库完成-" + order.getOrdNo() + "==============");
 				if (goodsNum.compareTo(sendNum) == 0) {//数量等于发货数量修改销售订单状态
-					System.err.println("=============数量等于发货数量-"+order.getOrdNo()+"==============");
+					System.err.println("=============数量等于发货数量-" + order.getOrdNo() + "==============");
 					order.setDeliveryBusinesDate(new Date());
-					System.err.println("=============出库时间赋值-"+order.getDeliveryBusinesDate()+"==============");
+					System.err.println("=============出库时间赋值-" + order.getDeliveryBusinesDate() + "==============");
 					order.setStatus(OrderTypeEnum.SHIPED.getType());
 					order.setXcxStatus(OrderTypeEnum.GOODSRECEIVED.getType());
 					orderMapper.updateById(order);
-					System.err.println("=============出库时间修改成功后-"+order.getDeliveryBusinesDate()+"==============");
+					System.err.println("=============出库时间修改成功后-" + order.getDeliveryBusinesDate() + "==============");
 				} else {
 					order.setStorageId(ship.getStorageId());
 					order.setStorageName(ship.getStorageName());
@@ -1008,9 +1007,6 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 						if (!orderItemsList.isEmpty()) {
 							List<PjOrder> orders = orderList.stream().filter(e -> e.getWhetherRedeem().equals("0")).distinct().collect(Collectors.toList());
 							if (!orders.isEmpty()) {
-						/*if (pjpfFunding.getBondAmount().compareTo(pjpfFunding.getPaidAlreadyBondAmount()) > 0) {
-							throw new RuntimeException("已缴保证金不足,出库失败");
-						}*/
 								if (pjpfFunding.getAvailableAmount().subtract(pjpfFunding.getInterest()).compareTo(amountSum) < 0) {
 									throw new RuntimeException("剩余可用资金:" + pjpfFunding.getAvailableAmount().subtract(pjpfFunding.getInterest()) + "小于本次出库金额:" + amountSum + ",出库失败");
 								}
@@ -1029,6 +1025,9 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 							BigDecimal number = shipItems.getSendNumFinancing();
 							//获取出库明细商品对应融资采购商品明细
 							List<PjOrderItems> orderItemList = orderItemsList.stream().filter(e -> e.getGoodsId().equals(shipItems.getGoodsId())).collect(Collectors.toList());
+							if (orderItemList.isEmpty()) {
+								throw new RuntimeException("商品:" + shipItems.getGoodsName() + "超过90天未赎回,请确认在出库");
+							}
 							List<FinancingShipItemDto> mapList = new ArrayList<>();
 							if (number.compareTo(new BigDecimal("0.00")) > 0) {
 								//采购商品明细循环
@@ -2053,7 +2052,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				throw new RuntimeException(res.getMsg());
 			}
 			String stata = sysClient.paramServiceValue(AuthUtil.getTenantId(), "whether.open.share");
-			if (!pjProductLaunchList.isEmpty() && "1".equals(stata)){
+			if (!pjProductLaunchList.isEmpty() && "1".equals(stata)) {
 				sharePutOnShelvesService.updateShareInventory(pjProductLaunchList);
 			}
 			ship.setShipItemsList(ship.getShipItemsList());
@@ -2677,7 +2676,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				throw new RuntimeException(res.getMsg());
 			}
 			String stata = sysClient.paramServiceValue(AuthUtil.getTenantId(), "whether.open.share");
-			if (!pjProductLaunchList.isEmpty() && "1".equals(stata)){
+			if (!pjProductLaunchList.isEmpty() && "1".equals(stata)) {
 				sharePutOnShelvesService.updateShareInventory(pjProductLaunchList);
 			}
 			ship.setShipItemsList(ship.getShipItemsList());
@@ -3830,7 +3829,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				throw new RuntimeException(res1.getMsg());
 			}
 			String stata = sysClient.paramServiceValue(AuthUtil.getTenantId(), "whether.open.share");
-			if (!pjProductLaunchList.isEmpty() && "1".equals(stata)){
+			if (!pjProductLaunchList.isEmpty() && "1".equals(stata)) {
 				sharePutOnShelvesService.updateShareInventory(pjProductLaunchList);
 			}
 			ship.setShipItemsList(ship.getShipItemsList());
@@ -4278,7 +4277,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				throw new RuntimeException(res1.getMsg());
 			}
 			String stata = sysClient.paramServiceValue(AuthUtil.getTenantId(), "whether.open.share");
-			if (!pjProductLaunchList.isEmpty() && "1".equals(stata)){
+			if (!pjProductLaunchList.isEmpty() && "1".equals(stata)) {
 				sharePutOnShelvesService.updateShareInventory(pjProductLaunchList);
 			}
 			//修改任务发货数量
@@ -4852,7 +4851,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				throw new RuntimeException(res.getMsg());
 			}
 			String stata = sysClient.paramServiceValue(AuthUtil.getTenantId(), "whether.open.share");
-			if (!pjProductLaunchList.isEmpty() && "1".equals(stata)){
+			if (!pjProductLaunchList.isEmpty() && "1".equals(stata)) {
 				sharePutOnShelvesService.updateShareInventory(pjProductLaunchList);
 			}
 			ship.setShipItemsList(ship.getShipItemsList());
@@ -5178,7 +5177,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				throw new RuntimeException(res.getMsg());
 			}
 			String stata = sysClient.paramServiceValue(AuthUtil.getTenantId(), "whether.open.share");
-			if (!pjProductLaunchList.isEmpty() && "1".equals(stata)){
+			if (!pjProductLaunchList.isEmpty() && "1".equals(stata)) {
 				sharePutOnShelvesService.updateShareInventory(pjProductLaunchList);
 			}
 			ship.setShipItemsList(ship.getShipItemsList());

+ 8 - 1
blade-service/blade-system/src/main/java/org/springblade/system/controller/PostController.java

@@ -18,6 +18,7 @@ package org.springblade.system.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
@@ -81,7 +82,13 @@ public class PostController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入post")
 	public R<IPage<PostVO>> list(Post post, Query query) {
-		IPage<Post> pages = postService.page(Condition.getPage(query), Condition.getQueryWrapper(post));
+		LambdaQueryWrapper<Post> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(Post::getTenantId,AuthUtil.getTenantId())
+			.eq(Post::getIsDeleted,0)
+			.eq(ObjectUtils.isNotNull(post.getPostCode()),Post::getPostCode,post.getPostCode())
+			.eq(ObjectUtils.isNotNull(post.getCategory()),Post::getCategory,post.getCategory())
+			.eq(ObjectUtils.isNotNull(post.getPostName()),Post::getPostName,post.getPostName());
+		IPage<Post> pages = postService.page(Condition.getPage(query), lambdaQueryWrapper);
 		return R.data(PostWrapper.build().pageVO(pages));
 	}
 

+ 2 - 2
blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java

@@ -4043,9 +4043,9 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		if (!itemsList.isEmpty()) {
 			model.setBillNo(itemsList.stream().map(Items::getSrcBillNo).distinct().collect(Collectors.joining(",")));
 			model.setSrcOrderno(itemsList.stream().map(Items::getSrcOrderno).distinct().collect(Collectors.joining(",")));
-			model.setForeignAmount(itemsList.stream().filter(e -> e.getAmount() != null && !"1".equals(e.getCurrency()))
+			model.setForeignAmount(itemsList.stream().filter(e -> e.getThisAmount() != null && !"1".equals(e.getCurrency()))
 				.map(Items::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
-			model.setAmount(itemsList.stream().filter(e -> e.getAmount() != null && "1".equals(e.getCurrency()))
+			model.setAmount(itemsList.stream().filter(e -> e.getThisAmount() != null && "1".equals(e.getCurrency()))
 				.map(Items::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
 		}
 		//如果id=null, 无论主表还是从表, 必然都是新增