Sfoglia il codice sorgente

1.箱档案箱号多选选
2.汇率同步bug修改
3.搜索账单明细导出问题修改
4.财务请核金额利润问题修改
5.海运出口选择放箱号增加场站条件
6.箱池动态接口数量问题修改
7.放箱号箱东问题修改
8.ow拿费用明细增加字段
9.ow拿提交修改数据同步问题
10.进出场同步增加目的是否准确判断

纪新园 3 settimane fa
parent
commit
5b0506cace
15 ha cambiato i file con 383 aggiunte e 232 eliminazioni
  1. 3 3
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/box/entity/PutBox.java
  2. 11 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/box/entity/TradingBox.java
  3. 5 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/dto/FeeCenterReports.java
  4. 4 4
      blade-service/blade-los/src/main/java/org/springblade/los/Util/ExchangeRateUtils.java
  5. 2 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/impl/ReportsBoxServiceImpl.java
  6. 4 1
      blade-service/blade-los/src/main/java/org/springblade/los/box/controller/ArchivesController.java
  7. 1 0
      blade-service/blade-los/src/main/java/org/springblade/los/box/controller/PutBoxController.java
  8. 2 0
      blade-service/blade-los/src/main/java/org/springblade/los/box/controller/TradingBoxController.java
  9. 158 108
      blade-service/blade-los/src/main/java/org/springblade/los/box/dynamics/service/impl/BoxDynamicsRecordServiceImpl.java
  10. 20 9
      blade-service/blade-los/src/main/java/org/springblade/los/box/mapper/PutBoxMapper.xml
  11. 139 91
      blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/PutBoxServiceImpl.java
  12. 10 2
      blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/TradingBoxServiceImpl.java
  13. 5 0
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/controller/FinAccBillsController.java
  14. 19 12
      blade-service/blade-los/src/main/java/org/springblade/los/finance/invoices/service/impl/FinInvoicesServiceImpl.java
  15. 0 2
      blade-service/blade-los/src/main/java/org/springblade/los/finance/stl/service/impl/FinStlBillsServiceImpl.java

+ 3 - 3
blade-service-api/blade-los-api/src/main/java/org/springblade/los/box/entity/PutBox.java

@@ -202,7 +202,7 @@ public class PutBox implements Serializable {
 	@ApiModelProperty(value = "箱种类")
 	private String boxClass;
 	/**
-	 * 场地盘存
+	 * 总箱数
 	 */
 	@ApiModelProperty(value = "总箱数")
 	private Integer totalNum;
@@ -217,9 +217,9 @@ public class PutBox implements Serializable {
 	@ApiModelProperty(value = "未提箱")
 	private Integer notSuitcaseNum;
 	/**
-	 * 场地存
+	 * 场地
 	 */
-	@ApiModelProperty(value = "场地存")
+	@ApiModelProperty(value = "场地存")
 	private Integer storageNum;
 	/**
 	 * 操作占用

+ 11 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/box/entity/TradingBox.java

@@ -441,6 +441,11 @@ public class TradingBox implements Serializable {
 	@ApiModelProperty(value = "放箱号")
 	private String containerNumber;
 	/**
+	 * 放箱号类型
+	 */
+	@ApiModelProperty(value = "放箱号类型")
+	private String busType;
+	/**
 	 * 取件费
 	 */
 	@ApiModelProperty(value = "取件费")
@@ -712,6 +717,12 @@ public class TradingBox implements Serializable {
 	private String workContent;
 
 	/**
+	 * 出场类型
+	 */
+	@ApiModelProperty(value = "出场类型")
+	private String appearanceType;
+
+	/**
 	 * 临时数据
 	 */
 	@TableField(exist = false)

+ 5 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/dto/FeeCenterReports.java

@@ -221,5 +221,10 @@ public class FeeCenterReports implements Serializable {
 	 */
 	private BigDecimal amountNetVND;
 
+	/**
+	 * 创建日期
+	 */
+	private Date createTime;
+
 
 }

+ 4 - 4
blade-service/blade-los/src/main/java/org/springblade/los/Util/ExchangeRateUtils.java

@@ -256,10 +256,10 @@ public class ExchangeRateUtils {
 				//修改明细汇率以及重新计算合计金额
 				for (FinStlBillsItems item : finStlBillsItemsList) {
 					if ("D".equals(item.getDc())) {
-						item.setExrate(curExrate.getExrateReceivable());
+						item.setExrate(curExrate.getExrateReceipts());
 						item.setCurrentStlExrate(curExrate.getExrateReceipts());
 					} else {
-						item.setExrate(curExrate.getExratePayable());
+						item.setExrate(curExrate.getExratePayment());
 						item.setCurrentStlExrate(curExrate.getExratePayment());
 					}
 					item.setAmountLoc(item.getAmount().multiply(item.getExrate()));
@@ -345,11 +345,11 @@ public class ExchangeRateUtils {
 				//修改明细汇率以及重新计算合计金额
 				for (FinInvoicesItems item : finInvoicesItemsList) {
 					if ("D".equals(item.getDc())) {
-						item.setExrate(curExrate.getExrateReceivable());
+						item.setExrate(curExrate.getExrateReceipts());
 						item.setCurrentExrate(curExrate.getExrateReceipts());
 						item.setCurrentAmountEx(curExrate.getExrateReceipts());
 					} else {
-						item.setExrate(curExrate.getExratePayable());
+						item.setExrate(curExrate.getExratePayment());
 						item.setCurrentExrate(curExrate.getExratePayment());
 						item.setCurrentAmountEx(curExrate.getExratePayment());
 					}

+ 2 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/impl/ReportsBoxServiceImpl.java

@@ -1178,6 +1178,8 @@ public class ReportsBoxServiceImpl implements IReportsBoxService {
 			feeCenterReports.setMoneyVND(item.getAmount().multiply(item.getExrate()));
 			feeCenterReports.setAmountTaxVND(item.getAmountTax().multiply(item.getExrate()));
 			feeCenterReports.setAmountNetVND(feeCenterReports.getMoneyVND().subtract(feeCenterReports.getAmountTaxVND()));
+			feeCenterReports.setCreateTime(item.getCreateTime());
+			feeCenterReports.setCntrNo(item.getCntrNo());
 			feeCenterReportsList.add(feeCenterReports);
 		}
 		bills.setFeeCenterReportsList(feeCenterReportsList);

+ 4 - 1
blade-service/blade-los/src/main/java/org/springblade/los/box/controller/ArchivesController.java

@@ -96,10 +96,13 @@ public class ArchivesController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入archives")
 	public R<IPage<Archives>> list(Archives archives, Query query) {
+		if (ObjectUtils.isNotNull(archives.getCode())){
+			archives.setCode(archives.getCode().replaceAll(" ",","));
+		}
 		LambdaQueryWrapper<Archives> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.eq(Archives::getTenantId, AuthUtil.getTenantId())
 			.eq(Archives::getIsDeleted, 0)
-			.like(ObjectUtils.isNotNull(archives.getCode()), Archives::getCode, archives.getCode())//箱号
+			.apply(ObjectUtils.isNotNull(archives.getCode()), "find_in_set(code,'" + archives.getCode() + "')")
 			.like(ObjectUtils.isNotNull(archives.getContractNo()), Archives::getContractNo, archives.getContractNo())//合同号
 			.eq(ObjectUtils.isNotNull(archives.getAccurate()), Archives::getCode, archives.getAccurate())
 			.like(ObjectUtils.isNotNull(archives.getName()), Archives::getName, archives.getName())//箱型

+ 1 - 0
blade-service/blade-los/src/main/java/org/springblade/los/box/controller/PutBoxController.java

@@ -211,6 +211,7 @@ public class PutBoxController extends BladeController {
 			.apply("remaining_num > 0")
 			.like(ObjectUtils.isNotNull(putBox.getPodId()), PutBox::getPodId, putBox.getPodId())
 			.like(ObjectUtils.isNotNull(putBox.getPolId()), PutBox::getPolId, putBox.getPolId())
+			.like(ObjectUtils.isNotNull(putBox.getPolStationId()), PutBox::getPolStationId, putBox.getPolStationId())
 			.orderByAsc(PutBox::getPriorityLevel);
 		if ("固定".equals(putBox.getCabinType())) {
 			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(putBox.getCabinType()), PutBox::getCabinType, putBox.getCabinType());

+ 2 - 0
blade-service/blade-los/src/main/java/org/springblade/los/box/controller/TradingBoxController.java

@@ -102,6 +102,7 @@ public class TradingBoxController extends BladeController {
 			.eq(ObjectUtils.isNotNull(tradingBox.getStatus()), TradingBox::getStatus, tradingBox.getStatus())
 			.like(ObjectUtils.isNotNull(tradingBox.getCode()), TradingBox::getCode, tradingBox.getCode())
 			.like(ObjectUtils.isNotNull(tradingBox.getContainerNumber()), TradingBox::getContainerNumber, tradingBox.getContainerNumber())
+			.eq(ObjectUtils.isNotNull(tradingBox.getBusType()), TradingBox::getBusType, tradingBox.getBusType())
 			.eq(ObjectUtils.isNotNull(tradingBox.getType()), TradingBox::getType, tradingBox.getType())
 			.like(ObjectUtils.isNotNull(tradingBox.getPodId()), TradingBox::getPodId, tradingBox.getPodId())
 //			.like(ObjectUtils.isNotNull(tradingBox.getPodCname()), TradingBox::getPodCname, tradingBox.getPodCname())
@@ -118,6 +119,7 @@ public class TradingBoxController extends BladeController {
 			.eq(ObjectUtils.isNotNull(tradingBox.getBoxClass()), TradingBox::getBoxClass, tradingBox.getBoxClass())
 			.eq(ObjectUtils.isNotNull(tradingBox.getBuxStaus()), TradingBox::getBuxStaus, tradingBox.getBuxStaus())
 			.eq(ObjectUtils.isNotNull(tradingBox.getWhetherEnable()), TradingBox::getWhetherEnable, tradingBox.getWhetherEnable())
+			.eq(ObjectUtils.isNotNull(tradingBox.getAppearanceType()), TradingBox::getAppearanceType, tradingBox.getAppearanceType())
 			.eq(ObjectUtils.isNotNull(tradingBox.getDc()), TradingBox::getDc, tradingBox.getDc())
 		;
 		if (ObjectUtils.isNotNull(tradingBox.getEffectiveDate()) && ObjectUtils.isNotNull(tradingBox.getExpiryDate())) {

+ 158 - 108
blade-service/blade-los/src/main/java/org/springblade/los/box/dynamics/service/impl/BoxDynamicsRecordServiceImpl.java

@@ -285,7 +285,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 				recordItems.setObjective("T");
 			} else if ("内点摆箱".equals(item.getObjective()) || "BX".equals(item.getObjective())) {
 				recordItems.setObjective("BX");
-			} else if ("外点背箱".equals(item.getObjective()) || "WD".equals(item.getObjective())) {
+			} else if ("外点备箱".equals(item.getObjective()) || "外点背箱".equals(item.getObjective()) || "WD".equals(item.getObjective())) {
 				recordItems.setObjective("WD");
 			} else if ("空箱集港".equals(item.getObjective()) || "KC".equals(item.getObjective())) {
 				recordItems.setObjective("KC");
@@ -323,7 +323,11 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 			}
 			recordItems.setHblno(item.getMblno());
 			recordItems.setApproachExitDate(item.getBoxStatusDate());
-			recordItems.setBoxStatus(item.getStatus());
+			if ("坏".equals(item.getStatus()) || "坏箱".equals(item.getStatus())) {
+				recordItems.setBoxStatus("坏箱");
+			} else {
+				recordItems.setBoxStatus("好箱");
+			}
 			recordItems.setTenantId(AuthUtil.getTenantId());
 			itemsList.add(recordItems);
 		}
@@ -439,6 +443,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 		List<Archives> archivesArrayList = new ArrayList<>();
 		//OW(拿)、代理箱-箱档案数据删除
 		List<Long> archivesDateleList = new ArrayList<>();
+
 		for (BoxDynamicsRecordItems recordItems : itemsListTZX) {
 			//箱档案信息处理
 			Archives archives = archivesList.stream().filter(e -> e.getCode().equals(recordItems.getBoxCode())).findFirst().orElse(null);
@@ -485,81 +490,12 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 						putBoxItem.setUpdateUserName(AuthUtil.getUserName());
 						putBoxItem.setUpdateTime(new Date());
 						putBoxItemsOldList.add(putBoxItem);
-					}else{
-						failureHandling(type, boxDynamicsRecord, "未查到放箱号:" + recordItems.getContainerNumber() + "下箱号:"+recordItems.getBoxCode()+"明细");
-						return false;
-					}
-				}else{
-					failureHandling(type, boxDynamicsRecord, "未查到放箱号:" + recordItems.getContainerNumber() + "下箱号:"+recordItems.getBoxCode()+"明细");
-					return false;
-				}
-				if (!tradingBoxList.isEmpty()) {
-					TradingBox tradingBox = tradingBoxList.stream().filter(e -> e.getId().equals(putBox1.getSrcId()))
-						.findFirst().orElse(null);
-					if (tradingBox != null) {
-						TradingBoxItem tradingBoxItem;
-						if (!tradingBoxItemList.isEmpty()) {
-							tradingBoxItem = tradingBoxItemList.stream().filter(e -> e.getCode().equals(recordItems.getBoxCode()))
-								.findFirst().orElse(null);
-							if (tradingBoxItem != null) {
-								tradingBoxItem.setUpdateUser(AuthUtil.getUserId());
-								tradingBoxItem.setUpdateUserName(AuthUtil.getUserName());
-								tradingBoxItem.setUpdateTime(new Date());
-							}else{
-								tradingBoxItem = new TradingBoxItem();
-								tradingBoxItem.setBoxBelongsTo("SOC");
-								tradingBoxItem.setBoxCondition("新");
-								tradingBoxItem.setContainerNumber(recordItems.getContainerNumber());
-								tradingBoxItem.setCode(recordItems.getBoxCode());
-								tradingBoxItem.setBoxType(recordItems.getBoxType());
-								tradingBoxItem.setTenantId(recordItems.getTenantId());
-								tradingBoxItem.setCreateUser(AuthUtil.getUserId());
-								tradingBoxItem.setCreateUserName(AuthUtil.getUserName());
-								tradingBoxItem.setCreateTime(new Date());
-							}
-						}else{
-							tradingBoxItem = new TradingBoxItem();
-							tradingBoxItem.setBoxBelongsTo("SOC");
-							tradingBoxItem.setBoxCondition("新");
-							tradingBoxItem.setContainerNumber(recordItems.getContainerNumber());
-							tradingBoxItem.setCode(recordItems.getBoxCode());
-							tradingBoxItem.setBoxType(recordItems.getBoxType());
-							tradingBoxItem.setTenantId(recordItems.getTenantId());
-							tradingBoxItem.setCreateUser(AuthUtil.getUserId());
-							tradingBoxItem.setCreateUserName(AuthUtil.getUserName());
-							tradingBoxItem.setCreateTime(new Date());
-						}
-						tradingBoxItem.setPid(tradingBox.getId());
-						tradingBoxItem.setMblno(recordItems.getHblno());
-						tradingBoxItem.setBoxDynamics(BoxDynamicsEnums.getName(recordItems.getObjective()));
-						tradingBoxItem.setBoxStatus(recordItems.getBoxStatus());
-						tradingBoxItem.setPortId(recordItems.getPortId());
-						tradingBoxItem.setPortCode(recordItems.getPortCode());
-						tradingBoxItem.setPortCname(recordItems.getPortCname());
-						tradingBoxItem.setPortEname(recordItems.getPortEname());
-						tradingBoxItem.setStationId(recordItems.getStationId());
-						tradingBoxItem.setStationCode(recordItems.getStationCode());
-						tradingBoxItem.setStationCname(recordItems.getStationCname());
-						tradingBoxItem.setStationEname(recordItems.getStationEname());
-						tradingBoxItem.setPolCyId(recordItems.getStationId());
-						tradingBoxItem.setPolCyCode(recordItems.getStationCode());
-						tradingBoxItem.setPolCyCname(recordItems.getStationCname());
-						tradingBoxItem.setPolCyEname(recordItems.getStationEname());
-						if (ObjectUtils.isNotNull(recordItems.getApproachExitDate())) {
-							tradingBoxItem.setPolStationEmptyContainerExitDate(recordItems.getApproachExitDate());
-						} else {
-							tradingBoxItem.setPolStationEmptyContainerExitDate(new Date());
-						}
-						tradingBoxItem.setStatus("已退租");
-						tradingBoxItem.setBoxEastId(tradingBox.getPurchaseCompanyId());
-						tradingBoxItem.setBoxEastName(tradingBox.getPurchaseCompanyName());
-						tradingBoxItemOldList.add(tradingBoxItem);
-					}else{
-						failureHandling(type, boxDynamicsRecord, "未查到放箱号:" + recordItems.getContainerNumber() + "对应退租单据");
+					} else {
+						failureHandling(type, boxDynamicsRecord, "未查到放箱号:" + recordItems.getContainerNumber() + "下箱号:" + recordItems.getBoxCode() + "明细");
 						return false;
 					}
-				}else{
-					failureHandling(type, boxDynamicsRecord, "未查到放箱号:" + recordItems.getContainerNumber() + "对应退租单据");
+				} else {
+					failureHandling(type, boxDynamicsRecord, "未查到放箱号:" + recordItems.getContainerNumber() + "下箱号:" + recordItems.getBoxCode() + "明细");
 					return false;
 				}
 				//记录箱轨迹信息
@@ -597,6 +533,75 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 				archivesTrajectory.setPodStationEname(recordItems.getStationEname());
 				archivesTrajectoryMapper.insert(archivesTrajectory);
 			}
+			if (!tradingBoxList.isEmpty()) {
+				TradingBox tradingBox = tradingBoxList.stream().filter(e -> e.getContainerNumber().equals(recordItems.getContainerNumber())
+					&& e.getContractNo().equals(recordItems.getHblno())).findFirst().orElse(null);
+				if (tradingBox != null) {
+					TradingBoxItem tradingBoxItem;
+					if (!tradingBoxItemList.isEmpty()) {
+						tradingBoxItem = tradingBoxItemList.stream().filter(e -> e.getCode().equals(recordItems.getBoxCode()))
+							.findFirst().orElse(null);
+						if (tradingBoxItem != null) {
+							tradingBoxItem.setUpdateUser(AuthUtil.getUserId());
+							tradingBoxItem.setUpdateUserName(AuthUtil.getUserName());
+							tradingBoxItem.setUpdateTime(new Date());
+						} else {
+							tradingBoxItem = new TradingBoxItem();
+							tradingBoxItem.setBoxBelongsTo("SOC");
+							tradingBoxItem.setBoxCondition("新");
+							tradingBoxItem.setContainerNumber(recordItems.getContainerNumber());
+							tradingBoxItem.setCode(recordItems.getBoxCode());
+							tradingBoxItem.setBoxType(recordItems.getBoxType());
+							tradingBoxItem.setTenantId(recordItems.getTenantId());
+							tradingBoxItem.setCreateUser(AuthUtil.getUserId());
+							tradingBoxItem.setCreateUserName(AuthUtil.getUserName());
+							tradingBoxItem.setCreateTime(new Date());
+						}
+					} else {
+						tradingBoxItem = new TradingBoxItem();
+						tradingBoxItem.setBoxBelongsTo("SOC");
+						tradingBoxItem.setBoxCondition("新");
+						tradingBoxItem.setContainerNumber(recordItems.getContainerNumber());
+						tradingBoxItem.setCode(recordItems.getBoxCode());
+						tradingBoxItem.setBoxType(recordItems.getBoxType());
+						tradingBoxItem.setTenantId(recordItems.getTenantId());
+						tradingBoxItem.setCreateUser(AuthUtil.getUserId());
+						tradingBoxItem.setCreateUserName(AuthUtil.getUserName());
+						tradingBoxItem.setCreateTime(new Date());
+					}
+					tradingBoxItem.setPid(tradingBox.getId());
+					tradingBoxItem.setMblno(recordItems.getHblno());
+					tradingBoxItem.setBoxDynamics(BoxDynamicsEnums.getName(recordItems.getObjective()));
+					tradingBoxItem.setBoxStatus(recordItems.getBoxStatus());
+					tradingBoxItem.setPortId(recordItems.getPortId());
+					tradingBoxItem.setPortCode(recordItems.getPortCode());
+					tradingBoxItem.setPortCname(recordItems.getPortCname());
+					tradingBoxItem.setPortEname(recordItems.getPortEname());
+					tradingBoxItem.setStationId(recordItems.getStationId());
+					tradingBoxItem.setStationCode(recordItems.getStationCode());
+					tradingBoxItem.setStationCname(recordItems.getStationCname());
+					tradingBoxItem.setStationEname(recordItems.getStationEname());
+					tradingBoxItem.setPolCyId(recordItems.getStationId());
+					tradingBoxItem.setPolCyCode(recordItems.getStationCode());
+					tradingBoxItem.setPolCyCname(recordItems.getStationCname());
+					tradingBoxItem.setPolCyEname(recordItems.getStationEname());
+					if (ObjectUtils.isNotNull(recordItems.getApproachExitDate())) {
+						tradingBoxItem.setRentingOutDate(recordItems.getApproachExitDate());
+					} else {
+						tradingBoxItem.setRentingOutDate(new Date());
+					}
+					tradingBoxItem.setStatus("已出场");
+					tradingBoxItem.setBoxEastId(tradingBox.getPurchaseCompanyId());
+					tradingBoxItem.setBoxEastName(tradingBox.getPurchaseCompanyName());
+					tradingBoxItemOldList.add(tradingBoxItem);
+				} else {
+					failureHandling(type, boxDynamicsRecord, "未查到放箱号:" + recordItems.getContainerNumber() + "对应退租单据");
+					return false;
+				}
+			} else {
+				failureHandling(type, boxDynamicsRecord, "未查到放箱号:" + recordItems.getContainerNumber() + "对应退租单据");
+				return false;
+			}
 		}
 		if (!putBoxItemsOldList.isEmpty()) {
 			putBoxItemsService.updateBatchById(putBoxItemsOldList);
@@ -605,6 +610,19 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 			archivesService.updateBatchById(archivesArrayList);
 		}
 		if (!tradingBoxItemOldList.isEmpty()) {
+			for (TradingBox item : tradingBoxList) {
+				List<TradingBoxItem> itemList = tradingBoxItemOldList.stream().filter(e -> e.getPid().equals(item.getId()))
+					.collect(Collectors.toList());
+				if (!itemList.isEmpty()) {
+					item.setBoxNumber(item.getBoxNumber() + itemList.size());
+					item.setUpdateTime(new Date());
+					item.setUpdateUser(AuthUtil.getUserId());
+					item.setUpdateUserName(AuthUtil.getUserName());
+					int version = StringUtil.isBlank(item.getVersion()) ? 1 : Integer.parseInt(item.getVersion());
+					item.setVersion(String.valueOf(version + 1));
+					tradingBoxMapper.updateById(item);
+				}
+			}
 			tradingBoxItemService.updateBatchById(tradingBoxItemOldList);
 		}
 		if (!archivesDateleList.isEmpty()) {
@@ -1255,8 +1273,8 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 						ArchivesTrajectory archivesTrajectory = new ArchivesTrajectory();
 						archivesTrajectory.setPortId(tradingBox.getPolId());
 						archivesTrajectory.setPortCode(tradingBox.getPolCode());
-						archivesTrajectory.setPortCname(tradingBox.getPodCname());
-						archivesTrajectory.setPortEname(tradingBox.getPodEname());
+						archivesTrajectory.setPortCname(tradingBox.getPolCname());
+						archivesTrajectory.setPortEname(tradingBox.getPolEname());
 						archivesTrajectory.setStationId(tradingBox.getPolStationId());
 						archivesTrajectory.setStationCode(tradingBox.getPolStationCode());
 						archivesTrajectory.setStationCname(tradingBox.getPolStationCname());
@@ -1270,7 +1288,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 						archivesTrajectory.setHblno(item.getHblno());
 						itemsListJC.stream().filter(e -> e.getBoxCode().equals(item.getBoxCode())).findFirst()
 							.ifPresent(dynamicsRecordItems -> archivesTrajectory.setBoxDynamics(BoxDynamicsEnums.getName(dynamicsRecordItems.getObjective())));
-						archivesTrajectory.setStatus(tradingBox.getBoxClass());
+						archivesTrajectory.setStatus(archivesTrajectory.getBoxDynamics());
 						archivesTrajectory.setCorpId(item.getBoxEastId());
 						archivesTrajectory.setCorpName(item.getBoxEastName());
 						archivesTrajectory.setBillType(tradingBox.getBoxType());
@@ -1331,9 +1349,9 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 		boxDynamicsRecordMapper.updateById(boxDynamicsRecord);
 		if ("JC".equals(boxDynamicsRecord.getApproachExit())) {
 			//新箱进场
-			List<BoxDynamicsRecordItems> itemsListJC = itemsList.stream().filter(e -> (!"C".equals(e.getObjective()) &&
-				!"ZJ".equals(e.getObjective()) && !"TJ".equals(e.getObjective())
-				&& !"K".equals(e.getObjective()) && !"X".equals(e.getObjective()))).collect(Collectors.toList());
+			List<BoxDynamicsRecordItems> itemsListJC = itemsList.stream().filter(e -> ("CT".equals(e.getObjective()) ||
+				"XX".equals(e.getObjective()) || "ZI".equals(e.getObjective())
+				|| "QX".equals(e.getObjective()) || "QZ".equals(e.getObjective()) || "T".equals(e.getObjective()))).collect(Collectors.toList());
 			if (!itemsListJC.isEmpty()) {
 				Boolean status = this.synchronization(itemsListJC, boxDynamicsRecord, type);
 				if (!status) {
@@ -1738,7 +1756,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 								archivesTrajectory.setHblno(item.getHblno());
 								itemsListFC.stream().filter(e -> e.getBoxCode().equals(item.getBoxCode())).findFirst()
 									.ifPresent(dynamicsRecordItems -> archivesTrajectory.setBoxDynamics(BoxDynamicsEnums.getName(dynamicsRecordItems.getObjective())));
-								archivesTrajectory.setStatus(item.getBoxDynamics());
+								archivesTrajectory.setStatus(archivesTrajectory.getBoxDynamics());
 								archivesTrajectory.setBillType(putBox.getBoxClass());
 								archivesTrajectory.setCode(item.getBoxCode());
 								archivesTrajectory.setNewDate(new Date());
@@ -2177,7 +2195,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 							archivesTrajectory.setHblno(item.getHblno());
 							itemsListZJ.stream().filter(e -> e.getBoxCode().equals(item.getBoxCode())).findFirst()
 								.ifPresent(dynamicsRecordItems -> archivesTrajectory.setBoxDynamics(BoxDynamicsEnums.getName(dynamicsRecordItems.getObjective())));
-							archivesTrajectory.setStatus(tradingBox.getBoxClass());
+							archivesTrajectory.setStatus(archivesTrajectory.getBoxDynamics());
 							archivesTrajectory.setCorpId(item.getBoxEastId());
 							archivesTrajectory.setCorpName(item.getBoxEastName());
 							archivesTrajectory.setBillType(tradingBox.getBoxType());
@@ -2611,7 +2629,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 								archivesTrajectory.setHblno(item.getHblno());
 								itemsListFC.stream().filter(e -> e.getBoxCode().equals(item.getBoxCode())).findFirst()
 									.ifPresent(dynamicsRecordItems -> archivesTrajectory.setBoxDynamics(BoxDynamicsEnums.getName(dynamicsRecordItems.getObjective())));
-								archivesTrajectory.setStatus(item.getBoxDynamics());
+								archivesTrajectory.setStatus(archivesTrajectory.getBoxDynamics());
 								archivesTrajectory.setBillType(putBox.getBoxClass());
 								archivesTrajectory.setCode(item.getBoxCode());
 								archivesTrajectory.setNewDate(new Date());
@@ -2666,6 +2684,15 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 					return false;
 				}
 			}*/
+			List<BoxDynamicsRecordItems> itemsListError = itemsList.stream().filter(e -> !"CT".equals(e.getObjective())
+				&& !"XX".equals(e.getObjective()) && !"ZI".equals(e.getObjective()) && !"QX".equals(e.getObjective())
+				&& !"QZ".equals(e.getObjective()) && !"T".equals(e.getObjective()) && !"C".equals(e.getObjective())
+				&& !"ZJ".equals(e.getObjective()) && !"K".equals(e.getObjective()) && !"X".equals(e.getObjective())
+				&& !"TJ".equals(e.getObjective())).collect(Collectors.toList());
+			if (!itemsListError.isEmpty()) {
+				failureHandling(type, boxDynamicsRecord, "进场目的错误!");
+				return false;
+			}
 		} else if ("CC".equals(boxDynamicsRecord.getApproachExit())) {
 			//调拨出场/空箱集港
 			List<BoxDynamicsRecordItems> itemsListZD = itemsList.stream().filter(e -> "ZD".equals(e.getObjective())
@@ -3040,7 +3067,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 							archivesTrajectory.setHblno(item.getHblno());
 							itemsListZD.stream().filter(e -> e.getBoxCode().equals(item.getBoxCode())).findFirst()
 								.ifPresent(dynamicsRecordItems -> archivesTrajectory.setBoxDynamics(BoxDynamicsEnums.getName(dynamicsRecordItems.getObjective())));
-							archivesTrajectory.setStatus(tradingBox.getBoxClass());
+							archivesTrajectory.setStatus(archivesTrajectory.getBoxDynamics());
 							archivesTrajectory.setCorpId(item.getBoxEastId());
 							archivesTrajectory.setCorpName(item.getBoxEastName());
 							archivesTrajectory.setBillType(tradingBox.getBoxType());
@@ -3087,9 +3114,9 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 				}
 			}
 			//正常出场
-			List<BoxDynamicsRecordItems> itemsListCC = itemsList.stream().filter(e -> !"ZD".equals(e.getObjective())
-				&& !"OF".equals(e.getObjective()) && !"KC".equals(e.getObjective()) && !"ZT".equals(e.getObjective())
-				&& !"CN".equals(e.getObjective())).collect(Collectors.toList());
+			List<BoxDynamicsRecordItems> itemsListCC = itemsList.stream().filter(e -> "BX".equals(e.getObjective())
+				|| "WD".equals(e.getObjective()) || "Q".equals(e.getObjective()) || "QZ".equals(e.getObjective())
+				|| "XO".equals(e.getObjective())).collect(Collectors.toList());
 			if (!itemsListCC.isEmpty()) {
 				List<String> boxCodeList = itemsListCC.stream().map(BoxDynamicsRecordItems::getBoxCode).filter(Objects::nonNull)
 					.distinct().collect(Collectors.toList());
@@ -3274,11 +3301,11 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 									return false;
 								}
 							} else {
-								failureHandling(type, boxDynamicsRecord, "未查到提单号:" + item.getHblno() + "对应海运出口单据");
+								failureHandling("3", boxDynamicsRecord, "未查到提单号:" + item.getHblno() + "对应海运出口单据");
 							}
 						} else {
 							bills = null;
-							failureHandling(type, boxDynamicsRecord, "未查到提单号:" + item.getHblno() + "对应海运出口单据");
+							failureHandling("3", boxDynamicsRecord, "未查到提单号:" + item.getHblno() + "对应海运出口单据");
 						}
 						//放箱号明细数据处理
 						PutBoxItems putBoxItem;
@@ -3353,19 +3380,23 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 								TradingBox tradingBox = tradingBoxList.stream().filter(e -> e.getId().equals(putBoxData.getSrcId()))
 									.findFirst().orElse(null);
 								if (tradingBox != null) {
-									if (ObjectUtils.isNotNull(tradingBox.getMblno())) {
-										if (!tradingBox.getMblno().contains(bills.getMblno())) {
-											tradingBox.setMblno(tradingBox.getMblno() + "," + bills.getMblno());
+									if (bills != null){
+										if (ObjectUtils.isNotNull(bills.getMblno())){
+											if (ObjectUtils.isNotNull(tradingBox.getMblno())) {
+												if (!tradingBox.getMblno().contains(bills.getMblno())) {
+													tradingBox.setMblno(tradingBox.getMblno() + "," + bills.getMblno());
+												}
+											} else {
+												tradingBox.setMblno(bills.getMblno());
+											}
 										}
-									} else {
-										tradingBox.setMblno(bills.getMblno());
-									}
-									if (ObjectUtils.isNotNull(tradingBox.getHblno())) {
-										if (!tradingBox.getHblno().contains(bills.getHblno())) {
-											tradingBox.setHblno(tradingBox.getMblno() + "," + bills.getHblno());
+										if (ObjectUtils.isNotNull(tradingBox.getHblno())) {
+											if (!tradingBox.getHblno().contains(bills.getHblno())) {
+												tradingBox.setHblno(tradingBox.getMblno() + "," + bills.getHblno());
+											}
+										} else {
+											tradingBox.setHblno(bills.getHblno());
 										}
-									} else {
-										tradingBox.setHblno(bills.getHblno());
 									}
 									if (!tradingBoxes.isEmpty()) {
 										if (!tradingBoxes.stream().map(TradingBox::getId).collect(Collectors.toList()).contains(tradingBox.getId())) {
@@ -3501,19 +3532,30 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 											&& !"1".equals(e.getAssigned())).findFirst().orElse(null);
 										if (recordItems != null) {
 											containers.setCntrNo(recordItems.getBoxCode());
+											containers.setContainerNumber(recordItems.getContainerNumber());
 											recordItems.setAssigned("1");
+											containers.setPolCyId(recordItems.getStationId());
+											containers.setPolCyCode(recordItems.getStationCode());
+											containers.setPolCyCname(recordItems.getStationCname());
+											containers.setPolCyEname(recordItems.getStationEname());
+											containers.setPolStationEmptyContainerExitDate(recordItems.getApproachExitDate());
+										}
+									} else {
+										BoxDynamicsRecordItems recordItems = hblnoList.stream().filter(e -> containers.getCntrNo().equals(e.getBoxCode())).findFirst().orElse(null);
+										if (recordItems != null) {
+											containers.setCntrNo(recordItems.getBoxCode());
+											containers.setContainerNumber(recordItems.getContainerNumber());
+											containers.setPolCyId(recordItems.getStationId());
+											containers.setPolCyCode(recordItems.getStationCode());
+											containers.setPolCyCname(recordItems.getStationCname());
+											containers.setPolCyEname(recordItems.getStationEname());
+											containers.setPolStationEmptyContainerExitDate(recordItems.getApproachExitDate());
 										}
 									}
-									containers.setPolCyId(item.getStationId());
-									containers.setPolCyCode(item.getStationCode());
-									containers.setPolCyCname(item.getStationCname());
-									containers.setPolCyEname(item.getStationEname());
-									containers.setPolStationEmptyContainerExitDate(item.getApproachExitDate());
 									containers.setPodStationId(putBoxData.getPodStationId());
 									containers.setPodStationCode(putBoxData.getPodStationCode());
 									containers.setPodStationCname(putBoxData.getPodStationCname());
 									containers.setPodStationEname(putBoxData.getPodStationEname());
-									containers.setContainerNumber(item.getContainerNumber());
 									containers.setBoxSrcType(putBoxData.getBoxClass());
 									containersListNew.add(containers);
 								}
@@ -3658,7 +3700,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 									archivesTrajectory.setBoxDynamics(BoxDynamicsEnums.getName(dynamicsRecordItems.getObjective()));
 								}
 							}
-							archivesTrajectory.setStatus(tradingBox.getBoxClass());
+							archivesTrajectory.setStatus(archivesTrajectory.getBoxDynamics());
 							archivesTrajectory.setCorpId(item.getBoxEastId());
 							archivesTrajectory.setCorpName(item.getBoxEastName());
 							archivesTrajectory.setBillType(tradingBox.getBoxType());
@@ -3729,6 +3771,14 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 					return false;
 				}
 			}
+			List<BoxDynamicsRecordItems> itemsListError = itemsList.stream().filter(e -> !"ZD".equals(e.getObjective())
+				&& !"KC".equals(e.getObjective()) && !"BX".equals(e.getObjective()) && !"WD".equals(e.getObjective())
+				&& !"QZ".equals(e.getObjective()) && !"XO".equals(e.getObjective()) && !"OF".equals(e.getObjective())
+				&& !"ZT".equals(e.getObjective()) && !"CN".equals(e.getObjective()) && !"Q".equals(e.getObjective())).collect(Collectors.toList());
+			if (!itemsListError.isEmpty()) {
+				failureHandling(type, boxDynamicsRecord, "出场目的错误!");
+				return false;
+			}
 		}
 		for (BoxDynamicsRecordItems item : itemsList) {
 			item.setWhetherSynchronous("1");

+ 20 - 9
blade-service/blade-los/src/main/java/org/springblade/los/box/mapper/PutBoxMapper.xml

@@ -66,6 +66,7 @@
         WHERE
         tenant_id = #{data.tenantId}
         AND is_deleted = '0'
+        AND remaining_num > 0
         <if test='data.containerNumber != null and data.containerNumber != ""'>
             and container_number like concat(concat('%', #{data.containerNumber}),'%')
         </if>
@@ -106,7 +107,8 @@
         lp.cn_name as portName,
         lpb.pol_station_cname as stationName,
         lpb.pol_station_id as stationId,
-        lpb.box_class as busType
+        lpb.box_class as busType,
+        sum(lpb.remaining_num) as remainingTotal
         FROM
         logistics_put_box lpb
         LEFT JOIN los_b_ports lp ON FIND_IN_SET( lp.id, lpb.pol_id )
@@ -115,6 +117,7 @@
         AND lpb.is_deleted = '0'
         AND lp.tenant_id = #{data.tenantId}
         AND lp.is_deleted = '0'
+        AND lpb.remaining_num > 0
         <if test='data.containerNumber != null and data.containerNumber != ""'>
             and lpb.container_number like concat(concat('%', #{data.containerNumber}),'%')
         </if>
@@ -163,7 +166,8 @@
         tenant_id = #{tenantId}
         AND is_deleted = '0'
         AND pid = lpb.id
-        AND box_status = '好'
+        AND box_status = '好箱'
+        AND status = '待使用'
         AND box_type = '20GP'
         ) AS gP20Good,
         (
@@ -175,7 +179,8 @@
         tenant_id = #{tenantId}
         AND is_deleted = '0'
         AND pid = lpb.id
-        AND box_status = '好'
+        AND box_status = '好箱'
+        AND status = '待使用'
         AND box_type = '40GP'
         ) AS gP40Good,
         (
@@ -187,7 +192,8 @@
         tenant_id = #{tenantId}
         AND is_deleted = '0'
         AND pid = lpb.id
-        AND box_status = '好'
+        AND box_status = '好箱'
+        AND status = '待使用'
         AND box_type = '40HC'
         ) AS hG40Good,
         (
@@ -199,7 +205,8 @@
         tenant_id = #{tenantId}
         AND is_deleted = '0'
         AND pid = lpb.id
-        AND box_status = '好'
+        AND box_status = '好箱'
+        AND status = '待使用'
         AND NOT FIND_IN_SET( box_type, '40HC,40GP,20GP' )
         ) AS otherGood,
         (
@@ -211,7 +218,8 @@
         tenant_id = #{tenantId}
         AND is_deleted = '0'
         AND pid = lpb.id
-        AND box_status = '坏'
+        AND box_status = '坏箱'
+        AND status = '待使用'
         AND box_type = '20GP'
         ) AS gP20Bad,
         (
@@ -223,7 +231,8 @@
         tenant_id = #{tenantId}
         AND is_deleted = '0'
         AND pid = lpb.id
-        AND box_status = '坏'
+        AND box_status = '坏箱'
+        AND status = '待使用'
         AND box_type = '40GP'
         ) AS gP40Bad,
         (
@@ -235,7 +244,8 @@
         tenant_id = #{tenantId}
         AND is_deleted = '0'
         AND pid = lpb.id
-        AND box_status = '坏'
+        AND box_status = '坏箱'
+        AND status = '待使用'
         AND box_type = '40HC'
         ) AS hG40Bad,
         (
@@ -247,7 +257,8 @@
         tenant_id = #{tenantId}
         AND is_deleted = '0'
         AND pid = lpb.id
-        AND box_status = '坏'
+        AND box_status = '坏箱'
+        AND status = '待使用'
         AND NOT FIND_IN_SET( box_type, '40HC,40GP,20GP' )
         ) AS otherBad
         FROM

+ 139 - 91
blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/PutBoxServiceImpl.java

@@ -286,9 +286,6 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 					}
 				}
 			}
-			String boxEastName = putBox.getPutBoxItemsList().stream().map(PutBoxItems::getBoxEastName).distinct().collect(Collectors.joining(","));
-			putBox.setBoxEastId(boxEastId.substring(0, boxEastId.length() - 1));
-			putBox.setBoxEastName(boxEastName);
 			if (ObjectUtils.isNull(putBox.getBoxType())
 				|| !putBox.getPutBoxItemsList().get(0).getBoxType().equals(putBox.getBoxType())) {
 				putBox.setBoxType(putBox.getPutBoxItemsList().get(0).getBoxType());
@@ -500,11 +497,67 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 					archives1.setStationEname(detail.getPolStationEname());
 					archives1.setStationCode(detail.getPolStationCode());
 					archives1.setNewDate(new Date());
+					archives1.setContainerNumber(detail.getContainerNumber());
+					archives1.setContainerNumberType(detail.getBoxClass());
 					archives.add(archives1);
 				} else {
 					throw new RuntimeException("箱号:" + item.getBoxCode() + "不在箱档案中");
 				}
 			}
+			//记录箱轨迹信息
+			ArchivesTrajectory archivesTrajectory = new ArchivesTrajectory();
+			archivesTrajectory.setPortId(detail.getPolId());
+			archivesTrajectory.setPortCname(detail.getPolCname());
+			archivesTrajectory.setPortEname(detail.getPolEname());
+			archivesTrajectory.setPortCode(detail.getPolCode());
+			archivesTrajectory.setStationId(detail.getPolStationId());
+			archivesTrajectory.setStationCname(detail.getPolStationCname());
+			archivesTrajectory.setStationEname(detail.getPolStationEname());
+			archivesTrajectory.setStationCode(detail.getPolStationCode());
+			archivesTrajectory.setNewDate(new Date());
+			archivesTrajectory.setContainerNumber(item.getContainerNumber());
+			archivesTrajectory.setBoxType(item.getBoxType());
+			archivesTrajectory.setBoxCategory(item.getBoxClass());
+			archivesTrajectory.setBoxEastId(item.getBoxEastId());
+			archivesTrajectory.setBoxEastName(item.getBoxEastName());
+			archivesTrajectory.setMblno(item.getMblno());
+			archivesTrajectory.setHblno(item.getHblno());
+			archivesTrajectory.setBoxDynamics("更改放箱号");
+			archivesTrajectory.setStatus("更改放箱号");
+			archivesTrajectory.setCorpId(item.getBoxEastId());
+			archivesTrajectory.setCorpName(item.getBoxEastName());
+			archivesTrajectory.setBillType(detail.getBoxClass());
+			archivesTrajectory.setCode(item.getBoxCode());
+			archivesTrajectory.setNewDate(new Date());
+			archivesTrajectory.setCreateTime(new Date());
+			archivesTrajectory.setCreateUser(AuthUtil.getUserId());
+			archivesTrajectory.setCreateUserName(AuthUtil.getUserName());
+			archivesTrajectory.setTenantId(AuthUtil.getTenantId());
+			archivesTrajectory.setSrcId(detail.getId());
+			archivesTrajectory.setEtd(item.getEtd());
+			archivesTrajectory.setPolCyId(item.getPolCyId());
+			archivesTrajectory.setPolCyCode(item.getPolCyCode());
+			archivesTrajectory.setPolCyCname(item.getPolCyCname());
+			archivesTrajectory.setPolCyEname(item.getPolCyEname());
+			archivesTrajectory.setPolFreeBoxUseDays(item.getPolFreeBoxUseDays());
+			archivesTrajectory.setPolPreAppearanceDate(item.getPolPreAppearanceDate());
+			archivesTrajectory.setPolStationEmptyContainerExitDate(item.getPolStationEmptyContainerExitDate());
+			archivesTrajectory.setPolReturnDate(item.getPolReturnDate());
+			archivesTrajectory.setPolOverdueBoxUseDays(item.getPolOverdueBoxUseDays());
+			archivesTrajectory.setEta(item.getEta());
+			archivesTrajectory.setPodEmptyContainerReturnDate(item.getPodEmptyContainerReturnDate());
+			archivesTrajectory.setPodStationId(item.getPodStationId());
+			archivesTrajectory.setPodStationCode(item.getPodStationCode());
+			archivesTrajectory.setPodStationCname(item.getPodStationCname());
+			archivesTrajectory.setPodStationEname(item.getPodStationEname());
+			archivesTrajectory.setPodFreeBoxUseDays(item.getPodFreeBoxUseDays());
+			archivesTrajectory.setPodBoxUseDays(item.getPodBoxUseDays());
+			archivesTrajectory.setShipNameId(item.getShipNameId());
+			archivesTrajectory.setShipCname(item.getShipCname());
+			archivesTrajectory.setShipEname(item.getShipEname());
+			archivesTrajectory.setShipCode(item.getShipCode());
+			archivesTrajectory.setVoyage(item.getVoyage());
+			archivesTrajectoryMapper.insert(archivesTrajectory);
 		}
 		putBoxItemsService.updateBatchById(putBoxItemsList);
 		if (!archives.isEmpty()) {
@@ -520,7 +573,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 		if (!boxPoolPortDTOList.isEmpty()) {
 			for (BoxPoolPortDTO item : boxPoolPortDTOList) {
 				List<Map<String, Long>> mapList = baseMapper.selectBoxNumber(item.getPortId(), boxPoolDTO.getWhetherLoseEfficacy(),
-					AuthUtil.getTenantId(), item.getBusType(),item.getStationId());
+					AuthUtil.getTenantId(), item.getBusType(), item.getStationId());
 				long gP20Good = 0;
 				long gP40Good = 0;
 				long hG40Good = 0;
@@ -550,7 +603,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 				item.setHG40Bad(hG40Bad);
 				item.setOtherBad(otherBad);
 				item.setTotal(gP20Good + gP40Good + hG40Good + otherGood + gP20Bad + gP40Bad + hG40Bad + otherBad);
-				item.setRemainingTotal(item.getTotal());
+//				item.setRemainingTotal(item.getTotal());
 			}
 		}
 		return page.setRecords(boxPoolPortDTOList);
@@ -565,25 +618,20 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 			List<PutBoxItems> boxItemsList = putBoxItemsService.list(new LambdaQueryWrapper<PutBoxItems>()
 				.eq(PutBoxItems::getTenantId, AuthUtil.getTenantId())
 				.eq(PutBoxItems::getIsDeleted, 0)
+				.eq(PutBoxItems::getStatus, "待使用")
 				.in(PutBoxItems::getPid, ids));
 			for (BoxPoolContainerNumberDTO item : putBoxList) {
-				if ("OW(拿),OW(放)".contains(item.getBusType())) {
-					item.setGood(item.getTotalNum());
-					item.setTotal(item.getTotalNum());
-					item.setOccupyNum(item.getOccupyNum());
-					item.setRemainingTotal(item.getRemainingNum());
-				} else {
-					if (!boxItemsList.isEmpty()) {
-						List<PutBoxItems> itemsList = boxItemsList.stream().filter(e -> e.getPid().equals(item.getId())).collect(Collectors.toList());
-						if (!itemsList.isEmpty()) {
-							item.setGood(itemsList.stream().filter(e -> "好".equals(e.getBoxStatus()) && item.getBoxType().equals(e.getBoxType())).count());
-							item.setBad(itemsList.stream().filter(e -> "坏".equals(e.getBoxStatus()) && item.getBoxType().equals(e.getBoxType())).count());
-							item.setTotal(item.getGood() + item.getBad());
-							item.setOccupyNum(item.getOccupyNum());
-							item.setRemainingTotal(item.getRemainingNum());
-						}
+				item.setTotal(0L);
+				if (!boxItemsList.isEmpty()) {
+					List<PutBoxItems> itemsList = boxItemsList.stream().filter(e -> e.getPid().equals(item.getId())).collect(Collectors.toList());
+					if (!itemsList.isEmpty()) {
+						item.setGood(itemsList.stream().filter(e -> "好箱".equals(e.getBoxStatus()) && item.getBoxType().equals(e.getBoxType())).count());
+						item.setBad(itemsList.stream().filter(e -> "坏箱".equals(e.getBoxStatus()) && item.getBoxType().equals(e.getBoxType())).count());
+						item.setTotal(item.getGood() + item.getBad());
 					}
 				}
+				item.setOccupyNum(item.getOccupyNum());
+				item.setRemainingTotal(item.getRemainingNum());
 			}
 		}
 		return page.setRecords(putBoxList);
@@ -896,7 +944,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 						putBoxItem.setBoxClass(putBoxData.getBusType());
 						putBoxItem.setBoxBelongsTo("SOC");
 						putBoxItem.setBoxCondition("新");
-						putBoxItem.setBoxStatus("好");
+						putBoxItem.setBoxStatus("好");
 						putBoxItem.setStatus("使用中");
 						putBoxItem.setPid(putBoxData.getId());
 						putBoxItem.setContainerNumber(item.getContainerNumber());
@@ -925,7 +973,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 					putBoxItem.setBoxClass(putBoxData.getBusType());
 					putBoxItem.setBoxBelongsTo("SOC");
 					putBoxItem.setBoxCondition("新");
-					putBoxItem.setBoxStatus("好");
+					putBoxItem.setBoxStatus("好");
 					putBoxItem.setStatus("使用中");
 					putBoxItem.setPid(putBoxData.getId());
 					putBoxItem.setContainerNumber(item.getContainerNumber());
@@ -1012,7 +1060,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 									}
 									putBoxItem.setBoxClass(putBox.getBusType());
 									tradingBoxItem.setBoxCondition("新");
-									tradingBoxItem.setBoxStatus("好");
+									tradingBoxItem.setBoxStatus("好");
 									tradingBoxItem.setPid(tradingBox.getId());
 									tradingBoxItem.setAgentName(bills.getForeignAgencyCnName());
 									tradingBoxItem.setContainerNumber(item.getContainerNumber());
@@ -1059,7 +1107,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 								}
 								tradingBoxItem.setBoxBelongsTo("SOC");
 								tradingBoxItem.setBoxCondition("新");
-								tradingBoxItem.setBoxStatus("好");
+								tradingBoxItem.setBoxStatus("好");
 								tradingBoxItem.setPid(tradingBox.getId());
 								tradingBoxItem.setContainerNumber(item.getContainerNumber());
 								tradingBoxItem.setCode(item.getBoxCode());
@@ -1264,7 +1312,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 					archivesTrajectory.setBoxEastName(item.getBoxEastName());
 					archivesTrajectory.setMblno(item.getMblno());
 					archivesTrajectory.setBoxDynamics("空箱出场");
-					archivesTrajectory.setStatus(tradingBox.getBusType());
+					archivesTrajectory.setStatus(archivesTrajectory.getBoxDynamics());
 					archivesTrajectory.setCorpId(item.getBoxEastId());
 					archivesTrajectory.setCorpName(item.getBoxEastName());
 					archivesTrajectory.setBillType(tradingBox.getBoxType());
@@ -1597,7 +1645,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 						putBoxItem.setBoxClass(putBox.getBusType());
 						putBoxItem.setBoxBelongsTo("SOC");
 						putBoxItem.setBoxCondition("新");
-						putBoxItem.setBoxStatus("好");
+						putBoxItem.setBoxStatus("好");
 						putBoxItem.setPid(putBox.getId());
 						putBoxItem.setContainerNumber(archives.getContainerNumber());
 						putBoxItem.setBoxCode(item.getBoxCode());
@@ -1614,7 +1662,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 					putBoxItem.setBoxClass(putBox.getBusType());
 					putBoxItem.setBoxBelongsTo("SOC");
 					putBoxItem.setBoxCondition("新");
-					putBoxItem.setBoxStatus("好");
+					putBoxItem.setBoxStatus("好");
 					putBoxItem.setPid(putBox.getId());
 					putBoxItem.setContainerNumber(archives.getContainerNumber());
 					putBoxItem.setBoxCode(item.getBoxCode());
@@ -1651,7 +1699,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 					archivesTrajectory.setBoxEastName(item.getBoxEastName());
 					archivesTrajectory.setMblno(item.getMblno());
 					archivesTrajectory.setBoxDynamics("空箱进场");
-					archivesTrajectory.setStatus(item.getBoxDynamics());
+					archivesTrajectory.setStatus(archivesTrajectory.getBoxDynamics());
 					archivesTrajectory.setBillType(putBox.getBusType());
 					archivesTrajectory.setCode(item.getBoxCode());
 					archivesTrajectory.setNewDate(new Date());
@@ -2473,7 +2521,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 						putBoxItem.setBoxClass(putBox.getBusType());
 						putBoxItem.setBoxBelongsTo("SOC");
 						putBoxItem.setBoxCondition("新");
-						putBoxItem.setBoxStatus("好");
+						putBoxItem.setBoxStatus("好");
 						putBoxItem.setPid(putBox.getId());
 						putBoxItem.setContainerNumber(archives.getContainerNumber());
 						putBoxItem.setBoxCode(item.getBoxCode());
@@ -2490,7 +2538,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 					putBoxItem.setBoxClass(putBox.getBusType());
 					putBoxItem.setBoxBelongsTo("SOC");
 					putBoxItem.setBoxCondition("新");
-					putBoxItem.setBoxStatus("好");
+					putBoxItem.setBoxStatus("好");
 					putBoxItem.setPid(putBox.getId());
 					putBoxItem.setContainerNumber(archives.getContainerNumber());
 					putBoxItem.setBoxCode(item.getBoxCode());
@@ -2527,7 +2575,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 					archivesTrajectory.setBoxEastName(item.getBoxEastName());
 					archivesTrajectory.setMblno(item.getMblno());
 					archivesTrajectory.setBoxDynamics("空箱进场");
-					archivesTrajectory.setStatus(item.getBoxDynamics());
+					archivesTrajectory.setStatus(archivesTrajectory.getBoxDynamics());
 					archivesTrajectory.setBillType(putBox.getBusType());
 					archivesTrajectory.setCode(item.getBoxCode());
 					archivesTrajectory.setNewDate(new Date());
@@ -2795,7 +2843,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 						putBoxItem.setBoxClass(putBox.getBusType());
 						putBoxItem.setBoxBelongsTo("SOC");
 						putBoxItem.setBoxCondition("新");
-						putBoxItem.setBoxStatus("好");
+						putBoxItem.setBoxStatus("好");
 						putBoxItem.setStatus("待使用");
 						putBoxItem.setPid(putBox.getId());
 						putBoxItem.setContainerNumber(item.getContainerNumber());
@@ -2816,7 +2864,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 					putBoxItem.setBoxClass(putBox.getBusType());
 					putBoxItem.setBoxBelongsTo("SOC");
 					putBoxItem.setBoxCondition("新");
-					putBoxItem.setBoxStatus("好");
+					putBoxItem.setBoxStatus("好");
 					putBoxItem.setStatus("待使用");
 					putBoxItem.setBoxClass(putBox.getBusType());
 					putBoxItem.setPid(putBox.getId());
@@ -2890,7 +2938,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 									}
 									putBoxItem.setBoxClass(putBox.getBusType());
 									tradingBoxItem.setBoxCondition("新");
-									tradingBoxItem.setBoxStatus("好");
+									tradingBoxItem.setBoxStatus("好");
 									tradingBoxItem.setPid(tradingBox.getId());
 									tradingBoxItem.setContainerNumber(item.getContainerNumber());
 									tradingBoxItem.setCode(item.getBoxCode());
@@ -2931,7 +2979,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 								}
 								tradingBoxItem.setBoxBelongsTo("SOC");
 								tradingBoxItem.setBoxCondition("新");
-								tradingBoxItem.setBoxStatus("好");
+								tradingBoxItem.setBoxStatus("好");
 								tradingBoxItem.setPid(tradingBox.getId());
 								tradingBoxItem.setContainerNumber(item.getContainerNumber());
 								tradingBoxItem.setCode(item.getBoxCode());
@@ -3051,7 +3099,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 					archivesTrajectory.setBoxEastName(item.getBoxEastName());
 					archivesTrajectory.setMblno(item.getMblno());
 					archivesTrajectory.setBoxDynamics("空箱出场");
-					archivesTrajectory.setStatus(tradingBox.getBusType());
+					archivesTrajectory.setStatus(archivesTrajectory.getBoxDynamics());
 					archivesTrajectory.setCorpId(item.getBoxEastId());
 					archivesTrajectory.setCorpName(item.getBoxEastName());
 					archivesTrajectory.setBillType(tradingBox.getBoxType());
@@ -3562,62 +3610,62 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 					this.countOverdueFeeV1(billsHYJK, tradingBoxList, tradingBoxItemOldList, putBoxItemsOldList, putBoxList);
 				}
 			} else {*/
-				for (Containers item : containersHYJKList) {
-					if (ObjectUtils.isNull(item.getHblno())) {
-						throw new RuntimeException("分单号不能为空");
-					}
-					item.setPodStationId(podStationR.getPodStationId());
-					item.setPodStationCname(podStationR.getPodStationCname());
-					item.setPodStationEname(podStationR.getPodStationEname());
-					item.setPodStationCode(podStationR.getPodStationCode());
-					item.setPodCyAddress(podStationR.getPodCyAddress());
-					item.setPodCyContact(podStationR.getPodCyContact());
-					item.setPodCyEmail(podStationR.getPodCyEmail());
-					item.setPodCyTel(podStationR.getPodCyTel());
-					item.setPodEmptyContainerReturnDate(podStationR.getReturnEmptyTime());
-					item.setMarks(podStationR.getMarks());
-					item.setUpdateTime(new Date());
-					item.setUpdateUser(AuthUtil.getUserId());
-					item.setUpdateUserName(AuthUtil.getUserName());
-				}
-				containersService.updateBatchById(containersHYJKList);
-				List<Bills> billsHYJKList = billsMapper.selectList(new LambdaQueryWrapper<Bills>()
-					.eq(Bills::getTenantId, AuthUtil.getTenantId())
-					.eq(Bills::getIsDeleted, 0)
-					.in(Bills::getId, billsIds));
-				if (billsHYJKList.isEmpty()) {
-					throw new RuntimeException("未查到海运出口单据");
+			for (Containers item : containersHYJKList) {
+				if (ObjectUtils.isNull(item.getHblno())) {
+					throw new RuntimeException("分单号不能为空");
 				}
-				List<Long> idHYJKList = billsHYJKList.stream().map(Bills::getMasterId).distinct().collect(Collectors.toList());
-				List<Bills> billsHYJKListFD = billsMapper.selectList(new LambdaQueryWrapper<Bills>()
-					.eq(Bills::getTenantId, AuthUtil.getTenantId())
-					.eq(Bills::getIsDeleted, 0)
-					.in(Bills::getId, idHYJKList));
-				if (!billsHYJKListFD.isEmpty()) {
-					List<Containers> containersList = containersService.list(new LambdaQueryWrapper<Containers>()
-						.eq(Containers::getTenantId, AuthUtil.getTenantId())
-						.eq(Containers::getIsDeleted, 0)
-						.in(Containers::getCntrNo, cntrNo)
-						.in(Containers::getPid, billsHYJKListFD.stream().map(Bills::getId).collect(Collectors.toList())));
-					if (!containersList.isEmpty()) {
-						for (Containers item : containersList) {
-							item.setPodStationId(podStationR.getPodStationId());
-							item.setPodStationCname(podStationR.getPodStationCname());
-							item.setPodStationEname(podStationR.getPodStationEname());
-							item.setPodStationCode(podStationR.getPodStationCode());
-							item.setMarks(podStationR.getPodStationCode());
-							item.setPodCyAddress(podStationR.getPodCyAddress());
-							item.setPodCyContact(podStationR.getPodCyContact());
-							item.setPodCyEmail(podStationR.getPodCyEmail());
-							item.setPodCyTel(podStationR.getPodCyTel());
-							item.setPodEmptyContainerReturnDate(podStationR.getReturnEmptyTime());
-							item.setUpdateTime(new Date());
-							item.setUpdateUser(AuthUtil.getUserId());
-							item.setUpdateUserName(AuthUtil.getUserName());
-						}
-						containersService.updateBatchById(containersList);
+				item.setPodStationId(podStationR.getPodStationId());
+				item.setPodStationCname(podStationR.getPodStationCname());
+				item.setPodStationEname(podStationR.getPodStationEname());
+				item.setPodStationCode(podStationR.getPodStationCode());
+				item.setPodCyAddress(podStationR.getPodCyAddress());
+				item.setPodCyContact(podStationR.getPodCyContact());
+				item.setPodCyEmail(podStationR.getPodCyEmail());
+				item.setPodCyTel(podStationR.getPodCyTel());
+				item.setPodEmptyContainerReturnDate(podStationR.getReturnEmptyTime());
+				item.setMarks(podStationR.getMarks());
+				item.setUpdateTime(new Date());
+				item.setUpdateUser(AuthUtil.getUserId());
+				item.setUpdateUserName(AuthUtil.getUserName());
+			}
+			containersService.updateBatchById(containersHYJKList);
+			List<Bills> billsHYJKList = billsMapper.selectList(new LambdaQueryWrapper<Bills>()
+				.eq(Bills::getTenantId, AuthUtil.getTenantId())
+				.eq(Bills::getIsDeleted, 0)
+				.in(Bills::getId, billsIds));
+			if (billsHYJKList.isEmpty()) {
+				throw new RuntimeException("未查到海运出口单据");
+			}
+			List<Long> idHYJKList = billsHYJKList.stream().map(Bills::getMasterId).distinct().collect(Collectors.toList());
+			List<Bills> billsHYJKListFD = billsMapper.selectList(new LambdaQueryWrapper<Bills>()
+				.eq(Bills::getTenantId, AuthUtil.getTenantId())
+				.eq(Bills::getIsDeleted, 0)
+				.in(Bills::getId, idHYJKList));
+			if (!billsHYJKListFD.isEmpty()) {
+				List<Containers> containersList = containersService.list(new LambdaQueryWrapper<Containers>()
+					.eq(Containers::getTenantId, AuthUtil.getTenantId())
+					.eq(Containers::getIsDeleted, 0)
+					.in(Containers::getCntrNo, cntrNo)
+					.in(Containers::getPid, billsHYJKListFD.stream().map(Bills::getId).collect(Collectors.toList())));
+				if (!containersList.isEmpty()) {
+					for (Containers item : containersList) {
+						item.setPodStationId(podStationR.getPodStationId());
+						item.setPodStationCname(podStationR.getPodStationCname());
+						item.setPodStationEname(podStationR.getPodStationEname());
+						item.setPodStationCode(podStationR.getPodStationCode());
+						item.setMarks(podStationR.getPodStationCode());
+						item.setPodCyAddress(podStationR.getPodCyAddress());
+						item.setPodCyContact(podStationR.getPodCyContact());
+						item.setPodCyEmail(podStationR.getPodCyEmail());
+						item.setPodCyTel(podStationR.getPodCyTel());
+						item.setPodEmptyContainerReturnDate(podStationR.getReturnEmptyTime());
+						item.setUpdateTime(new Date());
+						item.setUpdateUser(AuthUtil.getUserId());
+						item.setUpdateUserName(AuthUtil.getUserName());
 					}
+					containersService.updateBatchById(containersList);
 				}
+			}
 //			}
 		} else {
 			for (Containers item : containersHYJKList) {
@@ -5107,7 +5155,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 								putBoxItem.setBoxClass(putBox.getBusType());
 								putBoxItem.setBoxBelongsTo("SOC");
 								putBoxItem.setBoxCondition("新");
-								putBoxItem.setBoxStatus("好");
+								putBoxItem.setBoxStatus("好");
 								putBoxItem.setPid(putBox.getId());
 								putBoxItem.setContainerNumber(archives.getContainerNumber());
 								putBoxItem.setBoxCode(item.getCntrNo());
@@ -5125,7 +5173,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 							putBoxItem.setBoxClass(putBox.getBusType());
 							putBoxItem.setBoxBelongsTo("SOC");
 							putBoxItem.setBoxCondition("新");
-							putBoxItem.setBoxStatus("好");
+							putBoxItem.setBoxStatus("好");
 							putBoxItem.setPid(putBox.getId());
 							putBoxItem.setContainerNumber(archives.getContainerNumber());
 							putBoxItem.setBoxCode(item.getCntrNo());

+ 10 - 2
blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/TradingBoxServiceImpl.java

@@ -2788,6 +2788,15 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 		putBox.setPodStationEname(tradingBox.getPodStationEname());
 		putBox.setLoloPod(tradingBox.getLoloPod());
 		putBox.setLoloPol(tradingBox.getLoloPol());
+		putBox.setPolCyAddress(tradingBox.getPolCyAddress());
+		putBox.setPolCyEmail(tradingBox.getPolCyEmail());
+		putBox.setPolCyTel(tradingBox.getPolCyTel());
+		putBox.setPolCyContact(tradingBox.getPolCyContact());
+		putBox.setPodCyAddress(tradingBox.getPodCyAddress());
+		putBox.setPodCyEmail(tradingBox.getPodCyEmail());
+		putBox.setPodCyTel(tradingBox.getPodCyTel());
+		putBox.setPodCyContact(tradingBox.getPodCyContact());
+		putBox.setPriorityLevel(tradingBox.getPriorityLevel());
 		List<PutBoxItems> putBoxItemsList = putBoxItemsService.list(new LambdaQueryWrapper<PutBoxItems>()
 			.eq(PutBoxItems::getTenantId, AuthUtil.getTenantId())
 			.eq(PutBoxItems::getIsDeleted, 0)
@@ -2798,7 +2807,7 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 				item.setBoxEastId(tradingBox.getPurchaseCompanyId());
 				item.setBoxEastName(tradingBox.getPurchaseCompanyName());
 				item.setBoxCondition(tradingBox.getBoxCondition());
-				if ("空箱出场".equals(item.getBoxDynamics())) {
+				if ("待使用".equals(item.getStatus())) {
 					alreadyAppeared = alreadyAppeared + 1;
 				}
 			}
@@ -2809,7 +2818,6 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 		}
 		putBox.setTotalNum(tradingBox.getBoxNumber());
 		putBox.setRemainingNum(putBox.getTotalNum() - putBox.getOccupyNum() - alreadyAppeared);
-		putBox.setNotSuitcaseNum(putBox.getTotalNum());
 		putBoxService.updateById(putBox);
 		return R.data(tradingBox);
 	}

+ 5 - 0
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/controller/FinAccBillsController.java

@@ -725,6 +725,11 @@ public class FinAccBillsController extends BladeController {
 			} else if ("1".equals(type)) {
 				accBillExcel.setAmount(item.getReconciliationCurrentAmount());
 			}
+			if ("D".equals(accBillExcel.getAccountDc())){
+				accBillExcel.setAccountDc("收");
+			}else if ("C".equals(accBillExcel.getAccountDc())){
+				accBillExcel.setAccountDc("付");
+			}
 			accBillExcelList.add(accBillExcel);
 		}
 		ExcelUtil.export(response, "账单明细", "账单明细", accBillExcelList, AccBillExcel.class);

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

@@ -1811,7 +1811,7 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 			throw new RuntimeException("请选择明细");
 		}
 		String status = sysClient.getParamService("whether.open.Invoice.review");
-		if ("1".equals(status)){
+		if ("1".equals(status)) {
 			Integer actId = 1110;
 			String processType = "发票申请";
 			String checkType = "HYCK-FPSQ";
@@ -1873,7 +1873,7 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 				auditProecessDTO.setBookingAgentCnName(detail.getBookingAgentCnName());
 				auditProecessDTO.setSalesCompanyId(Long.parseLong(detail.getBranchId()));
 				auditProecessDTO.setSalesCompanyName(detail.getBranchName());
-				auditProecessDTO.setPayAmount(detail.getAmountSubLoc());
+				auditProecessDTO.setReceivableAmount(detail.getAmountSubLoc());
 				auditProecessDTO.setMblno(detail.getMblno());
 				auditProecessDTO.setHblno(detail.getHblno());
 				R financeProcess = auditProecessService.createFinanceProcess(auditProecessDTO);
@@ -1882,7 +1882,7 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 				}
 			}
 			detail.setStatus(1);
-		}else{
+		} else {
 			detail.setStatus(3);
 		}
 		int version = StringUtil.isBlank(detail.getVersion()) ? 1 : Integer.parseInt(detail.getVersion());
@@ -1924,7 +1924,7 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 		detail.setVersion(String.valueOf(version + 1));
 		detail.setStatus(0);
 		String status = sysClient.getParamService("whether.open.Invoice.review");
-		if ("1".equals(status)){
+		if ("1".equals(status)) {
 			R financeProcess = auditProecessService.deteleByBillId(detail.getId());
 			if (!financeProcess.isSuccess()) {
 				throw new SecurityException("操作失败,请联系管理员");
@@ -1969,7 +1969,7 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 				feeCenter.setUpdateUser(AuthUtil.getUserId());
 				feeCenters.add(feeCenter);
 			}
-			if (!feeCenters.isEmpty()){
+			if (!feeCenters.isEmpty()) {
 				feeCenterService.updateBatchById(feeCenters);
 			}
 		} else {
@@ -2042,7 +2042,7 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 				feeCenter.setUpdateUser(AuthUtil.getUserId());
 				feeCenters.add(feeCenter);
 			}
-			if (!feeCenters.isEmpty()){
+			if (!feeCenters.isEmpty()) {
 				feeCenterService.updateBatchById(feeCenters);
 			}
 		} else {
@@ -3037,6 +3037,8 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 		BigDecimal amountUsdD = new BigDecimal("0.00");
 		BigDecimal amountCnyC = new BigDecimal("0.00");
 		BigDecimal amountUsdC = new BigDecimal("0.00");
+		BigDecimal amountDLoc = new BigDecimal("0.00");
+		BigDecimal amountCLoc = new BigDecimal("0.00");
 		String mblno = ObjectUtils.isNull(reconciliation.getMblnos()) ? "" : reconciliation.getMblnos();
 		String hblno = ObjectUtils.isNull(reconciliation.getHblnos()) ? "" : reconciliation.getHblnos();
 		for (FinInvoicesItems item : finStlBillsItemsList) {
@@ -3045,27 +3047,31 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 			//计算字段null值处理
 			item.setCurrentAmount(ObjectUtils.isNotNull(item.getCurrentAmount()) ? item.getCurrentAmount() : new BigDecimal("0.00"));
 			item.setAmount(ObjectUtils.isNotNull(item.getAmount()) ? item.getAmount() : new BigDecimal("0.00"));
-			item.setCurrentExrate(reconciliation.getExrate());
+			item.setCurrentExrate(item.getExrate());
 			//判断是否是本位币
 			if (exrateType.equals(item.getCurrentCurCode())) {
 				item.setCurrentAmountLoc(item.getCurrentAmount());
 				item.setCurrentAmountEx(item.getCurrentAmount());
 				if ("D".equals(item.getDc())) {
 					amountCnyD = amountCnyD.add(item.getCurrentAmount());
+					amountDLoc = amountDLoc.add(item.getCurrentAmount());
 				} else {
 					amountCnyC = amountCnyC.add(item.getCurrentAmount());
+					amountCLoc = amountCLoc.add(item.getCurrentAmount());
 				}
 			} else {
-				item.setCurrentAmountLoc(item.getCurrentAmount().multiply(reconciliation.getExrate()));
+				item.setCurrentAmountLoc(item.getCurrentAmount().multiply(item.getExrate()));
 				if ("1".equals(reconciliation.getIsExchangeToCny())) {
-					item.setCurrentAmountEx(item.getCurrentAmount().multiply(reconciliation.getExrate()));
-				} else {
 					item.setCurrentAmountEx(item.getCurrentAmount().multiply(item.getExrate()));
+				} else {
+					item.setCurrentAmountEx(item.getCurrentAmount());
 				}
 				if ("D".equals(item.getDc())) {
 					amountUsdD = amountUsdD.add(item.getCurrentAmount());
+					amountDLoc = amountDLoc.add(item.getCurrentAmount().multiply(item.getExrate()));
 				} else {
 					amountUsdC = amountUsdC.add(item.getCurrentAmount());
+					amountCLoc = amountCLoc.add(item.getCurrentAmount().multiply(item.getExrate()));
 				}
 			}
 		}
@@ -3081,8 +3087,9 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 		reconciliation.setAmountUsd(reconciliation.getAmountUsd().add(amountUsdD.subtract(amountUsdC)));
 		reconciliation.setAmountSub(reconciliation.getAmountSub().add(amountCnyD.subtract(amountCnyC)));
 		reconciliation.setAmountSubUsd(reconciliation.getAmountSubUsd().add(amountUsdD.subtract(amountUsdC)));
-		reconciliation.setAmountSubLoc(reconciliation.getAmountSubLoc().add(reconciliation.getAmountUsd().multiply(reconciliation.getExrate())));
-		reconciliation.setAmountLoc(reconciliation.getAmountLoc().add(reconciliation.getAmountUsd().multiply(reconciliation.getExrate())));
+		BigDecimal subAmount = amountDLoc.subtract(amountCLoc);
+		reconciliation.setAmountSubLoc(reconciliation.getAmountSubLoc().add(subAmount));
+		reconciliation.setAmountLoc(reconciliation.getAmountLoc().add(subAmount));
 		return reconciliation;
 	}
 

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

@@ -3406,8 +3406,6 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 			auditProecessDTO.setSalesCompanyId(Long.parseLong(detail.getBranchId()));
 			auditProecessDTO.setSalesCompanyName(detail.getBranchName());
 			auditProecessDTO.setPayAmount(detail.getAmountCrLoc());
-			auditProecessDTO.setReceivableAmount(detail.getAmountDrLoc());
-			auditProecessDTO.setGrossProfit(detail.getAmountSubLoc());
 			if (ObjectUtils.isNotNull(finStlBills.getFinStlBillsItemsList())) {
 				auditProecessDTO.setMblno(finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getMblno).distinct().collect(Collectors.joining(",")));
 				auditProecessDTO.setHblno(finStlBills.getFinStlBillsItemsList().stream().map(FinStlBillsItems::getHblno).distinct().collect(Collectors.joining(",")));