|
|
|
@ -163,19 +163,35 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
|
|
|
|
|
//校验发运单是否存在
|
|
|
|
|
checkLoadingList(model, organizeCode, loadingList);
|
|
|
|
|
//查询零件发运组
|
|
|
|
|
MesPartShippingGroup shippingGroup = getMesPartShippingGroup(organizeCode, loadingList.getPartShippingGroupCode());
|
|
|
|
|
final boolean isFirstInstall = mesPartShippingGroupService.isFirstInstall(shippingGroup, loadingList);
|
|
|
|
|
MesLoadingGroup loadingGroup = loadingList.getLoadingGroupId() != null ? mesLoadingGroupRDao.getById(loadingList.getLoadingGroupId()) : null;
|
|
|
|
|
MesPartShippingGroup loadingShippingGroup = getMesPartShippingGroup(organizeCode, loadingList.getPartShippingGroupCode());
|
|
|
|
|
final boolean isFirstInstall = mesPartShippingGroupService.isFirstInstall(loadingShippingGroup, loadingList);
|
|
|
|
|
boolean scanflg = false;
|
|
|
|
|
for (MesLoadingListDetail loadingListDetail : model.getDetailList()) {
|
|
|
|
|
if (loadingListDetail.getShippingCode().equals(model.getShippingCode())) {
|
|
|
|
|
|
|
|
|
|
if (Objects.equals(loadingListDetail.getTempStatus(), MesCommonConstant.TRUE_INTEGER)) {
|
|
|
|
|
throw new ImppBusiException(String.format("【%s】此发运单已经%s,请检查数据!", model.getShippingCode(),loadingListDetail.getTempStatusVal()));
|
|
|
|
|
}
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(loadingListDetail.getShippingCode(),"shippingCode",packBean);
|
|
|
|
|
MesShippingOrderManagement orderManagement = shippingOrderManagementRepository.getByProperty(packBean);
|
|
|
|
|
if (orderManagement == null) {
|
|
|
|
|
throw new ImppBusiException(String.format("发运单【%s】信息不存在,请检查数据!", loadingListDetail.getShippingCode()));
|
|
|
|
|
}
|
|
|
|
|
//查询零件发运组
|
|
|
|
|
MesPartShippingGroup shippingGroup = getMesPartShippingGroup(organizeCode, orderManagement.getShippingGroupCode());
|
|
|
|
|
|
|
|
|
|
//校验发运单明细顺序
|
|
|
|
|
if(!StringUtils.isEmpty(shippingGroup.getIsEnableLoadingFailSafe()) && CommonEnumUtil.VALID == shippingGroup.getIsEnableLoadingFailSafe()){
|
|
|
|
|
Optional<MesLoadingListDetail> detail = model.getDetailList().stream().filter(k -> k.getShippingCode().compareTo(loadingListDetail.getShippingCode()) < 0 && !Objects.equals(k.getTempStatus(), MesCommonConstant.TRUE_INTEGER)).findFirst();
|
|
|
|
|
List<MesLoadingListDetail> shippingGroupLoading = new ArrayList<>();
|
|
|
|
|
for (MesLoadingListDetail detail : model.getDetailList()) {
|
|
|
|
|
if (detail.getShippingId() != null) {
|
|
|
|
|
MesShippingOrderManagement shippingOrder = shippingOrderManagementRepository.getById(detail.getShippingId());
|
|
|
|
|
if (shippingOrder != null && Objects.equals(shippingOrder.getShippingGroupCode(), shippingGroup.getShippingGroupCode())) {
|
|
|
|
|
shippingGroupLoading.add(detail);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Optional<MesLoadingListDetail> detail = shippingGroupLoading.stream().filter(k -> k.getShippingCode().compareTo(loadingListDetail.getShippingCode()) < 0 && !Objects.equals(k.getTempStatus(), MesCommonConstant.TRUE_INTEGER)).findFirst();
|
|
|
|
|
if(detail.isPresent()){
|
|
|
|
|
throw new ImppBusiException(String.format("装车单【%s】启用明细顺序防错,发运单【%s】前还有未扫描的发运单,请检查数据!", loadingList.getOrderCode(), model.getShippingCode()));
|
|
|
|
|
}
|
|
|
|
@ -212,9 +228,6 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
|
|
|
|
|
//根据扫描的装车单找到是否先装车配置
|
|
|
|
|
//若配置为否,则查询装车单中所有的发运单是否都进行【排序发运校验】完成,若【排序发运校验】没完成,则提示,先进行排序发运校验。
|
|
|
|
|
if (!isFirstInstall) {
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(loadingListDetail.getShippingId(),"id",packBean);
|
|
|
|
|
MesShippingOrderManagement orderManagement = shippingOrderManagementRepository.getByProperty(packBean);
|
|
|
|
|
if (orderManagement == null || orderManagement.getStatus() != MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue()) {
|
|
|
|
|
throw new ImppBusiException(String.format("【%s】此装车单中发运单为【%s】,还未做完【排序发运校验】,请检查数据", model.getShippingCode(), loadingListDetail.getShippingCode()));
|
|
|
|
|
}
|
|
|
|
|