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