Browse Source

1.金额转英文大写
2.换单查询列表检索条件修改
3.客户订舱复制接口来源id问题修改
4.箱管,放箱号进出场记录同步问题修改

纪新园 3 weeks ago
parent
commit
9b10b5ad7b

+ 91 - 5
blade-service/blade-los/src/main/java/org/springblade/los/Util/BigDecimalUtils.java

@@ -8,14 +8,26 @@ import java.math.BigDecimal;
  */
 public class BigDecimalUtils {
 
+	private static final String[] LESS_THAN_20 = {
+		"", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine",
+		"ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen",
+		"seventeen", "eighteen", "nineteen"
+	};
+	private static final String[] TENS = {
+		"", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"
+	};
+	private static final String[] THOUSANDS = {
+		"", "thousand", "million", "billion"
+	};
+
 	/**
 	 * 数字转英文大写
 	 *
-	 * @param number 数字
+	 * @param amount 数字
 	 * @return 结果
 	 */
-	public static String convertToEnglish(BigDecimal number) {
-		BigDecimal integerPart = number.setScale(0, BigDecimal.ROUND_DOWN);
+	public static String convertToEnglish(BigDecimal amount) {
+		/*BigDecimal integerPart = number.setScale(0, BigDecimal.ROUND_DOWN);
 		String decimal = number.toString();
 		if (decimal.indexOf(".") > 0) {
 			BigDecimal decimalAmount = new BigDecimal(decimal.substring(decimal.indexOf(".") + 1));
@@ -33,7 +45,81 @@ public class BigDecimalUtils {
 				data = data.substring(0,data.length()-3);
 			}
 			return data;
+		}*/
+		if (amount.compareTo(BigDecimal.ZERO) == 0) return "zero dollars";
+
+		String[] parts = amount.toString().split("\\.");
+		String integerPart = parts[0];
+		String fractionalPart = parts.length > 1 ? parts[1] : "00";
+
+		StringBuilder result = new StringBuilder();
+		result.append(convertIntegerPart(integerPart)).append(" dollars");
+		if (!fractionalPart.equals("00")) {
+			result.append(" and ").append(convertFractionalPart(fractionalPart)).append(" cents");
+		}
+		return result.toString();
+	}
+
+	private static String convertIntegerPart(String number) {
+		if (number.isEmpty()) return "";
+
+		StringBuilder result = new StringBuilder();
+		int length = number.length();
+		for (int i = 0; i < length; i++) {
+			if (length - i > 3) {
+				result.append(convertThreeDigits(number.substring(i, i + 3))).append(" ");
+				i += 2;
+			} else {
+				result.append(convertThreeDigits(number.substring(i)));
+			}
+		}
+		return result.toString().trim();
+	}
+
+	private static String convertThreeDigits(String number) {
+		if (number.isEmpty()) return "";
+
+		StringBuilder result = new StringBuilder();
+		if (number.length() == 3) {
+			int hundreds = Character.getNumericValue(number.charAt(0));
+			if (hundreds > 0) {
+				result.append(LESS_THAN_20[hundreds]).append(" hundred ");
+			}
+		}
+		if (number.length() >= 2) {
+			int tens = Character.getNumericValue(number.charAt(number.length() - 2));
+			if (tens > 1) {
+				result.append(TENS[tens]).append(" ");
+			} else if (tens == 1) {
+				int teens = Character.getNumericValue(number.charAt(number.length() - 1));
+				result.append(LESS_THAN_20[10 + teens]).append(" ");
+				return result.toString().trim();
+			}
+		}
+		int ones = Character.getNumericValue(number.charAt(number.length() - 1));
+		if (ones > 0) {
+			result.append(LESS_THAN_20[ones]).append(" ");
 		}
+		return result.toString().trim();
+	}
+
+	private static String convertFractionalPart(String number) {
+		if (number.isEmpty()) return "";
+
+		StringBuilder result = new StringBuilder();
+		if (number.length() == 1) {
+			result.append(LESS_THAN_20[Character.getNumericValue(number.charAt(0))]).append(" cent");
+		} else {
+			int tens = Character.getNumericValue(number.charAt(0));
+			int ones = Character.getNumericValue(number.charAt(1));
+			if (tens > 0) {
+				result.append(TENS[tens]).append(" ");
+			}
+			if (ones > 0) {
+				result.append(LESS_THAN_20[ones]).append(" ");
+			}
+		}
+		return result.toString().trim();
 	}
 
 	private static String convert(long number) {
@@ -61,8 +147,8 @@ public class BigDecimalUtils {
 					result.append(MagicValues.units[(int) number % 10]).append(" ");
 				}
 			}
-		}else {
-			if (number != 0){
+		} else {
+			if (number != 0) {
 				result.append(" AND ");
 			}
 		}

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

@@ -632,6 +632,13 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 				}
 				if (!putBoxes.isEmpty()) {
 					for (PutBox item : putBoxes) {
+						long count = 0;
+						if (ObjectUtils.isNotNull(item.getCode())){
+							count = itemsListJC.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber()) &&
+								!item.getCode().contains(e.getBoxCode())).count();
+						}else {
+							count = itemsListJC.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber())).count();
+						}
 						if (ObjectUtils.isNotNull(item.getCode())) {
 							for (BoxDynamicsRecordItems e : itemsListJC) {
 								if (e.getContainerNumber().equals(item.getContainerNumber()) && ObjectUtils.isNotNull(item.getCode())
@@ -645,7 +652,6 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 							item.setCode(itemsListJC.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber()))
 								.map(BoxDynamicsRecordItems::getBoxCode).collect(Collectors.joining(",")));
 						}
-						long count = itemsListJC.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber())).count();
 						if ("0".equals(item.getWhetherManuallyCreate())) {
 							item.setTotalNum(item.getTotalNum() + Integer.parseInt(count + ""));
 							item.setRemainingNum(item.getRemainingNum() + Integer.parseInt(count + ""));
@@ -659,6 +665,13 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 						if (!tradingBoxes.isEmpty()) {
 							TradingBox tradingBox = tradingBoxes.stream().filter(e -> e.getId().equals(item.getSrcId())).findFirst().orElse(null);
 							if (tradingBox != null) {
+								long count1 = 0;
+								if (ObjectUtils.isNotNull(tradingBox.getCode())){
+									count1 = itemsListJC.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber()) &&
+										!tradingBox.getCode().contains(e.getBoxCode())).count();
+								}else {
+									count1 = itemsListJC.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber())).count();
+								}
 								if (ObjectUtils.isNotNull(item.getCode())) {
 									for (BoxDynamicsRecordItems e : itemsListJC) {
 										if (e.getContainerNumber().equals(item.getContainerNumber()) && ObjectUtils.isNotNull(tradingBox.getCode())
@@ -673,8 +686,8 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 										.map(BoxDynamicsRecordItems::getBoxCode).collect(Collectors.joining(",")));
 								}
 								if ("OW(拿)".contains(item.getBusType())) {
-									tradingBox.setSuitcaseNum(tradingBox.getSuitcaseNum() + Integer.parseInt(count + ""));
-									tradingBox.setNotSuitcaseNum(tradingBox.getBoxNumber() - item.getSuitcaseNum());
+									tradingBox.setSuitcaseNum(tradingBox.getSuitcaseNum() + Integer.parseInt(count1 + ""));
+									tradingBox.setNotSuitcaseNum(tradingBox.getBoxNumber() - tradingBox.getSuitcaseNum());
 								}
 								tradingBoxMapper.updateById(tradingBox);
 							}
@@ -1408,9 +1421,6 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 							if (!archives.getTypeName().equals(item.getBoxType())) {
 								throw new RuntimeException("箱号:" + item.getBoxCode() + "与箱档案中箱型不符");
 							}
-							if ("使用中".equals(archives.getStatus())) {
-								throw new RuntimeException("箱号:" + item.getBoxCode() + "状态为使用中");
-							}
 							archives.setBoxStatus(item.getBoxStatus());
 							archives.setUpdateTime(new Date());
 							archives.setUpdateUser(AuthUtil.getUserId());
@@ -1462,11 +1472,11 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 						//放箱号明细数据处理
 						PutBoxItems putBoxItem;
 						if (!putBoxItemsList.isEmpty()) {
-							putBoxItem = putBoxItemsList.stream().filter(e -> e.getBoxCode().equals(item.getBoxCode()))
+							putBoxItem = putBoxItemsList.stream().filter(e -> e.getBoxCode().equals(item.getBoxCode()) &&
+									e.getPid().equals(putBox.getId()))
 								.findFirst().orElse(null);
 							if (putBoxItem != null) {
 								putBoxItem.setPid(putBox.getId());
-								putBoxItem.setMblno(item.getMblno());
 								putBoxItem.setBoxDynamics("调箱进场");
 								putBoxItem.setStatus("待使用");
 								putBoxItem.setPolCyId(item.getStationId());
@@ -1475,6 +1485,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 								putBoxItem.setPolCyEname(item.getPortEname());
 								putBoxItem.setPolPickUpDate(item.getApproachExitDate());
 								putBoxItem.setPolPreAppearanceDate(item.getApproachExitDate());
+								putBoxItem.setMblno(putBox.getSrcNo());
 								putBoxItem.setBoxStatus(item.getBoxStatus());
 							} else {
 								putBoxItem = new PutBoxItems();
@@ -1488,7 +1499,6 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 								putBoxItem.setBoxCode(item.getBoxCode());
 								putBoxItem.setBoxType(item.getBoxType());
 								putBoxItem.setBoxClass(putBox.getBusType());
-								putBoxItem.setMblno(item.getMblno());
 								putBoxItem.setBoxDynamics("调箱进场");
 								putBoxItem.setPolCyId(item.getStationId());
 								putBoxItem.setPolCyCode(item.getStationCode());
@@ -1496,6 +1506,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 								putBoxItem.setPolCyEname(item.getPortEname());
 								putBoxItem.setPolPickUpDate(item.getApproachExitDate());
 								putBoxItem.setPolPreAppearanceDate(item.getApproachExitDate());
+								putBoxItem.setMblno(putBox.getSrcNo());
 							}
 						} else {
 							putBoxItem = new PutBoxItems();
@@ -1509,7 +1520,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 							putBoxItem.setContainerNumber(item.getContainerNumber());
 							putBoxItem.setBoxCode(item.getBoxCode());
 							putBoxItem.setBoxType(item.getBoxType());
-							putBoxItem.setMblno(item.getMblno());
+							putBoxItem.setMblno(putBox.getSrcNo());
 							putBoxItem.setBoxDynamics("调箱进场");
 							putBoxItem.setPolCyId(item.getStationId());
 							putBoxItem.setPolCyCode(item.getStationCode());
@@ -1540,9 +1551,8 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 										tradingBoxItem = tradingBoxItemList.stream().filter(e -> e.getCode().equals(item.getBoxCode()))
 											.findFirst().orElse(null);
 										if (tradingBoxItem != null) {
-//									throw new RemoteException("箱号:" + item.getBoxCode() + "在放箱号:" + item.getContainerNumber() + "单据中已存在,不能重复导入");
 											tradingBoxItem.setPid(tradingBox.getId());
-											tradingBoxItem.setMblno(item.getMblno());
+											tradingBoxItem.setMblno(putBox.getSrcNo());
 											tradingBoxItem.setBoxDynamics("调箱进场");
 											tradingBoxItem.setPortId(item.getPortId());
 											tradingBoxItem.setPortCode(item.getPortCode());
@@ -1580,7 +1590,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 											tradingBoxItem.setPid(tradingBox.getId());
 											tradingBoxItem.setContainerNumber(item.getContainerNumber());
 											tradingBoxItem.setCode(item.getBoxCode());
-											tradingBoxItem.setMblno(item.getMblno());
+											tradingBoxItem.setMblno(putBox.getSrcNo());
 											tradingBoxItem.setBoxDynamics("调箱进场");
 											tradingBoxItem.setBoxType(item.getBoxType());
 											tradingBoxItem.setPortId(item.getPortId());
@@ -1620,7 +1630,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 										tradingBoxItem.setPid(tradingBox.getId());
 										tradingBoxItem.setContainerNumber(item.getContainerNumber());
 										tradingBoxItem.setCode(item.getBoxCode());
-										tradingBoxItem.setMblno(item.getMblno());
+										tradingBoxItem.setMblno(putBox.getSrcNo());
 										tradingBoxItem.setBoxDynamics("调箱进场");
 										tradingBoxItem.setBoxType(item.getBoxType());
 										tradingBoxItem.setPortId(item.getPortId());
@@ -1663,6 +1673,13 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 				}
 				if (!putBoxes.isEmpty()) {
 					for (PutBox item : putBoxes) {
+						long count = 0;
+						if (ObjectUtils.isNotNull(item.getCode())){
+							count = itemsListZJ.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber()) &&
+								!item.getCode().contains(e.getBoxCode())).count();
+						}else {
+							count = itemsListZJ.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber())).count();
+						}
 						if (ObjectUtils.isNotNull(item.getCode())) {
 							for (BoxDynamicsRecordItems e : itemsListZJ) {
 								if (e.getContainerNumber().equals(item.getContainerNumber()) && ObjectUtils.isNotNull(item.getCode())
@@ -1676,9 +1693,26 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 							item.setCode(itemsListZJ.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber()))
 								.map(BoxDynamicsRecordItems::getBoxCode).collect(Collectors.joining(",")));
 						}
+						if ("0".equals(item.getWhetherManuallyCreate())) {
+							item.setTotalNum(item.getTotalNum() + Integer.parseInt(count + ""));
+							item.setRemainingNum(item.getRemainingNum() + Integer.parseInt(count + ""));
+							item.setStorageNum(item.getStorageNum() + Integer.parseInt(count + ""));
+						}
+						if ("OW(拿)".equals(item.getBusType())) {
+							item.setSuitcaseNum(item.getSuitcaseNum() + Integer.parseInt(count + ""));
+							item.setNotSuitcaseNum(item.getTotalNum() - item.getSuitcaseNum());
+							item.setStorageNum(item.getStorageNum() + Integer.parseInt(count + ""));
+						}
 						if (!tradingBoxes.isEmpty()) {
 							TradingBox tradingBox = tradingBoxes.stream().filter(e -> e.getId().equals(item.getSrcId())).findFirst().orElse(null);
 							if (tradingBox != null) {
+								long count1 = 0;
+								if (ObjectUtils.isNotNull(tradingBox.getCode())){
+									count1 = itemsListJC.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber()) &&
+										!tradingBox.getCode().contains(e.getBoxCode())).count();
+								}else {
+									count1 = itemsListJC.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber())).count();
+								}
 								if (ObjectUtils.isNotNull(item.getCode())) {
 									for (BoxDynamicsRecordItems e : itemsListZJ) {
 										if (e.getContainerNumber().equals(item.getContainerNumber()) && ObjectUtils.isNotNull(tradingBox.getCode())
@@ -1692,6 +1726,10 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 									tradingBox.setCode(itemsListZJ.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber()))
 										.map(BoxDynamicsRecordItems::getBoxCode).collect(Collectors.joining(",")));
 								}
+								if ("OW(拿)".contains(item.getBusType())) {
+									tradingBox.setSuitcaseNum(tradingBox.getSuitcaseNum() + Integer.parseInt(count1 + ""));
+									tradingBox.setNotSuitcaseNum(tradingBox.getBoxNumber() - tradingBox.getSuitcaseNum());
+								}
 								tradingBoxMapper.updateById(tradingBox);
 							}
 						}
@@ -1978,7 +2016,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 											.findFirst().orElse(null);
 										if (tradingBoxItem != null) {
 											tradingBoxItem.setPid(tradingBox.getId());
-											tradingBoxItem.setBoxDynamics("箱出场");
+											tradingBoxItem.setBoxDynamics("箱出场");
 											tradingBoxItem.setPortId(item.getPortId());
 											tradingBoxItem.setPortCode(item.getPortCode());
 											tradingBoxItem.setPortCname(item.getPortCname());
@@ -2099,6 +2137,26 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 							item.setCode(itemsListZD.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber()))
 								.map(BoxDynamicsRecordItems::getBoxCode).collect(Collectors.joining(",")));
 						}
+						long count = itemsListZD.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber())).count();
+						if ("OW(拿)".equals(item.getBusType())) {
+							item.setStorageNum(item.getStorageNum() - Integer.parseInt(count + ""));
+							if (item.getStorageNum() < 0) {
+								throw new RuntimeException("放箱号:" + item.getContainerNumber() + "剩余场地盘存小于本次导入箱数");
+							}
+						} else if ("OW(放)".equals(item.getBusType())) {
+							item.setThisSuitcaseNum(Integer.parseInt(count + ""));
+							item.setSuitcaseNum(item.getSuitcaseNum() + Integer.parseInt(count + ""));
+							item.setNotSuitcaseNum(item.getTotalNum() - item.getSuitcaseNum());
+							if (item.getNotSuitcaseNum() < 0) {
+								throw new RuntimeException("放箱号:" + item.getContainerNumber() + "剩余未提箱小于本次导入箱数");
+							}
+							item.setRemainingNum(item.getRemainingNum() - Integer.parseInt(count + ""));
+						} else {
+							item.setStorageNum(item.getStorageNum() - Integer.parseInt(count + ""));
+							if (item.getStorageNum() < 0) {
+								throw new RuntimeException("放箱号:" + item.getContainerNumber() + "剩余场地盘存小于本次导入箱数");
+							}
+						}
 						putBoxList1.add(item);
 						if (!tradingBoxes.isEmpty()) {
 							TradingBox tradingBox = tradingBoxes.stream().filter(e -> e.getId().equals(item.getSrcId())).findFirst().orElse(null);
@@ -2116,6 +2174,15 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
 									tradingBox.setCode(itemsListZD.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber()))
 										.map(BoxDynamicsRecordItems::getBoxCode).collect(Collectors.joining(",")));
 								}
+								if ("OW(放)".equals(item.getBusType())) {
+									item.setSuitcaseNum(item.getSuitcaseNum() + Integer.parseInt(count + ""));
+									item.setNotSuitcaseNum(item.getTotalNum() - item.getSuitcaseNum());
+									if (item.getNotSuitcaseNum() < 0) {
+										throw new RuntimeException("放箱号:" + item.getContainerNumber() + "剩余未提箱小于本次导入箱数");
+									}
+								}
+								tradingBox.setActualBoxNumber(tradingBox.getActualBoxNumber() - Integer.parseInt(count + ""));
+								tradingBox.setRemainingBoxNumber(tradingBox.getBoxNumber() - tradingBox.getActualBoxNumber());
 								tradingBoxMapper.updateById(tradingBox);
 							}
 						}

+ 48 - 66
blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/TradingBoxServiceImpl.java

@@ -1140,6 +1140,7 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 		details.setContainerNumber("");
 		details.setBuxStaus("录入");
 		details.setWhetherEnable("否");
+		details.setApprovalStatus("0");
 		details.setBoxNumber(0);
 		details.setActualBoxNumber(0);
 		details.setRemainingBoxNumber(0);
@@ -2094,6 +2095,26 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 		tradingBox.setVersion(String.valueOf(version + 1));
 		baseMapper.updateById(tradingBox);
 		if ("XGDX".equals(tradingBox.getType()) || "CCSQ".equals(tradingBox.getType())) {
+			PutBox putBoxOld = putBoxService.getOne(new LambdaQueryWrapper<PutBox>()
+				.eq(PutBox::getTenantId, AuthUtil.getTenantId())
+				.eq(PutBox::getIsDeleted, 0)
+				.eq(PutBox::getContainerNumber, tradingBox.getContainerNumber())
+				.eq(PutBox::getPolId, tradingBox.getPolId())
+				.eq(PutBox::getPolStationId, tradingBox.getPolStationId())
+				.eq(PutBox::getBoxType, tradingBox.getBoxTypeQuantityOne())
+			);
+			if (putBoxOld == null) {
+				throw new RuntimeException("未查到调出放箱号单据");
+			}
+			putBoxOld.setUpdateUser(AuthUtil.getUserId());
+			putBoxOld.setUpdateTime(new Date());
+			putBoxOld.setUpdateUserName(AuthUtil.getUserName());
+			if (putBoxOld.getTotalNum().compareTo(tradingBox.getBoxNumber()) < 0) {
+				throw new RuntimeException("原放箱号剩余总箱数小于本次调箱箱数");
+			}
+			putBoxOld.setTotalNum(putBoxOld.getTotalNum() - tradingBox.getBoxNumber());
+			putBoxOld.setRemainingNum(putBoxOld.getTotalNum() - putBoxOld.getOccupyNum());
+			putBoxService.updateById(putBoxOld);
 			PutBox putBox = putBoxService.getOne(new LambdaQueryWrapper<PutBox>()
 				.eq(PutBox::getTenantId, AuthUtil.getTenantId())
 				.eq(PutBox::getIsDeleted, 0)
@@ -2114,7 +2135,6 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 
 				putBox.setTotalNum(putBox.getTotalNum() + tradingBox.getBoxNumber());
 				putBox.setRemainingNum(putBox.getTotalNum() - putBox.getOccupyNum());
-				putBox.setStorageNum(putBox.getStorageNum() + tradingBox.getBoxNumber());
 
 				if (ObjectUtils.isNotNull(putBox.getPodId())) {
 					String podId = putBox.getPodId() + "," + tradingBox.getPodId();
@@ -2151,13 +2171,13 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 					throw new RuntimeException("未找到可用业务类型");
 				}
 				String code;
-				if ("DL".equals(tradingBox.getType())) {
-					putBox.setBusType("代理箱");
-					putBox.setBoxClass("代理箱");
+				if ("自有箱".equals(putBoxOld.getBusType())) {
+					code = "FXH-ZY";
+				} else if ("代理箱".equals(putBoxOld.getBusType())) {
 					code = "FXH-DL";
+				} else if ("OW(拿),OW(放)".contains(putBoxOld.getBusType())) {
+					code = "FXH-OW";
 				} else {
-					putBox.setBusType("自有箱");
-					putBox.setBoxClass("自有箱");
 					code = "FXH-ZY";
 				}
 				BusinessBillNo businessBillNo = new BusinessBillNo();
@@ -2168,31 +2188,22 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 					throw new RuntimeException("生成订单编号失败");
 				}
 				putBox.setSysNo((String) clientBillNo.getData());
-				putBox.setBoxEastId(tradingBox.getPurchaseCompanyId() + "");
-				putBox.setBoxEastName(tradingBox.getPurchaseCompanyName());
-				putBox.setAgentId(tradingBox.getPurchaseCompanyId());
-				putBox.setAgentName(tradingBox.getPurchaseCompanyName());
-				putBox.setContainerNumber(tradingBox.getContainerNumber());
-				if ("DL".equals(tradingBox.getType())) {
-					putBox.setBusType("代理箱");
-					putBox.setBoxClass("代理箱");
-				} else {
-					putBox.setBusType("自有箱");
-					putBox.setBoxClass("自有箱");
-				}
-				if (ObjectUtils.isNotNull(tradingBox.getInternalContainerNumber())) {
-					putBox.setInternalContainerNumber(tradingBox.getInternalContainerNumber());
-				} else {
-					BusinessBillNo businessBillNo1 = new BusinessBillNo();
-					businessBillNo1.setBusinessTypeId(businessType.getId());
-					businessBillNo1.setCode("FXH-N");
-					R clientBillNo1 = businessBillNoService.getBillNoLos(businessBillNo1);
-					if (!clientBillNo1.isSuccess()) {
-						throw new RuntimeException("生成订单编号失败");
-					}
-					putBox.setInternalContainerNumber((String) clientBillNo1.getData());
+				putBox.setBoxEastId(putBoxOld.getBoxEastId() + "");
+				putBox.setBoxEastName(putBoxOld.getBoxEastName());
+				putBox.setAgentId(putBoxOld.getAgentId());
+				putBox.setAgentName(putBoxOld.getAgentName());
+				putBox.setContainerNumber(putBoxOld.getContainerNumber());
+				putBox.setBusType(putBoxOld.getBusType());
+				putBox.setBoxClass(putBoxOld.getBoxClass());
+				BusinessBillNo businessBillNo1 = new BusinessBillNo();
+				businessBillNo1.setBusinessTypeId(businessType.getId());
+				businessBillNo1.setCode("FXH-N");
+				R clientBillNo1 = businessBillNoService.getBillNoLos(businessBillNo1);
+				if (!clientBillNo1.isSuccess()) {
+					throw new RuntimeException("生成订单编号失败");
 				}
-				putBox.setBoxBelongsTo("SOC");
+				putBox.setInternalContainerNumber((String) clientBillNo1.getData());
+				putBox.setBoxBelongsTo(putBoxOld.getBoxBelongsTo());
 				putBox.setPolId(Long.parseLong(tradingBox.getPodId()));
 				putBox.setPolCname(tradingBox.getPodCname());
 				putBox.setPolEname(tradingBox.getPodEname());
@@ -2201,41 +2212,17 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 				putBox.setPolStationCname(tradingBox.getPodStationCname());
 				putBox.setPolStationEname(tradingBox.getPodStationEname());
 				putBox.setPolStationCode(tradingBox.getPodStationCode());
-				putBox.setBoxCondition("");
-				putBox.setBoxType(tradingBox.getBoxTypeQuantityOne());
-				putBox.setBoxClass("");
+				putBox.setBoxCondition(putBoxOld.getBoxCondition());
+				putBox.setBoxType(putBoxOld.getBoxType());
 				putBox.setTotalNum(tradingBox.getBoxNumber());
 				putBox.setRemainingNum(tradingBox.getBoxNumber());
-				putBox.setStorageNum(tradingBox.getBoxNumber());
-				putBox.setSrcId(tradingBox.getId());
-				putBox.setSrcNo(tradingBox.getSysNo());
-				putBox.setSrcContainerNumber(tradingBox.getContainerNumber());
+				putBox.setSrcId(putBoxOld.getSrcId());
+				putBox.setSrcNo(putBoxOld.getSrcNo());
+				putBox.setSrcContainerNumber(putBoxOld.getContainerNumber());
+				putBox.setEffectiveStartDate(putBoxOld.getEffectiveStartDate());
+				putBox.setEffectiveEndDate(putBoxOld.getEffectiveEndDate());
 				putBoxService.save(putBox);
 			}
-			PutBox putBoxOld = putBoxService.getOne(new LambdaQueryWrapper<PutBox>()
-				.eq(PutBox::getTenantId, AuthUtil.getTenantId())
-				.eq(PutBox::getIsDeleted, 0)
-				.eq(PutBox::getContainerNumber, tradingBox.getContainerNumber())
-				.eq(PutBox::getPolId, tradingBox.getPolId())
-				.eq(PutBox::getPolStationId, tradingBox.getPolStationId())
-				.eq(PutBox::getBoxType, tradingBox.getBoxTypeQuantityOne())
-			);
-			if (putBoxOld == null) {
-				throw new RuntimeException("未查到调出放箱号单据");
-			}
-			putBoxOld.setUpdateUser(AuthUtil.getUserId());
-			putBoxOld.setUpdateTime(new Date());
-			putBoxOld.setUpdateUserName(AuthUtil.getUserName());
-			if (putBoxOld.getTotalNum().compareTo(tradingBox.getBoxNumber()) < 0) {
-				throw new RuntimeException("原放箱号剩余总箱数小于本次调箱箱数");
-			}
-			putBoxOld.setTotalNum(putBoxOld.getTotalNum() - tradingBox.getBoxNumber());
-			putBoxOld.setRemainingNum(putBoxOld.getTotalNum() - putBoxOld.getOccupyNum());
-			if (putBoxOld.getStorageNum().compareTo(tradingBox.getBoxNumber()) < 0) {
-				throw new RuntimeException("原放箱号剩余盘存箱数小于本次调箱箱数");
-			}
-			putBoxOld.setStorageNum(putBoxOld.getStorageNum() - tradingBox.getBoxNumber());
-			putBoxService.updateById(putBoxOld);
 		}
 		return tradingBox;
 	}
@@ -2272,10 +2259,6 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 				}
 				putBox.setTotalNum(putBox.getTotalNum() - tradingBox.getBoxNumber());
 				putBox.setRemainingNum(putBox.getTotalNum() - putBox.getOccupyNum());
-				if (putBox.getStorageNum().compareTo(tradingBox.getBoxNumber()) < 0) {
-					throw new RuntimeException("放箱号剩余盘存箱数小于本次调箱箱数");
-				}
-				putBox.setStorageNum(putBox.getStorageNum() - tradingBox.getBoxNumber());
 				putBoxService.updateById(putBox);
 			} else {
 				throw new RuntimeException("未查到对应放箱号数据");
@@ -2297,7 +2280,6 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 
 			putBoxOld.setTotalNum(putBoxOld.getTotalNum() + tradingBox.getBoxNumber());
 			putBoxOld.setRemainingNum(putBoxOld.getTotalNum() - putBoxOld.getOccupyNum());
-			putBoxOld.setStorageNum(putBoxOld.getStorageNum() + tradingBox.getBoxNumber());
 			putBoxService.updateById(putBoxOld);
 		}
 		return tradingBox;

+ 15 - 2
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/mapper/BillsMapper.xml

@@ -287,8 +287,21 @@
             corp_en_name like concat('%', #{data.corpCnName}, '%')or
             short_name like concat('%', #{data.corpCnName}, '%'))
         </if>
-        <if test='data.changeOrderStatus != null and data.changeOrderStatus != ""'>
-            and change_order_status = #{data.changeOrderStatus}
+        <if test='data.changeOrderStatus != null and data.changeOrderStatus != "" and data.changeOrderStatus == "申请"'>
+            and change_order_status = '申请'
+        </if>
+        <if test='data.changeOrderStatus != null and data.changeOrderStatus != "" and data.changeOrderStatus == "已换单"'>
+            and change_order_status = '已换单'
+            and box_packing_amount != 0
+            and harvest_box_packing_date is null
+        </if>
+        <if test='data.changeOrderStatus != null and data.changeOrderStatus != "" and data.changeOrderStatus == "已退单"'>
+            and box_packing_amount = 0
+            and change_order_status = '已换单'
+        </if>
+        <if test='data.changeOrderStatus != null and data.changeOrderStatus != "" and data.changeOrderStatus == "已退押"'>
+            and harvest_box_packing_date is not null
+            and change_order_status = '已换单'
         </if>
         <if test='data.deliveryNoteStatus != null and data.deliveryNoteStatus != ""'>
             and delivery_note_status = #{data.deliveryNoteStatus}

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

@@ -2303,6 +2303,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		Bills copyBills = new Bills();
 		BeanUtil.copyProperties(detail, copyBills);
 		copyBills.setId(null);
+		copyBills.setTemporaryId(null);
+		copyBills.setTemporaryNo(null);
 		copyBills.setOperatorId(AuthUtil.getUserId());
 		copyBills.setOperatorName(AuthUtil.getUserName());
 		copyBills.setOperatorDept(AuthUtil.getDeptId());
@@ -4030,6 +4032,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			copyBills.setBillNo((String) clientBillNo.getData());
 			copyBills.setOperatorId(AuthUtil.getUserId());
 			copyBills.setOperatorName(AuthUtil.getUserName());
+			copyBills.setTemporaryId(null);
+			copyBills.setTemporaryNo(null);
 			copyBills.setBillNo("");
 			copyBills.setMblno("");
 			copyBills.setHblno("");

+ 1 - 1
blade-service/blade-los/src/main/java/org/springblade/los/finance/operatingExpenses/controller/OperatingExpensesController.java

@@ -99,7 +99,7 @@ public class OperatingExpensesController extends BladeController {
 			lambdaQueryWrapper.le(OperatingExpenses::getSettlementDate, operatingExpenses.getSettlementDateList().get(1));
 		}
 		if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
-			lambdaQueryWrapper.eq(OperatingExpenses::getBranchId, AuthUtil.getDeptId());
+			lambdaQueryWrapper.eq(OperatingExpenses::getCreateUser, AuthUtil.getUserId());
 		} else {
 			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(operatingExpenses.getBranchId()), OperatingExpenses::getBranchId, operatingExpenses.getBranchId());
 			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(operatingExpenses.getBranchName()), OperatingExpenses::getBranchName, operatingExpenses.getBranchName());