From e387a74a0b132d383775a743a18d794a34a422b3 Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期二, 15 四月 2025 16:54:27 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/MesPartProcessInfoJob.java | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 117 insertions(+), 0 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/MesPartProcessInfoJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/MesPartProcessInfoJob.java new file mode 100644 index 0000000..efc0a54 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/MesPartProcessInfoJob.java @@ -0,0 +1,117 @@ +package org.jeecg.modules.mdc.job; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.jeecg.modules.mdc.entity.MdcEquipment; +import org.jeecg.modules.mdc.service.IMdcEquipmentService; +import org.jeecg.modules.mdc.util.DateUtils; +import org.jeecg.modules.mdc.util.ThrowableUtil; +import org.jeecg.modules.mdcJc.dto.MesRcJobreport; +import org.jeecg.modules.mdcJc.entity.MdcJcRcJobreport; +import org.jeecg.modules.mdcJc.service.IMdcJcRcJobreportService; +import org.jeecg.modules.mdcJc.service.MesRcJobreportService; +import org.jeecg.modules.quartz.entity.QuartzJob; +import org.jeecg.modules.quartz.entity.SysQuartzLog; +import org.jeecg.modules.quartz.service.IQuartzJobService; +import org.jeecg.modules.quartz.service.ISysQuartzLogService; +import org.jeecg.modules.system.service.ISysAnnouncementService; +import org.quartz.*; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author: Lius + * @CreateTime: 2025-04-14 + * @Description: 鍚屾MES鍔犲伐淇℃伅锛堝悎鏍肩巼锛� + */ +@PersistJobDataAfterExecution +@DisallowConcurrentExecution +@Slf4j +public class MesPartProcessInfoJob implements Job { + + /** + * 鑻ュ弬鏁板彉閲忓悕淇敼 QuartzJobController涓篃闇�瀵瑰簲淇敼 鏃堕棿锛� yyyyMMdd 渚嬶細 20230414 + */ + private String parameter; + + public void setParameter(String parameter) { + this.parameter = parameter; + } + + @Resource + private IQuartzJobService quartzJobService; + + @Resource + private ISysAnnouncementService sysAnnouncementService; + + @Resource + private ISysQuartzLogService sysQuartzLogService; + + @Resource + private IMdcJcRcJobreportService mdcJcRcJobreportService; + + @Resource + private MesRcJobreportService mesRcJobreportService; + + @Resource + private IMdcEquipmentService mdcEquipmentService; + + @Override + public void execute(JobExecutionContext context) throws JobExecutionException { + SysQuartzLog quartzLog = new SysQuartzLog(); + quartzLog.setCreateTime(new Date()); + List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName()); + if (byJobClassName != null && !byJobClassName.isEmpty()) { + quartzLog.setJobId(byJobClassName.get(0).getId()); + } + log.info("瀹氭椂鑾峰彇MES绯荤粺鍔犲伐涓暟浠诲姟 MesPartProcessInfoJob start! 鏃堕棿:" + DateUtils.getNow()); + long startTime = System.currentTimeMillis(); + try { + if (StringUtils.isNotBlank(parameter)) { + String date = ""; + if (StringUtils.isNotBlank(this.parameter)) { + date = DateUtils.format(DateUtils.toDate(this.parameter, DateUtils.STRDATE), DateUtils.STR_DATE); + } else { + date = DateUtils.format(DateUtils.getNow(), DateUtils.STR_DATE); + } + mdcJcRcJobreportService.remove(new LambdaQueryWrapper<MdcJcRcJobreport>().eq(MdcJcRcJobreport::getTheDate, date)); + + //鑾峰彇璁惧鍒楄〃 + List<MdcEquipment> mdcEquipmentList = mdcEquipmentService.list(); + if (mdcEquipmentList != null && !mdcEquipmentList.isEmpty()) { + List<String> equipmentIdList = mdcEquipmentList.stream().map(MdcEquipment::getEquipmentId).collect(Collectors.toList()); + List<MesRcJobreport> mesRcJobreportList = mesRcJobreportService.findPartProcessInfo(date, equipmentIdList); + if (mesRcJobreportList != null && !mesRcJobreportList.isEmpty()) { + List<MdcJcRcJobreport> mdcJcRcJobreportList = new ArrayList<>(); + for (MesRcJobreport mesRcJobreport : mesRcJobreportList) { + MdcJcRcJobreport mdcJcRcJobreport = new MdcJcRcJobreport(); + mdcJcRcJobreport.setEquipmentId(mesRcJobreport.getDeviceNumber()); + mdcJcRcJobreport.setOkuqty(mesRcJobreport.getOkuqty().intValue()); + mdcJcRcJobreport.setProcessCount(mesRcJobreport.getQty().intValue()); + mdcJcRcJobreport.setTheDate(date); + mdcJcRcJobreportList.add(mdcJcRcJobreport); + } + if (!mdcEquipmentList.isEmpty()) { + mdcJcRcJobreportService.saveBatch(mdcJcRcJobreportList); + } + } + } + + } + quartzLog.setIsSuccess(0); + } catch (Exception e) { + quartzLog.setIsSuccess(-1); + quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e)); + // 鍙戦�佹秷鎭�氱煡 + sysAnnouncementService.jobSendMessage("瀹氭椂鑾峰彇MES绯荤粺鍔犲伐涓暟浠诲姟", quartzLog.getExceptionDetail()); + } + long endTime = System.currentTimeMillis(); + quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime))); + sysQuartzLogService.save(quartzLog); + } +} -- Gitblit v1.9.3