|
|
@ -139,7 +139,7 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
|
|
|
|
Optional<MesLoadingListDetail> loadingListDetailOptional = model.getDetailList().stream().filter(t -> !Objects.equals(t.getTempStatus(), MesCommonConstant.TRUE_INTEGER)).findFirst();
|
|
|
|
Optional<MesLoadingListDetail> loadingListDetailOptional = model.getDetailList().stream().filter(t -> !Objects.equals(t.getTempStatus(), MesCommonConstant.TRUE_INTEGER)).findFirst();
|
|
|
|
if(loadingListDetailOptional.isPresent()){
|
|
|
|
if(loadingListDetailOptional.isPresent()){
|
|
|
|
MesLoadingListDetail loadingListDetail = loadingListDetailOptional.get();
|
|
|
|
MesLoadingListDetail loadingListDetail = loadingListDetailOptional.get();
|
|
|
|
updateLoadingListDetail(model, userInfo, loadingList, loadingListDetail,MesPcnExtConstWords.SHIP_PASS,MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SKIP.getValue());
|
|
|
|
updateLoadingListDetail(model, userInfo, loadingList, loadingListDetail,MesPcnExtConstWords.SHIP_PASS,MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SKIP.getValue(),userInfo);
|
|
|
|
}else{
|
|
|
|
}else{
|
|
|
|
throw new ImppBusiException(String.format("【%s】明细已全部扫描完成,请检查数据!", loadingList.getOrderCode()));
|
|
|
|
throw new ImppBusiException(String.format("【%s】明细已全部扫描完成,请检查数据!", loadingList.getOrderCode()));
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -153,7 +153,7 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
|
|
|
|
if (loadingListDetail.getShippingCode().equals(model.getShippingCode())) {
|
|
|
|
if (loadingListDetail.getShippingCode().equals(model.getShippingCode())) {
|
|
|
|
|
|
|
|
|
|
|
|
if (Objects.equals(loadingListDetail.getTempStatus(), MesCommonConstant.TRUE_INTEGER)) {
|
|
|
|
if (Objects.equals(loadingListDetail.getTempStatus(), MesCommonConstant.TRUE_INTEGER)) {
|
|
|
|
throw new ImppBusiException(String.format("【%s】此发运单已经扫描过,请检查数据!", model.getShippingCode()));
|
|
|
|
throw new ImppBusiException(String.format("【%s】此发运单已经%s,请检查数据!", model.getShippingCode(),loadingListDetail.getTempStatusVal()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//校验发运单明细顺序
|
|
|
|
//校验发运单明细顺序
|
|
|
|
if(!StringUtils.isEmpty(shippingGroup.getIsEnableLoadingFailSafe()) && CommonEnumUtil.VALID == shippingGroup.getIsEnableLoadingFailSafe()){
|
|
|
|
if(!StringUtils.isEmpty(shippingGroup.getIsEnableLoadingFailSafe()) && CommonEnumUtil.VALID == shippingGroup.getIsEnableLoadingFailSafe()){
|
|
|
@ -167,14 +167,14 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
|
|
|
|
if (!StringUtils.isEmpty(loadingList.getScanSeqWay()) && loadingList.getScanSeqWay() == MesExtEnumUtil.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE.DEFAULT_SORT.getValue()) {
|
|
|
|
if (!StringUtils.isEmpty(loadingList.getScanSeqWay()) && loadingList.getScanSeqWay() == MesExtEnumUtil.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE.DEFAULT_SORT.getValue()) {
|
|
|
|
//获取明细中最小的
|
|
|
|
//获取明细中最小的
|
|
|
|
|
|
|
|
|
|
|
|
long minSeq = model.getDetailList().stream().filter(k -> StringUtils.isEmpty(k.getScanSn())).mapToLong(MesLoadingListDetail::getSeq).min().getAsLong();
|
|
|
|
long minSeq = model.getDetailList().stream().filter(k -> StringUtils.isEmpty(k.getScanSn()) && !Objects.equals(k.getTempStatus(), MesCommonConstant.TRUE_INTEGER)).mapToLong(MesLoadingListDetail::getSeq).min().getAsLong();
|
|
|
|
//若扫描的不是最小顺序 则报错
|
|
|
|
//若扫描的不是最小顺序 则报错
|
|
|
|
if (minSeq != loadingListDetail.getSeq()) {
|
|
|
|
if (minSeq != loadingListDetail.getSeq()) {
|
|
|
|
throw new ImppBusiException(String.format("【%s】此发运单扫描顺序错误,请检查数据!", model.getShippingCode()));
|
|
|
|
throw new ImppBusiException(String.format("【%s】此发运单扫描顺序错误,请检查数据!", model.getShippingCode()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//更新页面状态
|
|
|
|
//更新页面状态
|
|
|
|
updateLoadingListDetail(model, userInfo, loadingList, loadingListDetail,"扫描完成",MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue());
|
|
|
|
updateLoadingListDetail(model, userInfo, loadingList, loadingListDetail,"扫描完成",MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue(),userInfo);
|
|
|
|
|
|
|
|
|
|
|
|
//根据扫描的装车单找到是否先装车配置
|
|
|
|
//根据扫描的装车单找到是否先装车配置
|
|
|
|
//若配置为否,则查询装车单中所有的发运单是否都进行【排序发运校验】完成,若【排序发运校验】没完成,则提示,先进行排序发运校验。
|
|
|
|
//若配置为否,则查询装车单中所有的发运单是否都进行【排序发运校验】完成,若【排序发运校验】没完成,则提示,先进行排序发运校验。
|
|
|
@ -213,8 +213,11 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
|
|
|
|
//装车单明细
|
|
|
|
//装车单明细
|
|
|
|
DdlPackBean vehiclesOrderDetailPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
DdlPackBean vehiclesOrderDetailPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
DdlPreparedPack.getNumEqualPack(loadingList.getId(), "pid", vehiclesOrderDetailPackBean);
|
|
|
|
DdlPreparedPack.getNumEqualPack(loadingList.getId(), "pid", vehiclesOrderDetailPackBean);
|
|
|
|
List<MesLoadingListDetail> vehiclesOrderDetailList = vehiclesOrderDetailRepository.findByHqlWhere(vehiclesOrderDetailPackBean);
|
|
|
|
List<MesLoadingListDetail> vehiclesOrderDetailList = model.getDetailList();
|
|
|
|
vehiclesOrderDetailList.forEach(k -> {
|
|
|
|
vehiclesOrderDetailList.forEach(k -> {
|
|
|
|
|
|
|
|
if(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue() == k.getStatus()){
|
|
|
|
|
|
|
|
k.setStatus(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.PUBLISHED.getValue());
|
|
|
|
|
|
|
|
}
|
|
|
|
// k.setStatus(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue()); todo 不改变为发运状态
|
|
|
|
// k.setStatus(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue()); todo 不改变为发运状态
|
|
|
|
ConvertBean.serviceModelUpdate(k, userInfo);
|
|
|
|
ConvertBean.serviceModelUpdate(k, userInfo);
|
|
|
|
});
|
|
|
|
});
|
|
|
@ -235,9 +238,20 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void updateLoadingListDetail(MesShippingLoadingCheckModel model, String userInfo, MesLoadingList loadingList, MesLoadingListDetail loadingListDetail, String tempStatusVal, Integer status) {
|
|
|
|
private void updateLoadingListDetail(MesShippingLoadingCheckModel model, String userInfo, MesLoadingList loadingList, MesLoadingListDetail loadingListDetail, String tempStatusVal, Integer status,String userName) {
|
|
|
|
if(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue() == status){
|
|
|
|
if(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue() == status){
|
|
|
|
loadingListDetail.setScanSn(model.getShippingCode());
|
|
|
|
loadingListDetail.setScanSn(model.getShippingCode());
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
//关闭发运单明细
|
|
|
|
|
|
|
|
List<Long> idList = new ArrayList<>();
|
|
|
|
|
|
|
|
idList.add(loadingList.getId());
|
|
|
|
|
|
|
|
List<MesShippingOrderManagement> mesShippingOrderManagementList = getMesShippingOrderManagementList(loadingList.getOrganizeCode(),idList);
|
|
|
|
|
|
|
|
if(!CollectionUtils.isEmpty(mesShippingOrderManagementList)){
|
|
|
|
|
|
|
|
closeShippingOrderDetails(loadingList.getOrganizeCode(), userName,MesPcnExtConstWords.SHIP_PASS, mesShippingOrderManagementList.stream().filter(t->loadingListDetail.getShippingCode().equals(t.getShippingCode())).map(MesShippingOrderManagement::getId).collect(Collectors.toList()));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//关闭发运单
|
|
|
|
|
|
|
|
closeShippingOrder(loadingList.getOrganizeCode(), userName,MesPcnExtConstWords.SHIP_PASS, mesShippingOrderManagementList.stream().filter(t->loadingListDetail.getShippingCode().equals(t.getShippingCode())).map(MesShippingOrderManagement::getId).collect(Collectors.toList()));
|
|
|
|
|
|
|
|
loadingListDetail.setRemark(tempStatusVal);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
loadingListDetail.setTempStatus(MesCommonConstant.TRUE_INTEGER);
|
|
|
|
loadingListDetail.setTempStatus(MesCommonConstant.TRUE_INTEGER);
|
|
|
|
loadingListDetail.setTempStatusVal(tempStatusVal);
|
|
|
|
loadingListDetail.setTempStatusVal(tempStatusVal);
|
|
|
@ -345,21 +359,22 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
|
|
|
|
//关闭装发运单明细
|
|
|
|
//关闭装发运单明细
|
|
|
|
List<MesShippingOrderManagement> mesShippingOrderManagementList = getMesShippingOrderManagementList(loadingList.getOrganizeCode(), idList);
|
|
|
|
List<MesShippingOrderManagement> mesShippingOrderManagementList = getMesShippingOrderManagementList(loadingList.getOrganizeCode(), idList);
|
|
|
|
if(!CollectionUtils.isEmpty(mesShippingOrderManagementList)){
|
|
|
|
if(!CollectionUtils.isEmpty(mesShippingOrderManagementList)){
|
|
|
|
closeShippingOrderDetails(loadingList.getOrganizeCode(), userName, mesShippingOrderManagementList.stream().map(MesShippingOrderManagement::getId).collect(Collectors.toList()));
|
|
|
|
closeShippingOrderDetails(loadingList.getOrganizeCode(), userName,MesPcnExtConstWords.STRONGER_PASS, mesShippingOrderManagementList.stream().map(MesShippingOrderManagement::getId).collect(Collectors.toList()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//关闭发运单
|
|
|
|
//关闭发运单
|
|
|
|
closeShippingOrder(loadingList.getOrganizeCode(), userName, mesShippingOrderManagementList.stream().map(MesShippingOrderManagement::getId).collect(Collectors.toList()));
|
|
|
|
closeShippingOrder(loadingList.getOrganizeCode(), userName,MesPcnExtConstWords.STRONGER_PASS, mesShippingOrderManagementList.stream().map(MesShippingOrderManagement::getId).collect(Collectors.toList()));
|
|
|
|
//关闭装车单明细
|
|
|
|
//关闭装车单明细
|
|
|
|
closeLoadingDetails(loadingList.getOrganizeCode(), userName, idList);
|
|
|
|
closeLoadingDetails(loadingList.getOrganizeCode(), userName, idList);
|
|
|
|
//关闭装车单
|
|
|
|
//关闭装车单
|
|
|
|
closeLoadingOrder(loadingList.getOrganizeCode(), userName, idList);
|
|
|
|
closeLoadingOrder(loadingList.getOrganizeCode(), userName, idList);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void closeShippingOrderDetails(String organizeCode, String userName, List<Long> idList) {
|
|
|
|
private void closeShippingOrderDetails(String organizeCode, String userName,String remark, List<Long> idList) {
|
|
|
|
|
|
|
|
if(CollectionUtils.isEmpty(idList)|| StringUtils.isEmpty(organizeCode)) return;
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
DdlPreparedPack.getInPackList(idList, "pid",packBean);
|
|
|
|
DdlPreparedPack.getInPackList(idList, "pid",packBean);
|
|
|
|
shippingOrderManagementDetailRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status","remark"},
|
|
|
|
shippingOrderManagementDetailRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status","remark"},
|
|
|
|
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.CLOSE.getValue(),MesPcnExtConstWords.STRONGER_PASS}, packBean);
|
|
|
|
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.CLOSE.getValue(),remark}, packBean);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private List<MesShippingOrderManagement> getMesShippingOrderManagementList(String organizeCode, List<Long> idList) {
|
|
|
|
private List<MesShippingOrderManagement> getMesShippingOrderManagementList(String organizeCode, List<Long> idList) {
|
|
|
@ -368,14 +383,16 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
|
|
|
|
return shippingOrderManagementRepository.findByHqlWhere(packBean);
|
|
|
|
return shippingOrderManagementRepository.findByHqlWhere(packBean);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void closeShippingOrder(String organizeCode, String userName, List<Long> idList) {
|
|
|
|
private void closeShippingOrder(String organizeCode, String userName,String remark, List<Long> idList) {
|
|
|
|
|
|
|
|
if(CollectionUtils.isEmpty(idList)|| StringUtils.isEmpty(organizeCode)) return;
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
DdlPreparedPack.getInPackList(idList, "id",packBean);
|
|
|
|
DdlPreparedPack.getInPackList(idList, "id",packBean);
|
|
|
|
shippingOrderManagementRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status","remark"},
|
|
|
|
shippingOrderManagementRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status","remark"},
|
|
|
|
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.SHIPPING_ORDER_STATUS.CLOSE.getValue(),MesPcnExtConstWords.STRONGER_PASS}, packBean);
|
|
|
|
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.SHIPPING_ORDER_STATUS.CLOSE.getValue(),remark}, packBean);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void closeLoadingDetails(String organizeCode, String userName, List<Long> idList) {
|
|
|
|
private void closeLoadingDetails(String organizeCode, String userName, List<Long> idList) {
|
|
|
|
|
|
|
|
if(CollectionUtils.isEmpty(idList)|| StringUtils.isEmpty(organizeCode)) return;
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
DdlPreparedPack.getInPackList(idList, "pid",packBean);
|
|
|
|
DdlPreparedPack.getInPackList(idList, "pid",packBean);
|
|
|
|
vehiclesOrderDetailRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status","remark"},
|
|
|
|
vehiclesOrderDetailRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status","remark"},
|
|
|
@ -383,6 +400,7 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void closeLoadingOrder(String organizeCode, String userName, List<Long> idList) {
|
|
|
|
private void closeLoadingOrder(String organizeCode, String userName, List<Long> idList) {
|
|
|
|
|
|
|
|
if(CollectionUtils.isEmpty(idList)|| StringUtils.isEmpty(organizeCode)) return;
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
DdlPreparedPack.getInPackList(idList, "id",packBean);
|
|
|
|
DdlPreparedPack.getInPackList(idList, "id",packBean);
|
|
|
|
vehiclesOrderRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status","remark"},
|
|
|
|
vehiclesOrderRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "status","remark"},
|
|
|
|