From 4273eba96c58134cb095632a0f17cb3a96689efb Mon Sep 17 00:00:00 2001 From: administrator Date: Sun, 30 Jun 2024 17:53:54 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=BD=95=E6=93=8D=E4=BD=9C=E6=97=A5?= =?UTF-8?q?=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../busi/IMesWorkCellScanMonitorLogService.java | 17 +++++ .../schedulejob/MesWorkCellOperationLogJob.java | 52 +++++++++++++++ .../busi/MesWorkCellScanMonitorLogServiceImpl.java | 75 ++++++++++++++++++++++ 3 files changed, 144 insertions(+) create mode 100644 modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesWorkCellScanMonitorLogService.java create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesWorkCellOperationLogJob.java create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkCellScanMonitorLogServiceImpl.java diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesWorkCellScanMonitorLogService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesWorkCellScanMonitorLogService.java new file mode 100644 index 0000000..5fdd860 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesWorkCellScanMonitorLogService.java @@ -0,0 +1,17 @@ +package cn.estsh.i3plus.ext.mes.pcn.api.busi; + +/** + * @Description : 补录工位操作日志 + * @Reference : + * @Author : Castle + * @CreateDate : 2024/6/30 16:44 + * @Modify: + **/ +public interface IMesWorkCellScanMonitorLogService { + /** + * 每次补录的条数 + * @param pageSize + * @param organizeCode + */ + void doRecordCellOperationLog(String organizeCode,Integer pageSize); +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesWorkCellOperationLogJob.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesWorkCellOperationLogJob.java new file mode 100644 index 0000000..69293d8 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesWorkCellOperationLogJob.java @@ -0,0 +1,52 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.schedulejob; + + +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkCellScanMonitorLogService; +import cn.estsh.impp.framework.boot.init.ApplicationProperties; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.quartz.DisallowConcurrentExecution; +import org.quartz.JobExecutionContext; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +/** + * @Description : 生产开模统计job + * @Reference : + * @Author : Castle + * @CreateDate 2024/6/26 18:22 + * @Modify: + **/ +@Slf4j +@DisallowConcurrentExecution +@Component +@ApiOperation("工位操作日志字段补录job") +public class MesWorkCellOperationLogJob extends BaseMesScheduleJob { + + @Autowired + private IMesWorkCellScanMonitorLogService logService; + + public MesWorkCellOperationLogJob() { + super(MesWorkCellOperationLogJob.class, "工位操作日志字段补录job"); + } + + @Override + public void executeMesJob(JobExecutionContext context, ApplicationProperties applicationProperties) { + /** + * 入参 + * { + * "organizeCode":"CK01", + * "pageSize":50 + * } + */ + String jobParam = this.getJobParam(); + JSONObject params = JSONUtil.parseObj(jobParam); + + String organizeCode = params.get("organizeCode").toString(); + Integer pageSize = Integer.parseInt(params.get("pageSize").toString()); + logService.doRecordCellOperationLog(organizeCode,pageSize); + } + +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkCellScanMonitorLogServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkCellScanMonitorLogServiceImpl.java new file mode 100644 index 0000000..d29e0ca --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkCellScanMonitorLogServiceImpl.java @@ -0,0 +1,75 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi; + +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkCellScanMonitorLogService; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; +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.mes.bean.MesProductionRecord; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkCellScanMonitorLog; +import cn.estsh.i3plus.pojo.mes.repository.MesProductionRecordRepository; +import cn.estsh.i3plus.pojo.mes.repository.MesWorkCellScanMonitorLogRepository; +import com.netflix.discovery.converters.Auto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Description : + * @Reference : + * @Author : Castle + * @CreateDate : 2024/6/30 16:57 + * @Modify: + **/ +@Service +public class MesWorkCellScanMonitorLogServiceImpl implements IMesWorkCellScanMonitorLogService { + @Autowired + private MesWorkCellScanMonitorLogRepository monitorLogRao; + + @Autowired + private MesProductionRecordRepository productionRecordRao; + + /** + * 根据 MesWorkCellScanMonitorLog 表中 mouldRecordId 开模id 有数据 才去补录 + * 补录数据 是根据MesProductionRecord 中的 开模id相匹配去做 + * @param pageSize + * @param organizeCode + */ + @Override + public void doRecordCellOperationLog(String organizeCode,Integer pageSize) { + //查询serviceFlag是未处理状态,mouldRecordId不为空的记录,每次查询pageSize 默认50条 + DdlPackBean logPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getNumEqualPack(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(),"serviceFlag",logPackBean); + DdlPreparedPack.getIsNotNull("mouldRecordId",logPackBean); + List monitorLogs = monitorLogRao.findByHqlTopWhere(logPackBean, pageSize); + + if (!monitorLogs.isEmpty()) { + for (MesWorkCellScanMonitorLog monitorLog : monitorLogs) { + Long mouldRecordId = monitorLog.getMouldRecordId(); + DdlPackBean recordPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getNumEqualPack(mouldRecordId,"mouldRecordId",logPackBean); + List recordList = productionRecordRao.findByHqlWhere(recordPackBean); + //需要补录如下字段 + if (!recordList.isEmpty()) { + String workOrderNoStr = recordList.stream().map(MesProductionRecord::getWorkOrderNo).collect(Collectors.joining(",")); + String serialNoStr = recordList.stream().map(MesProductionRecord::getSerialNumber).collect(Collectors.joining(",")); + String productSnStr = recordList.stream().map(MesProductionRecord::getProductSn).collect(Collectors.joining(",")); + String custSnStr = recordList.stream().map(MesProductionRecord::getCustSn).collect(Collectors.joining(",")); + String partNoStr = recordList.stream().map(MesProductionRecord::getPartNo).collect(Collectors.joining(",")); + String partNameStr = recordList.stream().map(MesProductionRecord::getPartName).collect(Collectors.joining(",")); + monitorLog.setWorkOrderNo(workOrderNoStr); + monitorLog.setSerialNumber(serialNoStr); + monitorLog.setProductSn(productSnStr); + monitorLog.setCustSn(custSnStr); + monitorLog.setPartNo(partNoStr); + monitorLog.setPartName(partNameStr); + ConvertBean.saveOrUpdate(monitorLog,"JOB"); + } + } + monitorLogRao.saveAll(monitorLogs); + } + + } +}