From e29794bc2735ead961df954916b1907e45871a7b Mon Sep 17 00:00:00 2001 From: linfso Date: Fri, 21 Jun 2024 10:10:36 +0800 Subject: [PATCH] md --- .../erp/emis/mapper/EmisTmsPackDtlMapper.java | 2 + .../erp/emis/mapper/EmisWaybillMapper.java | 6 ++- .../erp/emis/service/EmisBaseService.java | 38 +++++++++++++++++-- .../impl/EmisTmsScanRecordServiceImpl.java | 23 +++++++---- .../resources/mapper/EmisTmsPackDtlMapper.xml | 6 +++ .../resources/mapper/EmisWaybillMapper.xml | 9 ++++- 6 files changed, 72 insertions(+), 12 deletions(-) diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsPackDtlMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsPackDtlMapper.java index 65525c621..06bbc8e52 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsPackDtlMapper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsPackDtlMapper.java @@ -98,4 +98,6 @@ public interface EmisTmsPackDtlMapper extends BaseMapper * @return */ public int updateScanStatus(EmisTmsPackDtl emisTmsPackDtl); + + public int deleteEmisTmsPackDtlByBillCode(String billCode); } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillMapper.java index 80343b7d4..2859386d0 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillMapper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillMapper.java @@ -116,7 +116,11 @@ public interface EmisWaybillMapper extends BaseMapper // 转件登记 public int updateTransferInfo(EmisWaybill emisWaybill); - public int checkWaybillIsExists(@Param("billCode")String billCode,@Param("childSeqNo") String childSeqNo); + // 检查子单是否存在 + public int checkSubBillIsExists(@Param("billCode")String billCode,@Param("subNum") Integer subNum); + + // 检查主单是否存在 + public int checkWaybillIsExists(@Param("billCode")String billCode); public int checkWaybillIsSign(@Param("billCode")String billCode); 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 253254176..607c16a4b 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 @@ -173,6 +173,7 @@ public class EmisBaseService { public String getMainBillCode(String billCode){ // 判断是否是子单 String mainBillCode = ""; + String subSeqNo=""; if(billCode.startsWith("T7080") && billCode.length()>14 ){ mainBillCode=billCode.substring(0,14); } @@ -1399,12 +1400,43 @@ public class EmisBaseService { /** - * 检查运单是否存在 + * 检查运单是否存在,包含子单检查 * @param billCode * @return */ - public boolean checkWaybillIsExists(String billCode,Integer childNum){ - return emisWaybillMapper.checkWaybillIsExists(billCode)==1; + public boolean checkWaybillIsExists(String billCode){ + // 判断是否是子单 + String mainBillCode = ""; + String subNumStr=""; + if(billCode.startsWith("T7080") && billCode.length()>14 ){ + mainBillCode=billCode.substring(0,14); + } + else{ + // 不是探路主单号是否 + // 查询数据看下是否主单,如果不是则同样剔除4位 + boolean isExists=emisWaybillMapper.checkWaybillIsExists(billCode)==1; + if(isExists){ + mainBillCode=billCode; + return true; + }else{ + + if(billCode.length()>4){ + int len=billCode.length(); + subNumStr=billCode.substring(len-4); + + if(Integer.valueOf(subNumStr)<=0){ + return false; + } + } + else{ + return false; + } + + } + } + + Integer subNum=Integer.valueOf(subNumStr); + return emisWaybillMapper.checkSubBillIsExists(mainBillCode,subNum)==1; } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsScanRecordServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsScanRecordServiceImpl.java index 1a09fea16..652851313 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsScanRecordServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsScanRecordServiceImpl.java @@ -499,11 +499,8 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm scanResultItem.setBillCode(scanBillCode); scanResultItem.getData().putAll(scanDataItem); - // 获取主单号 - String mainBillCode = getMainBillCode(scanBillCode); - - // 判断是主单还是子单 - boolean isExists = checkWaybillIsExists(mainBillCode); + // 判断单是否存在 + boolean isExists = checkWaybillIsExists(scanBillCode); // 检查运单号是否存在 if (!isExists) { scanResultItem.setResult("fail"); @@ -512,6 +509,8 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm throw new EmisBizError(EmisBizErrorType.NOT_EXISTS, "运单不存在"); } + // 获取主单号 + String mainBillCode = getMainBillCode(scanBillCode); // 已签收不允许扫描 boolean isSign = checkWaybillIsSign(mainBillCode); if (isSign) { @@ -530,6 +529,7 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm throw new EmisBizError(EmisBizErrorType.EXISTS, "[" + scanBillCode + "]已组包"); } + / // 获取订单数据 EmisWaybill emisWaybill = getWaybillByBillCode(mainBillCode); // 如果是缅甸允许主单扫描,其他都不允许 @@ -587,6 +587,9 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm scanResultItem.setResult("success"); scanResultItem.setMessage("操作成功"); itemList.add(scanResultItem); + if(!countryMap.containsKey(emisWaybill.getReceiveCountry())) { + countryMap.put(emisWaybill.getReceiveCountry(), 1); + } } // 更新合包总重量 @@ -600,7 +603,12 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm emisTmsPack.setSendStiteCode(getCurrentUser().getOwnerSiteCode()); emisTmsPack.setNextSiteCode(preOrNextStationCode); emisTmsPack.setPackDate(scanDate); - emisTmsPack.setPackName(getCurrentUser().getOwnerSiteName()+"组包:"+packNo); + emisTmsPack.setPackName("["+getCurrentUser().getOwnerSiteName()+"]组包:"+packNo); + + if(countryMap.size()>1){ + // 不同国家需要拆 + emisTmsPack.setBlUnpack("1"); + } int eCnt=emisTmsPackMapper.checkUnique(emisTmsPack); if(eCnt>0){ @@ -666,10 +674,11 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm itemList.add(scanResultItem); } - // 更新合包为拆包状态 + // 更新合包为拆包状态,整包拆包 EmisTmsPack emisTmsPack = new EmisTmsPack(); emisTmsPack.setPackNo(packNo); emisTmsPack.setPackStatus("2"); + emisTmsPack.setTotalParcelQty(0); emisTmsPackMapper.updateEmisTmsPack(emisTmsPack); diff --git a/emis-biz/src/main/resources/mapper/EmisTmsPackDtlMapper.xml b/emis-biz/src/main/resources/mapper/EmisTmsPackDtlMapper.xml index 8f9d31989..0705a0503 100644 --- a/emis-biz/src/main/resources/mapper/EmisTmsPackDtlMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisTmsPackDtlMapper.xml @@ -187,6 +187,7 @@ remark = #{remark}, update_by = #{updateBy}, update_site = #{updateSite}, + del_flag = #{delFlag}, where bill_code = #{billCode} and pack_no = #{packNo} @@ -201,4 +202,9 @@ #{id} + + + + update from emis_tms_pack_dtl where id = #{id} + \ No newline at end of file diff --git a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml index 53d7bdb73..5080b4bd7 100644 --- a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml @@ -232,7 +232,7 @@ group by waybill_status - + + + +