|
|
@ -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<com.gaotao.modules.base.entity.LabelContentSerialRuleData> 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<String, Object> 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<String, Object> 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("=== 系统变量功能测试完成 ==="); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |