diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java index b40ac351a..e40f385ce 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java @@ -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; } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java index 30007022b..ab193978f 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java @@ -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);