From 440753bdd7b955eb4ee63e8f57d058ded5a0ee58 Mon Sep 17 00:00:00 2001 From: jun Date: Tue, 12 Nov 2024 12:33:30 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=8F=91=E8=BF=90=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=89=AB=E6=8F=8F=E6=97=A5=E5=BF=97=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java index f1db64d..a741970 100644 --- a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java @@ -166,6 +166,12 @@ public class MesExtConstWords { public static final int ZERO = 0; //"0" public static final String ZERO_STR = "0"; + //1 + public static final int ONE = 1; + //"1" + public static final String ONE_STR = "1"; + // 10 + public static final Integer TEN = 10; //"" public static final String EMPTY = ""; //- @@ -222,8 +228,6 @@ public class MesExtConstWords { public static final String DATE_DD_01 = "-01"; //日期类型 public static final String DATE_DD_31 = "-31"; - // 1 - public static final String ONE_STR = "1"; //日期类型 public static final String DATE_SERIAL_FORMAT = "yyyyMMdd"; From 8bb57ecb565cbc3d4ae00f5ef31abe23bb1cb84b Mon Sep 17 00:00:00 2001 From: jun Date: Tue, 12 Nov 2024 12:42:56 +0800 Subject: [PATCH 2/2] =?UTF-8?q?SPS=E6=8B=89=E5=8A=A8=E5=8D=95=E7=94=9F?= =?UTF-8?q?=E6=88=90=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/api/base/IMesPullingOrderInfoService.java | 2 +- .../ext/mes/api/base/IMesWorkOrderPartService.java | 3 + .../controller/busi/MesWhiteListController.java | 4 +- ...sCreatePullOrderByPullGroupAndWorkOrderJob.java | 35 +++---- .../serviceimpl/base/MesCustomerPartService.java | 13 ++- .../base/MesPullingOrderInfoService.java | 110 ++++++++++++--------- .../base/MesWorkOrderPartServiceImpl.java | 14 +++ .../serviceimpl/base/MesWorkOrderService.java | 27 +++++ 8 files changed, 135 insertions(+), 73 deletions(-) diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesPullingOrderInfoService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesPullingOrderInfoService.java index a2741d3..ee603d5 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesPullingOrderInfoService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesPullingOrderInfoService.java @@ -14,7 +14,7 @@ public interface IMesPullingOrderInfoService extends IBaseMesService doMesPullingOrderInfoPrint(MesPullingOrderInfo mesPullingOrderInfo, String userName); } diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderPartService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderPartService.java index 7e23216..2c17a75 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderPartService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderPartService.java @@ -17,4 +17,7 @@ public interface IMesWorkOrderPartService extends IBaseMesService findMesWorkOrderPart(String workOrderNo, String organizeCode); + + @ApiOperation("根据工单号查询工单零件") + List findMesWorkOrderPart(List workOrderNoList, String organizeCode); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/MesWhiteListController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/MesWhiteListController.java index c03f0c3..750cd27 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/MesWhiteListController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/MesWhiteListController.java @@ -281,10 +281,10 @@ public class MesWhiteListController extends MesBaseController { } @GetMapping(value = "/doCreatePullOrder") @ApiOperation(value = "根据拉动组和生产工单产生拉动单") - public ResultBean doCreatePullOrder(String organizeCode, String equ) { + public ResultBean doCreatePullOrder(String organizeCode, Integer pageSize) { //统计数据 try { - pullingOrderInfoService.doCreatePullOrderByPullGroupAndWorkOrder(organizeCode,"test"); + pullingOrderInfoService.doCreatePullOrderByPullGroupAndWorkOrder(organizeCode,pageSize,"test"); } catch (ImppBusiException imppException) { return ResultBean.fail(imppException); } catch (Exception e) { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreatePullOrderByPullGroupAndWorkOrderJob.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreatePullOrderByPullGroupAndWorkOrderJob.java index 58a60dd..7f24937 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreatePullOrderByPullGroupAndWorkOrderJob.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreatePullOrderByPullGroupAndWorkOrderJob.java @@ -1,17 +1,19 @@ package cn.estsh.i3plus.ext.mes.apiservice.schedulejob; -import cn.estsh.i3plus.ext.mes.api.base.IMesConfigService; import cn.estsh.i3plus.ext.mes.api.base.IMesPullingOrderInfoService; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.mes.apiservice.schedulejob.BaseMesScheduleJob; +import cn.estsh.i3plus.platform.common.tool.JsonUtilTool; +import cn.estsh.i3plus.pojo.model.wms.WmsJobParamModel; import cn.estsh.impp.framework.boot.init.ApplicationProperties; import io.swagger.annotations.ApiOperation; -import org.apache.commons.lang3.StringUtils; import org.quartz.DisallowConcurrentExecution; import org.quartz.JobExecutionContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.util.CollectionUtils; import java.util.List; @@ -34,9 +36,6 @@ public class MesCreatePullOrderByPullGroupAndWorkOrderJob extends BaseMesSchedul @Autowired private IMesPullingOrderInfoService pullingOrderInfoService; - @Autowired - private IMesConfigService mesConfigService; - @Value("${server.port}") private String serverPort; @Value("${impp.server.ip}") @@ -49,22 +48,20 @@ public class MesCreatePullOrderByPullGroupAndWorkOrderJob extends BaseMesSchedul @Override public void executeMesJob(JobExecutionContext context, ApplicationProperties applicationProperties) { - try { - String jobParam = this.getJobParam(); - if (StringUtils.isBlank(jobParam)) { - throw new IllegalArgumentException("job参数为空,请检查参数"); + List wmsJobParamModelList = JsonUtilTool.toList(this.getJobParam(), WmsJobParamModel.class); + if (!CollectionUtils.isEmpty(wmsJobParamModelList)) { + for (WmsJobParamModel wmsJobParamModel : wmsJobParamModelList) { + try { + long startTime = System.currentTimeMillis(); + LOGGER.info("工厂{}根据拉动组和生产工单产生拉动单JOB --- start", wmsJobParamModel.getOrganizeCode()); + pullingOrderInfoService.doCreatePullOrderByPullGroupAndWorkOrder(wmsJobParamModel.getOrganizeCode(), wmsJobParamModel.getPageSize(), MesExtConstWords.JOB); + long endTime = System.currentTimeMillis(); + LOGGER.info("工厂{}根据拉动组和生产工单产生拉动单JOB --- end --- 耗时: {} ms", wmsJobParamModel.getOrganizeCode(), endTime - startTime); + } catch (Exception e) { + LOGGER.info("工厂{}根据拉动组和生产工单产生拉动单JOB 执行失败{}", wmsJobParamModel.getOrganizeCode(), e); + } } - String[] organizeCodeList = jobParam.split(","); - LOGGER.info("根据拉动组和生产工单产生拉动单JOB开始 -----start"); - String userName = "CreatePullOrderJob"; - for (String organizeCode : organizeCodeList) { - pullingOrderInfoService.doCreatePullOrderByPullGroupAndWorkOrder(organizeCode,userName); - } - LOGGER.info("根据拉动组和生产工单产生拉动单JOB开始结束 ----- end"); - - } catch (Exception e) { - LOGGER.error("根据拉动组和生产工单产生拉动单JOB任务结束e:{}", e.toString()); } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCustomerPartService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCustomerPartService.java index 7b2bea5..843c4bf 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCustomerPartService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCustomerPartService.java @@ -1,6 +1,7 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesCustomerPartService; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; @@ -98,7 +99,11 @@ public class MesCustomerPartService extends BaseMesService impl } List customerPartNoList = mesCustomerCarModelDetails.stream().map(MesCustomerCarModelDetail::getCustPartNo).collect(Collectors.toList()); ddlPackBean = DdlPackBean.getDdlPackBean(mesPartProdGroupDetail.getOrganizeCode()); - DdlPreparedPack.getInPackList(customerPartNoList, "custPartNo", ddlPackBean); + if (customerPartNoList.size() == MesExtConstWords.ONE) { + DdlPreparedPack.getStringEqualPack(customerPartNoList.get(MesExtConstWords.ZERO), "custPartNo", ddlPackBean); + } else { + DdlPreparedPack.getInPackList(customerPartNoList, "custPartNo", ddlPackBean); + } return baseRDao.findByHqlWhere(ddlPackBean); } @@ -106,7 +111,11 @@ public class MesCustomerPartService extends BaseMesService impl public List findMesCustomerPartByPartNo(String organizeCode, List partNoList) { if(StringUtils.isEmpty(organizeCode) || Objects.isNull(partNoList)) return null; DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPack(partNoList, "erpPartNo", packBean); + if (partNoList.size() == MesExtConstWords.ONE) { + DdlPreparedPack.getStringEqualPack(partNoList.get(MesExtConstWords.ZERO), "erpPartNo", packBean); + } else { + DdlPreparedPack.getInPackList(partNoList, "erpPartNo", packBean); + } return baseRDao.findByHqlWhere(packBean); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPullingOrderInfoService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPullingOrderInfoService.java index e61342b..15b531e 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPullingOrderInfoService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPullingOrderInfoService.java @@ -2,6 +2,8 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesCustomerPartService; import cn.estsh.i3plus.ext.mes.api.base.IMesPullingOrderInfoService; +import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderPartService; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.icloud.core.sdk.ICoreUtilCloud; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; @@ -52,6 +54,8 @@ public class MesPullingOrderInfoService extends BaseMesService pulliGroupList = mesPartPullRDao.findByHqlWhere(ddlPackBean); @@ -107,33 +111,27 @@ public class MesPullingOrderInfoService extends BaseMesService> partPullDetailListMap = pullDetailList.stream().collect(Collectors.groupingBy(MesPartPullDetail::getPartNo)); //2.客户物料集合 [PART_NO] in 拉动组明细物料集合 //3.产线数据 - DdlPackBean workPackBean = DdlPackBean.getDdlPackBean(organizeCode); - List workCenterList = pulliGroupList.stream().map(MesPartPull::getWorkCenterCode).collect(Collectors.toList()); - DdlPreparedPack.getInPackList(workCenterList, "workCenterCode", workPackBean); - List mesWorkCenterList = mesWorkCenterRepository.findByHqlWhere(workPackBean); - if (CollectionUtils.isEmpty(mesWorkCenterList)) { - LOGGER.info("根据拉动组和生产工单产生拉动单JOB-->工厂号{},拉动组对应产线信息不存在-->{}", organizeCode, workCenterList); - return; - } - Map> workCenterListMap = mesWorkCenterList.stream().collect(Collectors.groupingBy(MesWorkCenter::getWorkCenterCode)); +// DdlPackBean workPackBean = DdlPackBean.getDdlPackBean(organizeCode); +// DdlPreparedPack.getInPackList(workCenterList, "workCenterCode", workPackBean); +// List mesWorkCenterList = mesWorkCenterRepository.findByHqlWhere(workPackBean); +// if (CollectionUtils.isEmpty(mesWorkCenterList)) { +// LOGGER.info("根据拉动组和生产工单产生拉动单JOB-->工厂号{},拉动组对应产线信息不存在-->{}", organizeCode, workCenterList); +// return; +// } +// Map> workCenterListMap = mesWorkCenterList.stream().collect(Collectors.groupingBy(MesWorkCenter::getWorkCenterCode)); + List workCenterList = pulliGroupList.stream().map(MesPartPull::getWorkCenterCode).distinct().collect(Collectors.toList()); //4.生产工单 在加工状态 [PULLING_STATUS] =0 未创建 - DdlPackBean packBeanWorkOrder = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(workCenterList, "workCenterCode", packBeanWorkOrder); - DdlPreparedPack.getInPackList(Arrays.asList(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue(),MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()), "workOrderStatus", packBeanWorkOrder); - DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.WORK_ORDER_PULLING_STATUS.NOTCREATE.getValue(), "pullingStatus", packBeanWorkOrder); - List workOrderList = mesWorkOrderRepository.findByHqlWhere(packBeanWorkOrder); + List workOrderList = getMesWorkOrderList(organizeCode, pageSize, workCenterList); if (CollectionUtils.isEmpty(workOrderList)) { LOGGER.info("根据拉动组和生产工单产生拉动单JOB-->工厂号{},产线信息没有【未创建】【在加工】状态的工单-->{}", organizeCode, workCenterList); return; } Map> workOrderListMap = workOrderList.stream().collect(Collectors.groupingBy(MesWorkOrder::getWorkOrderNo)); - DdlPackBean packBeanWorkOrderPart = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getInPackList(workOrderList.stream().map(MesWorkOrder::getWorkOrderNo).collect(Collectors.toList()), "workOrderNo", packBeanWorkOrderPart); - List mesWorkOrderPartList = workOrderPartRepository.findByHqlWhere(packBeanWorkOrderPart); + List mesWorkOrderPartList = mesWorkOrderPartService.findMesWorkOrderPart(workOrderList.stream().map(MesWorkOrder::getWorkOrderNo).collect(Collectors.toList()),organizeCode); if (CollectionUtils.isEmpty(mesWorkOrderPartList)) { - LOGGER.info("根据拉动组和生产工单产生拉动单JOB-->工厂号{},产线对应的工单对应工单零件不存在-->{}", organizeCode, workCenterList); + LOGGER.info("根据拉动组和生产工单产生拉动单JOB-->工厂号{},产线对应的工单对应工单零件不存在-->{}", organizeCode, workOrderList.stream().map(MesWorkOrder::getWorkOrderNo).collect(Collectors.toList())); return; } LOGGER.info("根据拉动组和生产工单产生拉动单JOB-->工厂号{},产线对应的工单对应工单零件mesWorkOrderPartList-->{}", organizeCode, mesWorkOrderPartList); @@ -143,7 +141,10 @@ public class MesPullingOrderInfoService extends BaseMesService mesCustomerPartByPartNoList = mesCustomerPartService.findMesCustomerPartByPartNo(organizeCode, partPullDetailListMap.keySet().stream().distinct().collect(Collectors.toList())); Map> customerPartMap = CollectionUtils.isEmpty(mesCustomerPartByPartNoList) ? null : mesCustomerPartByPartNoList.stream().collect(Collectors.groupingBy(MesCustomerPart::getErpPartNo)); - + List mesPullingOrderInfoList = new ArrayList<>(); + List mesPullingOrderPartInfoList = new ArrayList<>(); + List mesPullingOrderExtendsList = new ArrayList<>(); + List workOrderNoList = new ArrayList<>(); for (Map.Entry> stringListEntry : workOrderNoListMap.entrySet()) { //需要生成拉动单的工单号 对应工单 List mesWorkOrders = workOrderListMap.get(stringListEntry.getKey()); @@ -176,29 +177,6 @@ public class MesPullingOrderInfoService extends BaseMesService orderResutlBean = sysOrderNoRuleCloud.getOrderNo(MesCommonConstant.MES_PULL_ORDER_NO); -// if (orderResutlBean != null && orderResutlBean.isSuccess()) { -// orderNo += orderResutlBean.getResultObject().get(WmsConstWords.CORE_ORDER_NO).toString(); -// } else { -// throw ImppExceptionBuilder.newInstance() -// .setSystemID(CommonEnumUtil.SOFT_TYPE.WMS.getCode()) -// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) -// .setErrorDetail("生成单号失败") -// .setErrorSolution("【MES_PULL_ORDER_NO】请重新操作或查看服务!") -// .build(); -// } MesPullingOrderInfo pullingOrder = new MesPullingOrderInfo(); pullingOrder.setOrganizeCode(organizeCode); pullingOrder.setPullingOrderNo(orderNo); @@ -219,7 +197,7 @@ public class MesPullingOrderInfoService extends BaseMesService getMesWorkOrderList(String organizeCode, Integer pageSize, List workCenterList) { + DdlPackBean packBeanWorkOrder = DdlPackBean.getDdlPackBean(organizeCode); + if (workCenterList.size() == MesExtConstWords.ONE) { + DdlPreparedPack.getStringEqualPack(workCenterList.get(MesExtConstWords.ZERO), MesExtConstWords.WORK_CENTER_CODE, packBeanWorkOrder); + } else { + DdlPreparedPack.getInPackList(workCenterList, MesExtConstWords.WORK_CENTER_CODE, packBeanWorkOrder); } + DdlPreparedPack.getInPackList(Arrays.asList(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue(),MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()), "workOrderStatus", packBeanWorkOrder); + DdlPreparedPack.getNumberSmallerPack(MesExtEnumUtil.WORK_ORDER_PULLING_STATUS.SUBMIT.getValue(), "pullingStatus", packBeanWorkOrder); + return mesWorkOrderRepository.findByHqlTopWhere(packBeanWorkOrder, StringUtil.isEmpty(pageSize) ? MesExtConstWords.TEN : pageSize); + } + private void updateMesWorkOrder(String organizeCode, String userName, List workOrderNoList) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + if (workOrderNoList.size() == MesExtConstWords.ONE) { + DdlPreparedPack.getStringEqualPack(workOrderNoList.get(MesExtConstWords.ZERO), MesExtConstWords.WORK_ORDER_NO, packBean); + } else { + DdlPreparedPack.getInPackList(workOrderNoList, MesExtConstWords.WORK_ORDER_NO, packBean); + } + mesWorkOrderRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "pullingStatus"}, + new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.WORK_ORDER_PULLING_STATUS.SUBMIT.getValue()}, packBean); } @Override diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderPartServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderPartServiceImpl.java index 54610e9..f604f1f 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderPartServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderPartServiceImpl.java @@ -1,11 +1,13 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderPartService; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.util.StringUtil; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderPart; import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.util.CollectionUtils; import org.springframework.stereotype.Service; import java.util.List; @@ -33,4 +35,16 @@ public class MesWorkOrderPartServiceImpl extends BaseMesService findMesWorkOrderPart(List workOrderNoList, String organizeCode) { + if (CollectionUtils.isEmpty(workOrderNoList) || StringUtil.isEmpty(organizeCode)) return null; + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + if (workOrderNoList.size() == MesExtConstWords.ONE) { + DdlPreparedPack.getStringEqualPack(workOrderNoList.get(MesExtConstWords.ZERO), MesExtConstWords.WORK_ORDER_NO, packBean); + } else { + DdlPreparedPack.getInPackList(workOrderNoList, MesExtConstWords.WORK_ORDER_NO, packBean); + } + return baseRDao.findByHqlWhere(packBean); + } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 60f348f..57c5b03 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -868,6 +868,18 @@ public class MesWorkOrderService extends BaseMesService implements , MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue(), MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue())); } + //根据产线代码获取生产组信息 + MesPartProdGroup mesPartProdGroup = null; + if (mesPartProdGroupMap.containsKey(mesWorkCenter.getWorkCenterCode())) { + mesPartProdGroup = mesPartProdGroupMap.get(mesWorkCenter.getWorkCenterCode()); + } else { + mesPartProdGroup = getMesPartProdGroup(mesWorkCenter.getOrganizeCode(), mesWorkCenter.getWorkCenterCode()); + mesPartProdGroupMap.put(mesWorkCenter.getWorkCenterCode(), mesPartProdGroup); + } + if (!Objects.isNull(mesPartProdGroup)) { + item.setPartProdGroupCode(mesPartProdGroup.getPartProdGroupCode()); + item.setPartProdGroupName(mesPartProdGroup.getPartProdGroupName()); + } //拼接时间 packPlanTime(item, mesShiftMap); //状态已发布 @@ -1922,6 +1934,12 @@ public class MesWorkOrderService extends BaseMesService implements , MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue(), MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue())); } + //根据产线代码获取生产组信息 + MesPartProdGroup mesPartProdGroup = getMesPartProdGroup(mesWorkCenter.getOrganizeCode(),mesWorkCenter.getWorkCenterCode()); + if(!Objects.isNull(mesPartProdGroup)){ + bean.setPartProdGroupCode(mesPartProdGroup.getPartProdGroupCode()); + bean.setPartProdGroupName(mesPartProdGroup.getPartProdGroupName()); + } bean.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()); List saveMesWorkOrderToWms = new ArrayList<>(); //非试制单 @@ -2264,6 +2282,15 @@ public class MesWorkOrderService extends BaseMesService implements return partPtrRao.findByHqlWhere(partPtrPackBean); } + private MesPartProdGroup getMesPartProdGroup(String organizeCode, String workCenterCode) { + if (StringUtil.isEmpty(organizeCode) || StringUtil.isEmpty(workCenterCode)) { + return null; + } + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", packBean); + return mesPartProdGroupRDao.getByProperty(packBean); + } + private List getAssemblyList(String workCenterCode, String vehicleNo, List workOrderPartList, String organizeCode) { //TM_BAS_WORK_ORDER_ASSEMBLY_SETTING 对应 mes_prod_rule_sort_cfg 排序生产规则