demand: TMS系统-运输管理-漏组批次订单全量扫描/实时扫描入库-针对从未组批次类型数据,起始网点编码、下一网点编码取运单表对应数据 TMS系统-小程序/OMS/TMS/APP系统下单/批量导入下单-寄件国家是缅甸和柬埔寨的自动获取的运单号/子单号 7080开头 不带T

committer: heyu
This commit is contained in:
aike 2025-10-21 10:51:27 +08:00
parent 19a816afef
commit 4469eaf8fa
2 changed files with 34 additions and 0 deletions

View File

@ -4975,6 +4975,8 @@ public class EmisBaseService {
miss.setCreateBy("system");
miss.setCreateTime(now);
miss.setCreateSite("88888");
miss.setStartSiteCode(waybill.getStartSiteCode());
miss.setNextSiteCode(waybill.getDestinationCode());
return miss;
}

View File

@ -3181,6 +3181,9 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb
// 校验产品类型与线路是否匹配
checkLineWithProd(emisWaybillSave);
// 当寄件国家为0095或0855时,去除billCode和billCodeSub中的第一个T
modifyBillCode(emisWaybillSave);
// 子单号做扣减
if ("1".equals(emisWaybillSave.getBlGenSubbill())) {
Integer subBillCount = emisElectronicSitePagService.getTotalAvailablePagCount(emisWaybillSave.getSendSiteCode(), "T7080", "1002");
@ -3354,6 +3357,32 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb
}
}
private static void modifyBillCode(EmisWaybill emisWaybillSave) {
if ("0095".equals(emisWaybillSave.getSendCountry()) || "0855".equals(emisWaybillSave.getSendCountry())) {
// 处理主单号,去除第一个T
if (emisWaybillSave.getBillCode() != null && emisWaybillSave.getBillCode().startsWith("T")) {
emisWaybillSave.setBillCode(emisWaybillSave.getBillCode().substring(1));
}
// 处理子单号,对每个用逗号分隔的单号去除第一个T
if (emisWaybillSave.getBillCodeSub() != null && !emisWaybillSave.getBillCodeSub().isEmpty()) {
String[] subBillCodes = emisWaybillSave.getBillCodeSub().split(",");
StringBuilder processedSubBillCodes = new StringBuilder();
for (int i = 0; i < subBillCodes.length; i++) {
String subBillCode = subBillCodes[i].trim();
if (subBillCode.startsWith("T")) {
subBillCode = subBillCode.substring(1);
}
if (i > 0) {
processedSubBillCodes.append(",");
}
processedSubBillCodes.append(subBillCode);
}
emisWaybillSave.setBillCodeSub(processedSubBillCodes.toString());
}
}
}
public void checkCountry(EmisWaybill emisWaybillSave) throws EmisBizError {
EmisTransLine emisTransLine = new EmisTransLine();
emisTransLine.setLineCode(emisWaybillSave.getTransLineType());
@ -3416,6 +3445,9 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb
*/
private void addNewWaybillByOms(EmisWaybill emisWaybillSave) throws EmisBizError {
// 当寄件国家为0095或0855时,去除billCode和billCodeSub中的第一个T
modifyBillCode(emisWaybillSave);
// 设定为客户下单,下单时间为当前时间
this.resetOmsWaybillData(emisWaybillSave);