diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsScanRecordMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsScanRecordMapper.java index e3e994e1c..e1427a074 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsScanRecordMapper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsScanRecordMapper.java @@ -79,7 +79,7 @@ public interface EmisTmsScanRecordMapper extends BaseMapper // and scan_site_code=#{scanSiteCode} // and to_days(scan_date) = to_days(#{scanDate}) - public int checkSiteScanUnique(@Param("billCode")String billCode, @Param("scanType")String scanType, @Param("scanSiteCode")String scanSiteCode, @Param("scanDate")Date scanDate); + public int checkSiteScanUnique(@Param("billCode")String billCode, @Param("scanType")String scanType, @Param("scanSiteCode")String scanSiteCode); public List selectTraceListByBillCode(String billCode); 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 d003c61fc..e65b0b61d 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 @@ -152,18 +152,7 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm // 检查数据 // 扫描时间,扫描单号必填 - String scanDateStr=MapUtils.getString(scanDataItem,"scanDate",null); String billCodeInStr = MapUtils.getString(scanDataItem,"billCode",null); - - if(StringUtils.isEmpty(scanDateStr)){ - ScanResultItem scanResultItem = new ScanResultItem(); - scanResultItem.setBillCode(billCodeInStr); - scanResultItem.setResult("fail"); - scanResultItem.setMessage("scanDate为空"); - itemList.add(scanResultItem); - throw new EmisBizError(EmisBizErrorType.NOT_EXISTS,"扫描时间必填"); - } - if(StringUtils.isEmpty(billCodeInStr)){ ScanResultItem scanResultItem = new ScanResultItem(); scanResultItem.setBillCode(billCodeInStr); @@ -173,14 +162,9 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm throw new EmisBizError(EmisBizErrorType.PARAM_ERROR1,"扫描单号必填"); } - // 开始检查数据 + billCodeInStr=WaybillHelper.formatQueryValue(billCodeInStr); String[] billCodeArr = billCodeInStr.split(","); - Date scanDate = null; - if(scanDateStr.contains("Z")){ - scanDateStr=scanDateStr.replace("T"," "); - scanDateStr=scanDateStr.substring(0,scanDateStr.lastIndexOf(".")); - } - scanDate = DateUtils.parseDate(scanDateStr); + // 合包和拆包需单独处理 if(ScanType.CO_PACKING.opCode.equals(scanType)){ @@ -194,6 +178,10 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm else { for (String scanBillCode : billCodeArr) { + if(StringUtils.isEmpty(scanBillCode)){ + continue; + } + // 原始数据返回 ScanResultItem scanResultItem = new ScanResultItem(); scanResultItem.setBillCode(scanBillCode); @@ -224,7 +212,7 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm // 重复扫描 // 同站点,同动作,同一天不允许重复扫描 - int scanCnt = emisTmsScanRecordMapper.checkSiteScanUnique(scanBillCode, scanType, getCurrentUser().getOwnerSiteCode(), scanDate); + int scanCnt = emisTmsScanRecordMapper.checkSiteScanUnique(scanBillCode, scanType, getCurrentUser().getOwnerSiteCode()); if (scanCnt > 0) { scanResultItem.setResult("fail"); scanResultItem.setMessage("单号[" + scanBillCode + "]重复扫描"); @@ -287,7 +275,9 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm throw new EmisBizError(EmisBizErrorType.PARAM_ERROR1,"扫描单号必填"); } + billCodeInStr=WaybillHelper.formatQueryValue(billCodeInStr); String[] billCodeArr = billCodeInStr.split(","); + Date scanDate = null; if(scanDateStr.contains("Z")){ scanDateStr=scanDateStr.replace("T"," "); @@ -334,7 +324,7 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm // 重复扫描 // 同站点,同动作,同一天不允许重复扫描 - int scanCnt = emisTmsScanRecordMapper.checkSiteScanUnique(scanBillCode, scanType, getCurrentUser().getOwnerSiteCode(), scanDate); + int scanCnt = emisTmsScanRecordMapper.checkSiteScanUnique(scanBillCode, scanType, getCurrentUser().getOwnerSiteCode()); if (scanCnt > 0) { scanResultItem.setResult("fail"); scanResultItem.setMessage("单号[" + scanBillCode + "]重复扫描"); diff --git a/emis-biz/src/main/resources/mapper/EmisTmsScanRecordMapper.xml b/emis-biz/src/main/resources/mapper/EmisTmsScanRecordMapper.xml index ce2c30faf..5e54d2bd3 100644 --- a/emis-biz/src/main/resources/mapper/EmisTmsScanRecordMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisTmsScanRecordMapper.xml @@ -193,7 +193,7 @@ select count(1) from emis_tms_scan_record where del_flag='0' and bill_code = #{billCode} and scan_type=#{scanType} and scan_site_code=#{scanSiteCode} - and to_days(scan_date) = to_days(#{scanDate}) + and to_days(create_time) = to_days(now()) limit 1