From 152231b26712a5aa96f4f10cf139e15785661940 Mon Sep 17 00:00:00 2001 From: linfso Date: Wed, 19 Jun 2024 09:43:57 +0800 Subject: [PATCH] md --- .../impl/EmisTmsScanRecordServiceImpl.java | 41 +++++++++++-------- 1 file changed, 24 insertions(+), 17 deletions(-) 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 8727aaf09..735e9d136 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 @@ -168,46 +168,50 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm // 开始检查数据 String[] billCodeArr = billCodeInStr.split(","); - for (String billCode:billCodeArr) { + for (String scanBillCode:billCodeArr) { - // 返回结果 // 原始数据返回 + // 原始数据返回 ScanResultItem scanResultItem = new ScanResultItem(); - scanResultItem.setBillCode(billCode); + scanResultItem.setBillCode(scanBillCode); scanResultItem.getData().putAll(scanDataItem); - // 检查 - EmisWaybill emisWaybill = getWaybillByBillCode(billCode); - if(emisWaybill==null){ + // 获取主单号 + String mainBillCode=getMainBillCode(scanBillCode); + + // 判断是主单还是子单 + boolean isExists=checkWaybillIsExists(mainBillCode); + // 检查运单号是否存在 + if(!isExists){ scanResultItem.setResult("fail"); scanResultItem.setMessage("运单号不存在"); itemList.add(scanResultItem); - throw new EmisBizError(EmisBizErrorType.NOT_EXISTS,"扫描单号不能为空"); -// continue; + throw new EmisBizError(EmisBizErrorType.NOT_EXISTS,"运单号不存在"); } // 已签收不允许扫描 - if("1".equals(emisWaybill.getBlSign())){ + boolean isSign=checkWaybillIsSign(mainBillCode); + if(isSign){ scanResultItem.setResult("fail"); - scanResultItem.setMessage("已签收"); + scanResultItem.setMessage("运单已签收"); itemList.add(scanResultItem); - throw new EmisBizError(EmisBizErrorType.EXISTS,"已签收,不允许扫描"); - -// continue; + throw new EmisBizError(EmisBizErrorType.EXISTS,"运单已签收"); } // 重复扫描 // 同站点,同动作,同一天不允许重复扫描 - int scanCnt=emisTmsScanRecordMapper.checkSiteScanUnique(billCode,scanType,getCurrentUser().getOwnerSiteCode(),scanDate); + int scanCnt=emisTmsScanRecordMapper.checkSiteScanUnique(scanBillCode,scanType,getCurrentUser().getOwnerSiteCode(),scanDate); if(scanCnt>0){ scanResultItem.setResult("fail"); - scanResultItem.setMessage("单号["+billCode+"]重复扫描"); + scanResultItem.setMessage("单号["+scanBillCode+"]重复扫描"); itemList.add(scanResultItem); String scanTypeLabel=DictUtils.getDictLabel("emis_scan_type",scanType); - throw new EmisBizError(EmisBizErrorType.EXISTS,""+billCode+"已["+scanTypeLabel+"]"); + throw new EmisBizError(EmisBizErrorType.EXISTS,""+scanBillCode+"已["+scanTypeLabel+"]"); // continue; } + EmisWaybill emisWaybill = getWaybillByBillCode(mainBillCode); + // 返回数据 scanResultItem.getData().put("billWeight",emisWaybill.getBillWeight()); scanResultItem.getData().put("totalVolume",emisWaybill.getTotalVolume()); @@ -287,7 +291,6 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm throw new EmisBizError(EmisBizErrorType.EXISTS,"运单已签收"); } - EmisWaybill emisWaybill = getWaybillByBillCode(mainBillCode); // 重复扫描 // 同站点,同动作,同一天不允许重复扫描 int scanCnt=emisTmsScanRecordMapper.checkSiteScanUnique(scanBillCode,scanType,getCurrentUser().getOwnerSiteCode(),scanDate); @@ -300,11 +303,15 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm throw new EmisBizError(EmisBizErrorType.EXISTS,""+scanBillCode+"已["+scanTypeLabel+"]"); } + + // 生成扫描记录并填充公共数据 EmisTmsScanRecord emisTmsScanRecord=new EmisTmsScanRecord(); // 填充扫描单号 emisTmsScanRecord.setBillCode(scanBillCode); + EmisWaybill emisWaybill = getWaybillByBillCode(mainBillCode); + // 填充运单基础数据 this.fillBillBaseData(emisTmsScanRecord,mainBillCode,emisWaybill);