diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesJisShippingService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesJisShippingService.java index d2c47e2..f47673f 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesJisShippingService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesJisShippingService.java @@ -1,5 +1,6 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesConfigService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesJisShippingService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.TimeTool; @@ -32,18 +33,11 @@ public class MesJisShippingService implements IMesJisShippingService { private MesShippingOrderManagementRepository shippingOrderManagementRepository; @Autowired private MesShippingOrderManagementDetailRepository shippingOrderManagementDetailRepository; + @Autowired + private IMesConfigService configService; public List getJisShipping(MesShippingOrderManagement orderManagement, List orderManagementDetailList, String org) { - -// DdlPackBean packBean = DdlPackBean.getDdlPackBean(org); -// DdlPreparedPack.getStringEqualPack(orderManagementDetailList.get(0).getLoadingOrderNo(), "shippingCode", packBean); -// MesShippingOrderManagement originBean = shippingOrderManagementRepository.getByProperty(packBean); -// -// DdlPackBean detailPackBean = DdlPackBean.getDdlPackBean(org); -// DdlPreparedPack.getStringEqualPack(originBean.getShippingCode(), "shippingCode", detailPackBean); -// List detailDeleteList = shippingOrderManagementDetailRepository.findByHqlWhere(detailPackBean); - List jisShippingList = new ArrayList<>(); orderManagementDetailList.forEach(k -> { MesJisShipping jisShipping = new MesJisShipping(); @@ -51,11 +45,15 @@ public class MesJisShippingService implements IMesJisShippingService { BeanUtils.copyProperties(k, jisShipping, "id"); jisShipping.setFactoryCode(orderManagement.getCustOrganizeCode()); jisShipping.setShippingTime(TimeTool.getNowTime(true)); + jisShipping.setErpWarerhouse(configService.getCfgValue(org, "ERP_WARERHOUSE")); + jisShipping.setErpWarehous(configService.getCfgValue(org, "ERP_WAREHOUS")); jisShipping.setDock(orderManagement.getSendDockCode()); + jisShipping.setCusCode(orderManagement.getCustCode()); jisShipping.setCusDock(orderManagement.getCustDockCode()); jisShipping.setCustOrderNo(k.getCustOrderNo()); jisShipping.setSerialNumber(k.getBarcode()); jisShipping.setQuantityPerCar(orderManagementDetailList.size()); + jisShipping.setOffTime(TimeTool.getNowTime(true)); jisShipping.setShippingOrderCode(orderManagement.getShippingCode()); ConvertBean.serviceModelInitialize(jisShipping, AuthUtil.getSessionUser().getUserName()); jisShippingList.add(jisShipping); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java index 4e72c69..d015c28 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java @@ -150,9 +150,10 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS //判断是否需要排序校验 默认排序则需要校验 if (loadingList.getScanSeqWay() == MesExtEnumUtil.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE.DEFAULT_SORT.getValue()) { //获取明细中最小的 - Long minSeq = model.getDetailList().stream().mapToLong(k -> k.getSeq()).min().getAsLong(); + + Long minSeq = model.getDetailList().stream().filter(k -> StringUtils.isEmpty(k.getScanSn())).mapToLong(k -> k.getSeq()).min().getAsLong(); //若扫描的不是最小顺序 则报错 - if (minSeq != loadingListDetail.getSeq()) { + if (minSeq.longValue() != loadingListDetail.getSeq().longValue()) { throw new ImppBusiException(String.format("【%s】此发运单扫描顺序错误,请检查数据!", model.getShippingCode())); } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java index 2083c92..1c38043 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java @@ -24,6 +24,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; import java.util.Optional; @@ -73,8 +74,9 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService //校验发运单状态 必须是未装车条码 if (orderManagement.getStatus() != MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPING.getValue() && orderManagement.getStatus() != MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getValue()) { - throw new ImppBusiException(String.format("【%s】此发运单状态为【%s】,请选择状态为【%s】或【%s】状态的发运单", shippingOrderManagement.getShippingCode(), orderManagement.getStatus(), - MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPING.getValue(),MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getValue())); + throw new ImppBusiException(String.format("【%s】此发运单状态为【%s】,请选择状态为【%s】或【%s】状态的发运单", shippingOrderManagement.getShippingCode(), + MesExtEnumUtil.SHIPPING_ORDER_STATUS.valueOfDescription(orderManagement.getStatus()), + MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPING.getDescription(), MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getDescription())); } @@ -116,12 +118,12 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService statusList.add(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPING.getValue()); DdlPackBean sortOrderPackBean = DdlPackBean.getDdlPackBean(shippingOrderManagement.getOrganizeCode()); DdlPreparedPack.getNumEqualPack(loadingList.getId(), "loadingListId", sortOrderPackBean); - DdlPreparedPack.getNumEqualPack(statusList, "status", sortOrderPackBean); + DdlPreparedPack.getInPackList(statusList, "status", sortOrderPackBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"seq"}, sortOrderPackBean); MesShippingOrderManagement sortTempOrder = shippingOrderManagementRepository.getByProperty(sortOrderPackBean); //若没有最小的,则此装车单 没有发运单扫描完成 - if (sortTempOrder.getId() != orderManagement.getId()) { + if (sortTempOrder.getId().longValue() != orderManagement.getId().longValue()) { throw new ImppBusiException(String.format("【%s】此发运单扫描顺序错误,请扫描【%s】发运单!", shippingOrderManagement.getShippingCode(), sortTempOrder.getOrderCode())); } @@ -180,19 +182,22 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService boolean scanFlg = false; for (MesShippingOrderManagementDetail detail : model.getDetailList()) { if (detail.getPartNo().equals(produceSn.getPartNo()) && StringUtils.isEmpty(detail.getBarcode())) { - scanFlg = true; - detail.setBarcode(produceSn.getSerialNumber()); + //判断是否需要排序校验 默认排序则需要校验 if (orderManagement.getScanSeqWay() == MesExtEnumUtil.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE.DEFAULT_SORT.getValue()) { //获取明细中最小的 - Long minSeq = model.getDetailList().stream().mapToLong(k -> k.getCustInfoSeq()).min().getAsLong(); + Optional minPartNO = model.getDetailList().stream().filter(k -> StringUtils.isEmpty(k.getBarcode())) + .min(Comparator.comparingLong(k -> k.getCustInfoSeq())).map(k -> k.getPartNo()); //若扫描的不是最小顺序 则报错 - if (minSeq != detail.getCustInfoSeq()) { + if (!minPartNO.get().equals(produceSn.getPartNo())) { throw new ImppBusiException(String.format("【%s】此条码扫描顺序错误,请检查数据!", model.getSn())); } } + scanFlg = true; + detail.setBarcode(produceSn.getSerialNumber()); + if (StringUtils.isEmpty(orderManagement.getCheckSeqCode())) { detail.setIsScanFlg(MesCommonConstant.TRUE_INTEGER);