This commit is contained in:
linfso 2024-06-18 05:37:02 +08:00
parent 087d0bbc05
commit b840fec71c

View File

@ -141,7 +141,7 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
} }
public List<ScanResultItem> doScanCheck(String scanType,Map<String,Object> scanDataItem){ public List<ScanResultItem> doScanCheck(String scanType,Map<String,Object> scanDataItem) throws EmisBizError {
List<ScanResultItem> itemList = new ArrayList<>(); List<ScanResultItem> itemList = new ArrayList<>();
String billCodeInStr = (String)scanDataItem.get("billCode"); String billCodeInStr = (String)scanDataItem.get("billCode");
@ -151,7 +151,9 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
scanResultItem.setResult("fail"); scanResultItem.setResult("fail");
scanResultItem.setMessage("billCode为空"); scanResultItem.setMessage("billCode为空");
itemList.add(scanResultItem); itemList.add(scanResultItem);
return itemList; throw new EmisBizError(EmisBizErrorType.PARAM_ERROR1,"扫描单号不能为空");
// return itemList;
} }
// 开始检查数据 // 开始检查数据
@ -176,7 +178,8 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
scanResultItem.setResult("fail"); scanResultItem.setResult("fail");
scanResultItem.setMessage("运单号不存在"); scanResultItem.setMessage("运单号不存在");
itemList.add(scanResultItem); itemList.add(scanResultItem);
continue; throw new EmisBizError(EmisBizErrorType.NOT_EXISTS,"扫描单号不能为空");
// continue;
} }
// 已签收不允许扫描 // 已签收不允许扫描
@ -184,7 +187,9 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
scanResultItem.setResult("fail"); scanResultItem.setResult("fail");
scanResultItem.setMessage("已签收"); scanResultItem.setMessage("已签收");
itemList.add(scanResultItem); itemList.add(scanResultItem);
continue; throw new EmisBizError(EmisBizErrorType.EXISTS,"已签收,不允许扫描");
// continue;
} }
@ -195,7 +200,8 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
scanResultItem.setResult("fail"); scanResultItem.setResult("fail");
scanResultItem.setMessage("重复扫描"); scanResultItem.setMessage("重复扫描");
itemList.add(scanResultItem); itemList.add(scanResultItem);
continue; throw new EmisBizError(EmisBizErrorType.EXISTS,"重复扫描");
// continue;
} }
// 返回数据 // 返回数据
@ -251,39 +257,35 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
* @param scanDataItem * @param scanDataItem
* @return * @return
*/ */
public List<ScanResultItem> doScan(String scanType,Map<String,Object> scanDataItem,String dataFrom){ public List<ScanResultItem> doScan(String scanType,Map<String,Object> scanDataItem,String dataFrom) throws EmisBizError {
List<ScanResultItem> itemList = new ArrayList<>(); List<ScanResultItem> itemList = new ArrayList<>();
String billCodeInStr = (String)scanDataItem.get("billCode"); String billCodeInStr = MapUtils.getString(scanDataItem,"billCode",null);
if(StringUtils.isEmpty(billCodeInStr)){ if(StringUtils.isEmpty(billCodeInStr)){
ScanResultItem scanResultItem = new ScanResultItem(); ScanResultItem scanResultItem = new ScanResultItem();
scanResultItem.setBillCode(billCodeInStr); scanResultItem.setBillCode(billCodeInStr);
scanResultItem.setResult("fail"); scanResultItem.setResult("fail");
scanResultItem.setMessage("billCode为空"); scanResultItem.setMessage("billCode为空");
itemList.add(scanResultItem); itemList.add(scanResultItem);
return itemList; throw new EmisBizError(EmisBizErrorType.PARAM_ERROR1,"扫描单号不能为空");
// return itemList;
} }
// 开始检查数据 // 开始检查数据
String[] billCodeArr = billCodeInStr.split(","); String[] billCodeArr = billCodeInStr.split(",");
String scanDateStr=MapUtils.getString(scanDataItem,"scanDate",null);
if(scanDataItem.get("scanDate")==null){ if(StringUtils.isEmpty(scanDateStr)){
ScanResultItem scanResultItem = new ScanResultItem(); ScanResultItem scanResultItem = new ScanResultItem();
scanResultItem.setBillCode(billCodeInStr); scanResultItem.setBillCode(billCodeInStr);
scanResultItem.setResult("fail"); scanResultItem.setResult("fail");
scanResultItem.setMessage("scanDate为空"); scanResultItem.setMessage("scanDate为空");
itemList.add(scanResultItem); itemList.add(scanResultItem);
return itemList; throw new EmisBizError(EmisBizErrorType.NOT_EXISTS,"扫描时间不能为空");
// return itemList;
} }
String scanDateStr =(String)scanDataItem.get("scanDate");
Date scanDate = DateUtils.parseDate(scanDateStr);; Date scanDate = DateUtils.parseDate(scanDateStr);;
if(scanDate ==null){
scanDate = new Date();
}
for (String billCode:billCodeArr) { for (String billCode:billCodeArr) {
// 返回结果 // 原始数据返回 // 返回结果 // 原始数据返回
ScanResultItem scanResultItem = new ScanResultItem(); ScanResultItem scanResultItem = new ScanResultItem();
scanResultItem.setBillCode(billCode); scanResultItem.setBillCode(billCode);
@ -295,20 +297,17 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
scanResultItem.setResult("fail"); scanResultItem.setResult("fail");
scanResultItem.setMessage("运单号不存在"); scanResultItem.setMessage("运单号不存在");
itemList.add(scanResultItem); itemList.add(scanResultItem);
continue; throw new EmisBizError(EmisBizErrorType.NOT_EXISTS,"运单号不存在");
} }
// 已签收不允许扫描 // 已签收不允许扫描
if("1".equals(emisWaybill.getBlSign())){ if("1".equals(emisWaybill.getBlSign())){
scanResultItem.setResult("fail"); scanResultItem.setResult("fail");
scanResultItem.setMessage("已签收"); scanResultItem.setMessage("已签收,不允许再次签收");
itemList.add(scanResultItem); itemList.add(scanResultItem);
continue; throw new EmisBizError(EmisBizErrorType.EXISTS,"已签收,不允许再扫描");
} }
// 有签收记录不允许再
// 2.重复扫描 // 2.重复扫描
// 同站点,同动作,同一天不允许重复扫描 // 同站点,同动作,同一天不允许重复扫描
int scanCnt=emisTmsScanRecordMapper.checkSiteScanUnique(billCode,scanType,getCurrentUser().getOwnerSiteCode(),scanDate); int scanCnt=emisTmsScanRecordMapper.checkSiteScanUnique(billCode,scanType,getCurrentUser().getOwnerSiteCode(),scanDate);
@ -316,7 +315,7 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
scanResultItem.setResult("fail"); scanResultItem.setResult("fail");
scanResultItem.setMessage("重复扫描"); scanResultItem.setMessage("重复扫描");
itemList.add(scanResultItem); itemList.add(scanResultItem);
continue; throw new EmisBizError(EmisBizErrorType.EXISTS,"重复扫描");
} }
// 生成扫描记录并填充公共数据 // 生成扫描记录并填充公共数据
@ -326,32 +325,20 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
emisTmsScanRecord.setScanDate(scanDate); emisTmsScanRecord.setScanDate(scanDate);
// 填充特殊数据 // 填充特殊数据
try {
this.fillScanDataByScanType(emisTmsScanRecord,scanType,scanDataItem);
// 返回数据
scanResultItem.getData().put("billWeight",emisWaybill.getBillWeight());
scanResultItem.getData().put("totalVolume",emisWaybill.getTotalVolume());
scanResultItem.getData().put("parcelQty",emisWaybill.getParcelQty());
emisTmsScanRecordMapper.insertEmisTmsScanRecord(emisTmsScanRecord);
// 修改运单状态
this.changeWaybillStatus(billCode,scanType);
scanResultItem.setResult("success");
scanResultItem.setMessage("操作成功");
itemList.add(scanResultItem);
} catch (EmisBizError emisBizError) {
emisBizError.printStackTrace();
scanResultItem.setResult("fail");
scanResultItem.setMessage(emisBizError.getMessage());
itemList.add(scanResultItem);
}
this.fillScanDataByScanType(emisTmsScanRecord,scanType,scanDataItem);
// 返回数据
scanResultItem.getData().put("billWeight",emisWaybill.getBillWeight());
scanResultItem.getData().put("totalVolume",emisWaybill.getTotalVolume());
scanResultItem.getData().put("parcelQty",emisWaybill.getParcelQty());
emisTmsScanRecordMapper.insertEmisTmsScanRecord(emisTmsScanRecord);
// 修改运单状态
this.changeWaybillStatus(billCode,scanType);
scanResultItem.setResult("success");
scanResultItem.setMessage("操作成功");
itemList.add(scanResultItem);
} }
return itemList; return itemList;