From 3b943ca22d875ca6331257781200627efa8971cf Mon Sep 17 00:00:00 2001 From: "han\\hanst" Date: Fri, 19 Sep 2025 09:32:43 +0800 Subject: [PATCH] durabilityDays --- .../controller/LabelSettingController.java | 27 ------ .../Impl/LabelDataProcessorServiceImpl.java | 95 ------------------- .../po/service/impl/PoServiceImpl.java | 17 ++-- 3 files changed, 9 insertions(+), 130 deletions(-) diff --git a/src/main/java/com/gaotao/modules/base/controller/LabelSettingController.java b/src/main/java/com/gaotao/modules/base/controller/LabelSettingController.java index 9a2ad24..91ebb1a 100644 --- a/src/main/java/com/gaotao/modules/base/controller/LabelSettingController.java +++ b/src/main/java/com/gaotao/modules/base/controller/LabelSettingController.java @@ -1012,31 +1012,4 @@ public class LabelSettingController extends AbstractController { } } - /** - * @description: 测试系统变量功能 - * @author AI Assistant - * @date 2024/12/18 - * @version 1.0 - */ - @PostMapping("testSystemVariables") - public R testSystemVariables() { - try { - log.info("开始测试系统变量功能"); - - // 调用测试方法 - if (labelDataProcessorService instanceof com.gaotao.modules.base.service.Impl.LabelDataProcessorServiceImpl) { - ((com.gaotao.modules.base.service.Impl.LabelDataProcessorServiceImpl) labelDataProcessorService).testSystemVariables(); - } - - return R.ok() - .put("code", 200) - .put("msg", "系统变量功能测试完成,请查看日志") - .put("data", "测试已执行,详细结果请查看服务器日志"); - - } catch (Exception e) { - log.error("系统变量功能测试失败: {}", e.getMessage(), e); - return R.error("测试失败: " + e.getMessage()); - } - } - } diff --git a/src/main/java/com/gaotao/modules/base/service/Impl/LabelDataProcessorServiceImpl.java b/src/main/java/com/gaotao/modules/base/service/Impl/LabelDataProcessorServiceImpl.java index 0ffe8dc..749fa14 100644 --- a/src/main/java/com/gaotao/modules/base/service/Impl/LabelDataProcessorServiceImpl.java +++ b/src/main/java/com/gaotao/modules/base/service/Impl/LabelDataProcessorServiceImpl.java @@ -1530,99 +1530,4 @@ public class LabelDataProcessorServiceImpl implements LabelDataProcessorService } } - /** - * 测试系统变量功能 - * 用于验证日期拼接功能的正确性 - */ - public void testSystemVariables() { - log.info("=== 系统变量功能测试开始 ==="); - - // 测试所有系统变量 - String[] testVariables = { - "CURRENT_DATE_YYYYMMDD", - "CURRENT_DATE_YYYY-MM-DD", - "CURRENT_TIME_HHMMSS", - "CURRENT_DATETIME" - }; - - for (String varName : testVariables) { - boolean isSystemVar = isSystemVariable(varName); - String value = getSystemVariableValue(varName); - log.info("系统变量测试: {} -> 是否为系统变量: {}, 值: {}", varName, isSystemVar, value); - } - - // 测试具体业务场景:P + site + YYYYMMDD + 8位流水号 - log.info("=== 测试业务场景:P + site + YYYYMMDD + 流水号 ==="); - - java.util.List businessRules = new java.util.ArrayList<>(); - - // 规则1:固定前缀 "P" - com.gaotao.modules.base.entity.LabelContentSerialRuleData rule1 = new com.gaotao.modules.base.entity.LabelContentSerialRuleData(); - rule1.setObjectName("P"); - businessRules.add(rule1); - - // 规则2:数据源字段 site - com.gaotao.modules.base.entity.LabelContentSerialRuleData rule2 = new com.gaotao.modules.base.entity.LabelContentSerialRuleData(); - rule2.setObjectName("#{site}"); - businessRules.add(rule2); - - // 规则3:当前日期 YYYYMMDD - com.gaotao.modules.base.entity.LabelContentSerialRuleData rule3 = new com.gaotao.modules.base.entity.LabelContentSerialRuleData(); - rule3.setObjectName("#{CURRENT_DATE_YYYYMMDD}"); - businessRules.add(rule3); - - // 规则4:8位流水号 - com.gaotao.modules.base.entity.LabelContentSerialRuleData rule4 = new com.gaotao.modules.base.entity.LabelContentSerialRuleData(); - rule4.setObjectName("流水号"); - businessRules.add(rule4); - - // 模拟数据源数据 - java.util.Map businessDataMap = new java.util.HashMap<>(); - businessDataMap.put("site", "SH001"); // 模拟站点数据 - - // 测试组装流水号(8位流水号) - String businessSerialNumber = assembleFullSerialNumber(businessRules, businessDataMap, "00000001"); - log.info("业务场景流水号组装结果: {}", businessSerialNumber); - - // 测试KeyInfo生成(用于区分不同条件下的流水号序列) - String businessKeyInfo = generateSerialKeyInfo(businessRules, businessDataMap); - log.info("业务场景KeyInfo生成结果: {}", businessKeyInfo); - - // 测试不同站点的情况 - businessDataMap.put("site", "BJ002"); - String anotherSerialNumber = assembleFullSerialNumber(businessRules, businessDataMap, "00000001"); - String anotherKeyInfo = generateSerialKeyInfo(businessRules, businessDataMap); - log.info("不同站点流水号组装结果: {}", anotherSerialNumber); - log.info("不同站点KeyInfo生成结果: {}", anotherKeyInfo); - - // 测试真实数据预览场景 - log.info("=== 测试真实数据预览场景 ==="); - - // 模拟真实数据预览的数据映射(包含site字段) - java.util.Map realDataMap = new java.util.HashMap<>(); - realDataMap.put("site", "SH001"); - realDataMap.put("product_code", "ABC123"); - realDataMap.put("batch_no", "B20241218"); - - // 测试replaceDataSourceFields方法是否支持系统变量 - String testText1 = "P#{site}#{CURRENT_DATE_YYYYMMDD}"; - String replacedText1 = replaceDataSourceFields(testText1, realDataMap); - log.info("真实数据预览测试1: {} -> {}", testText1, replacedText1); - - String testText2 = "#{product_code}-#{CURRENT_DATE_YYYYMMDD}-#{batch_no}"; - String replacedText2 = replaceDataSourceFields(testText2, realDataMap); - log.info("真实数据预览测试2: {} -> {}", testText2, replacedText2); - - // 测试混合场景:固定字符串 + 数据源字段 + 系统变量 - String testText3 = "PREFIX_#{site}_#{CURRENT_DATE_YYYYMMDD}_SUFFIX"; - String replacedText3 = replaceDataSourceFields(testText3, realDataMap); - log.info("真实数据预览测试3: {} -> {}", testText3, replacedText3); - - // 测试仅系统变量的场景 - String testText4 = "#{CURRENT_DATE_YYYYMMDD}"; - String replacedText4 = replaceDataSourceFields(testText4, null); // 空数据源 - log.info("真实数据预览测试4(空数据源): {} -> {}", testText4, replacedText4); - - log.info("=== 系统变量功能测试完成 ==="); - } } diff --git a/src/main/java/com/gaotao/modules/po/service/impl/PoServiceImpl.java b/src/main/java/com/gaotao/modules/po/service/impl/PoServiceImpl.java index 0dab092..967206f 100644 --- a/src/main/java/com/gaotao/modules/po/service/impl/PoServiceImpl.java +++ b/src/main/java/com/gaotao/modules/po/service/impl/PoServiceImpl.java @@ -142,7 +142,7 @@ public class PoServiceImpl extends ServiceImpl implemen List> poData = mapper.readValue(poResponse, new TypeReference<>() {}); Integer shelfLife = null; // 有效期 if (poData!=null && !poData.isEmpty()) { - shelfLife = poData.getFirst().get("shelfLife")!=null?(Integer) poData.getFirst().get("shelfLife"):null; + shelfLife = poData.getFirst().get("durabilityDays")!=null?(Integer) poData.getFirst().get("durabilityDays"):null; } SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); String transType = "CRT"; @@ -164,14 +164,15 @@ public class PoServiceImpl extends ServiceImpl implemen transHeader.setOrderRef2(inData.getOrderRef2()); transHeader.setOrderRef3(inData.getOrderRef3()); transHeader.setEnterDate(new Date()); + // 创建采购接收记录 - 在库存更新之前创建 + String receiptNo = createPoReceiptRecords(inData,shelfLife); + inData.setReceiptNo(receiptNo); if ("Y".equals(inData.getNeedHandlingUnit())) { // 创建Handling Unit相关数据 for (int i = 0; i < inData.getHandlingUnitList().size(); i++) { handlingUnitPart(inData, i, transHeader, currentUser,shelfLife); } } - // 创建采购接收记录 - 在库存更新之前创建 - createPoReceiptRecords(inData,shelfLife); // 免检更新库存 待检验的出入库记录状态为待检验 if ("N".equals(inData.getNeedCheck())) { headerService.save(transHeader); @@ -565,13 +566,12 @@ public class PoServiceImpl extends ServiceImpl implemen /** * 创建采购接收记录 */ - private void createPoReceiptRecords(TransDetailDto inData,Integer shelfLife) { + private String createPoReceiptRecords(TransDetailDto inData,Integer shelfLife) { + // 生成接收单号 + TransNoControl receiptNoControl = transNoService.getTransNo(inData.getSite(), "PR", 10); + String receiptNo = receiptNoControl.getNewTransNo(); try { SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); - // 生成接收单号 - TransNoControl receiptNoControl = transNoService.getTransNo(inData.getSite(), "PR", 10); - String receiptNo = receiptNoControl.getNewTransNo(); - // 创建采购接收单主记录 PoReceipt poReceipt = new PoReceipt(); poReceipt.setSite(inData.getSite()); @@ -773,6 +773,7 @@ public class PoServiceImpl extends ServiceImpl implemen log.error("创建采购接收记录失败,PO号: {}, 错误: {}", inData.getPoNo(), e.getMessage()); throw new XJException("创建采购接收记录失败: " + e.getMessage()); } + return receiptNo; } }