From c5fa5f01271402e736a65db5e632ca1724949e22 Mon Sep 17 00:00:00 2001 From: administrator Date: Thu, 4 Jul 2024 18:49:22 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=BD=95=E6=97=A5=E5=BF=97--=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=A4=84=E7=90=86=E7=8A=B6=E6=80=81=E6=9E=9A=E4=B8=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../busi/IMesWorkCellScanMonitorLogService.java | 3 +- .../schedulejob/MesWorkCellOperationLogJob.java | 13 ++++++-- .../busi/MesWorkCellScanMonitorLogServiceImpl.java | 39 +++++++++++++--------- .../MesWorkCellScanMonitorLogExtService.java | 2 +- 4 files changed, 38 insertions(+), 19 deletions(-) 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 index 5fdd860..2bb9f6a 100644 --- 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 @@ -12,6 +12,7 @@ public interface IMesWorkCellScanMonitorLogService { * 每次补录的条数 * @param pageSize * @param organizeCode + * @param times */ - void doRecordCellOperationLog(String organizeCode,Integer pageSize); + void doRecordCellOperationLog(String organizeCode,Integer pageSize,Integer times); } 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 index a7bedd8..e411f89 100644 --- 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 @@ -11,6 +11,9 @@ import org.quartz.DisallowConcurrentExecution; import org.quartz.JobExecutionContext; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; + +import java.util.Objects; + /** * @Description : 生产开模统计job * @Reference : @@ -37,7 +40,8 @@ public class MesWorkCellOperationLogJob extends BaseMesScheduleJob { * 入参 * { * "organizeCode":"CK01", - * "pageSize":50 + * "pageSize":50, + * "times":50 超过50次job,还未完成的直接写成完成 * } */ String jobParam = this.getJobParam(); @@ -45,7 +49,12 @@ public class MesWorkCellOperationLogJob extends BaseMesScheduleJob { String organizeCode = params.get("organizeCode").toString(); Integer pageSize = Integer.parseInt(params.get("pageSize").toString()); - logService.doRecordCellOperationLog(organizeCode,pageSize); + Object timesO = params.get("times"); + int times = 50; + if (!Objects.isNull(timesO)) { + times = Integer.parseInt(timesO.toString()); + } + logService.doRecordCellOperationLog(organizeCode,pageSize, times); } } 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 index efa7865..0bfa68f 100644 --- 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 @@ -2,6 +2,7 @@ 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.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; @@ -9,11 +10,13 @@ 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 cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; 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.Map; import java.util.stream.Collectors; /** @@ -34,25 +37,31 @@ public class MesWorkCellScanMonitorLogServiceImpl implements IMesWorkCellScanMon /** * 根据 MesWorkCellScanMonitorLog 表中 mouldRecordId 开模id 有数据 才去补录 * 补录数据 是根据MesProductionRecord 中的 开模id相匹配去做 + * * @param pageSize * @param organizeCode */ @Override - public void doRecordCellOperationLog(String organizeCode,Integer pageSize) { + public void doRecordCellOperationLog(String organizeCode, Integer pageSize, Integer times) { //查询serviceFlag是未处理状态,mouldRecordId不为空的记录,每次查询pageSize 默认50条 DdlPackBean logPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getNumEqualPack(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(),"serviceFlag",logPackBean); - DdlPreparedPack.getIsNotNull("mouldRecordId",logPackBean); + DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.MES_LOG_DEAL_STATUS.UNDEAL.getValue(), "dealStatus", logPackBean); + DdlPreparedPack.getNumberSmallerEqualPack(times, "times", logPackBean); + DdlPreparedPack.getIsNotNull("mouldRecordId", logPackBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"createDatetime"}, logPackBean); List monitorLogs = monitorLogRao.findByHqlTopWhere(logPackBean, pageSize); if (!monitorLogs.isEmpty()) { - for (MesWorkCellScanMonitorLog monitorLog : monitorLogs) { - Long mouldRecordId = monitorLog.getMouldRecordId(); + List mouldRecordIdList = monitorLogs.stream().map(MesWorkCellScanMonitorLog::getMouldRecordId).distinct().collect(Collectors.toList()); + Map> logs = monitorLogs.stream().collect(Collectors.groupingBy(MesWorkCellScanMonitorLog::getMouldRecordId)); + for (Long mouldRecordId : mouldRecordIdList) { DdlPackBean recordPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getNumEqualPack(mouldRecordId,"mouldRecordId",recordPackBean); + DdlPreparedPack.getNumEqualPack(mouldRecordId, "mouldRecordId", recordPackBean); List recordList = productionRecordRao.findByHqlWhere(recordPackBean); //需要补录如下字段 + DdlPackBean monitorLogPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getNumEqualPack(mouldRecordId, "mouldRecordId", monitorLogPackBean); + int newTimes = logs.get(mouldRecordId).get(0).getTimes() + 1; if (!recordList.isEmpty()) { String workOrderNoStr = recordList.stream().map(MesProductionRecord::getWorkOrderNo).collect(Collectors.joining(",")); String serialNoStr = recordList.stream().map(MesProductionRecord::getSerialNumber).collect(Collectors.joining(",")); @@ -60,16 +69,16 @@ public class MesWorkCellScanMonitorLogServiceImpl implements IMesWorkCellScanMon 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); - monitorLog.setServiceFlag(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + monitorLogRao.updateByProperties(new String[]{"workOrderNo", "serialNumber", "produceSn", "custSn", "partNo", "partName", "modifyDateTime", "modifyUser", "dealStatus", "times"}, + new Object[]{workOrderNoStr, serialNoStr, productSnStr, custSnStr, partNoStr, partNameStr, TimeTool.getNowTime(true), "JOB", MesExtEnumUtil.MES_LOG_DEAL_STATUS.DEAL_SUCCESS.getValue(), newTimes}, monitorLogPackBean); + } else { + if (newTimes > times) { + + monitorLogRao.updateByProperties(new String[]{"modifyDateTime", "modifyUser", "times"}, new Object[]{TimeTool.getNowTime(true), "JOB", newTimes}, monitorLogPackBean); + } else { + monitorLogRao.updateByProperties(new String[]{"modifyDateTime", "modifyUser", "times", "dealStatus"}, new Object[]{TimeTool.getNowTime(true), "JOB", newTimes, MesExtEnumUtil.MES_LOG_DEAL_STATUS.DEAL_FAILURE.getValue()}, monitorLogPackBean); + } } - ConvertBean.saveOrUpdate(monitorLog,"JOB"); - monitorLogRao.update(monitorLog); } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/equiplog/MesWorkCellScanMonitorLogExtService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/equiplog/MesWorkCellScanMonitorLogExtService.java index 66e9e3a..f3fb295 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/equiplog/MesWorkCellScanMonitorLogExtService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/equiplog/MesWorkCellScanMonitorLogExtService.java @@ -56,7 +56,7 @@ public class MesWorkCellScanMonitorLogExtService implements ISwsWriteDbLogServic workCellScanMonitorLog.setMessageType(MesExtEnumUtil.WORK_CELL_SCAN_MONITOR_MESSAGE_TYPE.codeOfValue(resultBean.getDataType())); - workCellScanMonitorLog.setServiceFlag(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + workCellScanMonitorLog.setDealStatus(MesExtEnumUtil.MES_LOG_DEAL_STATUS.UNDEAL.getValue()); ConvertBean.serviceModelInitialize(workCellScanMonitorLog, resultBean.getUserInfo());