md
This commit is contained in:
parent
ebc7bcfdf1
commit
bd95ed8408
@ -40,6 +40,8 @@ public interface EmisTmsPackDtlMapper extends BaseMapper<EmisTmsPackDtl>
|
||||
public List<EmisTmsPackDtl> selectEmisTmsPackDtlList(EmisTmsPackDtl emisTmsPackDtl);
|
||||
|
||||
|
||||
public List<EmisTmsPackDtl> selectPackDtlListByPackNo(String packNo);
|
||||
|
||||
/**
|
||||
* 检查是否重复
|
||||
*
|
||||
|
||||
@ -501,6 +501,24 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
|
||||
}
|
||||
|
||||
public List<ScanResultItem> doPackScanCheck(List<ScanResultItem> itemList,String[] billCodeArr,Map<String,Object> scanDataItem) throws EmisBizError {
|
||||
|
||||
// 检查数据 合包号,重量
|
||||
String packNo = MapUtils.getString(scanDataItem,"bagNo",null);
|
||||
Map<String,Integer> mainBillMap = new HashMap<>();
|
||||
if(StringUtils.isAnyEmpty(packNo)) {
|
||||
throw new EmisBizError(EmisBizErrorType.SCAN_PARAM_ERROR,"合包号不能为空");
|
||||
}
|
||||
|
||||
// 判断合包号归属
|
||||
EmisTmsPack emisTmsPack=emisTmsPackMapper.selectEmisTmsPackByPackNo(packNo);
|
||||
if(emisTmsPack==null){
|
||||
throw new EmisBizError(EmisBizErrorType.SCAN_PARAM_ERROR,"合包号不存在");
|
||||
}
|
||||
|
||||
if(!emisTmsPack.getCreateSite().equals(getCurrentUser().getOwnerSiteCode())){
|
||||
throw new EmisBizError(EmisBizErrorType.SCAN_PARAM_ERROR,"合包号不属于该网点");
|
||||
}
|
||||
|
||||
// 子单号处理
|
||||
for (String scanBillCode : billCodeArr) {
|
||||
// 返回原始数据返回
|
||||
@ -587,6 +605,7 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
|
||||
}
|
||||
|
||||
public List<ScanResultItem> doUnPackScanCheck(List<ScanResultItem> itemList,String[] billCodeArr,Map<String,Object> scanDataItem) throws EmisBizError {
|
||||
|
||||
// 子单号处理
|
||||
for (String scanBillCode : billCodeArr) {
|
||||
// 返回原始数据返回
|
||||
@ -594,21 +613,32 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
|
||||
scanResultItem.setBillCode(scanBillCode);
|
||||
scanResultItem.getData().putAll(scanDataItem);
|
||||
|
||||
// 检查组包信息是否存在
|
||||
int scanCnt=emisTmsPackDtlMapper.checkIsExists(scanBillCode);
|
||||
if (scanCnt == 0) {
|
||||
EmisTmsPack emisTmsPack=emisTmsPackMapper.selectEmisTmsPackByPackNo(scanBillCode);
|
||||
if(emisTmsPack==null){
|
||||
scanResultItem.setResult("fail");
|
||||
scanResultItem.setMessage("未组包");
|
||||
scanResultItem.setErrorCode(EmisBizErrorType.SCAN_NO_ALLOW.errorCode);
|
||||
scanResultItem.setMessage("合包不存在");
|
||||
scanResultItem.setErrorCode(EmisBizErrorType.SCAN_NO_EXISTS.errorCode);
|
||||
itemList.add(scanResultItem);
|
||||
return itemList;
|
||||
}
|
||||
|
||||
// 返回合包号
|
||||
EmisTmsPackDtl emisTmsPackDtl= emisTmsPackDtlMapper.selectEmisTmsPackDtlByBillCode(scanBillCode);
|
||||
if(emisTmsPackDtl!=null) {
|
||||
scanResultItem.getData().put("bagNo", emisTmsPackDtl.getPackNo());
|
||||
}
|
||||
// 检查是否是合包,如果合包则做拆包处理
|
||||
|
||||
// // 检查组包信息是否存在
|
||||
// int scanCnt=emisTmsPackDtlMapper.checkIsExists(scanBillCode);
|
||||
// if (scanCnt == 0) {
|
||||
// scanResultItem.setResult("fail");
|
||||
// scanResultItem.setMessage("未组包");
|
||||
// scanResultItem.setErrorCode(EmisBizErrorType.SCAN_NO_ALLOW.errorCode);
|
||||
// itemList.add(scanResultItem);
|
||||
// return itemList;
|
||||
// }
|
||||
//
|
||||
// // 返回合包号
|
||||
// EmisTmsPackDtl emisTmsPackDtl= emisTmsPackDtlMapper.selectEmisTmsPackDtlByBillCode(scanBillCode);
|
||||
// if(emisTmsPackDtl!=null) {
|
||||
// scanResultItem.getData().put("bagNo", emisTmsPackDtl.getPackNo());
|
||||
// }
|
||||
|
||||
scanResultItem.getData().put("billWeight", 0f);
|
||||
scanResultItem.getData().put("totalVolume", 0f);
|
||||
@ -724,6 +754,17 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
|
||||
throw new EmisBizError(EmisBizErrorType.SCAN_PARAM_ERROR,"下一站必填");
|
||||
}
|
||||
|
||||
// 判断合包号归属
|
||||
EmisTmsPack emisTmsPack=emisTmsPackMapper.selectEmisTmsPackByPackNo(packNo);
|
||||
if(emisTmsPack==null){
|
||||
throw new EmisBizError(EmisBizErrorType.SCAN_PARAM_ERROR,"合包号不存在");
|
||||
}
|
||||
|
||||
if(!emisTmsPack.getCreateSite().equals(getCurrentUser().getOwnerSiteCode())){
|
||||
throw new EmisBizError(EmisBizErrorType.SCAN_PARAM_ERROR,"合包号不属于该网点");
|
||||
}
|
||||
|
||||
|
||||
// 判断是否必拆,不同国家必拆
|
||||
boolean blUnPack=false;
|
||||
Map countryMap = new HashMap();
|
||||
@ -760,6 +801,8 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
|
||||
// throw new EmisBizError(EmisBizErrorType.SCAN_HAS_SIGN, "已签收");
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 已组包,不允许再组包
|
||||
int scanCnt=emisTmsPackDtlMapper.checkIsExists(scanBillCode);
|
||||
if (scanCnt > 0) {
|
||||
@ -773,6 +816,16 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
|
||||
|
||||
// 获取订单数据
|
||||
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;
|
||||
}
|
||||
|
||||
// 如果是缅甸允许主单扫描,其他都不允许
|
||||
if("0095".equals(emisWaybill.getReceiveCountry()) ){
|
||||
// 缅甸只允许主单
|
||||
@ -891,49 +944,76 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
|
||||
scanResultItem.setBillCode(scanBillCode);
|
||||
scanResultItem.getData().putAll(scanDataItem);
|
||||
|
||||
// 检查是否存在
|
||||
EmisTmsPackDtl emisTmsPackDtl =emisTmsPackDtlMapper.selectEmisTmsPackDtlByBillCode(scanBillCode);
|
||||
// 找不到组包信息
|
||||
if (emisTmsPackDtl == null) {
|
||||
EmisTmsPack emisTmsPack=emisTmsPackMapper.selectEmisTmsPackByPackNo(scanBillCode);
|
||||
if(emisTmsPack==null){
|
||||
scanResultItem.setResult("fail");
|
||||
scanResultItem.setMessage("未组包");
|
||||
scanResultItem.setErrorCode(EmisBizErrorType.NOT_EXISTS.errorCode);
|
||||
scanResultItem.setMessage("合包不存在");
|
||||
scanResultItem.setErrorCode(EmisBizErrorType.SCAN_NO_EXISTS.errorCode);
|
||||
itemList.add(scanResultItem);
|
||||
return itemList;
|
||||
}
|
||||
|
||||
packNo=emisTmsPackDtl.getPackNo();
|
||||
|
||||
// 生成扫描记录
|
||||
EmisTmsScanRecord emisTmsScanRecord = new EmisTmsScanRecord();
|
||||
emisTmsScanRecord.setBillCode(scanBillCode);
|
||||
emisTmsScanRecord.setMainBillCode(emisTmsPackDtl.getMainBillCode());
|
||||
if(
|
||||
!getCurrentUser().getOwnerSiteCode().equals(emisTmsPack.getCreateSite())
|
||||
&& !getCurrentUser().getOwnerSiteCode().equals(emisTmsPack.getNextSiteCode())
|
||||
){
|
||||
scanResultItem.setResult("fail");
|
||||
scanResultItem.setMessage("合包不在当前网点或下一网点,无权拆包");
|
||||
scanResultItem.setErrorCode(EmisBizErrorType.SCAN_NO_ALLOW.errorCode);
|
||||
itemList.add(scanResultItem);
|
||||
return itemList;
|
||||
}
|
||||
|
||||
emisTmsScanRecord.setScanType(ScanType.UN_PACKING.opCode);
|
||||
emisTmsScanRecord.setScanDate(scanDate);
|
||||
emisTmsScanRecord.setBagNo(emisTmsPackDtl.getPackNo());
|
||||
// 检查是否存在
|
||||
// EmisTmsPackDtl emisTmsPackDtl =emisTmsPackDtlMapper.selectEmisTmsPackDtlByBillCode(scanBillCode);
|
||||
// // 找不到组包信息
|
||||
// if (emisTmsPackDtl == null) {
|
||||
// scanResultItem.setResult("fail");
|
||||
// scanResultItem.setMessage("未组包");
|
||||
// scanResultItem.setErrorCode(EmisBizErrorType.NOT_EXISTS.errorCode);
|
||||
// itemList.add(scanResultItem);
|
||||
// return itemList;
|
||||
// }
|
||||
|
||||
// 填充公共数据
|
||||
this.fillBillBaseData(emisTmsScanRecord);
|
||||
// packNo=emisTmsPackDtl.getPackNo();
|
||||
|
||||
emisTmsScanRecordMapper.insertEmisTmsScanRecord(emisTmsScanRecord);
|
||||
// 所有运单做拆包操作
|
||||
List<EmisTmsPackDtl> packDtlList=emisTmsPackDtlMapper.selectPackDtlListByPackNo(packNo);
|
||||
if(!CollectionUtil.isEmpty(packDtlList)){
|
||||
|
||||
// 更新合包运单扫描状态 ,拆包
|
||||
emisTmsPackDtl.setBillCode(scanBillCode);
|
||||
emisTmsPackDtl.setPackStatus("0");
|
||||
emisTmsPackDtl.setScanStatus("1");
|
||||
emisTmsPackDtl.setScanDate(emisTmsScanRecord.getScanDate());
|
||||
emisTmsPackDtl.setScanMan(emisTmsScanRecord.getScanManCode());
|
||||
emisTmsPackDtlMapper.updateScanStatus(emisTmsPackDtl);
|
||||
for (EmisTmsPackDtl emisTmsPackDtl:packDtlList) {
|
||||
// 生成扫描记录
|
||||
EmisTmsScanRecord emisTmsScanRecord = new EmisTmsScanRecord();
|
||||
emisTmsScanRecord.setBillCode(emisTmsPackDtl.getBillCode());
|
||||
emisTmsScanRecord.setMainBillCode(emisTmsPackDtl.getMainBillCode());
|
||||
emisTmsScanRecord.setScanType(ScanType.UN_PACKING.opCode);
|
||||
emisTmsScanRecord.setScanDate(scanDate);
|
||||
emisTmsScanRecord.setBagNo(emisTmsPackDtl.getPackNo());
|
||||
|
||||
// 填充公共数据
|
||||
this.fillBillBaseData(emisTmsScanRecord);
|
||||
|
||||
emisTmsScanRecordMapper.insertEmisTmsScanRecord(emisTmsScanRecord);
|
||||
|
||||
// 更新合包运单扫描状态 ,拆包
|
||||
emisTmsPackDtl.setBillCode(scanBillCode);
|
||||
emisTmsPackDtl.setPackStatus("0");
|
||||
emisTmsPackDtl.setScanStatus("1");
|
||||
emisTmsPackDtl.setScanDate(emisTmsScanRecord.getScanDate());
|
||||
emisTmsPackDtl.setScanMan(emisTmsScanRecord.getScanManCode());
|
||||
emisTmsPackDtlMapper.updateScanStatus(emisTmsPackDtl);
|
||||
|
||||
// 修改主运单状态,子单做合包扫描,主单不变化
|
||||
scanResultItem.getData().put("billWeight", 0f);
|
||||
scanResultItem.getData().put("totalVolume", 0f);
|
||||
scanResultItem.getData().put("parcelQty", 0f);
|
||||
scanResultItem.setResult("success");
|
||||
scanResultItem.setMessage("操作成功");
|
||||
itemList.add(scanResultItem);
|
||||
}
|
||||
}
|
||||
|
||||
// 修改主运单状态,子单做合包扫描,主单不变化
|
||||
// this.changeWaybillStatus(mainBillCode, ScanType.CO_PACKING.opCode);
|
||||
scanResultItem.getData().put("billWeight", 0f);
|
||||
scanResultItem.getData().put("totalVolume", 0f);
|
||||
scanResultItem.getData().put("parcelQty", 0f);
|
||||
scanResultItem.setResult("success");
|
||||
scanResultItem.setMessage("操作成功");
|
||||
itemList.add(scanResultItem);
|
||||
}
|
||||
|
||||
// 更新合包为拆包状态,整包拆包
|
||||
|
||||
@ -79,6 +79,14 @@
|
||||
order by create_time desc
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectPackDtlListByPackNo" parameterType="String" resultMap="EmisTmsPackDtlResult">
|
||||
<include refid="selectEmisTmsPackDtlVo"/>
|
||||
<where>
|
||||
del_flag='0' and pack_no=#{packNo}
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="checkUnique" parameterType="EmisTmsPackDtl" resultType="int">
|
||||
select count(1) from emis_tms_pack_dtl
|
||||
where del_flag='0'
|
||||
|
||||
Loading…
Reference in New Issue
Block a user