md
This commit is contained in:
parent
4a25d5e8d8
commit
436bfabf91
@ -415,6 +415,48 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
|
||||
continue;
|
||||
}
|
||||
|
||||
// 到件扫描/报关扫描/清关扫描/发件扫描 - 需要支持扫描 合包条码
|
||||
if(
|
||||
scanType.equals(ScanType.ARRIVAL.opCode)
|
||||
|| scanType.equals(ScanType.DEPARTURE.opCode)
|
||||
|| scanType.equals(ScanType.CLEARANCE.opCode)
|
||||
|| scanType.equals(ScanType.DECLEARE.opCode) ){
|
||||
if(scanBillCode.startsWith("H")){
|
||||
// 判断是否是合包号
|
||||
EmisTmsPack emisTmsPack=emisTmsPackMapper.selectEmisTmsPackByPackNo(scanBillCode);
|
||||
if(emisTmsPack!=null) {
|
||||
try {
|
||||
// 合包发件扫描
|
||||
if( scanType.equals(ScanType.DEPARTURE.opCode)
|
||||
|| scanType.equals(ScanType.CLEARANCE.opCode)
|
||||
|| scanType.equals(ScanType.DECLEARE.opCode)
|
||||
)
|
||||
{
|
||||
return doPackScanSendDoing(scanType, itemList, emisTmsPack, scanDataItem, scanDate);
|
||||
}
|
||||
// 合包到件扫描
|
||||
else if(scanType.equals(ScanType.ARRIVAL.opCode))
|
||||
{
|
||||
return doPackScanArrivalDoing(scanType, itemList, emisTmsPack, scanDataItem, scanDate);
|
||||
}
|
||||
} catch (EmisBizError emisBizError) {
|
||||
emisBizError.printStackTrace();
|
||||
// 返回原始数据返回
|
||||
ScanResultItem scanResultItem = new ScanResultItem();
|
||||
scanResultItem.setBillCode(billCodeInStr);
|
||||
scanResultItem.getData().putAll(scanDataItem);
|
||||
scanResultItem.setMessage(emisBizError.getMessage());
|
||||
scanResultItem.setErrorCode(emisBizError.getErrorCode());
|
||||
itemList.add(scanResultItem);
|
||||
return itemList;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 返回原始数据返回
|
||||
ScanResultItem scanResultItem = new ScanResultItem();
|
||||
scanResultItem.setBillCode(scanBillCode);
|
||||
@ -970,6 +1012,195 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
|
||||
return itemList;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 合包中途发件扫描
|
||||
* @param itemList
|
||||
* @param emisTmsPack
|
||||
* @param scanDataItem
|
||||
* @param scanDate
|
||||
* @return
|
||||
* @throws EmisBizError
|
||||
*/
|
||||
public List<ScanResultItem> doPackScanSendDoing(String scanType,List<ScanResultItem> itemList, EmisTmsPack emisTmsPack,Map<String,Object> scanDataItem,Date scanDate) throws EmisBizError {
|
||||
|
||||
// 检查数据 合包号,重量
|
||||
String packNo=emisTmsPack.getPackNo();
|
||||
String scanWeightStr = MapUtils.getString(scanDataItem,"scanWeight",null);
|
||||
|
||||
String preOrNextStationCode = MapUtils.getString(scanDataItem,"preOrNextStationCode",null);
|
||||
if(StringUtils.isEmpty(preOrNextStationCode)) {
|
||||
throw new EmisBizError(EmisBizErrorType.SCAN_PARAM_ERROR,"下一站必填");
|
||||
}
|
||||
|
||||
// 获取合包内件
|
||||
List<EmisTmsPackDtl> listPackDtl=emisTmsPackDtlMapper.selectPackDtlListByPackNo(packNo);
|
||||
// 内件处理
|
||||
for (EmisTmsPackDtl emisTmsPackDtl : listPackDtl) {
|
||||
// 返回原始数据返回
|
||||
ScanResultItem scanResultItem = new ScanResultItem();
|
||||
scanResultItem.setBillCode(emisTmsPackDtl.getBillCode());
|
||||
scanResultItem.getData().putAll(scanDataItem);
|
||||
|
||||
// 获取主单号
|
||||
String mainBillCode = emisTmsPackDtl.getMainBillCode();
|
||||
|
||||
// 已签收不允许扫描
|
||||
boolean isSign = checkWaybillIsSign(mainBillCode);
|
||||
if (isSign) {
|
||||
scanResultItem.setResult("fail");
|
||||
scanResultItem.setMessage("已签收");
|
||||
scanResultItem.setErrorCode(EmisBizErrorType.SCAN_HAS_SIGN.errorCode);
|
||||
itemList.add(scanResultItem);
|
||||
return itemList;
|
||||
}
|
||||
|
||||
// 获取订单数据
|
||||
EmisWaybill emisWaybill = getWaybillByBillCode(mainBillCode);
|
||||
|
||||
// 货物不在当前网点不允许扫描
|
||||
if(!getCurrentUser().getOwnerSiteCode().equals(emisWaybill.getCurrentSiteCode())){
|
||||
scanResultItem.setResult("fail");
|
||||
scanResultItem.setMessage("运单不在当前网点");
|
||||
scanResultItem.setErrorCode(EmisBizErrorType.SCAN_HAS_PACK.errorCode);
|
||||
itemList.add(scanResultItem);
|
||||
return itemList;
|
||||
}
|
||||
|
||||
// 生成扫描记录
|
||||
EmisTmsScanRecord emisTmsScanRecord = new EmisTmsScanRecord();
|
||||
emisTmsScanRecord.setBillCode(emisTmsPackDtl.getBillCode());
|
||||
emisTmsScanRecord.setMainBillCode(emisWaybill.getBillCode());
|
||||
emisTmsScanRecord.setOrderSn(emisWaybill.getOrderSn());
|
||||
emisTmsScanRecord.setWeight(emisWaybill.getBillWeight());
|
||||
|
||||
// 获取下一网点
|
||||
EmisSite site=getSiteByCode(preOrNextStationCode);
|
||||
emisTmsScanRecord.setPreOrNextStationCode(preOrNextStationCode);
|
||||
emisTmsScanRecord.setPreOrNextStation(site.getSiteName());
|
||||
emisTmsScanRecord.setPreOrNextStationPhone(site.getPhone());
|
||||
|
||||
emisTmsScanRecord.setScanType(scanType);
|
||||
emisTmsScanRecord.setScanDate(scanDate);
|
||||
emisTmsScanRecord.setBagNo(packNo);
|
||||
|
||||
// 填充公共数据
|
||||
this.fillBillBaseData(emisTmsScanRecord);
|
||||
|
||||
emisTmsScanRecordMapper.insertEmisTmsScanRecord(emisTmsScanRecord);
|
||||
|
||||
// 下一站点
|
||||
changeWaybillNextSite(emisTmsScanRecord.getMainBillCode(),preOrNextStationCode);
|
||||
|
||||
// 修改主运单状态,子单做合包扫描,主单不变化
|
||||
// this.changeWaybillStatus(mainBillCode, ScanType.CO_PACKING.opCode);
|
||||
scanResultItem.getData().put("billWeight", emisWaybill.getBillWeight());
|
||||
scanResultItem.getData().put("totalVolume", emisWaybill.getTotalVolume());
|
||||
scanResultItem.getData().put("parcelQty", emisWaybill.getParcelQty());
|
||||
scanResultItem.setResult("success");
|
||||
scanResultItem.setErrorCode(EmisBizErrorType.SUCCESS.errorCode);
|
||||
scanResultItem.setMessage("操作成功");
|
||||
itemList.add(scanResultItem);
|
||||
|
||||
}
|
||||
|
||||
// 更新合包信息
|
||||
emisTmsPack.setPackNo(packNo);
|
||||
emisTmsPack.setNextSiteCode(preOrNextStationCode);
|
||||
emisTmsPackMapper.updateEmisTmsPackByPackNo(emisTmsPack);
|
||||
|
||||
return itemList;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 合包中途到件扫描
|
||||
* @param itemList
|
||||
* @param emisTmsPack
|
||||
* @param scanDataItem
|
||||
* @param scanDate
|
||||
* @return
|
||||
* @throws EmisBizError
|
||||
*/
|
||||
public List<ScanResultItem> doPackScanArrivalDoing(String scanType,List<ScanResultItem> itemList, EmisTmsPack emisTmsPack,Map<String,Object> scanDataItem,Date scanDate) throws EmisBizError {
|
||||
|
||||
// 检查数据 合包号,重量
|
||||
String packNo=emisTmsPack.getPackNo();
|
||||
String scanWeightStr = MapUtils.getString(scanDataItem,"scanWeight",null);
|
||||
|
||||
// 获取合包内件
|
||||
List<EmisTmsPackDtl> listPackDtl=emisTmsPackDtlMapper.selectPackDtlListByPackNo(packNo);
|
||||
// 内件处理
|
||||
for (EmisTmsPackDtl emisTmsPackDtl : listPackDtl) {
|
||||
// 返回原始数据返回
|
||||
ScanResultItem scanResultItem = new ScanResultItem();
|
||||
scanResultItem.setBillCode(emisTmsPackDtl.getBillCode());
|
||||
scanResultItem.getData().putAll(scanDataItem);
|
||||
|
||||
// 获取主单号
|
||||
String mainBillCode = emisTmsPackDtl.getMainBillCode();
|
||||
|
||||
// 已签收不允许扫描
|
||||
boolean isSign = checkWaybillIsSign(mainBillCode);
|
||||
if (isSign) {
|
||||
scanResultItem.setResult("fail");
|
||||
scanResultItem.setMessage("已签收");
|
||||
scanResultItem.setErrorCode(EmisBizErrorType.SCAN_HAS_SIGN.errorCode);
|
||||
itemList.add(scanResultItem);
|
||||
return itemList;
|
||||
}
|
||||
|
||||
// 获取订单数据
|
||||
EmisWaybill emisWaybill = getWaybillByBillCode(mainBillCode);
|
||||
|
||||
// 生成扫描记录
|
||||
EmisTmsScanRecord emisTmsScanRecord = new EmisTmsScanRecord();
|
||||
|
||||
if(!StringUtils.isEmpty(emisWaybill.getCurrentSiteCode())) {
|
||||
EmisSite site = getSiteByCode(emisWaybill.getCurrentSiteCode());
|
||||
// 获取上一站
|
||||
emisTmsScanRecord.setPreOrNextStationCode(site.getSiteCode());
|
||||
emisTmsScanRecord.setPreOrNextStation(site.getSiteName());
|
||||
emisTmsScanRecord.setPreOrNextStationPhone(site.getPhone());
|
||||
}
|
||||
|
||||
emisTmsScanRecord.setBillCode(emisTmsPackDtl.getBillCode());
|
||||
emisTmsScanRecord.setMainBillCode(emisWaybill.getBillCode());
|
||||
emisTmsScanRecord.setOrderSn(emisWaybill.getOrderSn());
|
||||
emisTmsScanRecord.setWeight(emisWaybill.getBillWeight());
|
||||
|
||||
emisTmsScanRecord.setScanType(scanType);
|
||||
emisTmsScanRecord.setScanDate(scanDate);
|
||||
emisTmsScanRecord.setBagNo(packNo);
|
||||
|
||||
// 填充公共数据
|
||||
this.fillBillBaseData(emisTmsScanRecord);
|
||||
|
||||
emisTmsScanRecordMapper.insertEmisTmsScanRecord(emisTmsScanRecord);
|
||||
|
||||
// 改变当前站点
|
||||
changeWaybillCurrentSite(emisWaybill.getBillCode(),emisTmsScanRecord.getScanSiteCode());
|
||||
|
||||
// 修改主运单状态,子单做合包扫描,主单不变化
|
||||
// this.changeWaybillStatus(mainBillCode, ScanType.CO_PACKING.opCode);
|
||||
scanResultItem.getData().put("billWeight", emisWaybill.getBillWeight());
|
||||
scanResultItem.getData().put("totalVolume", emisWaybill.getTotalVolume());
|
||||
scanResultItem.getData().put("parcelQty", emisWaybill.getParcelQty());
|
||||
scanResultItem.setResult("success");
|
||||
scanResultItem.setErrorCode(EmisBizErrorType.SUCCESS.errorCode);
|
||||
scanResultItem.setMessage("操作成功");
|
||||
itemList.add(scanResultItem);
|
||||
|
||||
}
|
||||
|
||||
// 到件不用更新合包信息
|
||||
// emisTmsPack.setPackNo(packNo);
|
||||
// emisTmsPackMapper.updateEmisTmsPackByPackNo(emisTmsPack);
|
||||
|
||||
return itemList;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 拆包扫描
|
||||
* @param itemList
|
||||
|
||||
Loading…
Reference in New Issue
Block a user