demand: 漏组批次扫描寄件网点为无锡、柯桥、南京时多个网点可互换
committer: heyu
This commit is contained in:
parent
da189a7ef8
commit
047bba7d4a
@ -4113,7 +4113,9 @@ public class EmisBaseService {
|
||||
|
||||
// 添加所有子节点到父节点的children列表中
|
||||
for (EmisTransPlanRule child : children) {
|
||||
if (!parent.getChildren().contains(child)) {
|
||||
String siteCode1 = child.getStartSiteCode() + "," + child.getNextSiteCode();
|
||||
String siteCode2 = parent.getStartSiteCode() + "," + parent.getNextSiteCode();
|
||||
if (!parent.getChildren().contains(child) && !compareSiteCodes(siteCode1, siteCode2)) {
|
||||
parent.getChildren().add(child);
|
||||
}
|
||||
}
|
||||
@ -4582,16 +4584,34 @@ public class EmisBaseService {
|
||||
private boolean checkBranchMatch(List<EmisTransPlanRule> ruleList, List<EmisTmsSiteBatch> waybillBatches,
|
||||
EmisWaybill waybill, List<EmisTmsSiteBatchMiss> missRecords) {
|
||||
// 根据waybill的startSiteCode或sendSiteCode过滤ruleList
|
||||
String sendSiteCode = waybill.getSendSiteCode();
|
||||
String startSiteCode = waybill.getStartSiteCode();
|
||||
List<EmisTransPlanRule> filteredRuleList;
|
||||
if (StringUtils.isNotBlank(waybill.getStartSiteCode())) {
|
||||
if ("51000".equals(sendSiteCode) || "51200".equals(sendSiteCode)) {
|
||||
filteredRuleList = ruleList.stream()
|
||||
.filter(rule -> StringUtils.equals(rule.getStartSiteCode(), waybill.getStartSiteCode()))
|
||||
.filter(rule -> "51000".equals(rule.getStartSiteCode())
|
||||
|| "51200".equals(rule.getStartSiteCode()))
|
||||
.collect(Collectors.toList()); // 无锡,张家港
|
||||
} else if ("57502".equals(sendSiteCode) || "57501".equals(sendSiteCode) || "57100".equals(sendSiteCode)) {
|
||||
filteredRuleList = ruleList.stream()
|
||||
.filter(rule -> "57502".equals(rule.getStartSiteCode())
|
||||
|| "57501".equals(rule.getStartSiteCode()) || "57100".equals(rule.getStartSiteCode()))
|
||||
.collect(Collectors.toList()); // 柯桥市场部、柯桥分拨中心、杭州
|
||||
} else if ("25001".equals(sendSiteCode) || "25000".equals(sendSiteCode)) {
|
||||
filteredRuleList = ruleList.stream()
|
||||
.filter(rule -> "25001".equals(rule.getStartSiteCode())
|
||||
|| "25000".equals(rule.getStartSiteCode()))
|
||||
.collect(Collectors.toList()); // 南京市场部、南京分拨中心
|
||||
} else if (StringUtils.isNotBlank(startSiteCode)) {
|
||||
filteredRuleList = ruleList.stream()
|
||||
.filter(rule -> StringUtils.equals(rule.getStartSiteCode(), startSiteCode))
|
||||
.collect(Collectors.toList());
|
||||
} else {
|
||||
filteredRuleList = ruleList.stream()
|
||||
.filter(rule -> StringUtils.equals(rule.getStartSiteCode(), waybill.getSendSiteCode()))
|
||||
.filter(rule -> StringUtils.equals(rule.getStartSiteCode(), sendSiteCode))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
ruleList = filteredRuleList;
|
||||
// 检查当前节点是否匹配
|
||||
boolean allNodeMatched = false;
|
||||
@ -4659,6 +4679,26 @@ public class EmisBaseService {
|
||||
return suppliers1.equals(suppliers2);
|
||||
}
|
||||
|
||||
/**
|
||||
* 比较两个网点代码字符串是否包含相同的网点(忽略顺序)
|
||||
*
|
||||
* @param siteCode1 第一个网点代码字符串
|
||||
* @param siteCode2 第二个网点代码字符串
|
||||
* @return 如果包含相同的网点返回true,否则返回false
|
||||
*/
|
||||
private boolean compareSiteCodes(String siteCode1, String siteCode2) {
|
||||
if (siteCode1 == null || siteCode2 == null) {
|
||||
return siteCode1 == siteCode2;
|
||||
}
|
||||
Set<String> siteCodes1 = Arrays.stream(siteCode1.split(","))
|
||||
.map(String::trim)
|
||||
.collect(Collectors.toSet());
|
||||
Set<String> siteCodes2 = Arrays.stream(siteCode2.split(","))
|
||||
.map(String::trim)
|
||||
.collect(Collectors.toSet());
|
||||
return siteCodes1.equals(siteCodes2);
|
||||
}
|
||||
|
||||
private boolean checkRule(EmisTransPlanRule rule, List<EmisTmsSiteBatch> waybillBatches,
|
||||
List<EmisTransPlanRule> list) {
|
||||
// 检查当前节点是否匹配
|
||||
|
||||
Loading…
Reference in New Issue
Block a user