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 8599268..353f287 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/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 9a00b89..7c74412 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,19 +7,20 @@ 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.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.ArrayList; import java.util.Arrays; import java.util.List; @@ -40,6 +41,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 +60,8 @@ public class MesPartShippingGroupService implements IMesPartShippingGroupService } @Override - public List doMesMesShippingOrderManagementPrint(MesShippingOrderManagement bean, String userName) { + public List doMesMesShippingOrderManagementPrint(MesShippingOrderManagement bean) { + List modelList = new ArrayList<>(); DdlPackBean packBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); //多选 if (!StringUtil.isEmpty(bean.getShippingGroupCode())) { @@ -62,29 +70,62 @@ 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(); + model.setShippingCode(shippingOrder.getShippingCode()); + + //查询原始报文 + MesCimCheryOrder cheryOrder = getCheryOrder(shippingOrder.getOrganizeCode(), shippingOrder.getShippingCode()); + if (cheryOrder != null) { + 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); + } + + //查询发运单明细 + DdlPackBean partPackBean = DdlPackBean.getDdlPackBean(shippingOrder.getOrganizeCode()); + DdlPreparedPack.getNumEqualPack(shippingOrder.getId(), "pid", partPackBean); List shipOrderPartInfos = shippingOrderManagementDetailRepository.findByHqlWhere(partPackBean); if (!CollectionUtils.isEmpty(shipOrderPartInfos)) { - pullingOrderInfo.setShipOrderPartInfos(shipOrderPartInfos); + model.setShippingDetails(shipOrderPartInfos); } - 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 MesCimCheryOrder getCheryOrder(String organizeCode, String sheetNo) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(sheetNo, "sheetNo", ddlPackBean); + List cheryOrderList = cheryOrderRao.findByHqlTopWhere(ddlPackBean,1); + return cheryOrderList.isEmpty() ? null : cheryOrderList.get(0); + } @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;