From 8f751f8330a31c2bd0740e6c94c2252d67b15d48 Mon Sep 17 00:00:00 2001 From: gsz Date: Mon, 9 Sep 2024 15:39:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E6=8B=89=E5=8A=A8=E7=BB=84?= =?UTF-8?q?=E5=92=8C=E7=94=9F=E4=BA=A7=E5=B7=A5=E5=8D=95=E4=BA=A7=E7=94=9F?= =?UTF-8?q?=E6=8B=89=E5=8A=A8=E5=8D=95JOB-1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/api/base/IMesPullingOrderInfoService.java | 2 + ...sCreatePullOrderByPullGroupAndWorkOrderJob.java | 71 ++++++++++++++++++++++ .../base/MesPullingOrderInfoService.java | 39 ++++++++++-- 3 files changed, 108 insertions(+), 4 deletions(-) create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreatePullOrderByPullGroupAndWorkOrderJob.java 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 b4c0da4..ea59b67 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 @@ -12,4 +12,6 @@ import java.util.Map; public interface IMesPullingOrderInfoService extends IBaseMesService { Map doSPSForEquipment( String assemblyLine, String pullingGroupCode,String organizeCode ); + + void doCreatePullOrderByPullGroupAndWorkOrder(String organizeCode, String userName); } 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 new file mode 100644 index 0000000..4f94856 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCreatePullOrderByPullGroupAndWorkOrderJob.java @@ -0,0 +1,71 @@ +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.mes.apiservice.schedulejob.BaseMesScheduleJob; +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 java.util.List; + +/** + * @Description : 根据拉动组和生产工单产生拉动单JOB + * @Reference : + * @Author : gsz + * @CreateDate 2024/9/4 10:01 + * @Modify: + **/ +// 禁止 JOB 并发执行 +@DisallowConcurrentExecution +@ApiOperation("根据拉动组和生产工单产生拉动单JOB") +public class MesCreatePullOrderByPullGroupAndWorkOrderJob extends BaseMesScheduleJob { + + public static final Logger LOGGER = LoggerFactory.getLogger(MesCreatePullOrderByPullGroupAndWorkOrderJob.class); + + private static final long serialVersionUID = 9072058154235836696L; + + @Autowired + private IMesPullingOrderInfoService pullingOrderInfoService; + + @Autowired + private IMesConfigService mesConfigService; + + @Value("${server.port}") + private String serverPort; + @Value("${impp.server.ip}") + private String ip; + + public MesCreatePullOrderByPullGroupAndWorkOrderJob() { + super(MesCreatePullOrderByPullGroupAndWorkOrderJob.class, "根据拉动组和生产工单产生拉动单JOB"); + this.setMultiInstance(true); + } + + @Override + public void executeMesJob(JobExecutionContext context, ApplicationProperties applicationProperties) { + try { + String jobParam = this.getJobParam(); + + if (StringUtils.isBlank(jobParam)) { + throw new IllegalArgumentException("job参数为空,请检查参数"); + } + String[] organizeCodeList = jobParam.split(","); + LOGGER.info("根据拉动组和生产工单产生拉动单JOB开始 -----start"); + String userName = "job"; + 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/MesPullingOrderInfoService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPullingOrderInfoService.java index dffdc0d..ef8224c 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,26 +2,29 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesPartPullService; import cn.estsh.i3plus.ext.mes.api.base.IMesPullingOrderInfoService; +import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; 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.MesPartPull; -import cn.estsh.i3plus.pojo.mes.bean.MesPullingOrderInfo; -import cn.estsh.i3plus.pojo.mes.repository.MesPullingOrderPartInfoRepository; +import cn.estsh.i3plus.pojo.mes.bean.*; +import cn.estsh.i3plus.pojo.mes.repository.*; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ValidatorBean; import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.util.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; @Service @Slf4j @@ -29,7 +32,14 @@ public class MesPullingOrderInfoService extends BaseMesService pulliGroupList = mesPartPullRDao.findByHqlWhere(ddlPackBean); + if (CollectionUtils.isEmpty(pulliGroupList)){ + return; + } + DdlPackBean ddlPackBeanDetail = DdlPackBean.getDdlPackBean(organizeCode); + List pullDetailList = mesPartPullDetailRDao.findByHqlWhere(ddlPackBeanDetail); + if (CollectionUtils.isEmpty(pullDetailList)){ + return; + } + //2.客户物料集合 [PART_NO] in 拉动组明细物料集合 + //3.产线数据 + DdlPackBean workPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPackList(pulliGroupList.stream().map(MesPartPull::getWorkCenterCode).collect(Collectors.toList()), "workCenterCode", workPackBean); + List mesWorkCenterList = mesWorkCenterRepository.findByHqlWhere(workPackBean); + + } + + @Override public Map doSPSForEquipment(String assemblyLine, String pullingGroupCode, String organizeCode) { Map resultMap = new HashMap(); //查询拉动单状态为已扫描=20的 拉动单