排序发运功能开发

tags/yfai-pcn-ext-v2.3
jun 8 months ago
parent b026ee071c
commit 3218721983

@ -109,11 +109,11 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
//发运单号 //发运单号
model.setShippingCode(orderManagement.getShippingCode()); model.setShippingCode(orderManagement.getShippingCode());
//零件发运组 //零件发运组
model.setMesPartShippingGroup(getMesPartShippingGroup(shippingOrderManagement.getOrganizeCode(),shippingOrderManagement.getShippingGroupCode())); model.setMesPartShippingGroup(getMesPartShippingGroup(orderManagement.getOrganizeCode(),orderManagement.getShippingGroupCode()));
//发运单明细 //发运单明细
model.setDetailList(getMesShippingOrderManagementDetails(shippingOrderManagement, orderManagement)); model.setDetailList(getMesShippingOrderManagementDetails(orderManagement));
//最近扫描完成的发运单号 //最近扫描完成的发运单号
MesShippingOrderManagement lastShippingOrder = getLastShippingOrder(shippingOrderManagement); MesShippingOrderManagement lastShippingOrder = getLastShippingOrder(orderManagement.getOrganizeCode());
if (!Objects.isNull(lastShippingOrder)) { if (!Objects.isNull(lastShippingOrder)) {
model.setRecentlyScanShippingCode(lastShippingOrder.getShippingCode()); model.setRecentlyScanShippingCode(lastShippingOrder.getShippingCode());
} }
@ -281,14 +281,14 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
} }
} }
private List<MesShippingOrderManagementDetail> getMesShippingOrderManagementDetails(MesShippingOrderManagement shippingOrderManagement, MesShippingOrderManagement orderManagement) { private List<MesShippingOrderManagementDetail> getMesShippingOrderManagementDetails(MesShippingOrderManagement orderManagement) {
DdlPackBean orderDetailPackBean = DdlPackBean.getDdlPackBean(shippingOrderManagement.getOrganizeCode()); DdlPackBean orderDetailPackBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(orderManagement.getId(), "pid", orderDetailPackBean); DdlPreparedPack.getNumEqualPack(orderManagement.getId(), "pid", orderDetailPackBean);
DdlPreparedPack.getNumberSmallerPack(MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.CLOSE.getValue(),"status",orderDetailPackBean); DdlPreparedPack.getNumberSmallerPack(MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.CLOSE.getValue(),"status",orderDetailPackBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"custInfoSeq"}, orderDetailPackBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"custInfoSeq"}, orderDetailPackBean);
List<MesShippingOrderManagementDetail> detailList = shippingOrderManagementDetailRepository.findByHqlWhere(orderDetailPackBean); List<MesShippingOrderManagementDetail> detailList = shippingOrderManagementDetailRepository.findByHqlWhere(orderDetailPackBean);
if(CollectionUtils.isEmpty(detailList)){ if(CollectionUtils.isEmpty(detailList)){
throw new ImppBusiException(String.format("发运单【%s】明细信息不存在请检查数据", shippingOrderManagement.getShippingCode())); throw new ImppBusiException(String.format("发运单【%s】明细信息不存在请检查数据", orderManagement.getShippingCode()));
} }
//已扫描数据 //已扫描数据
detailList.forEach(k -> { detailList.forEach(k -> {
@ -299,8 +299,8 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
return detailList; return detailList;
} }
private MesShippingOrderManagement getLastShippingOrder(MesShippingOrderManagement shippingOrderManagement) { private MesShippingOrderManagement getLastShippingOrder(String organizeCode) {
DdlPackBean recentlyOrderPackBean = DdlPackBean.getDdlPackBean(shippingOrderManagement.getOrganizeCode()); DdlPackBean recentlyOrderPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue(), "status", recentlyOrderPackBean); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue(), "status", recentlyOrderPackBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"modifyDatetime"}, recentlyOrderPackBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"modifyDatetime"}, recentlyOrderPackBean);
return shippingOrderManagementRepository.getByProperty(recentlyOrderPackBean); return shippingOrderManagementRepository.getByProperty(recentlyOrderPackBean);

@ -71,13 +71,13 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin
public MesSortShippingCheckModel doScan(MesSortShippingCheckModel model, MesShippingOrderManagement orderManagement, MesPartShippingGroup shippingGroup) { public MesSortShippingCheckModel doScan(MesSortShippingCheckModel model, MesShippingOrderManagement orderManagement, MesPartShippingGroup shippingGroup) {
if (!Objects.isNull(model.getLastShippingDetailId())) { if (!Objects.isNull(model.getLastShippingDetailId())) {
//校验目视单是否已经扫描 //校验目视单是否已经扫描
if (model.getDetailList().stream().anyMatch(t -> t.getVisualOrderNo().equals(model.getSn()))) { if (model.getDetailList().stream().anyMatch(t -> !StringUtils.isEmpty(t.getVisualOrderNo()) && t.getVisualOrderNo().equals(model.getSn()))) {
throw new ImppBusiException(String.format("【%s】此目视单已经扫描过请检查数据", model.getSn())); throw new ImppBusiException(String.format("【%s】此目视单已经扫描过请检查数据", model.getSn()));
} }
//更新单据信息 //更新单据信息
model.getDetailList().stream().filter(t -> t.getId().equals(model.getLastShippingDetailId())).forEach(detail -> { model.getDetailList().stream().filter(t -> t.getId().equals(model.getLastShippingDetailId())).forEach(detail -> {
detail.setVisualOrderNo(model.getSn()); detail.setVisualOrderNo(model.getSn());
updateOrderManagementDetails(orderManagement, detail, getWorkOrder(model, detail.getBarcode()), model.getUserInfo()); updateOrderManagementDetails(orderManagement, detail, getWorkOrder(model, detail), model.getUserInfo());
}); });
model.setLastShippingDetailId(null); model.setLastShippingDetailId(null);
} else { } else {
@ -104,18 +104,22 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin
} }
private MesWorkOrder getWorkOrder(MesSortShippingCheckModel model, String barCode) { private MesWorkOrder getWorkOrder(MesSortShippingCheckModel model, MesShippingOrderManagementDetail detail) {
MesWorkOrder workOrder = mesWorkOrderExtService.getWorkOrder(model.getOrganizeCode(), model.getSn()); MesWorkOrder workOrder = mesWorkOrderExtService.getWorkOrder(model.getOrganizeCode(), model.getSn());
if (Objects.isNull(workOrder)) { if (Objects.isNull(workOrder)) {
throw new ImppBusiException(String.format("目视单【%s】信息不存在,请检查数据!", model.getSn())); throw new ImppBusiException(String.format("目视单【%s】不存在,请检查数据!", model.getSn()));
} }
//校验状态 //校验目视单状态
if (MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue() != workOrder.getWorkOrderStatus() || MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue() != workOrder.getQcStatus()) { if (MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue() != workOrder.getWorkOrderStatus() || MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue() != workOrder.getQcStatus()) {
throw new ImppBusiException(String.format("目视单【%s】工单状态为【%s】质量状态为【%s】不允许发运", model.getSn(), MesExtEnumUtil.ORDER_STATUS.valueOfDescription(workOrder.getWorkOrderStatus()), MesExtEnumUtil.ORDER_STATUS.valueOfDescription(workOrder.getQcStatus()))); throw new ImppBusiException(String.format("目视单【%s】状态为【%s】质量状态为【%s】不允许发运", model.getSn(), MesExtEnumUtil.ORDER_STATUS.valueOfDescription(workOrder.getWorkOrderStatus()), MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(workOrder.getQcStatus())));
} }
//校验条码是否匹配 //校验条码是否匹配
if (!Objects.equals(barCode, workOrder.getSn())) { if (!Objects.equals(detail.getBarcode(), workOrder.getSn())) {
throw new ImppBusiException(String.format("目视单【%s】条码【%s】与扫描条码【%s】不匹配", model.getSn(), workOrder.getSn(), barCode)); throw new ImppBusiException(String.format("目视单【%s】条码【%s】与扫描条码【%s】不匹配", model.getSn(), workOrder.getSn(), detail.getBarcode()));
}
//校验零件是否匹配
if (!Objects.equals(detail.getPartNo(), workOrder.getPartNo())) {
throw new ImppBusiException(String.format("目视单【%s】零件【%s】与发运单零件【%s】不匹配", model.getSn(), workOrder.getPartNo(), detail.getPartNo()));
} }
return workOrder; return workOrder;
} }
@ -171,7 +175,7 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin
private MesProduceSn getMesProduceSn(String organizeCode, String productSn) { private MesProduceSn getMesProduceSn(String organizeCode, String productSn) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(productSn, "productSn", packBean); DdlPreparedPack.getStringEqualPack(productSn, "custSn", packBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean);
return produceSnRepository.getByProperty(packBean); return produceSnRepository.getByProperty(packBean);
} }

Loading…
Cancel
Save