From 1800c05a61a53d528e4f137fa42413cb0bf26734 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期五, 18 四月 2025 16:21:15 +0800
Subject: [PATCH] art: 设备管理-周保工单-自动生成周保,周保过期未保养标记过期

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java                    |   13 ++
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java |    7 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderExpiredJob.java                                 |   86 ++++++++++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java                     |   10 +
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/IFlowMyBusinessService.java         |    9 +
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/WeekMaintenanceStatusEnum.java                          |    1 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java                               |    9 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java                                |  126 +++++++++++++++++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java                             |    7 +
 lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/util/ThrowableUtil.java                                          |    0 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardDetailService.java                       |    9 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderService.java                            |    9 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardDetailServiceImpl.java               |   15 ++
 lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java                                                      |   21 +++
 14 files changed, 317 insertions(+), 5 deletions(-)

diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java
index f1f4f8f..92f023e 100644
--- a/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java
+++ b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java
@@ -5,6 +5,8 @@
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.ZoneId;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.GregorianCalendar;
@@ -764,8 +766,21 @@
         return dateFormat.format(date);
     }
 
+    /**
+     * Date 杞� LocalDate
+     * @param date
+     * @return
+     */
+    public static LocalDate dateToLocalDate(Date date) {
+        return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+    }
 
-
-
-
+    /**
+     * LocalDate 杞� Date
+     * @param localDate
+     * @return
+     */
+    public static Date localDateToDate(LocalDate localDate) {
+        return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
+    }
 }
\ No newline at end of file
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/WeekMaintenanceStatusEnum.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/WeekMaintenanceStatusEnum.java
index b22a1bf..a7800d9 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/WeekMaintenanceStatusEnum.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/WeekMaintenanceStatusEnum.java
@@ -8,6 +8,7 @@
     WAIT_FINAL_ACCEPTANCE, //寰呯粓楠�
     COMPLETE,  //宸插畬鎴�
     ABOLISH, //宸蹭綔搴�
+    EXPIRED, //宸茶繃鏈�
     ;
 
     public static WeekMaintenanceStatusEnum getInstance(String code) {
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java
index 4372cde..0d010bb 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java
@@ -64,4 +64,13 @@
 	/**鎶ヤ慨鏍囪*/
     @ApiModelProperty(value = "鎶ヤ慨鏍囪")
 	private String reportFlag;
+
+	public EamWeekMaintenanceOrderDetail(){}
+
+	public EamWeekMaintenanceOrderDetail(EamMaintenanceStandardDetail detail) {
+		this.itemCode = detail.getItemCode();
+		this.itemName = detail.getItemName();
+		this.subItemName = detail.getSubItemName();
+		this.itemDemand = detail.getItemDemand();
+	}
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderExpiredJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderExpiredJob.java
new file mode 100644
index 0000000..227c0e8
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderExpiredJob.java
@@ -0,0 +1,86 @@
+package org.jeecg.modules.eam.job;
+
+import cn.hutool.core.collection.CollectionUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.modules.eam.constant.WeekMaintenanceStatusEnum;
+import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrder;
+import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderService;
+import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
+import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService;
+import org.jeecg.modules.flowable.service.IFlowTaskService;
+import org.jeecg.modules.mdc.util.ThrowableUtil;
+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.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDate;
+import java.util.Date;
+import java.util.List;
+
+@Component
+@Slf4j
+public class WeekMaintenanceOrderExpiredJob implements Job {
+
+    @Autowired
+    private IEamWeekMaintenanceOrderService eamWeekMaintenanceOrderService;
+
+    @Autowired
+    private IFlowMyBusinessService flowMyBusinessService;
+    @Autowired
+    private IFlowTaskService flowTaskService;
+    @Autowired
+    private ISysQuartzLogService sysQuartzLogService;
+    @Autowired
+    private IQuartzJobService quartzJobService;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        //浠诲姟鏃ュ織
+        SysQuartzLog quartzLog = new SysQuartzLog();
+        quartzLog.setCreateTime(new Date());
+        List<QuartzJob> byJobClassName = quartzJobService.findByJobClassName(this.getClass().getName());
+        if (byJobClassName != null && !byJobClassName.isEmpty()) {
+            quartzLog.setJobId(byJobClassName.get(0).getId());
+        }
+        long startTime = System.currentTimeMillis();
+        LocalDate now = LocalDate.now();
+        try {
+            List<EamWeekMaintenanceOrder> unCompleteOrderList = eamWeekMaintenanceOrderService.selectUnCompleteOrder(now.toString());
+            if (CollectionUtil.isEmpty(unCompleteOrderList)) {
+                //娌℃湁闇�瑕佸鐞嗙殑鏁版嵁
+                return;
+            }
+            for (EamWeekMaintenanceOrder order : unCompleteOrderList) {
+                if (WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(order.getMaintenanceStatus())) {
+                    order.setMaintenanceStatus(WeekMaintenanceStatusEnum.EXPIRED.name());
+                } else if (WeekMaintenanceStatusEnum.UNDER_MAINTENANCE.name().equals(order.getMaintenanceStatus())) {
+                    //宸茬粡琚帴鍗� 浣嗘湭鎵ц瀹屾垚
+                    order.setMaintenanceStatus(WeekMaintenanceStatusEnum.EXPIRED.name());
+                    //寮哄埗缁撴潫娴佺▼ 鍒犻櫎鐢ㄦ埛鐨勬寰呭姙浠诲姟
+                    FlowMyBusiness flowMyBusiness = flowMyBusinessService.selectByDataId(order.getId());
+                    if (flowMyBusiness != null) {
+                        flowTaskService.end(flowMyBusiness.getProcessInstanceId(), "杩囨湡鍒犻櫎");
+                    }
+                }
+            }
+            eamWeekMaintenanceOrderService.updateBatchById(unCompleteOrderList);
+            quartzLog.setIsSuccess(0);
+        } catch (Exception e) {
+            log.error("鍛ㄤ繚杩囨湡鎵ц瀹氭椂浠诲姟澶辫触锛寋}", e.getMessage(), e);
+            quartzLog.setIsSuccess(-1);
+            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
+        }
+        long endTime = System.currentTimeMillis();
+        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+        sysQuartzLogService.save(quartzLog);
+    }
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java
new file mode 100644
index 0000000..e676870
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java
@@ -0,0 +1,126 @@
+package org.jeecg.modules.eam.job;
+
+import cn.hutool.core.collection.CollectionUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.util.DateUtils;
+import org.jeecg.modules.eam.constant.BusinessCodeConst;
+import org.jeecg.modules.eam.constant.MaintenanceCategoryEnum;
+import org.jeecg.modules.eam.entity.EamMaintenanceStandard;
+import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
+import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail;
+import org.jeecg.modules.eam.request.EamWeekMaintenanceRequest;
+import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService;
+import org.jeecg.modules.eam.service.IEamMaintenanceStandardService;
+import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderService;
+import org.jeecg.modules.mdc.util.ThrowableUtil;
+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.ISysBusinessCodeRuleService;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDate;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Component
+@Slf4j
+public class WeekMaintenanceOrderGenerateJob implements Job {
+    @Autowired
+    private IEamMaintenanceStandardService eamMaintenanceStandardService;
+    @Autowired
+    private IEamMaintenanceStandardDetailService eamMaintenanceStandardDetailService;
+    @Autowired
+    private IEamWeekMaintenanceOrderService eamWeekMaintenanceOrderService;
+    @Autowired
+    private ISysBusinessCodeRuleService businessCodeRuleService;
+    @Autowired
+    private ISysQuartzLogService sysQuartzLogService;
+    @Autowired
+    private IQuartzJobService quartzJobService;
+
+    /**
+     * 宸ュ崟鐢熸垚
+     *
+     * @param jobExecutionContext
+     * @throws JobExecutionException
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        //浠诲姟鏃ュ織
+        SysQuartzLog quartzLog = new SysQuartzLog();
+        quartzLog.setCreateTime(new Date());
+        List<QuartzJob> byJobClassName = quartzJobService.findByJobClassName(this.getClass().getName());
+        if (byJobClassName != null && !byJobClassName.isEmpty()) {
+            quartzLog.setJobId(byJobClassName.get(0).getId());
+        }
+        long startTime = System.currentTimeMillis();
+        /**
+         * 鑾峰彇 閰嶇疆浜� 鍛ㄤ繚鏍囧噯鐨� 淇℃伅
+         */
+        List<EamMaintenanceStandard> standardList = eamMaintenanceStandardService.queryListByCategory(MaintenanceCategoryEnum.WEEK_MAINTENANCE.name());
+        if (CollectionUtil.isEmpty(standardList)) {
+            log.warn("娌℃湁閰嶇疆浠讳綍鍛ㄤ繚鏍囧噯锛屼换鍔$粨鏉�");
+            return;
+        }
+        //褰撳墠鏃ユ湡
+        LocalDate now = LocalDate.now();
+        try {
+            for (EamMaintenanceStandard standard : standardList) {
+                if (standard.getMaintenancePeriod() == null || standard.getMaintenancePeriod() < 1) {
+                    log.error("鍛ㄤ繚鏍囧噯鍛ㄦ湡璁剧疆閿欒锛岃鍏堥厤缃爣鍑嗗懆鏈�, standard:{}", standard);
+                    continue;
+                }
+                if (standard.getInitialDate() == null) {
+                    //璁剧疆鍒濆鏃ユ湡涓哄墠涓�澶�
+                    standard.setInitialDate(DateUtils.localDateToDate(now.minusDays(1)));
+                }
+                LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate());
+                if (standard.getLastGenerateTime() != null) {
+                    generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime());
+                }
+                //鍔犲懆鏈�
+                do {
+                    //鍒濆鏃ユ湡璁剧疆鐨勬瘮杈冩棭锛屾垨浠诲姟闀挎椂闂存病鎵ц锛屽繀椤诲懆鏈熷埌浠婂ぉ鎵嶄細鐢熸垚宸ュ崟
+                    generateDate = generateDate.plusDays(standard.getMaintenancePeriod());
+                } while (now.isAfter(generateDate));
+                if(now.compareTo(generateDate) != 0) {
+                    //杩樻湭鍒扮敓鎴愭棩鏈燂紝璺宠繃鎵ц
+                    continue;
+                }
+                //鑾峰彇淇濆吇椤规槑缁�
+                List<EamMaintenanceStandardDetail> standardDetailList = eamMaintenanceStandardDetailService.selectByStandardId(standard.getId());
+                if(CollectionUtil.isEmpty(standardDetailList)) {
+                    log.error("鍛ㄤ繚鏍囧噯娌℃湁淇濆吇鏄庣粏锛岃鍏堥厤缃繚鍏绘槑缁�, standard:{}", standard);
+                    continue;
+                }
+                //寮�濮嬬敓鎴�
+                EamWeekMaintenanceRequest request = new EamWeekMaintenanceRequest();
+                request.setEquipmentId(standard.getEquipmentId());
+                request.setStandardId(standard.getId());
+                request.setMaintenanceDate(DateUtils.localDateToDate(generateDate));
+                String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.WEEK_MAINTENANCE_CODE_RULE);
+                request.setOrderNum(codeSeq);
+                List<EamWeekMaintenanceOrderDetail> collect = standardDetailList.stream().map(EamWeekMaintenanceOrderDetail::new).collect(Collectors.toList());
+                request.setTableDetailList(collect);
+                eamWeekMaintenanceOrderService.addWeekMaintenance(request);
+            }
+            quartzLog.setIsSuccess(0);
+        } catch (Exception e) {
+            log.error("鍛ㄤ繚杩囩敓鎴愭墽琛屽畾鏃朵换鍔″け璐ワ紝{}", e.getMessage(), e);
+            quartzLog.setIsSuccess(-1);
+            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
+        }
+        long endTime = System.currentTimeMillis();
+        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+        sysQuartzLogService.save(quartzLog);
+    }
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardDetailService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardDetailService.java
index 676cfbe..eff776a 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardDetailService.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardDetailService.java
@@ -3,6 +3,8 @@
 import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * @Description: 淇濆吇鏍囧噯鏄庣粏
  * @Author: jeecg-boot
@@ -10,5 +12,10 @@
  * @Version: V1.0
  */
 public interface IEamMaintenanceStandardDetailService extends IService<EamMaintenanceStandardDetail> {
-
+    /**
+     * 鑾峰彇鏍囧噯涓嬫槑缁嗛」淇℃伅
+     * @param standardId
+     * @return
+     */
+    List<EamMaintenanceStandardDetail> selectByStandardId(String standardId);
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java
index 4a4b3cd..c136e81 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java
@@ -57,4 +57,11 @@
      * @return
      */
     List<EamMaintenanceStandard> queryListByKeywordAndCategory(String keyword, String equipmentId, Integer pageSize, String maintenanceCategory);
+
+    /**
+     * 鏌ヨ淇濆吇绫诲瀷涓嬫甯哥殑淇濆吇鏍囧噯
+     * @param maintenanceCategory 淇濆吇绫诲瀷
+     * @return
+     */
+    List<EamMaintenanceStandard> queryListByCategory(String maintenanceCategory);
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderService.java
index 8e22279..4b56eb4 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderService.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderService.java
@@ -7,6 +7,8 @@
 import org.jeecg.modules.eam.request.EamWeekMaintenanceQuery;
 import org.jeecg.modules.eam.request.EamWeekMaintenanceRequest;
 
+import java.util.List;
+
 /**
  * @Description: 鍛ㄤ繚宸ュ崟
  * @Author: jeecg-boot
@@ -50,4 +52,11 @@
      * @return
      */
     boolean approval(EamWeekMaintenanceRequest request);
+
+    /**
+     * 鑾峰彇浠婂ぉ涔嬪墠鏈繚鍏诲畬鎴愮殑宸ュ崟
+     * @param expiredDate 杩囨湡鏃ユ湡
+     * @return
+     */
+    List<EamWeekMaintenanceOrder> selectUnCompleteOrder(String expiredDate);
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardDetailServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardDetailServiceImpl.java
index 966f604..5a0327a 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardDetailServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardDetailServiceImpl.java
@@ -1,11 +1,17 @@
 package org.jeecg.modules.eam.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
 import org.jeecg.modules.eam.mapper.EamMaintenanceStandardDetailMapper;
 import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import javax.annotation.Resource;
+import java.util.Collections;
+import java.util.List;
 
 /**
  * @Description: 淇濆吇鏍囧噯鏄庣粏
@@ -15,5 +21,14 @@
  */
 @Service
 public class EamMaintenanceStandardDetailServiceImpl extends ServiceImpl<EamMaintenanceStandardDetailMapper, EamMaintenanceStandardDetail> implements IEamMaintenanceStandardDetailService {
+    @Resource
+    private EamMaintenanceStandardDetailMapper emMaintenanceStandardDetailMapper;
 
+    @Override
+    public List<EamMaintenanceStandardDetail> selectByStandardId(String standardId) {
+        LambdaQueryWrapper<EamMaintenanceStandardDetail> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(EamMaintenanceStandardDetail::getStandardId, standardId);
+        queryWrapper.orderByAsc(EamMaintenanceStandardDetail::getItemCode);
+        return emMaintenanceStandardDetailMapper.selectList(queryWrapper);
+    }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
index 4c02fc4..abc92aa 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
@@ -28,6 +28,7 @@
 import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -283,4 +284,13 @@
         IPage<EamMaintenanceStandard> pageData = this.queryPageList(page, query);
         return pageData.getRecords();
     }
+
+    @Override
+    public List<EamMaintenanceStandard> queryListByCategory(String maintenanceCategory) {
+        LambdaQueryWrapper<EamMaintenanceStandard> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(EamMaintenanceStandard::getDelFlag, CommonConstant.DEL_FLAG_0);
+        queryWrapper.eq(EamMaintenanceStandard::getMaintenanceCategory, maintenanceCategory);
+        queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.NORMAL.name());
+        return eamMaintenanceStandardMapper.selectList(queryWrapper);
+    }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java
index 8eb1d69..3b16ddb 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java
@@ -3,6 +3,7 @@
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -461,6 +462,18 @@
         return true;
     }
 
+    @Override
+    public List<EamWeekMaintenanceOrder> selectUnCompleteOrder(String expiredDate) {
+        LambdaQueryWrapper<EamWeekMaintenanceOrder> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.lt(EamWeekMaintenanceOrder::getMaintenanceDate, expiredDate);
+        List<String> unCompleteStatus = new ArrayList<>();
+        unCompleteStatus.add(WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name());
+        unCompleteStatus.add(WeekMaintenanceStatusEnum.UNDER_MAINTENANCE.name());
+        queryWrapper.in(EamWeekMaintenanceOrder::getMaintenanceStatus, unCompleteStatus);
+        queryWrapper.orderByAsc(EamWeekMaintenanceOrder::getMaintenanceDate);
+        return eamWeekMaintenanceOrderMapper.selectList(queryWrapper);
+    }
+
     private boolean isUserAuthorized(FlowMyBusiness flowMyBusiness, LoginUser user) {
         List<String> todoUsers = JSON.parseArray(flowMyBusiness.getTodoUsers(), String.class);
         return todoUsers != null && todoUsers.contains(user.getUsername());
diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/IFlowMyBusinessService.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/IFlowMyBusinessService.java
index 0af1a5b..853e3cc 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/IFlowMyBusinessService.java
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/IFlowMyBusinessService.java
@@ -11,9 +11,16 @@
 public interface IFlowMyBusinessService extends IService<FlowMyBusiness> {
 
     /**
-     * 鏍规嵁娴佺▼瀹炰緥id 鑾峰彇 鎴戠殑寰呭姙
+     * 鏍规嵁娴佺▼瀹炰緥id 鑾峰彇 娴佺▼瀹炰緥
      * @param instanceId 娴佺▼瀹炰緥id
      * @return
      */
     FlowMyBusiness getFlowMyBusiness(String instanceId);
+
+    /**
+     * 鑾峰彇娴佺▼瀹炰緥
+     * @param dataId 涓氬姟Id
+     * @return
+     */
+    FlowMyBusiness selectByDataId(String dataId);
 }
diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java
index 5148928..e3c10e2 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java
@@ -132,4 +132,11 @@
                 new QueryWrapper<FlowMyBusiness>().eq("process_instance_id", instanceId));
         return businessList.isEmpty() ? null : businessList.get(0);
     }
+
+    @Override
+    public FlowMyBusiness selectByDataId(String dataId) {
+        List<FlowMyBusiness> businessList = super.list(
+                new QueryWrapper<FlowMyBusiness>().eq("data_id", dataId));
+        return businessList.isEmpty() ? null : businessList.get(0);
+    }
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/ThrowableUtil.java b/lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/util/ThrowableUtil.java
similarity index 100%
rename from lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/ThrowableUtil.java
rename to lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/util/ThrowableUtil.java

--
Gitblit v1.9.3