From 42f59c1d9f2f3450f3c3b1e38bfa5f7d737dcd75 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Tue, 22 Apr 2025 20:34:40 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=2046215=20PCN=EF=BC=9A=E5=8F=91=E8=BF=90?= =?UTF-8?q?=E9=98=B2=E9=94=99=E5=A2=9E=E5=8A=A0=E6=98=BE=E7=A4=BA=E5=90=8E?= =?UTF-8?q?=E7=BB=AD=E5=BE=85=E5=8F=91=E8=BF=90=E5=8D=95=E5=8F=B7=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pcn/api/busi/IMesSortShippingCheckService.java | 3 + .../busi/MesSortShippingCheckController.java | 1 + .../busi/MesSortShippingCheckService.java | 74 +++++++++++++++++++++- .../pcn/pojo/model/MesSortShippingCheckModel.java | 11 ++++ .../pcn/pojo/model/MesSortShippingListModel.java | 38 +++++++++++ .../ext/mes/pcn/pojo/util/MesPcnExtConstWords.java | 2 + 6 files changed, 126 insertions(+), 3 deletions(-) create mode 100644 modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesSortShippingListModel.java diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesSortShippingCheckService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesSortShippingCheckService.java index d75099f..596af44 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesSortShippingCheckService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesSortShippingCheckService.java @@ -41,4 +41,7 @@ public interface IMesSortShippingCheckService { void saveSecondShipScanOrder(MesSortShippingCheckModel model); + @ApiOperation(value = "待发运列表") + MesSortShippingCheckModel getSortShippingQueueList(MesSortShippingCheckModel model); + } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesSortShippingCheckController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesSortShippingCheckController.java index 30f1ae7..4e3ae81 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesSortShippingCheckController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesSortShippingCheckController.java @@ -75,6 +75,7 @@ public class MesSortShippingCheckController { ConvertBean.serviceModelUpdate(shippingOrderManagement, userInfo); long start = System.currentTimeMillis(); MesSortShippingCheckModel model = sortShippingCheckService.doShippingOrderNoQuery(shippingOrderManagement); + model = sortShippingCheckService.getSortShippingQueueList(model); long end = System.currentTimeMillis(); scanLogUtil.info("扫描发运单执行结束", end - start); return ResultBean.success(model != null ? model.getMsg() : "").setResultObject(model); 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 a709a6f..d4919d7 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 @@ -8,6 +8,7 @@ import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.shippingscan.IMes import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesSortShippingCheckModel; +import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesSortShippingListModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesSortShippingModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.platform.common.convert.ConvertBean; @@ -137,10 +138,13 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService @Autowired private IMesLoadingGroupRepository mesLoadingGroupRDao; + @Autowired + protected MesCustomerCarModelRepository customerCarModelRepository; + @Override public MesSortShippingCheckModel doShippingOrderNoQuery(MesShippingOrderManagement shippingOrderManagement) { //返回数据组装 - MesSortShippingCheckModel model = new MesSortShippingCheckModel(); + MesSortShippingCheckModel model = new MesSortShippingCheckModel(shippingOrderManagement.getOrganizeCode()); //校验发运单 MesShippingOrderManagement orderManagement = getMesShippingOrderManagement(shippingOrderManagement); if(Objects.isNull(orderManagement)){ @@ -149,7 +153,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService } MesPartShippingGroup partShippingGroup = getMesPartShippingGroup(orderManagement.getOrganizeCode(),orderManagement.getShippingGroupCode()); //校验发运单扫描顺序 - checkShippingOrderSeq(shippingOrderManagement, orderManagement); + checkShippingOrderSeq(shippingOrderManagement, orderManagement, model); //根据扫描的发运单找到是否装车配置,若是,则根据发运单查询是否生成装车单,若没生成装车单则提示此发运单配置是否装车为是,但没生成装车单,请检查数据! checkLoadingList(shippingOrderManagement, orderManagement, partShippingGroup); if (!StringUtils.isEmpty(orderManagement.getCheckSeqCode())) { @@ -425,7 +429,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService return orderManagement; } - private void checkShippingOrderSeq(MesShippingOrderManagement shippingOrderManagement, MesShippingOrderManagement orderManagement) { + private void checkShippingOrderSeq(MesShippingOrderManagement shippingOrderManagement, MesShippingOrderManagement orderManagement, MesSortShippingCheckModel model) { //最后一个扫描完成的发运单信息 DdlPackBean orderManagementPackBean = DdlPackBean.getDdlPackBean(shippingOrderManagement.getOrganizeCode()); DdlPreparedPack.getNumberSmallerPack(orderManagement.getSeq(), "seq", orderManagementPackBean); @@ -454,6 +458,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService orderManagement.getShippingCode(), orderManagement.getSeq(),shippingOrder.getShippingCode(),shippingOrder.getSeq())); } } + model.setShippingSeq(orderManagement.getSeq()); } private void checkLoadingList(MesShippingOrderManagement shippingOrderManagement, MesShippingOrderManagement orderManagement, MesPartShippingGroup partShippingGroup) { @@ -1073,4 +1078,67 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService } return shippingGroup.getConfirmPartType(); } + + @Override + public MesSortShippingCheckModel getSortShippingQueueList(MesSortShippingCheckModel model) { + if (null == model || null == model.getMesPartShippingGroup()) return model; + Integer showQueueNum = model.getMesPartShippingGroup().getShowQueueNum(); + if (StringUtils.isEmpty(showQueueNum) || showQueueNum.compareTo(MesPcnExtConstWords.ZERO) <= 0) return model; + //查询当前发运单后面的未发运的单据 + DdlPackBean packBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode()); + DdlPreparedPack.getNumberBiggerPack(model.getShippingSeq(), MesPcnExtConstWords.SEQ, packBean); + DdlPreparedPack.getStringEqualPack(model.getMesPartShippingGroup().getShippingGroupCode(), MesPcnExtConstWords.SHIPPING_GROUP_CODE, packBean); + DdlPreparedPack.getInPackList(Stream.of(MesExtEnumUtil.SHIPPING_ORDER_STATUS.CREATE.getValue(), MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getValue()).collect(Collectors.toList()), MesPcnExtConstWords.STATUS, packBean); + DdlPreparedPack.getOrderBy(MesPcnExtConstWords.SEQ, CommonEnumUtil.ASC_OR_DESC.ASC.getValue(), packBean); + List shippingOrderList = shippingOrderManagementRepository.findByHqlTopWhere(packBean, showQueueNum); + if (CollectionUtils.isEmpty(shippingOrderList)) return model; + //查询发运单明细数据 + List idList = shippingOrderList.stream().filter(o -> null != o).map(MesShippingOrderManagement::getId).collect(Collectors.toList()); + packBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode()); + if (idList.size() == 1) DdlPreparedPack.getNumEqualPack(idList.get(0), MesPcnExtConstWords.PID, packBean); + else DdlPreparedPack.getInPackList(idList, MesPcnExtConstWords.PID, packBean); + List detailList = shippingOrderManagementDetailRepository.findByHqlWhere(packBean); + Map> detailMap = CollectionUtils.isEmpty(detailList) ? null : + detailList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesShippingOrderManagementDetail::getPid)); + List custPartNoList = CollectionUtils.isEmpty(detailList) ? null : + (detailList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCustPartNo()))).map(MesShippingOrderManagementDetail::getCustPartNo) + .collect(Collectors.toList())).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); + //查询车型 + Map> carModelCodeMap = null; + if (!CollectionUtils.isEmpty(custPartNoList)) { + packBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode()); + if (custPartNoList.size() == 1) DdlPreparedPack.getStringEqualPack(custPartNoList.get(0), MesPcnExtConstWords.CUST_PART_NO, packBean); + else DdlPreparedPack.getInPackList(custPartNoList, MesPcnExtConstWords.CUST_PART_NO, packBean); + List customerCarModelList = customerCarModelRepository.findByHqlWhere(packBean); + carModelCodeMap = CollectionUtils.isEmpty(customerCarModelList) ? null : + customerCarModelList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCarModelCode()))).collect(Collectors.groupingBy(MesCustomerCarModel::getCustPartNo)); + } + //返回待发运列表数据 + List sortShippingListModelList = new ArrayList<>(); + for (MesShippingOrderManagement shippingOrderManagement : shippingOrderList) { + if (null == shippingOrderManagement) continue; + List details = CollectionUtils.isEmpty(detailMap) ? null : detailMap.get(shippingOrderManagement.getId()); + if (CollectionUtils.isEmpty(details)) { + MesSortShippingListModel shippingListModel = new MesSortShippingListModel(); + shippingListModel.setShippingCode(shippingOrderManagement.getShippingCode()); + sortShippingListModelList.add(shippingListModel); + continue; + } + for (MesShippingOrderManagementDetail detail : details) { + if (null == detail) continue; + MesSortShippingListModel shippingListModel = new MesSortShippingListModel(); + shippingListModel.setShippingCode(shippingOrderManagement.getShippingCode()); + shippingListModel.setCustOrderNo(detail.getCustOrderNo()); + shippingListModel.setPartNo(detail.getPartNo()); + shippingListModel.setCustPartNo(detail.getCustPartNo()); + if (!CollectionUtils.isEmpty(carModelCodeMap) && carModelCodeMap.containsKey(detail.getCustPartNo())) { + shippingListModel.setCarModelCode(carModelCodeMap.get(detail.getCustPartNo()).get(0).getCarModelCode()); + shippingListModel.setCarModelName(carModelCodeMap.get(detail.getCustPartNo()).get(0).getCarModelName()); + } + sortShippingListModelList.add(shippingListModel); + } + } + model.setSortShippingListModelList(sortShippingListModelList); + return model; + } } diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesSortShippingCheckModel.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesSortShippingCheckModel.java index 87a2b8a..fd1a689 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesSortShippingCheckModel.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesSortShippingCheckModel.java @@ -54,12 +54,23 @@ public class MesSortShippingCheckModel { @ApiParam("提示引导信息") private String msg; + @ApiParam("发运单顺序号") + private Long shippingSeq; + @ApiParam("料架条码") private String volvoRackNo; + @ApiParam("待发运列表") + private List sortShippingListModelList; + public void setDetailList(List detailList) { this.detailList = detailList; this.isScanCount = (int) detailList.stream().filter(k -> Objects.equals(k.getIsScanFlg(), MesCommonConstant.TRUE_INTEGER)).count(); } + public MesSortShippingCheckModel() {} + + public MesSortShippingCheckModel(String organizeCode) { + this.organizeCode = organizeCode; + } } diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesSortShippingListModel.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesSortShippingListModel.java new file mode 100644 index 0000000..42334b6 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesSortShippingListModel.java @@ -0,0 +1,38 @@ +package cn.estsh.i3plus.ext.mes.pcn.pojo.model; + +import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; +import io.swagger.annotations.ApiParam; +import lombok.Data; +import org.springframework.util.CollectionUtils; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @Description : 重庆龙兴发运单MODEL + **/ +@Data +public class MesSortShippingListModel implements Serializable { + + private static final long serialVersionUID = 4209064017242032556L; + + @ApiParam("发运单号") + private String shippingCode; + + @ApiParam("客户订单号") + private String custOrderNo; + + @ApiParam("零件号") + private String partNo; + + @ApiParam("客户零件号") + private String custPartNo; + + @ApiParam("车型代码") + private String carModelCode; + + @ApiParam("车型名称") + private String carModelName; + +} diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java index fc0d89a..5641b7f 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java @@ -361,6 +361,8 @@ public class MesPcnExtConstWords { public static final String LAST_PRINT_TIME = "lastPrintTime"; //发运组名称 public static final String SHIPPING_GROUP_NAME = "shippingGroupName"; + //顺序号 + public static final String SEQ = "seq"; //队列状态 public static final String QUEUE_STATUS = "queueStatus"; //目标工位 From bc9ddc502bdb8f464faaced812db858b8af5d06c Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Tue, 22 Apr 2025 21:08:33 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=2046215=20PCN=EF=BC=9A=E5=8F=91=E8=BF=90?= =?UTF-8?q?=E9=98=B2=E9=94=99=E5=A2=9E=E5=8A=A0=E6=98=BE=E7=A4=BA=E5=90=8E?= =?UTF-8?q?=E7=BB=AD=E5=BE=85=E5=8F=91=E8=BF=90=E5=8D=95=E5=8F=B7=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pcn/apiservice/controller/busi/MesSortShippingCheckController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesSortShippingCheckController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesSortShippingCheckController.java index 4e3ae81..001fcd1 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesSortShippingCheckController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesSortShippingCheckController.java @@ -75,6 +75,7 @@ public class MesSortShippingCheckController { ConvertBean.serviceModelUpdate(shippingOrderManagement, userInfo); long start = System.currentTimeMillis(); MesSortShippingCheckModel model = sortShippingCheckService.doShippingOrderNoQuery(shippingOrderManagement); + //待发运列表 model = sortShippingCheckService.getSortShippingQueueList(model); long end = System.currentTimeMillis(); scanLogUtil.info("扫描发运单执行结束", end - start);