From e992c4de6d5a27f2bd9d83852169da098ad901ee Mon Sep 17 00:00:00 2001 From: "castle.zang" Date: Mon, 30 Dec 2024 16:44:10 +0800 Subject: [PATCH 1/2] =?UTF-8?q?44635=20=E8=8A=9C=E6=B9=96=E6=8E=92?= =?UTF-8?q?=E5=BA=8F=E5=8F=91=E8=BF=90=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pcn/api/busi/IMesPartShippingGroupService.java | 3 +- .../controller/busi/MesEnumDetailController.java | 22 ++++ .../busi/MesPartShippingGroupController.java | 7 +- .../busi/MesPartShippingGroupService.java | 116 +++++++++++++++++---- 4 files changed, 124 insertions(+), 24 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesPartShippingGroupService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesPartShippingGroupService.java index b9f9224..6d65c8e 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesPartShippingGroupService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesPartShippingGroupService.java @@ -4,6 +4,7 @@ import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup; import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroupDetail; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement; +import cn.estsh.i3plus.pojo.mes.model.MesShippingOrderManagementModel; import io.swagger.annotations.ApiOperation; import java.util.List; @@ -23,7 +24,7 @@ public interface IMesPartShippingGroupService { MesPartShippingGroup getMesPartShippingGroup(String organizeCode,String shippingGroupCode); @ApiOperation(value = "打印发运单数据") - List doMesMesShippingOrderManagementPrint(MesShippingOrderManagement model, String userName); + List doMesMesShippingOrderManagementPrint(MesShippingOrderManagement model); @ApiOperation(value = "发运组明细") MesPartShippingGroupDetail getMesPartShippingGroupDetail(String organizeCode, String shippingGroupCode, String partNo, String custPartNo); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesEnumDetailController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesEnumDetailController.java index d03486a..e534457 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesEnumDetailController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesEnumDetailController.java @@ -1,7 +1,9 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.controller.busi; +import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesEnumExtService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesEnumDetailService; import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.mes.bean.MesEnumDetail; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; @@ -13,9 +15,11 @@ import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; +import java.util.Map; /** * @Description : 枚举明细配置 @@ -27,6 +31,8 @@ import java.util.List; @RestController @RequestMapping(MesCommonConstant.MES_YANFEN + "/mesEnumDetail") public class MesEnumDetailController { + @Autowired + private IMesEnumExtService enumService; @Autowired private IMesEnumDetailService mesEnumDetailService; @@ -45,4 +51,20 @@ public class MesEnumDetailController { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } + + @GetMapping(value = "/enumlist") + @ApiOperation(value = "获取MES系统枚举") + public ResultBean enumlistByOrg(@RequestParam(name = "enumName") String enumName, @RequestParam(name = "organizeCode", required = false) String organizeCode) { + try { + organizeCode = org.springframework.util.StringUtils.isEmpty(organizeCode) ? AuthUtil.getOrganize().getOrganizeCode() : organizeCode; + Map map = enumService.doGetMesEnumByEnumName(organizeCode, enumName); + return ResultBean.success("查询成功") + .setResultObject(map) + .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesPartShippingGroupController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesPartShippingGroupController.java index f9e92d7..a298ad4 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesPartShippingGroupController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesPartShippingGroupController.java @@ -6,6 +6,7 @@ import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement; +import cn.estsh.i3plus.pojo.mes.model.MesShippingOrderManagementModel; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; @@ -54,13 +55,13 @@ public class MesPartShippingGroupController { } } @PostMapping(value = "/doPrint") - @ApiOperation(value = "打印未打印拉动单后修改状态") + @ApiOperation(value = "打印未打印发运单后修改状态") public ResultBean doMesMesShippingOrderManagementPrint(@RequestBody MesShippingOrderManagement model) { try { // 数据校验 ValidatorBean.checkNotNull(model.getShippingGroupCode(), "发运组代码不能为空"); - List shippingOrderManagementList = shippingGroupService.doMesMesShippingOrderManagementPrint(model, AuthUtil.getSessionUser().getUserName()); - return ResultBean.success("拉动单打印成功") + List shippingOrderManagementList = shippingGroupService.doMesMesShippingOrderManagementPrint(model); + return ResultBean.success("发运单打印成功") .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) .setResultList(shippingOrderManagementList); } catch (ImppBusiException e) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesPartShippingGroupService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesPartShippingGroupService.java index 22efbbf..bbf8f01 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesPartShippingGroupService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesPartShippingGroupService.java @@ -7,21 +7,24 @@ import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.util.StringUtil; +import cn.estsh.i3plus.pojo.mes.bean.MesConfig; import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup; import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroupDetail; +import cn.estsh.i3plus.pojo.mes.bean.edi.wuhu.MesCimCheryOrder; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail; -import cn.estsh.i3plus.pojo.mes.repository.MesPartShippingGroupDetailRepository; -import cn.estsh.i3plus.pojo.mes.repository.MesPartShippingGroupRepository; -import cn.estsh.i3plus.pojo.mes.repository.MesShippingOrderManagementDetailRepository; -import cn.estsh.i3plus.pojo.mes.repository.MesShippingOrderManagementRepository; +import cn.estsh.i3plus.pojo.mes.model.MesShippingOrderManagementDetailModel; +import cn.estsh.i3plus.pojo.mes.model.MesShippingOrderManagementModel; +import cn.estsh.i3plus.pojo.mes.repository.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.Arrays; -import java.util.List; +import java.util.*; +import java.util.function.Function; +import java.util.logging.Handler; +import java.util.stream.Collectors; @Service @Slf4j @@ -40,6 +43,12 @@ public class MesPartShippingGroupService implements IMesPartShippingGroupService @Autowired private MesPartShippingGroupDetailRepository mesPartShippingGroupDetailRepository; + @Autowired + private MesCimCheryOrderRepository cheryOrderRao; + + @Autowired + private MesConfigRepository mesConfigRao; + public List findAll(DdlPackBean packBean) { return shippingGroupRepository.findByHqlWhere(packBean); } @@ -53,7 +62,16 @@ public class MesPartShippingGroupService implements IMesPartShippingGroupService } @Override - public List doMesMesShippingOrderManagementPrint(MesShippingOrderManagement bean, String userName) { + public List doMesMesShippingOrderManagementPrint(MesShippingOrderManagement bean) { + DdlPackBean configPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack("WU_HU_SUPPLIER","cfgKey", configPackBean); + List configList = mesConfigRao.findByHqlWhere(configPackBean); + String supplierNo = ""; + if (configList != null && !configList.isEmpty()) { + supplierNo = configList.get(0).getCfgValue(); + } + + List modelList = new ArrayList<>(); DdlPackBean packBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); //多选 if (!StringUtil.isEmpty(bean.getShippingGroupCode())) { @@ -62,29 +80,87 @@ public class MesPartShippingGroupService implements IMesPartShippingGroupService DdlPreparedPack.getStringEqualPack(bean.getShippingCode(), "shippingCode", packBean); DdlPreparedPack.getIsNull("lastPrintTime", packBean); - DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean); - List pullingOrderInfos = shippingOrderManagementRepository.findByHqlWhere(packBean); + DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"createDatetime"}, packBean); + List pullingOrderInfos = shippingOrderManagementRepository.findByHqlTopWhere(packBean,10); if (!CollectionUtils.isEmpty(pullingOrderInfos)) { - //把查出来的拉动单打印并修改打印状态为已打印 - for (MesShippingOrderManagement pullingOrderInfo : pullingOrderInfos) { - //查询拉动组明细 - DdlPackBean partPackBean = DdlPackBean.getDdlPackBean(pullingOrderInfo.getOrganizeCode()); - DdlPreparedPack.getNumEqualPack(pullingOrderInfo.getId(), "pid", partPackBean); + //把查出来的发运单打印并修改打印状态为已打印 + for (MesShippingOrderManagement shippingOrder : pullingOrderInfos) { + MesShippingOrderManagementModel model = new MesShippingOrderManagementModel(); + String shippingCodePrefix = shippingOrder.getShippingCode().substring(0, shippingOrder.getShippingCode().length() - 3); + String shippingCodeSuffix = shippingOrder.getShippingCode().substring(shippingOrder.getShippingCode().length() - 3); + model.setShippingCode(shippingCodePrefix); + model.setShippingCodeAfter3(shippingCodeSuffix); + model.setShippingCodeWhole(shippingOrder.getShippingCode()); + + //查询原始报文 + List cheryOrderList = getCheryOrder(shippingOrder.getOrganizeCode(), shippingOrder.getShippingCode()); + Map> cheryOrderMap = new HashMap<>(); + if (cheryOrderList != null && !cheryOrderList.isEmpty()) { + MesCimCheryOrder cheryOrder = cheryOrderList.get(0); + model.setPlantName(cheryOrder.getPlantName()); + model.setPartkitName(cheryOrder.getPartkitName()); + model.setDeliverySendSequence(cheryOrder.getDeliverySendSequence()); + model.setReceiveDockName(cheryOrder.getReceiveDockNo()+"--"+cheryOrder.getReceiveDockName()); + model.setLastRecRequireTime(cheryOrder.getLastRecRequireTime()); + //根据cheryOrder的workshopNo获取对应的车间名称 + String workshopName = getWorkshopName(cheryOrder.getOrganizeCode(), cheryOrder.getWorkshopNo()); + model.setWorkShop(workshopName); + model.setCreateDateTime(cheryOrder.getCreateDatetime()); + model.setPrintDateTime(TimeTool.getNowTime(true)); + cheryOrderMap = cheryOrderList.stream().collect(Collectors.groupingBy(MesCimCheryOrder::getVin)); + } + + //查询发运单明细 + DdlPackBean partPackBean = DdlPackBean.getDdlPackBean(shippingOrder.getOrganizeCode()); + DdlPreparedPack.getNumEqualPack(shippingOrder.getId(), "pid", partPackBean); + DdlPreparedPack.getOrderBy("boxNum",CommonEnumUtil.ASC_OR_DESC.ASC.getValue(), partPackBean); List shipOrderPartInfos = shippingOrderManagementDetailRepository.findByHqlWhere(partPackBean); if (!CollectionUtils.isEmpty(shipOrderPartInfos)) { - pullingOrderInfo.setShipOrderPartInfos(shipOrderPartInfos); + List detailList = new ArrayList<>(); + shipOrderPartInfos = shipOrderPartInfos.stream().sorted(Comparator.comparing(MesShippingOrderManagementDetail::getCustInfoSeq)).collect(Collectors.toList()); + for (MesShippingOrderManagementDetail shipOrderPartInfo : shipOrderPartInfos) { + MesShippingOrderManagementDetailModel detailModel = new MesShippingOrderManagementDetailModel(); + detailModel.setPartNo(shipOrderPartInfo.getPartNo()); + detailModel.setPartName(shipOrderPartInfo.getPartName()); + detailModel.setQty(shipOrderPartInfo.getPlanQty()); + detailModel.setBoxNo(shipOrderPartInfo.getCustInfoSeq()); + detailModel.setSupplierNo(supplierNo); + detailModel.setVin(shipOrderPartInfo.getVin().substring(shipOrderPartInfo.getVin().length()-8)); + MesCimCheryOrder order = cheryOrderMap.get(shipOrderPartInfo.getVin()).get(0); + if (order != null) { + detailModel.setWholePartNo(order.getMaterialNo()); + } + detailList.add(detailModel); + } + model.setShipOrderPartInfos(detailList); } - pullingOrderInfo.setPrintCount(StringUtil.isEmpty(pullingOrderInfo.getPrintCount())?1:pullingOrderInfo.getPrintCount()+1); - pullingOrderInfo.setLastPrintTime(TimeTool.getNowTime(true)); - pullingOrderInfo.setLastPrintUser(userName); - ConvertBean.serviceModelUpdate(pullingOrderInfo, userName); + //查询原有报文 根据shippingCode; + shippingOrder.setPrintCount(StringUtil.isEmpty(shippingOrder.getPrintCount())?1:shippingOrder.getPrintCount()+1); + shippingOrder.setLastPrintTime(TimeTool.getNowTime(true)); + shippingOrder.setLastPrintUser(bean.getUserInfo()); + ConvertBean.serviceModelUpdate(shippingOrder, bean.getUserInfo()); + modelList.add(model); } shippingOrderManagementRepository.saveAll(pullingOrderInfos); } - return pullingOrderInfos; +// return pullingOrderInfos; + return modelList; } + private String getWorkshopName(String organizeCode, String workshopNo) { + + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(workshopNo, "cfgKey", ddlPackBean); + List configList = mesConfigRao.findByHqlWhere(ddlPackBean); + return configList.isEmpty() ? "" : configList.get(0).getCfgValue(); + + } + private List getCheryOrder(String organizeCode, String sheetNo) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(sheetNo, "sheetNo", ddlPackBean); + return cheryOrderRao.findByHqlWhere(ddlPackBean); + } @Override public MesPartShippingGroupDetail getMesPartShippingGroupDetail(String organizeCode, String shippingGroupCode, String partNo, String custPartNo) { if(StringUtil.isEmpty(organizeCode) || StringUtil.isEmpty(shippingGroupCode) || StringUtil.isEmpty(partNo) || StringUtil.isEmpty(custPartNo)) return null; From c69884d16a6f4671d14e2518c9af35f5e3e007e4 Mon Sep 17 00:00:00 2001 From: "castle.zang" Date: Mon, 30 Dec 2024 17:43:48 +0800 Subject: [PATCH 2/2] =?UTF-8?q?44509=20=E6=9F=A5=E8=AF=A2=E6=9D=A1?= =?UTF-8?q?=E7=A0=81=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/busi/MesEnumDetailController.java | 38 ++++++++++------------ 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesEnumDetailController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesEnumDetailController.java index e534457..6e3c44e 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesEnumDetailController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesEnumDetailController.java @@ -1,9 +1,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.controller.busi; -import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesEnumExtService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesEnumDetailService; import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant; -import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.mes.bean.MesEnumDetail; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; @@ -15,11 +13,9 @@ import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; -import java.util.Map; /** * @Description : 枚举明细配置 @@ -31,8 +27,8 @@ import java.util.Map; @RestController @RequestMapping(MesCommonConstant.MES_YANFEN + "/mesEnumDetail") public class MesEnumDetailController { - @Autowired - private IMesEnumExtService enumService; +// @Autowired +// private IMesEnumExtService enumService; @Autowired private IMesEnumDetailService mesEnumDetailService; @@ -52,19 +48,19 @@ public class MesEnumDetailController { } } - @GetMapping(value = "/enumlist") - @ApiOperation(value = "获取MES系统枚举") - public ResultBean enumlistByOrg(@RequestParam(name = "enumName") String enumName, @RequestParam(name = "organizeCode", required = false) String organizeCode) { - try { - organizeCode = org.springframework.util.StringUtils.isEmpty(organizeCode) ? AuthUtil.getOrganize().getOrganizeCode() : organizeCode; - Map map = enumService.doGetMesEnumByEnumName(organizeCode, enumName); - return ResultBean.success("查询成功") - .setResultObject(map) - .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - } catch (ImppBusiException busExcep) { - return ResultBean.fail(busExcep); - } catch (Exception e) { - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } +// @GetMapping(value = "/enumlist") +// @ApiOperation(value = "获取MES系统枚举") +// public ResultBean enumlistByOrg(@RequestParam(name = "enumName") String enumName, @RequestParam(name = "organizeCode", required = false) String organizeCode) { +// try { +// organizeCode = org.springframework.util.StringUtils.isEmpty(organizeCode) ? AuthUtil.getOrganize().getOrganizeCode() : organizeCode; +// Map map = enumService.doGetMesEnumByEnumName(organizeCode, enumName); +// return ResultBean.success("查询成功") +// .setResultObject(map) +// .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); +// } catch (ImppBusiException busExcep) { +// return ResultBean.fail(busExcep); +// } catch (Exception e) { +// return ImppExceptionBuilder.newInstance().buildExceptionResult(e); +// } +// } }