md
This commit is contained in:
parent
93c53e8f73
commit
689e3f39c6
@ -9,12 +9,16 @@ public enum EmisBizErrorType {
|
||||
0000:业务成功
|
||||
9999:业务失败
|
||||
|
||||
扫描错误错误对照:
|
||||
扫描错误对照:
|
||||
------------------
|
||||
E601:参数错误
|
||||
E602:运单不存在
|
||||
E603:已签收
|
||||
E604:重复扫描
|
||||
E603:重复扫描
|
||||
E604:已签收
|
||||
E605:已组包
|
||||
E606:不允许操作
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
@ -34,9 +38,10 @@ public enum EmisBizErrorType {
|
||||
SCAN_PARAM_ERROR("E601","参数错误"),
|
||||
SCAN_NO_EXISTS("E602","运单不存在"),
|
||||
SCAN_REPEAT("E603","重复扫描"),
|
||||
SCAN_NO_ALLOW("E604","不允许操作"),
|
||||
SCAN_HAS_SIGN("E605","已签收"),
|
||||
SCAN_HAS_PACK("E606","已组包"),
|
||||
SCAN_HAS_SIGN("E604","已签收"),
|
||||
SCAN_HAS_PACK("E605","已组包"),
|
||||
SCAN_NO_ALLOW("E606","不允许操作"),
|
||||
|
||||
|
||||
BILL_LOCK("E901", "已锁定"),
|
||||
NOT_EXISTS("E902","不存在"),
|
||||
|
||||
@ -162,7 +162,6 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
|
||||
scanResultItem.setMessage("扫描单号必填");
|
||||
itemList.add(scanResultItem);
|
||||
return itemList;
|
||||
// throw new EmisBizError(EmisBizErrorType.PARAM_ERROR1,"扫描单号必填");
|
||||
}
|
||||
|
||||
billCodeInStr=WaybillHelper.formatQueryValue(billCodeInStr);
|
||||
@ -202,6 +201,23 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
|
||||
return itemList;
|
||||
}
|
||||
}
|
||||
// 问题件要单独处理
|
||||
else if(ScanType.ISSUE.opCode.equals(scanType)) {
|
||||
try {
|
||||
return doProblemCheck(itemList,billCodeArr,scanDataItem);
|
||||
} 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;
|
||||
}
|
||||
}
|
||||
// 其他通用扫描方式
|
||||
else {
|
||||
for (String scanBillCode : billCodeArr) {
|
||||
|
||||
@ -352,8 +368,25 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
|
||||
return itemList;
|
||||
}
|
||||
}
|
||||
// 问题件要单独处理
|
||||
else if(ScanType.ISSUE.opCode.equals(scanType)) {
|
||||
try {
|
||||
return doProblemScan(itemList,billCodeArr,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;
|
||||
}
|
||||
}
|
||||
// 其他通用扫描方式
|
||||
else {
|
||||
// 其他扫描方式
|
||||
|
||||
for (String scanBillCode : billCodeArr) {
|
||||
|
||||
if(StringUtils.isEmpty(scanBillCode)){
|
||||
@ -398,7 +431,6 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
|
||||
return itemList;
|
||||
}
|
||||
|
||||
|
||||
// 生成扫描记录并填充公共数据
|
||||
EmisTmsScanRecord emisTmsScanRecord = new EmisTmsScanRecord();
|
||||
// 填充扫描单号
|
||||
@ -469,7 +501,6 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
|
||||
scanResultItem.setErrorCode(EmisBizErrorType.SCAN_NO_EXISTS.errorCode);
|
||||
itemList.add(scanResultItem);
|
||||
return itemList;
|
||||
// throw new EmisBizError(EmisBizErrorType.NOT_EXISTS, "运单不存在");
|
||||
}
|
||||
|
||||
// 已签收不允许扫描
|
||||
@ -554,6 +585,76 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
|
||||
return itemList;
|
||||
}
|
||||
|
||||
public List<ScanResultItem> doProblemCheck(List<ScanResultItem> itemList,String[] billCodeArr,Map<String,Object> scanDataItem) throws EmisBizError {
|
||||
|
||||
String problemType = MapUtils.getString(scanDataItem,"problemType",null);
|
||||
String notifySite = MapUtils.getString(scanDataItem,"notifySite",null);
|
||||
String picUrl = MapUtils.getString(scanDataItem,"picUrl",null);
|
||||
String remark = MapUtils.getString(scanDataItem,"remark",null);
|
||||
|
||||
if(StringUtils.isAnyEmpty(problemType,notifySite,remark)) {
|
||||
throw new EmisBizError(EmisBizErrorType.SCAN_PARAM_ERROR,"问题类型,通知网点,问题原因必填");
|
||||
}
|
||||
|
||||
// 需要记录大类及原因
|
||||
String problemTypeName="";
|
||||
EmisProblemType emisProblemType =getEmisProblemTypebyTypeId(Integer.valueOf(problemType));
|
||||
if(emisProblemType!=null){
|
||||
problemTypeName=emisProblemType.getTypeName();
|
||||
}
|
||||
|
||||
// 子单号处理
|
||||
for (String scanBillCode : billCodeArr) {
|
||||
// 返回原始数据返回
|
||||
ScanResultItem scanResultItem = new ScanResultItem();
|
||||
scanResultItem.setBillCode(scanBillCode);
|
||||
scanResultItem.getData().putAll(scanDataItem);
|
||||
|
||||
// 判断单是否存在
|
||||
boolean isExists = checkWaybillIsExists(scanBillCode);
|
||||
// 检查运单号是否存在
|
||||
if (!isExists) {
|
||||
scanResultItem.setResult("fail");
|
||||
scanResultItem.setMessage("运单不存在");
|
||||
scanResultItem.setErrorCode(EmisBizErrorType.SCAN_NO_EXISTS.errorCode);
|
||||
itemList.add(scanResultItem);
|
||||
return itemList;
|
||||
}
|
||||
|
||||
// 获取主单号
|
||||
String mainBillCode = getMainBillCode(scanBillCode);
|
||||
// 已签收不允许扫描
|
||||
boolean isSign = checkWaybillIsSign(mainBillCode);
|
||||
if (isSign) {
|
||||
scanResultItem.setResult("fail");
|
||||
scanResultItem.setMessage("已签收");
|
||||
scanResultItem.setErrorCode(EmisBizErrorType.SCAN_HAS_SIGN.errorCode);
|
||||
itemList.add(scanResultItem);
|
||||
return itemList;
|
||||
}
|
||||
|
||||
// 同站点,同问题原因不允许重复登记,不同站点允许重复登记
|
||||
|
||||
scanResultItem.getData().put("billWeight", 0f);
|
||||
scanResultItem.getData().put("totalVolume", 0f);
|
||||
scanResultItem.getData().put("parcelQty", 0f);
|
||||
scanResultItem.setResult("success");
|
||||
scanResultItem.setMessage("允许操作");
|
||||
itemList.add(scanResultItem);
|
||||
}
|
||||
return itemList;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 合包扫描
|
||||
* @param itemList
|
||||
* @param billCodeArr
|
||||
* @param scanDataItem
|
||||
* @param scanDate
|
||||
* @return
|
||||
* @throws EmisBizError
|
||||
*/
|
||||
public List<ScanResultItem> doPackScan(List<ScanResultItem> itemList,String[] billCodeArr,Map<String,Object> scanDataItem,Date scanDate) throws EmisBizError {
|
||||
|
||||
// 检查数据 合包号,重量
|
||||
@ -723,6 +824,15 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
|
||||
return itemList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 拆包扫描
|
||||
* @param itemList
|
||||
* @param billCodeArr
|
||||
* @param scanDataItem
|
||||
* @param scanDate
|
||||
* @return
|
||||
* @throws EmisBizError
|
||||
*/
|
||||
public List<ScanResultItem> doUnPackScan(List<ScanResultItem> itemList,String[] billCodeArr,Map<String,Object> scanDataItem,Date scanDate) throws EmisBizError {
|
||||
|
||||
String packNo=null;
|
||||
@ -789,6 +899,122 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
|
||||
return itemList;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 问题件扫描
|
||||
* @param itemList
|
||||
* @param billCodeArr
|
||||
* @param scanDataItem
|
||||
* @param scanDate
|
||||
* @return
|
||||
* @throws EmisBizError
|
||||
*/
|
||||
public List<ScanResultItem> doProblemScan(List<ScanResultItem> itemList,String[] billCodeArr,Map<String,Object> scanDataItem,Date scanDate) throws EmisBizError {
|
||||
|
||||
// "billCode": "T001,T002,T002",
|
||||
// "problemType": "问题件类型",
|
||||
// "notifySite": "寄件或收件网点编码",
|
||||
// "picUrl": "问题件图片",
|
||||
// "remark": "问题备注",
|
||||
// "scanDate": "2024-05-02 12:03:05",
|
||||
// "scanWeight": "0.2"
|
||||
|
||||
String problemType = MapUtils.getString(scanDataItem,"problemType",null);
|
||||
String notifySite = MapUtils.getString(scanDataItem,"notifySite",null);
|
||||
String picUrl = MapUtils.getString(scanDataItem,"picUrl",null);
|
||||
String remark = MapUtils.getString(scanDataItem,"remark",null);
|
||||
|
||||
if(StringUtils.isAnyEmpty(problemType,notifySite,remark)) {
|
||||
throw new EmisBizError(EmisBizErrorType.SCAN_PARAM_ERROR,"问题类型,通知网点,问题原因必填");
|
||||
}
|
||||
|
||||
// 需要记录大类及原因
|
||||
String problemTypeName="";
|
||||
EmisProblemType emisProblemType =getEmisProblemTypebyTypeId(Integer.valueOf(problemType));
|
||||
if(emisProblemType!=null){
|
||||
problemTypeName=emisProblemType.getTypeName();
|
||||
}
|
||||
|
||||
// 子单号处理
|
||||
for (String scanBillCode : billCodeArr) {
|
||||
// 返回原始数据返回
|
||||
ScanResultItem scanResultItem = new ScanResultItem();
|
||||
scanResultItem.setBillCode(scanBillCode);
|
||||
scanResultItem.getData().putAll(scanDataItem);
|
||||
|
||||
// 判断单是否存在
|
||||
boolean isExists = checkWaybillIsExists(scanBillCode);
|
||||
// 检查运单号是否存在
|
||||
if (!isExists) {
|
||||
scanResultItem.setResult("fail");
|
||||
scanResultItem.setMessage("运单不存在");
|
||||
scanResultItem.setErrorCode(EmisBizErrorType.SCAN_NO_EXISTS.errorCode);
|
||||
itemList.add(scanResultItem);
|
||||
return itemList;
|
||||
}
|
||||
|
||||
// 获取主单号
|
||||
String mainBillCode = getMainBillCode(scanBillCode);
|
||||
// 已签收不允许扫描
|
||||
boolean isSign = checkWaybillIsSign(mainBillCode);
|
||||
if (isSign) {
|
||||
scanResultItem.setResult("fail");
|
||||
scanResultItem.setMessage("已签收");
|
||||
scanResultItem.setErrorCode(EmisBizErrorType.SCAN_HAS_SIGN.errorCode);
|
||||
itemList.add(scanResultItem);
|
||||
return itemList;
|
||||
}
|
||||
|
||||
// 生成扫描记录
|
||||
EmisTmsScanRecord emisTmsScanRecord = new EmisTmsScanRecord();
|
||||
emisTmsScanRecord.setBillCode(scanBillCode);
|
||||
emisTmsScanRecord.setMainBillCode(mainBillCode);
|
||||
|
||||
emisTmsScanRecord.setScanType(ScanType.ISSUE.opCode);
|
||||
emisTmsScanRecord.setScanDate(scanDate);
|
||||
emisTmsScanRecord.setRemark(problemTypeName);
|
||||
|
||||
// 填充公共数据
|
||||
this.fillBillBaseData(emisTmsScanRecord);
|
||||
|
||||
emisTmsScanRecordMapper.insertEmisTmsScanRecord(emisTmsScanRecord);
|
||||
|
||||
// 登记问题件
|
||||
EmisWaybillProblemInfo waybillProblemInfo = new EmisWaybillProblemInfo();
|
||||
waybillProblemInfo.setBillCode(emisTmsScanRecord.getMainBillCode());
|
||||
waybillProblemInfo.setProblemType(Integer.valueOf(problemType));
|
||||
waybillProblemInfo.setProblemCause(remark);
|
||||
|
||||
waybillProblemInfo.setSendSiteCode(notifySite);
|
||||
|
||||
waybillProblemInfo.setRegisterDate(emisTmsScanRecord.getScanDate());
|
||||
waybillProblemInfo.setRegisterManCode(emisTmsScanRecord.getScanManCode());
|
||||
waybillProblemInfo.setRegisterSiteCode(emisTmsScanRecord.getScanSiteCode());
|
||||
waybillProblemInfo.setRegisterSaveDate(new Date());
|
||||
waybillProblemInfo.setProblemTitle(remark);
|
||||
waybillProblemInfo.setFilePath(picUrl);
|
||||
|
||||
waybillProblemInfo.setRegisterSiteName(emisTmsScanRecord.getScanSite());
|
||||
waybillProblemInfo.setRegisterManName(emisTmsScanRecord.getScanMan());
|
||||
|
||||
if (emisTmsScanRecord.getScanSiteCode().equals(notifySite)) {
|
||||
waybillProblemInfo.setIsSendSiteRegister("1");
|
||||
}
|
||||
registerWaybillProblemInfo(waybillProblemInfo);
|
||||
|
||||
scanResultItem.getData().put("billWeight", 0);
|
||||
scanResultItem.getData().put("totalVolume", 0);
|
||||
scanResultItem.getData().put("parcelQty", 0);
|
||||
scanResultItem.setResult("success");
|
||||
scanResultItem.setErrorCode(EmisBizErrorType.SUCCESS.errorCode);
|
||||
scanResultItem.setMessage("操作成功");
|
||||
itemList.add(scanResultItem);
|
||||
}
|
||||
|
||||
|
||||
return itemList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 填充公共数据
|
||||
* @param emisTmsScanRecord
|
||||
@ -1138,58 +1364,6 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
|
||||
changeWaybillCurrentSite(emisTmsScanRecord.getMainBillCode(),emisTmsScanRecord.getScanSiteCode());
|
||||
|
||||
}
|
||||
// 问题件
|
||||
else if(ScanType.ISSUE.opCode.equals(scanType)){
|
||||
|
||||
// "billCode": "T001,T002,T002",
|
||||
// "problemType": "问题件类型",
|
||||
// "notifySite": "寄件或收件网点编码",
|
||||
// "picUrl": "问题件图片",
|
||||
// "remark": "问题备注",
|
||||
// "scanDate": "2024-05-02 12:03:05",
|
||||
// "scanWeight": "0.2"
|
||||
|
||||
String problemType = MapUtils.getString(scanDataItem,"problemType",null);
|
||||
String notifySite = MapUtils.getString(scanDataItem,"notifySite",null);
|
||||
String picUrl = MapUtils.getString(scanDataItem,"picUrl",null);
|
||||
String remark = MapUtils.getString(scanDataItem,"remark",null);
|
||||
|
||||
if(StringUtils.isAnyEmpty(problemType,notifySite,remark)) {
|
||||
throw new EmisBizError(EmisBizErrorType.SCAN_PARAM_ERROR,"问题类型,通知网点,问题原因必填");
|
||||
}
|
||||
|
||||
// 需要记录大类及原因
|
||||
String problemTypeName="";
|
||||
EmisProblemType emisProblemType =getEmisProblemTypebyTypeId(Integer.valueOf(problemType));
|
||||
if(emisProblemType!=null){
|
||||
problemTypeName=emisProblemType.getTypeName();
|
||||
}
|
||||
emisTmsScanRecord.setRemark(problemTypeName);
|
||||
|
||||
// 登记问题件
|
||||
EmisWaybillProblemInfo waybillProblemInfo = new EmisWaybillProblemInfo();
|
||||
waybillProblemInfo.setBillCode(emisTmsScanRecord.getMainBillCode());
|
||||
waybillProblemInfo.setProblemType(Integer.valueOf(problemType));
|
||||
waybillProblemInfo.setProblemCause(remark);
|
||||
|
||||
waybillProblemInfo.setSendSiteCode(notifySite);
|
||||
|
||||
waybillProblemInfo.setRegisterDate(emisTmsScanRecord.getScanDate());
|
||||
waybillProblemInfo.setRegisterManCode(emisTmsScanRecord.getScanManCode());
|
||||
waybillProblemInfo.setRegisterSiteCode(emisTmsScanRecord.getScanSiteCode());
|
||||
waybillProblemInfo.setRegisterSaveDate(new Date());
|
||||
waybillProblemInfo.setProblemTitle(remark);
|
||||
waybillProblemInfo.setFilePath(picUrl);
|
||||
|
||||
waybillProblemInfo.setRegisterSiteName(emisTmsScanRecord.getScanSite());
|
||||
waybillProblemInfo.setRegisterManName(emisTmsScanRecord.getScanMan());
|
||||
|
||||
if(emisTmsScanRecord.getScanSiteCode().equals(notifySite)){
|
||||
waybillProblemInfo.setIsSendSiteRegister("1");
|
||||
}
|
||||
registerWaybillProblemInfo(waybillProblemInfo);
|
||||
}
|
||||
|
||||
// 装车
|
||||
else if(ScanType.LOADING.opCode.equals(scanType)){
|
||||
// "billCode": "T001",
|
||||
|
||||
@ -923,15 +923,9 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb
|
||||
|
||||
try {
|
||||
emisTmsScanRecordService.scan(scanInfo);
|
||||
} catch (EmisBizError emisBizError) {
|
||||
emisBizError.printStackTrace();
|
||||
// return AjaxResult.error(emisBizError.getMessage());
|
||||
}catch (Exception e) {
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
// return AjaxResult.error("上传异常!");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user