From ce1cfcb9b9176ddb1f47c9eb4cb2232b080bdbf9 Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期五, 25 七月 2025 14:54:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamThirdMaintenanceFurnaceQuery.java            |   28 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceChangeServiceImpl.java  |   51 ++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamThirdMaintenanceFurnaceMapper.xml         |    7 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/HfTemplateCategoryEnum.java             |    1 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamThirdMaintenanceRequest.java                 |    8 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceFurnaceController.java    |  335 +++++++++-----
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java   |   10 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceSpareController.java      |   42 -
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamThirdMaintenanceFurnaceRequest.java          |  120 +++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceChangeController.java     |    1 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceChange.java            |   18 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceFurnaceServiceImpl.java |  360 ++++++++++++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamThirdMaintenanceFurnaceMapper.java            |   12 
 db/430设备管理数据库设计.pdma.json                                                                                   |  154 ++++++
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java                  |    2 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceSpare.java             |   13 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ThirdMaintenanceFurnaceStatusEnum.java  |   13 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceOrderController.java      |    8 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceFurnaceService.java         |   40 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java         |    1 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceFurnace.java           |   43 +
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceOrder.java             |    4 
 22 files changed, 1,107 insertions(+), 164 deletions(-)

diff --git "a/db/430\350\256\276\345\244\207\347\256\241\347\220\206\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json" "b/db/430\350\256\276\345\244\207\347\256\241\347\220\206\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json"
index b64c4ac..f1bc9e2 100644
--- "a/db/430\350\256\276\345\244\207\347\256\241\347\220\206\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json"
+++ "b/db/430\350\256\276\345\244\207\347\256\241\347\220\206\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json"
@@ -4,7 +4,7 @@
   "avatar": "",
   "version": "4.9.4",
   "createdTime": "2025-3-10 16:38:19",
-  "updatedTime": "2025-7-23 19:33:38",
+  "updatedTime": "2025-7-23 11:43:01",
   "dbConns": [],
   "profile": {
     "default": {
@@ -9084,6 +9084,42 @@
           "id": "6BEE092E-65D4-4D44-916B-EDB48C4BFBCB"
         },
         {
+          "defKey": "order_num",
+          "defName": "宸ュ崟鍙�",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
+          "id": "2DF6DEC7-CE4E-4F1A-8F92-D175CB25C833"
+        },
+        {
+          "defKey": "maintenance_date",
+          "defName": "淇濆吇鏃ユ湡",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098",
+          "extProps": {},
+          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
+          "id": "AE0B0F0C-CC47-422E-B517-CC3C2992D44B"
+        },
+        {
           "defKey": "equipment_id",
           "defName": "璁惧ID",
           "comment": "",
@@ -9229,7 +9265,7 @@
         },
         {
           "defKey": "operate_time",
-          "defName": "淇濆吇鏃ユ湡",
+          "defName": "淇濆吇鏃堕棿",
           "comment": "",
           "type": "",
           "len": "",
@@ -9300,6 +9336,24 @@
           "id": "4C11A4C0-29C2-423B-972B-C080B6023536"
         },
         {
+          "defKey": "approved_rejected",
+          "defName": "纭绫诲瀷",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
+          "id": "869FCDB4-D5FF-4D44-B0D1-2E0DDF707052"
+        },
+        {
           "defKey": "confirm_time",
           "defName": "纭鏃ユ湡",
           "comment": "",
@@ -9334,6 +9388,24 @@
           "extProps": {},
           "domain": "BE09D493-E183-402D-ACC4-EEA21EB35B8E",
           "id": "624246E9-5FFE-49D3-B975-4439FF9DA03B"
+        },
+        {
+          "defKey": "remark",
+          "defName": "澶囨敞",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
+          "id": "FBF88752-FD0D-4697-A427-85AB377753B3"
         }
       ],
       "correlations": [],
@@ -9581,6 +9653,42 @@
           "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098"
         },
         {
+          "defKey": "order_id",
+          "defName": "宸ュ崟id",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
+          "id": "7EBCA911-19F6-4317-A7F3-3B2901ADBF63"
+        },
+        {
+          "defKey": "spare_code",
+          "defName": "澶囦欢搴忓彿",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "1D764C4A-6F9F-421E-B11A-6F3E23B51811",
+          "extProps": {},
+          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
+          "id": "590E5C5B-22E6-42AC-9905-BC67F51B3137"
+        },
+        {
           "defKey": "spare_name",
           "defName": "澶囦欢鍚嶇О",
           "comment": "",
@@ -9826,6 +9934,24 @@
           "id": "7E7714A5-B442-4842-8E65-6179F3F43740"
         },
         {
+          "defKey": "remark",
+          "defName": "澶囨敞",
+          "comment": "",
+          "type": "NVARCHAR",
+          "len": 255,
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "",
+          "id": "5175E822-55EE-4354-AED8-3A08F23BDAAF"
+        },
+        {
           "defKey": "create_by",
           "defName": "鍒涘缓浜�",
           "comment": "",
@@ -9914,6 +10040,24 @@
           "extProps": {},
           "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
           "id": "F888AE02-055A-458A-98FD-CB22C3EA539B"
+        },
+        {
+          "defKey": "equipment_id",
+          "defName": "璁惧id",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
+          "id": "CCCA9FE5-4BB7-4C86-B3E4-45AE86A15C3F"
         },
         {
           "defKey": "order_id",
@@ -33104,12 +33248,12 @@
   "dbConn": [
     {
       "defKey": "949F6F53-7669-4EC7-923F-649A7D4D8273",
-      "defName": "430",
+      "defName": "hangyu",
       "type": "BFC87171-C74F-494A-B7C2-76B9C55FACC9",
       "properties": {
         "driver_class_name": "com.microsoft.sqlserver.jdbc.SQLServerDriver",
-        "url": "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=LXZN_TEST_430_NEW",
-        "password": "",
+        "url": "jdbc:sqlserver://192.168.1.118:1433;DatabaseName=LXZN_TEST_HANGYU",
+        "password": "123",
         "username": "sa",
         "customer_driver": ""
       }
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java
index 08ac2ba..8a8fcc7 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java
@@ -21,6 +21,8 @@
     String THIRD_MAINTENANCE_CODE_RULE = "ThirdMaintenanceCodeRule";
     //涓変繚鍙樻洿缂栫爜瑙勫垯
     String THIRD_MAINTENANCE_CHANGE_CODE_RULE = "ThirdMaintenanceChangeCodeRule";
+    //鐪熺┖鐑鐞嗙倝缂栫爜瑙勫垯
+    String THIRD_MAINTENANCE_FURNACE_CODE_RULE = "ThirdMaintenanceFurnaceCodeRule";
     //璁惧鍊熷嚭褰掕繕
     String LEAN_OUT_CODE_RULE = "EquipmentLeanOutCodeRule";
     //璁惧灏佸瓨鍚皝
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/HfTemplateCategoryEnum.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/HfTemplateCategoryEnum.java
index c3c0a07..c4e0062 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/HfTemplateCategoryEnum.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/HfTemplateCategoryEnum.java
@@ -6,6 +6,7 @@
     THIRD_MAINTENANCE_HANDOVER, //涓変繚绉讳氦鍗�
     THIRD_MAINTENANCE_ACCEPTANCE, //涓変繚楠屾敹鍗�
     THIRD_MAINTENANCE_CHANGE, //涓変繚鍙樻洿鍗�
+    THIRD_MAINTENANCE_FURNACE, //鐪熺┖鐑鐞嗙倝鏁翠綋鎬ц兘妫�娴嬭〃
     TECHNICAL_STATUS_EVALUATION, //鎶�鏈姸鎬侀壌瀹氳〃
     TECHNICAL_STATUS_EVALUATION_SAFETY_CHECK, //璁惧瀹夊叏瑁呯疆妫�鏌ュ崟
     TECHNICAL_STATUS_EVALUATION_OTHER_CHECK, //鍏朵粬妫�鏌ラ」鐩�
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ThirdMaintenanceFurnaceStatusEnum.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ThirdMaintenanceFurnaceStatusEnum.java
new file mode 100644
index 0000000..01801e3
--- /dev/null
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ThirdMaintenanceFurnaceStatusEnum.java
@@ -0,0 +1,13 @@
+package org.jeecg.modules.eam.constant;
+
+import lombok.Getter;
+
+@Getter
+public enum ThirdMaintenanceFurnaceStatusEnum {
+    WAIT_MAINTENANCE, //寰呬繚鍏�
+    UNDER_MAINTENANCE, //淇濆吇涓�
+    WAIT_CONFIRM, //寰呯‘璁�
+    COMPLETE, //宸插畬鎴�
+    ABOLISH, //宸蹭綔搴�
+    EXPIRED; //宸茶繃鏈�
+}
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceChange.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceChange.java
index 28b0887..f9845a3 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceChange.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceChange.java
@@ -1,5 +1,7 @@
 package org.jeecg.modules.eam.entity;
 
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -8,6 +10,7 @@
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import org.apache.ibatis.type.JdbcType;
 import org.jeecg.common.aspect.annotation.Dict;
 import org.jeecg.common.system.base.entity.JeecgEntity;
 import org.jeecgframework.poi.excel.annotation.Excel;
@@ -37,6 +40,18 @@
     @Excel(name = "鍒犻櫎鏍囪", width = 15)
     @ApiModelProperty(value = "鍒犻櫎鏍囪")
     private Integer delFlag;
+    /**
+     * 澶囨敞
+     */
+    @Excel(name = "澶囨敞", width = 15)
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+    /**
+     * 璁惧ID
+     */
+    @Excel(name = "璁惧ID", width = 15)
+    @ApiModelProperty(value = "璁惧ID")
+    private String equipmentId;
     /**
      * 涓変繚宸ュ崟ID
      */
@@ -106,7 +121,8 @@
     @Excel(name = "寤惰繜淇濆吇鏃ユ湡", width = 20, format = "yyyy-MM-dd")
     @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
-    private Date deferredMaintenanceDate;
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private String deferredMaintenanceDate;
     /**
      * 涓荤棰嗗绛惧瓧
      */
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceFurnace.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceFurnace.java
index f1de276..dfe60ae 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceFurnace.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceFurnace.java
@@ -1,5 +1,7 @@
 package org.jeecg.modules.eam.entity;
 
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
@@ -29,7 +31,12 @@
 public class EamThirdMaintenanceFurnace extends JeecgEntity implements Serializable {
 
     private static final long serialVersionUID = -5799611070364065336L;
-
+    /**
+     * 澶囨敞
+     */
+    @Excel(name = "澶囨敞", width = 15)
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
     /**
      * 鍒犻櫎鏍囪
      */
@@ -42,6 +49,19 @@
     @Excel(name = "璁惧ID", width = 15)
     @ApiModelProperty(value = "璁惧ID")
     private String equipmentId;
+    /**
+     * 宸ュ崟鍙�
+     */
+    @Excel(name = "宸ュ崟鍙�", width = 15)
+    @ApiModelProperty(value = "宸ュ崟鍙�")
+    private String orderNum;
+    /**
+     * 璁″垝淇濆吇鏃ユ湡
+     */
+    @ApiModelProperty(value = "璁″垝淇濆吇鏃ユ湡;鎻愬墠70澶╃敓鎴愬伐鍗�")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date maintenanceDate;
     /**
      * 鍘嬬缉绌烘皵鍘嬪姏(MPa)
      */
@@ -83,13 +103,13 @@
      */
     @Excel(name = "淇濆吇浜�", width = 15)
     @ApiModelProperty(value = "淇濆吇浜�")
-    @Dict(dicCode = "sys_user, realname, username")
+    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
     private String operator;
     /**
-     * 淇濆吇鏃ユ湡
+     * 淇濆吇鏃堕棿
      */
-    @ApiModelProperty(value = "淇濆吇鏃ユ湡")
-    @Excel(name = "淇濆吇鏃ユ湡", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "淇濆吇鏃堕棿")
+    @Excel(name = "淇濆吇鏃堕棿", width = 20, format = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date operateTime;
@@ -98,6 +118,7 @@
      */
     @Excel(name = "淇濆吇鐘舵��;寰呮彁浜ゃ�佸緟纭銆佸凡瀹屾垚", width = 15)
     @ApiModelProperty(value = "淇濆吇鐘舵��;寰呮彁浜ゃ�佸緟纭銆佸凡瀹屾垚")
+    @Dict(dicCode = "third_maintenance_furnace_status")
     private String maintenanceStatus;
     /**
      * 鑳藉惁婊¤冻鍔犲伐闇�姹�;鏄惁
@@ -110,8 +131,11 @@
      */
     @Excel(name = "纭浜�", width = 15)
     @ApiModelProperty(value = "纭浜�")
-    @Dict(dicCode = "sys_user, realname, username")
+    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
     private String confirmUser;
+    /** 纭绫诲瀷 1 閫氳繃  2 椹冲洖 */
+    @ApiModelProperty(value = "纭绫诲瀷")
+    private String confirmDealType;
     /**
      * 纭鏃ユ湡
      */
@@ -126,4 +150,11 @@
     @Excel(name = "HF缂栫爜", width = 15)
     @ApiModelProperty(value = "HF缂栫爜")
     private String hfCode;
+    //鍒楄〃灞曠ず
+    @TableField(exist = false)
+    private String equipmentCode;
+    @TableField(exist = false)
+    private String equipmentName;
+    @TableField(exist = false)
+    private String equipmentModel;
 }
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceOrder.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceOrder.java
index 6ac9ec8..dae7639 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceOrder.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceOrder.java
@@ -1,5 +1,6 @@
 package org.jeecg.modules.eam.entity;
 
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -61,7 +62,8 @@
     @ApiModelProperty(value = "璁″垝淇濆吇鏃ユ湡;鎻愬墠70澶╃敓鎴愬伐鍗�")
     @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
-    private Date maintenanceDate;
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private String maintenanceDate;
     /**
      * 閿佸畾宸ュ崟鏃ユ湡
      */
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceSpare.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceSpare.java
index b1910d6..c7d29b4 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceSpare.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceSpare.java
@@ -6,6 +6,7 @@
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
 import org.jeecg.common.system.base.entity.JeecgEntity;
 import org.jeecgframework.poi.excel.annotation.Excel;
 
@@ -28,6 +29,18 @@
     private static final long serialVersionUID = -164548817301978100L;
 
     /**
+     * 涓変繚宸ュ崟ID
+     */
+    @Excel(name = "涓変繚宸ュ崟ID", width = 15)
+    @ApiModelProperty(value = "涓変繚宸ュ崟ID")
+    private String orderId;
+    /**
+     * 澶囦欢搴忓彿
+     */
+    @Excel(name = "澶囦欢搴忓彿", width = 15)
+    @ApiModelProperty(value = "澶囦欢搴忓彿")
+    private Integer spareCode;
+    /**
      * 澶囦欢鍚嶇О
      */
     @Excel(name = "澶囦欢鍚嶇О", width = 15)
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceChangeController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceChangeController.java
index 6688ef7..3b66158 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceChangeController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceChangeController.java
@@ -204,6 +204,7 @@
             translateDictTextUtils.translateField("equipmentManagerSignature", entity.getEquipmentManagerSignature(), item, "sys_user,realname,username");
             translateDictTextUtils.translateField("departManagerSignature", entity.getDepartManagerSignature(), item, "sys_user,realname,username");
             translateDictTextUtils.translateField("productionSupportSignature", entity.getProductionSupportSignature(), item, "sys_user,realname,username");
+            translateDictTextUtils.translateField("factoryOrgCode", entity.getFactoryOrgCode(), item, "eam_base_factory,factory_name,org_code");
             return Result.OK(item);
         } catch (JsonProcessingException e) {
             return Result.error("鏁版嵁杞瘧澶辫触锛�");
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceFurnaceController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceFurnaceController.java
index 5dd1820..5177a22 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceFurnaceController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceFurnaceController.java
@@ -1,8 +1,14 @@
 package org.jeecg.modules.eam.controller;
 
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.parser.Feature;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -10,8 +16,19 @@
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.TranslateDictTextUtils;
+import org.jeecg.modules.eam.constant.BusinessCodeConst;
+import org.jeecg.modules.eam.constant.OrderCreationMethodEnum;
+import org.jeecg.modules.eam.constant.ThirdMaintenanceFurnaceStatusEnum;
+import org.jeecg.modules.eam.constant.ThirdMaintenanceStatusEnum;
 import org.jeecg.modules.eam.entity.EamThirdMaintenanceFurnace;
+import org.jeecg.modules.eam.entity.EamThirdMaintenanceOrder;
+import org.jeecg.modules.eam.request.EamThirdMaintenanceFurnaceQuery;
+import org.jeecg.modules.eam.request.EamThirdMaintenanceFurnaceRequest;
+import org.jeecg.modules.eam.request.EamThirdMaintenanceRequest;
 import org.jeecg.modules.eam.service.IEamThirdMaintenanceFurnaceService;
+import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
 
@@ -19,134 +36,220 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.util.Arrays;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * @Description: 鐪熺┖鐑鐞嗙倝涓変繚
  * @Author: jeecg-boot
- * @Date:   2025-07-11
+ * @Date: 2025-07-11
  * @Version: V1.0
  */
 @Slf4j
-@Api(tags="鐪熺┖鐑鐞嗙倝涓変繚")
+@Api(tags = "鐪熺┖鐑鐞嗙倝涓変繚")
 @RestController
 @RequestMapping("/eam/eamThirdMaintenanceFurnace")
 public class EamThirdMaintenanceFurnaceController extends JeecgController<EamThirdMaintenanceFurnace, IEamThirdMaintenanceFurnaceService> {
+
+    @Resource
+    private IEamThirdMaintenanceFurnaceService eamThirdMaintenanceFurnaceService;
+    @Resource
+    private ISysBusinessCodeRuleService businessCodeRuleService;
 	@Resource
-	private IEamThirdMaintenanceFurnaceService eamThirdMaintenanceFurnaceService;
-	
-	/**
-	 * 鍒嗛〉鍒楄〃鏌ヨ
-	 *
-	 * @param eamThirdMaintenanceFurnace
-	 * @param pageNo
-	 * @param pageSize
-	 * @param req
-	 * @return
-	 */
-	@AutoLog(value = "鐪熺┖鐑鐞嗙倝涓変繚-鍒嗛〉鍒楄〃鏌ヨ")
-	@ApiOperation(value="鐪熺┖鐑鐞嗙倝涓変繚-鍒嗛〉鍒楄〃鏌ヨ", notes="鐪熺┖鐑鐞嗙倝涓変繚-鍒嗛〉鍒楄〃鏌ヨ")
-	@GetMapping(value = "/list")
-	public Result<?> queryPageList(EamThirdMaintenanceFurnace eamThirdMaintenanceFurnace,
-								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-								   HttpServletRequest req) {
-		QueryWrapper<EamThirdMaintenanceFurnace> queryWrapper = QueryGenerator.initQueryWrapper(eamThirdMaintenanceFurnace, req.getParameterMap());
-		Page<EamThirdMaintenanceFurnace> page = new Page<EamThirdMaintenanceFurnace>(pageNo, pageSize);
-		IPage<EamThirdMaintenanceFurnace> pageList = eamThirdMaintenanceFurnaceService.page(page, queryWrapper);
-		return Result.OK(pageList);
-	}
-	
-	/**
-	 * 娣诲姞
-	 *
-	 * @param eamThirdMaintenanceFurnace
-	 * @return
-	 */
-	@AutoLog(value = "鐪熺┖鐑鐞嗙倝涓変繚-娣诲姞")
-	@ApiOperation(value="鐪熺┖鐑鐞嗙倝涓変繚-娣诲姞", notes="鐪熺┖鐑鐞嗙倝涓変繚-娣诲姞")
-	@PostMapping(value = "/add")
-	public Result<?> add(@RequestBody EamThirdMaintenanceFurnace eamThirdMaintenanceFurnace) {
-		eamThirdMaintenanceFurnaceService.save(eamThirdMaintenanceFurnace);
-		return Result.OK("娣诲姞鎴愬姛锛�");
-	}
-	
-	/**
-	 * 缂栬緫
-	 *
-	 * @param eamThirdMaintenanceFurnace
-	 * @return
-	 */
-	@AutoLog(value = "鐪熺┖鐑鐞嗙倝涓変繚-缂栬緫")
-	@ApiOperation(value="鐪熺┖鐑鐞嗙倝涓変繚-缂栬緫", notes="鐪熺┖鐑鐞嗙倝涓変繚-缂栬緫")
-	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
-	public Result<?> edit(@RequestBody EamThirdMaintenanceFurnace eamThirdMaintenanceFurnace) {
-		eamThirdMaintenanceFurnaceService.updateById(eamThirdMaintenanceFurnace);
-		return Result.OK("缂栬緫鎴愬姛!");
-	}
-	
-	/**
-	 * 閫氳繃id鍒犻櫎
-	 *
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "鐪熺┖鐑鐞嗙倝涓変繚-閫氳繃id鍒犻櫎")
-	@ApiOperation(value="鐪熺┖鐑鐞嗙倝涓変繚-閫氳繃id鍒犻櫎", notes="鐪熺┖鐑鐞嗙倝涓変繚-閫氳繃id鍒犻櫎")
-	@DeleteMapping(value = "/delete")
-	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
-		eamThirdMaintenanceFurnaceService.removeById(id);
-		return Result.OK("鍒犻櫎鎴愬姛!");
-	}
-	
-	/**
-	 * 鎵归噺鍒犻櫎
-	 *
-	 * @param ids
-	 * @return
-	 */
-	@AutoLog(value = "鐪熺┖鐑鐞嗙倝涓変繚-鎵归噺鍒犻櫎")
-	@ApiOperation(value="鐪熺┖鐑鐞嗙倝涓変繚-鎵归噺鍒犻櫎", notes="鐪熺┖鐑鐞嗙倝涓変繚-鎵归噺鍒犻櫎")
-	@DeleteMapping(value = "/deleteBatch")
-	public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
-		this.eamThirdMaintenanceFurnaceService.removeByIds(Arrays.asList(ids.split(",")));
-		return Result.OK("鎵归噺鍒犻櫎鎴愬姛锛�");
-	}
-	
-	/**
-	 * 閫氳繃id鏌ヨ
-	 *
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "鐪熺┖鐑鐞嗙倝涓変繚-閫氳繃id鏌ヨ")
-	@ApiOperation(value="鐪熺┖鐑鐞嗙倝涓変繚-閫氳繃id鏌ヨ", notes="鐪熺┖鐑鐞嗙倝涓変繚-閫氳繃id鏌ヨ")
-	@GetMapping(value = "/queryById")
-	public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
-		EamThirdMaintenanceFurnace eamThirdMaintenanceFurnace = eamThirdMaintenanceFurnaceService.getById(id);
-		return Result.OK(eamThirdMaintenanceFurnace);
-	}
+	private ObjectMapper objectMapper;
+	@Resource
+	private TranslateDictTextUtils translateDictTextUtils;
 
-  /**
-   * 瀵煎嚭excel
-   *
-   * @param request
-   * @param eamThirdMaintenanceFurnace
-   */
-  @RequestMapping(value = "/exportXls")
-  public ModelAndView exportXls(HttpServletRequest request, EamThirdMaintenanceFurnace eamThirdMaintenanceFurnace) {
-      return super.exportXls(request, eamThirdMaintenanceFurnace, EamThirdMaintenanceFurnace.class, "鐪熺┖鐑鐞嗙倝涓変繚");
-  }
+    /**
+     * 鍒嗛〉鍒楄〃鏌ヨ
+     *
+     * @param query
+     * @param pageNo
+     * @param pageSize
+     * @param req
+     * @return
+     */
+    @AutoLog(value = "鐪熺┖鐑鐞嗙倝涓変繚-鍒嗛〉鍒楄〃鏌ヨ")
+    @ApiOperation(value = "鐪熺┖鐑鐞嗙倝涓変繚-鍒嗛〉鍒楄〃鏌ヨ", notes = "鐪熺┖鐑鐞嗙倝涓変繚-鍒嗛〉鍒楄〃鏌ヨ")
+    @GetMapping(value = "/list")
+    public Result<?> queryPageList(EamThirdMaintenanceFurnaceQuery query,
+                                   @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                   @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                   HttpServletRequest req) {
+        Page<EamThirdMaintenanceFurnace> page = new Page<EamThirdMaintenanceFurnace>(pageNo, pageSize);
+        IPage<EamThirdMaintenanceFurnace> pageList = eamThirdMaintenanceFurnaceService.queryPageList(page, query);
+        return Result.OK(pageList);
+    }
 
-  /**
-   * 閫氳繃excel瀵煎叆鏁版嵁
-   *
-   * @param request
-   * @param response
-   * @return
-   */
-  @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-  public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-      return super.importExcel(request, response, EamThirdMaintenanceFurnace.class);
-  }
+    /**
+     * 娣诲姞
+     *
+     * @param request
+     * @return
+     */
+    @AutoLog(value = "鐪熺┖鐑鐞嗙倝涓変繚-娣诲姞")
+    @ApiOperation(value = "鐪熺┖鐑鐞嗙倝涓変繚-娣诲姞", notes = "鐪熺┖鐑鐞嗙倝涓変繚-娣诲姞")
+    @PostMapping(value = "/add")
+    public Result<?> add(@RequestBody EamThirdMaintenanceFurnaceRequest request) {
+        String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.THIRD_MAINTENANCE_FURNACE_CODE_RULE);
+        request.setOrderNum(codeSeq);
+        return eamThirdMaintenanceFurnaceService.addThirdMaintenanceFurnace(request);
+    }
+
+    /**
+     * 缂栬緫
+     *
+     * @param request
+     * @return
+     */
+    @AutoLog(value = "鐪熺┖鐑鐞嗙倝涓変繚-缂栬緫")
+    @ApiOperation(value = "鐪熺┖鐑鐞嗙倝涓変繚-缂栬緫", notes = "鐪熺┖鐑鐞嗙倝涓変繚-缂栬緫")
+    @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
+    public Result<?> edit(@RequestBody EamThirdMaintenanceFurnaceRequest request) {
+        if (request == null) {
+            return Result.error("娣诲姞鐨勫璞′笉鑳戒负绌猴紒");
+        }
+        boolean b = eamThirdMaintenanceFurnaceService.editMaintenance(request);
+        if (!b) {
+            return Result.error("缂栬緫澶辫触锛�");
+        }
+        return Result.OK("缂栬緫鎴愬姛!");
+    }
+
+    /**
+     * 鐪熺┖鐑鐞嗙倝涓変繚
+     *
+     * @param id
+     * @return
+     */
+    @AutoLog(value = "鐪熺┖鐑鐞嗙倝涓変繚-浣滃簾")
+    @ApiOperation(value = "鐪熺┖鐑鐞嗙倝涓変繚-浣滃簾", notes = "鐪熺┖鐑鐞嗙倝涓変繚-浣滃簾")
+    @GetMapping(value = "/abolish")
+    public Result<String> abolish(@RequestParam(name = "id", required = true) String id) {
+        EamThirdMaintenanceFurnace entity = eamThirdMaintenanceFurnaceService.getById(id);
+        if (entity == null) {
+            return Result.error("瑕佷綔搴熺殑鏁版嵁涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒");
+        }
+        if (!ThirdMaintenanceFurnaceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) {
+            return Result.error("璇ョ姸鎬佺殑鏁版嵁涓嶅厑璁歌繘琛屼綔搴燂紒");
+        }
+        entity.setMaintenanceStatus(ThirdMaintenanceFurnaceStatusEnum.ABOLISH.name());
+        eamThirdMaintenanceFurnaceService.updateById(entity);
+        return Result.OK("浣滃簾鎴愬姛");
+    }
+
+    /**
+     * 閫氳繃id鎵归噺浣滃簾
+     *
+     * @param ids
+     * @return
+     */
+    @AutoLog(value = "鐪熺┖鐑鐞嗙倝涓変繚-鎵归噺浣滃簾")
+    @ApiOperation(value = "鐪熺┖鐑鐞嗙倝涓変繚-鎵归噺浣滃簾", notes = "鐪熺┖鐑鐞嗙倝涓変繚-鎵归噺浣滃簾")
+    @DeleteMapping(value = "/abolishBatch")
+    public Result<?> abolishBatch(@RequestParam(name = "ids", required = true) String ids) {
+        List<String> list = Arrays.asList(ids.split(","));
+        AtomicInteger i = new AtomicInteger();
+        list.forEach(id -> {
+            EamThirdMaintenanceFurnace entity = eamThirdMaintenanceFurnaceService.getById(id);
+            if (entity != null && ThirdMaintenanceFurnaceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) {
+                entity.setMaintenanceStatus(ThirdMaintenanceFurnaceStatusEnum.ABOLISH.name());
+                eamThirdMaintenanceFurnaceService.updateById(entity);
+                i.getAndIncrement();
+            }
+        });
+        return Result.OK("鎵归噺浣滃簾鎴愬姛 " + i.get() + " 鏉″伐鍗曪紒");
+    }
+
+    /**
+     * 閫氳繃id鏌ヨ
+     *
+     * @param id
+     * @return
+     */
+    @AutoLog(value = "鐪熺┖鐑鐞嗙倝涓変繚-閫氳繃id鏌ヨ")
+    @ApiOperation(value = "鐪熺┖鐑鐞嗙倝涓変繚-閫氳繃id鏌ヨ", notes = "鐪熺┖鐑鐞嗙倝涓変繚-閫氳繃id鏌ヨ")
+    @GetMapping(value = "/queryById")
+    public Result<?> queryById(@RequestParam(name = "id", required = true) String id) {
+        EamThirdMaintenanceFurnace eamThirdMaintenanceFurnace = eamThirdMaintenanceFurnaceService.getById(id);
+		if (eamThirdMaintenanceFurnace == null) {
+			return Result.error("鏈壘鍒板搴旀暟鎹�");
+		}
+		try {
+			String json = objectMapper.writeValueAsString(eamThirdMaintenanceFurnace);
+			JSONObject item = JSONObject.parseObject(json, Feature.OrderedField);
+			translateDictTextUtils.translateField("createBy", eamThirdMaintenanceFurnace.getCreateBy(), item, "sys_user,realname,username");
+			translateDictTextUtils.translateField("operator", eamThirdMaintenanceFurnace.getOperator(), item, "sys_user,realname,username");
+			translateDictTextUtils.translateField("confirmUser", eamThirdMaintenanceFurnace.getConfirmUser(), item, "sys_user,realname,username");
+			translateDictTextUtils.translateField("maintenanceStatus", eamThirdMaintenanceFurnace.getMaintenanceStatus(), item, "third_maintenance_furnace_status");
+			return Result.OK(item);
+		} catch (JsonProcessingException e) {
+			return Result.error("鏁版嵁杞瘧澶辫触锛�");
+		}
+    }
+
+    /**
+     * 閫氳繃id鎵归噺棰嗗彇
+     *
+     * @param ids
+     * @return
+     */
+    @AutoLog(value = "鐪熺┖鐑鐞嗙倝涓変繚-鎵归噺棰嗗彇")
+    @ApiOperation(value = "鐪熺┖鐑鐞嗙倝涓変繚-鎵归噺棰嗗彇", notes = "鐪熺┖鐑鐞嗙倝涓変繚-鎵归噺棰嗗彇")
+    @DeleteMapping(value = "/collectBatch")
+    public Result<?> collectBatch(@RequestParam(name = "ids", required = true) String ids) {
+        List<String> list = Arrays.asList(ids.split(","));
+        AtomicInteger i = new AtomicInteger();
+        list.forEach(id -> {
+            EamThirdMaintenanceFurnace entity = eamThirdMaintenanceFurnaceService.getById(id);
+            if (entity != null && ThirdMaintenanceFurnaceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) {
+                boolean b = eamThirdMaintenanceFurnaceService.collect(id);
+                if (b) {
+                    i.getAndIncrement();
+                }
+            }
+        });
+        return Result.OK("鎵归噺棰嗗彇鎴愬姛 " + i.get() + " 鏉″伐鍗曪紒");
+    }
+
+    /**
+     * 閫氳繃id棰嗗彇
+     *
+     * @param id
+     * @return
+     */
+    @AutoLog(value = "鐪熺┖鐑鐞嗙倝涓変繚-棰嗗彇")
+    @ApiOperation(value = "鐪熺┖鐑鐞嗙倝涓変繚-棰嗗彇", notes = "鐪熺┖鐑鐞嗙倝涓変繚-棰嗗彇")
+    @GetMapping(value = "/collect")
+    public Result<?> collect(@RequestParam(name = "id", required = true) String id) {
+        boolean b = eamThirdMaintenanceFurnaceService.collect(id);
+        if (!b) {
+            Result.OK("棰嗗彇澶辫触!");
+        }
+        return Result.OK("棰嗗彇鎴愬姛!");
+    }
+
+    /**
+     * 鎴戠殑寰呭姙锛屽鎵瑰姩浣�
+     *
+     * @param request
+     * @return
+     */
+    @ApiOperation(value = "鐪熺┖鐑鐞嗙倝涓変繚-鎵ц鎿嶄綔", notes = "鐪熺┖鐑鐞嗙倝涓変繚-鎵ц鎿嶄綔")
+    @PutMapping(value = "/approval")
+    public Result<?> approval(@RequestBody EamThirdMaintenanceFurnaceRequest request) {
+        if (request == null) {
+            return Result.error("瀹℃壒鐨勫璞′笉鑳戒负绌猴紒");
+        }
+        // 妫�鏌ヨ姹傚弬鏁�
+        if (StrUtil.isBlank(request.getTaskId()) || StrUtil.isBlank(request.getDataId()) || StrUtil.isBlank(request.getInstanceId())) {
+            return Result.error("瀹℃壒浠诲姟閿欒鎴栦笉瀛樺湪锛�");
+        }
+        EamThirdMaintenanceFurnace entity = eamThirdMaintenanceFurnaceService.approval(request);
+        if (entity == null) {
+            return Result.error("鎿嶄綔澶辫触锛�");
+        }
+        return Result.ok("鎿嶄綔鎴愬姛锛�");
+    }
 
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceOrderController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceOrderController.java
index 12d18a1..b5be67c 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceOrderController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceOrderController.java
@@ -205,8 +205,8 @@
 	 * @param ids
 	 * @return
 	 */
-	@AutoLog(value = "鍛ㄤ繚宸ュ崟-鎵归噺浣滃簾")
-	@ApiOperation(value = "鍛ㄤ繚宸ュ崟-鎵归噺浣滃簾", notes = "鍛ㄤ繚宸ュ崟-鎵归噺浣滃簾")
+	@AutoLog(value = "璁惧涓夌骇淇濆吇-鎵归噺浣滃簾")
+	@ApiOperation(value = "璁惧涓夌骇淇濆吇-鎵归噺浣滃簾", notes = "璁惧涓夌骇淇濆吇-鎵归噺浣滃簾")
 	@DeleteMapping(value = "/abolishBatch")
 	public Result<?> abolishBatch(@RequestParam(name = "ids", required = true) String ids) {
 		List<String> list = Arrays.asList(ids.split(","));
@@ -228,8 +228,8 @@
 	 * @param ids
 	 * @return
 	 */
-	@AutoLog(value = "鍛ㄤ繚宸ュ崟-鎵归噺棰嗗彇")
-	@ApiOperation(value = "鍛ㄤ繚宸ュ崟-鎵归噺棰嗗彇", notes = "鍛ㄤ繚宸ュ崟-鎵归噺棰嗗彇")
+	@AutoLog(value = "璁惧涓夌骇淇濆吇-鎵归噺棰嗗彇")
+	@ApiOperation(value = "璁惧涓夌骇淇濆吇-鎵归噺棰嗗彇", notes = "璁惧涓夌骇淇濆吇-鎵归噺棰嗗彇")
 	@DeleteMapping(value = "/collectBatch")
 	public Result<?> collectBatch(@RequestParam(name = "ids", required = true) String ids) {
 		List<String> list = Arrays.asList(ids.split(","));
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceSpareController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceSpareController.java
index a317036..b7e0727 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceSpareController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceSpareController.java
@@ -1,5 +1,6 @@
 package org.jeecg.modules.eam.controller;
 
+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;
@@ -10,6 +11,7 @@
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.eam.entity.EamThirdMaintenanceOrderDetail;
 import org.jeecg.modules.eam.entity.EamThirdMaintenanceSpare;
 import org.jeecg.modules.eam.service.IEamThirdMaintenanceSpareService;
 import org.springframework.web.bind.annotation.*;
@@ -19,6 +21,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.util.Arrays;
+import java.util.List;
 
 /**
  * @Description: 涓変繚澶囦欢鏄庣粏
@@ -55,6 +58,22 @@
 		Page<EamThirdMaintenanceSpare> page = new Page<EamThirdMaintenanceSpare>(pageNo, pageSize);
 		IPage<EamThirdMaintenanceSpare> pageList = eamThirdMaintenanceSpareService.page(page, queryWrapper);
 		return Result.OK(pageList);
+	}
+
+	/**
+	 * 涓�娆″姞杞�
+	 *
+	 * @param orderId
+	 * @return
+	 */
+	@ApiOperation(value = "鍛ㄤ繚宸ュ崟鏄庣粏-涓嶅垎椤靛垪琛ㄦ煡璇�", notes = "鍛ㄤ繚宸ュ崟鏄庣粏-涓嶅垎椤靛垪琛ㄦ煡璇�")
+	@GetMapping(value = "/queryList")
+	public Result<?> queryList(@RequestParam("orderId") String orderId) {
+		LambdaQueryWrapper<EamThirdMaintenanceSpare> queryWrapper = new LambdaQueryWrapper<>();
+		queryWrapper.eq(EamThirdMaintenanceSpare::getOrderId, orderId);
+		queryWrapper.orderByAsc(EamThirdMaintenanceSpare::getSpareCode);
+		List<EamThirdMaintenanceSpare> list = eamThirdMaintenanceSpareService.list(queryWrapper);
+		return Result.OK(list);
 	}
 	
 	/**
@@ -126,28 +145,5 @@
 		EamThirdMaintenanceSpare eamThirdMaintenanceSpare = eamThirdMaintenanceSpareService.getById(id);
 		return Result.OK(eamThirdMaintenanceSpare);
 	}
-
-  /**
-   * 瀵煎嚭excel
-   *
-   * @param request
-   * @param eamThirdMaintenanceSpare
-   */
-  @RequestMapping(value = "/exportXls")
-  public ModelAndView exportXls(HttpServletRequest request, EamThirdMaintenanceSpare eamThirdMaintenanceSpare) {
-      return super.exportXls(request, eamThirdMaintenanceSpare, EamThirdMaintenanceSpare.class, "涓変繚澶囦欢鏄庣粏");
-  }
-
-  /**
-   * 閫氳繃excel瀵煎叆鏁版嵁
-   *
-   * @param request
-   * @param response
-   * @return
-   */
-  @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-  public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-      return super.importExcel(request, response, EamThirdMaintenanceSpare.class);
-  }
 
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamThirdMaintenanceFurnaceMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamThirdMaintenanceFurnaceMapper.java
index c821afc..d575f33 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamThirdMaintenanceFurnaceMapper.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamThirdMaintenanceFurnaceMapper.java
@@ -1,6 +1,11 @@
 package org.jeecg.modules.eam.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.eam.entity.EamThirdMaintenanceFurnace;
 
 /**
@@ -11,4 +16,11 @@
  */
 public interface EamThirdMaintenanceFurnaceMapper extends BaseMapper<EamThirdMaintenanceFurnace> {
 
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param page
+     * @param queryWrapper
+     * @return
+     */
+    IPage<EamThirdMaintenanceFurnace> queryPageList(Page<EamThirdMaintenanceFurnace> page, @Param(Constants.WRAPPER) QueryWrapper<EamThirdMaintenanceFurnace> queryWrapper);
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamThirdMaintenanceFurnaceMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamThirdMaintenanceFurnaceMapper.xml
index 0364be1..73c9c83 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamThirdMaintenanceFurnaceMapper.xml
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamThirdMaintenanceFurnaceMapper.xml
@@ -2,4 +2,11 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.eam.mapper.EamThirdMaintenanceFurnaceMapper">
 
+    <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamThirdMaintenanceFurnace">
+        select tmf.*, e.equipment_code, e.equipment_name, e.equipment_model
+        from eam_third_maintenance_furnace tmf
+        inner join eam_equipment e
+        on tmf.equipment_id = e.id
+        ${ew.customSqlSegment}
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamThirdMaintenanceFurnaceQuery.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamThirdMaintenanceFurnaceQuery.java
new file mode 100644
index 0000000..cab072b
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamThirdMaintenanceFurnaceQuery.java
@@ -0,0 +1,28 @@
+package org.jeecg.modules.eam.request;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * @Author: Lius
+ * @CreateTime: 2025-07-24
+ * @Description:
+ */
+@Data
+public class EamThirdMaintenanceFurnaceQuery {
+    private String orderNum;
+    private String equipmentId;
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date maintenanceDateBegin;
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date maintenanceDateEnd;
+    private String maintenanceStatus;
+
+    private String column;
+    private String order;
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamThirdMaintenanceFurnaceRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamThirdMaintenanceFurnaceRequest.java
new file mode 100644
index 0000000..fdcc5fd
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamThirdMaintenanceFurnaceRequest.java
@@ -0,0 +1,120 @@
+package org.jeecg.modules.eam.request;
+
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecg.modules.flowable.domain.vo.FlowTaskVo;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Author: Lius
+ * @CreateTime: 2025-07-24
+ * @Description:
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class EamThirdMaintenanceFurnaceRequest extends FlowTaskVo implements Serializable {
+
+    private static final long serialVersionUID = 3599956173993730625L;
+
+    /**涓婚敭*/
+    @ApiModelProperty(value = "涓婚敭")
+    private String id;
+    /**
+     * 澶囨敞
+     */
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+    /**
+     * 宸ュ崟鍙�
+     */
+    @ApiModelProperty(value = "宸ュ崟鍙�")
+    private String orderNum;
+    /**
+     * 璁惧ID
+     */
+    @ApiModelProperty(value = "璁惧ID")
+    @Dict(dictTable = "eam_equipment", dicCode = "equipment_code", dicText = "id")
+    private String equipmentId;
+    /**
+     * 璁″垝淇濆吇鏃ユ湡
+     */
+    @ApiModelProperty(value = "璁″垝淇濆吇鏃ユ湡")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date maintenanceDate;
+    /**
+     * 鍘嬬缉绌烘皵鍘嬪姏(MPa)
+     */
+    @ApiModelProperty(value = "鍘嬬缉绌烘皵鍘嬪姏(MPa)")
+    private String compressedAirPressureValue;
+    /**
+     * 鏋侀檺鐪熺┖(Pa)
+     */
+    @ApiModelProperty(value = "鏋侀檺鐪熺┖(Pa)")
+    private String ultimateVacuumValue;
+    /**
+     * 娉勬紡鐜�(Pa/h)
+     */
+    @ApiModelProperty(value = "娉勬紡鐜�(Pa/h)")
+    private String leakRate;
+    /**
+     * 鍑�鍖栧鐞�
+     */
+    @ApiModelProperty(value = "鍑�鍖栧鐞�")
+    private String purificationTreatment;
+    /**
+     * 鐐夋俯鍧囧寑鎬ф娴�
+     */
+    @ApiModelProperty(value = "鐐夋俯鍧囧寑鎬ф娴�")
+    private String furnaceTemperatureUniformityTesting;
+    /**
+     * 鍔犵儹鍔熺巼娴嬭瘯
+     */
+    @ApiModelProperty(value = "鍔犵儹鍔熺巼娴嬭瘯")
+    private String heatingPowerTest;
+    /**
+     * 淇濆吇浜�
+     */
+    @ApiModelProperty(value = "淇濆吇浜�")
+    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
+    private String operator;
+    /**
+     * 淇濆吇鏃堕棿
+     */
+    @ApiModelProperty(value = "淇濆吇鏃堕棿")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date operateTime;
+    /**
+     * 淇濆吇鐘舵��;寰呮彁浜ゃ�佸緟纭銆佸凡瀹屾垚
+     */
+    @ApiModelProperty(value = "淇濆吇鐘舵��;寰呮彁浜ゃ�佸緟纭銆佸凡瀹屾垚")
+    private String maintenanceStatus;
+    /**
+     * 鑳藉惁婊¤冻鍔犲伐闇�姹�;鏄惁
+     */
+    @ApiModelProperty(value = "鑳藉惁婊¤冻鍔犲伐闇�姹�;鏄惁")
+    @Dict(dicCode = "yn")
+    private String processingRequirementsFlag;
+    /**
+     * 纭浜�
+     */
+    @ApiModelProperty(value = "纭浜�")
+    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
+    private String confirmUser;
+    /** 纭绫诲瀷 1 閫氳繃  2 椹冲洖 */
+    @ApiModelProperty(value = "纭绫诲瀷")
+    @Dict(dicCode = "approved_rejected")
+    private String confirmDealType;
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamThirdMaintenanceRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamThirdMaintenanceRequest.java
index 7d5977a..5740874 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamThirdMaintenanceRequest.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamThirdMaintenanceRequest.java
@@ -8,6 +8,7 @@
 import lombok.experimental.Accessors;
 import org.jeecg.common.aspect.annotation.Dict;
 import org.jeecg.modules.eam.entity.EamThirdMaintenanceOrderDetail;
+import org.jeecg.modules.eam.entity.EamThirdMaintenanceSpare;
 import org.jeecg.modules.flowable.domain.vo.FlowTaskVo;
 import org.jeecgframework.poi.excel.annotation.Excel;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -50,7 +51,7 @@
     @ApiModelProperty(value = "淇濆吇鏃ユ湡")
     @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
-    private Date maintenanceDate;
+    private String maintenanceDate;
     /**
      * 缁翠慨浜�
      */
@@ -101,6 +102,11 @@
      */
     @ApiModelProperty(value = "鍒犻櫎 淇濆吇椤规槑缁�")
     private List<EamThirdMaintenanceOrderDetail> removeDetailList;
+    /**
+     * 澶囦欢鏄庣粏
+     */
+    @ApiModelProperty(value = "澶囦欢浣跨敤鏄庣粏")
+    private List<EamThirdMaintenanceSpare> tableSpareList;
 
     /**
      * 鎿嶄綔浜虹瀛�
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceFurnaceService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceFurnaceService.java
index f628bd9..da457dc 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceFurnaceService.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceFurnaceService.java
@@ -1,7 +1,12 @@
 package org.jeecg.modules.eam.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.eam.entity.EamThirdMaintenanceFurnace;
+import org.jeecg.modules.eam.request.EamThirdMaintenanceFurnaceQuery;
+import org.jeecg.modules.eam.request.EamThirdMaintenanceFurnaceRequest;
 
 /**
  * @Description: 鐪熺┖鐑鐞嗙倝涓変繚
@@ -11,4 +16,39 @@
  */
 public interface IEamThirdMaintenanceFurnaceService extends IService<EamThirdMaintenanceFurnace> {
 
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param page
+     * @param query
+     * @return
+     */
+    IPage<EamThirdMaintenanceFurnace> queryPageList(Page<EamThirdMaintenanceFurnace> page, EamThirdMaintenanceFurnaceQuery query);
+
+    /**
+     * 鏂板鐑鐞嗙倝淇濆吇宸ュ崟
+     * @param eamThirdMaintenanceFurnaceRequest
+     * @return
+     */
+    Result<?> addThirdMaintenanceFurnace(EamThirdMaintenanceFurnaceRequest eamThirdMaintenanceFurnaceRequest);
+
+    /**
+     * 棰嗗彇宸ュ崟
+     * @param id
+     * @return
+     */
+    boolean collect(String id);
+
+    /**
+     * 缂栬緫
+     * @param request
+     * @return
+     */
+    boolean editMaintenance(EamThirdMaintenanceFurnaceRequest request);
+
+    /**
+     * 瀹℃壒娴佺▼
+     * @param request
+     * @return
+     */
+    EamThirdMaintenanceFurnace approval(EamThirdMaintenanceFurnaceRequest request);
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java
index fb90334..931ffcd 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java
@@ -518,7 +518,6 @@
                     weekInspectionDetailList.forEach(weekInspectionDetail -> {
                         weekInspectionDetail.setEquipmentId(eamInspectionOrderRequest.getEquipmentId());
                         weekInspectionDetail.setStandardId(eamInspectionOrderRequest.getStandardId());
-                        // TODO 鍛ㄧ偣妫�鏃ユ湡
                         weekInspectionDetail.setPlanInspectionDate(eamInspectionOrderRequest.getInspectionDate());
                     });
                     eamWeekInspectionDetailService.saveBatch(weekInspectionDetailList);
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceChangeServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceChangeServiceImpl.java
index ced2b3b..d7a068d 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceChangeServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceChangeServiceImpl.java
@@ -5,11 +5,14 @@
 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.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.ibatis.type.JdbcType;
 import org.apache.shiro.SecurityUtils;
 import org.flowable.engine.TaskService;
 import org.flowable.task.api.Task;
@@ -34,6 +37,7 @@
 import org.jeecg.modules.eam.service.IEamThirdMaintenanceOrderService;
 import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
 import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService;
+import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI;
 import org.jeecg.modules.flowable.apithird.service.FlowCommonService;
 import org.jeecg.modules.flowable.service.IFlowDefinitionService;
 import org.jeecg.modules.flowable.service.IFlowTaskService;
@@ -49,6 +53,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.sql.Timestamp;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -58,8 +63,8 @@
  * @Date:   2025-07-11
  * @Version: V1.0
  */
-@Service
-public class EamThirdMaintenanceChangeServiceImpl extends ServiceImpl<EamThirdMaintenanceChangeMapper, EamThirdMaintenanceChange> implements IEamThirdMaintenanceChangeService {
+@Service("IEamThirdMaintenanceChangeService")
+public class EamThirdMaintenanceChangeServiceImpl extends ServiceImpl<EamThirdMaintenanceChangeMapper, EamThirdMaintenanceChange> implements IEamThirdMaintenanceChangeService, FlowCallBackServiceI {
 
     @Resource
     private EamThirdMaintenanceChangeMapper eamThirdMaintenanceChangeMapper;
@@ -177,6 +182,7 @@
         request.setApplicant(sysUser.getUsername());
         request.setApplyDate(new Date());
         request.setFactoryOrgCode(equipment.getFactoryOrgCode());
+        request.setEquipmentId(equipment.getId());
         // 涓変繚鍙樻洿宸ュ崟HF
         EamBaseHFCode eamBaseHFCode = hfCodeService.selectByCategory(HfTemplateCategoryEnum.THIRD_MAINTENANCE_CHANGE.name());
         if (eamBaseHFCode == null) {
@@ -203,6 +209,14 @@
         }
         entity.setApplyReasonType(request.getApplyReasonType());
         entity.setApplyReason(request.getApplyReason());
+        entity.setRemark(request.getRemark());
+        entity.setApplyCategory(request.getApplyCategory());
+        if ("SCRAPPED".equals(request.getApplyCategory())) {
+            // 鐩存帴璁句负 null
+            entity.setDeferredMaintenanceDate(null);
+        } else {
+            entity.setDeferredMaintenanceDate(request.getDeferredMaintenanceDate());
+        }
         this.getBaseMapper().updateById(entity);
         return true;
     }
@@ -470,8 +484,13 @@
                     if(BusinessCodeConst.APPROVED.equals(request.getProductionSupportSignatureResult())) {
                         //閫氳繃
                         entity.setChangeStatus(ThirdMaintenanceChangeStatusEnum.COMPLETED.name());
-                        order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.WAIT_MAINTENANCE.name());
-                        order.setMaintenanceDate(entity.getDeferredMaintenanceDate());
+                        if ("SCRAPPED".equals(request.getApplyCategory())) {
+                            order.setMaintenanceDate(null);
+                            order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.ABOLISH.name());
+                        } else {
+                            order.setMaintenanceDate(entity.getDeferredMaintenanceDate());
+                            order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.WAIT_MAINTENANCE.name());
+                        }
                         thirdMaintenanceOrderService.updateById(order);
                     }else {
                         //椹冲洖
@@ -499,4 +518,28 @@
         return true;
     }
 
+    @Override
+    public void afterFlowHandle(FlowMyBusiness business) {
+        business.getTaskNameId();//鎺ヤ笅鏉ュ鎵圭殑鑺傜偣
+        business.getValues();//鍓嶇浼犺繘鏉ョ殑鍙傛暟
+        business.getActStatus();
+    }
+
+    @Override
+    public Object getBusinessDataById(String dataId) {
+        return this.getById(dataId);
+    }
+
+    @Override
+    public Map<String, Object> flowValuesOfTask(String taskNameId, Map<String, Object> values) {
+        return null;
+    }
+
+    @Override
+    public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) {
+        //涓氬姟鏄惁骞查娴佺▼锛屼笟鍔″共棰勶紝娴佺▼骞查锛屾寚瀹氫汉鍛樿繘琛屽鐞�
+        //鑾峰彇涓嬩竴姝ュ鐞嗕汉
+        Object object = values.get("NextAssignee");
+        return (List<String>) object;
+    }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceFurnaceServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceFurnaceServiceImpl.java
index 7dcc366..5ecd786 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceFurnaceServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceFurnaceServiceImpl.java
@@ -1,10 +1,54 @@
 package org.jeecg.modules.eam.service.impl;
 
+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.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.SecurityUtils;
+import org.flowable.engine.TaskService;
+import org.flowable.task.api.Task;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.constant.DataBaseConstant;
+import org.jeecg.common.exception.JeecgBootException;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog;
+import org.jeecg.modules.eam.constant.*;
+import org.jeecg.modules.eam.entity.EamBaseHFCode;
+import org.jeecg.modules.eam.entity.EamEquipment;
 import org.jeecg.modules.eam.entity.EamThirdMaintenanceFurnace;
 import org.jeecg.modules.eam.mapper.EamThirdMaintenanceFurnaceMapper;
+import org.jeecg.modules.eam.request.EamThirdMaintenanceFurnaceQuery;
+import org.jeecg.modules.eam.request.EamThirdMaintenanceFurnaceRequest;
+import org.jeecg.modules.eam.service.IEamBaseHFCodeService;
+import org.jeecg.modules.eam.service.IEamEquipmentService;
 import org.jeecg.modules.eam.service.IEamThirdMaintenanceFurnaceService;
+import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
+import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService;
+import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI;
+import org.jeecg.modules.flowable.apithird.service.FlowCommonService;
+import org.jeecg.modules.flowable.service.IFlowDefinitionService;
+import org.jeecg.modules.flowable.service.IFlowTaskService;
+import org.jeecg.modules.system.entity.BaseFactory;
+import org.jeecg.modules.system.entity.BaseFactoryUser;
+import org.jeecg.modules.system.service.IBaseFactoryService;
+import org.jeecg.modules.system.service.IBaseFactoryUserService;
+import org.jeecg.modules.system.service.ISysUserService;
+import org.jeecg.modules.system.vo.UserSelector;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @Description: 鐪熺┖鐑鐞嗙倝涓変繚
@@ -12,7 +56,319 @@
  * @Date:   2025-07-11
  * @Version: V1.0
  */
-@Service
-public class EamThirdMaintenanceFurnaceServiceImpl extends ServiceImpl<EamThirdMaintenanceFurnaceMapper, EamThirdMaintenanceFurnace> implements IEamThirdMaintenanceFurnaceService {
+@Service("IEamThirdMaintenanceFurnaceService")
+public class EamThirdMaintenanceFurnaceServiceImpl extends ServiceImpl<EamThirdMaintenanceFurnaceMapper, EamThirdMaintenanceFurnace> implements IEamThirdMaintenanceFurnaceService, FlowCallBackServiceI {
 
+    @Resource
+    private EamThirdMaintenanceFurnaceMapper eamThirdMaintenanceFurnaceMapper;
+    @Resource
+    private IBaseFactoryUserService baseFactoryUserService;
+    @Resource
+    private IBaseFactoryService baseFactoryService;
+    @Resource
+    private IEamBaseHFCodeService eamBaseHFCodeService;
+    @Resource
+    private IEamEquipmentService eamEquipmentService;
+    @Resource
+    private FlowCommonService flowCommonService;
+    @Resource
+    private IFlowDefinitionService flowDefinitionService;
+    @Resource
+    private IFlowMyBusinessService flowMyBusinessService;
+    @Resource
+    private TaskService taskService;
+    @Resource
+    private IFlowTaskService flowTaskService;
+    @Resource
+    private ISysUserService sysUserService;
+
+    /**
+     * 鍒嗛〉鍒楄〃鏌ヨ
+     * @param page
+     * @param query
+     * @return
+     */
+    @Override
+    public IPage<EamThirdMaintenanceFurnace> queryPageList(Page<EamThirdMaintenanceFurnace> page, EamThirdMaintenanceFurnaceQuery query) {
+        QueryWrapper<EamThirdMaintenanceFurnace> queryWrapper = new QueryWrapper<>();
+        //鐢ㄦ埛鏁版嵁鏉冮檺
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        if (sysUser == null) {
+            return page;
+        }
+        if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) {
+            //閫夋嫨浜嗚澶囷紝鏍规嵁璁惧id杩囨护璁惧
+            List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(","));
+            queryWrapper.in("e.equipment_code", equipArr);
+        } else {
+            //娌℃湁閫夋嫨璁惧锛屾牴鎹腑蹇冭繃婊よ澶�
+            List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService.
+                    list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId, sysUser.getId()));
+            if (!CollectionUtils.isEmpty(baseFactoryUserList)) {
+                Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet());
+                Set<String> factoryCode = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
+                queryWrapper.in("e.factory_org_code", factoryCode);
+            } else {
+                return page;
+            }
+        }
+        //鏌ヨ鏉′欢杩囨护
+        if (query != null) {
+            if (StringUtils.isNotBlank(query.getEquipmentId())) {
+                queryWrapper.eq("e.equipment_id", query.getEquipmentId());
+            }
+            if (StringUtils.isNotBlank(query.getMaintenanceStatus())) {
+                queryWrapper.eq("tmf.maintenance_status", query.getMaintenanceStatus());
+            }
+            if (query.getMaintenanceDateBegin() != null && query.getMaintenanceDateEnd() != null) {
+                queryWrapper.between("tmf.maintenance_date", query.getMaintenanceDateBegin(), query.getMaintenanceDateEnd());
+            }
+            //鎺掑簭
+            if (StringUtils.isNotBlank(query.getColumn()) && StringUtils.isNotBlank(query.getOrder())) {
+                String column = query.getColumn();
+                if (column.endsWith(CommonConstant.DICT_TEXT_SUFFIX)) {
+                    column = column.substring(0, column.lastIndexOf(CommonConstant.DICT_TEXT_SUFFIX));
+                }
+                if (DataBaseConstant.SQL_ASC.equalsIgnoreCase(query.getOrder())) {
+                    queryWrapper.orderByAsc("tmf." + oConvertUtils.camelToUnderline(column));
+                } else {
+                    queryWrapper.orderByDesc("tmf." + oConvertUtils.camelToUnderline(column));
+                }
+            } else {
+                queryWrapper.orderByDesc("tmf.create_time");
+            }
+        }
+        return eamThirdMaintenanceFurnaceMapper.queryPageList(page, queryWrapper);
+    }
+
+    @Override
+    public Result<?> addThirdMaintenanceFurnace(EamThirdMaintenanceFurnaceRequest eamThirdMaintenanceFurnaceRequest) {
+        List<EamThirdMaintenanceFurnace> eamThirdMaintenanceFurnaces = eamThirdMaintenanceFurnaceMapper.selectList(new LambdaQueryWrapper<EamThirdMaintenanceFurnace>().eq(EamThirdMaintenanceFurnace::getEquipmentId, eamThirdMaintenanceFurnaceRequest.getEquipmentId()).eq(EamThirdMaintenanceFurnace::getMaintenanceDate, eamThirdMaintenanceFurnaceRequest.getMaintenanceDate()).ne(EamThirdMaintenanceFurnace::getMaintenanceStatus, ThirdMaintenanceFurnaceStatusEnum.ABOLISH.name()));
+        if (CollectionUtils.isNotEmpty(eamThirdMaintenanceFurnaces)) {
+            return Result.error("娣诲姞澶辫触,绯荤粺宸插瓨鍦ㄥ綋鍓嶆棩鏈熷伐鍗曪紒");
+        }
+        EamThirdMaintenanceFurnace eamThirdMaintenanceFurnace = new EamThirdMaintenanceFurnace();
+        BeanUtils.copyProperties(eamThirdMaintenanceFurnaceRequest, eamThirdMaintenanceFurnace);
+        //淇敼鐘舵��
+        eamThirdMaintenanceFurnace.setMaintenanceStatus(ThirdMaintenanceFurnaceStatusEnum.WAIT_MAINTENANCE.name());
+        eamThirdMaintenanceFurnace.setDelFlag(CommonConstant.DEL_FLAG_0);
+        //HF鐮佸鐞�
+        EamBaseHFCode eamBaseHFCode = eamBaseHFCodeService.selectByCategory(HfTemplateCategoryEnum.THIRD_MAINTENANCE_FURNACE.name());
+        if (eamBaseHFCode == null) {
+            return Result.error("娣诲姞澶辫触,鏈厤缃湡绌虹儹澶勭悊鐐夋楠岃〃HF缂栫爜锛�");
+        }
+        eamThirdMaintenanceFurnace.setHfCode(eamBaseHFCode.getHfCode());
+        save(eamThirdMaintenanceFurnace);
+        return Result.OK("娣诲姞鎴愬姛锛�");
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean collect(String id) {
+        EamThirdMaintenanceFurnace entity = eamThirdMaintenanceFurnaceMapper.selectById(id);
+        if (entity == null) {
+            throw new JeecgBootException("瑕侀鍙栫殑宸ュ崟涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒");
+        }
+        if (!ThirdMaintenanceFurnaceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) {
+            throw new JeecgBootException("璇ュ伐鍗曞凡杩涜杩囬鍙栵紒");
+        }
+        EamEquipment equipment = eamEquipmentService.getById(entity.getEquipmentId());
+        if (equipment == null) {
+            throw new JeecgBootException("璁惧涓嶅瓨鍦紝娣诲姞澶辫触锛�");
+        }
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        if (sysUser == null || !BusinessCodeConst.PCR0002.equals(sysUser.getPost())) {
+            throw new JeecgBootException("涓嶆槸缁翠慨宸ワ紝鏃犳硶棰嗗彇姝ゅ伐鍗曪紒");
+        }
+        entity.setOperator(sysUser.getUsername());
+        entity.setMaintenanceStatus(ThirdMaintenanceFurnaceStatusEnum.UNDER_MAINTENANCE.name());
+        eamThirdMaintenanceFurnaceMapper.updateById(entity);
+        // 鍚姩娴佺▼
+        flowCommonService.initActBusiness("宸ュ崟鍙�:" + entity.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode(),
+                entity.getId(), "IEamThirdMaintenanceFurnaceService", "third_maintenance_furnace_process", null);
+        Map<String, Object> variables = new HashMap<>();
+        variables.put("dataId", entity.getId());
+        if (StrUtil.isEmpty(entity.getRemark())) {
+            variables.put("organization", "鏂板鐑鐞嗙倝涓変繚宸ュ崟榛樿鍚姩娴佺▼");
+            variables.put("comment", "鏂板鐑鐞嗙倝涓変繚宸ュ崟榛樿鍚姩娴佺▼");
+        } else {
+            variables.put("organization", entity.getRemark());
+            variables.put("comment", entity.getRemark());
+        }
+        variables.put("proofreading", true);
+        // 璁剧疆涓嬩竴姝ュ鐞嗕汉
+        List<String> usernames = new ArrayList<>();
+        usernames.add(entity.getOperator());
+        variables.put("NextAssignee", usernames);
+        Result result = flowDefinitionService.startProcessInstanceByKey("third_maintenance_furnace_process", variables);
+//        if (result != null) {
+//            //鏇存柊璁惧淇濆吇鐘舵��
+//            eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_THIRD_MAINTENANCE.name());
+//            return result.isSuccess();
+//        }
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean editMaintenance(EamThirdMaintenanceFurnaceRequest request) {
+        EamEquipment equipment = eamEquipmentService.getById(request.getEquipmentId());
+        if (equipment == null) {
+            throw new JeecgBootException("璁惧涓嶅瓨鍦紝娣诲姞澶辫触锛�");
+        }
+        EamThirdMaintenanceFurnace entity = eamThirdMaintenanceFurnaceMapper.selectById(request.getId());
+        if (entity == null) {
+            throw new JeecgBootException("缂栬緫鐨勬暟鎹凡鍒犻櫎锛岃鍒锋柊閲嶈瘯锛�");
+        }
+        if (!ThirdMaintenanceFurnaceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) {
+            throw new JeecgBootException("鍙湁寰呬繚鍏荤姸鎬佺殑鏁版嵁鎵嶅彲缂栬緫锛�");
+        }
+        entity.setMaintenanceDate(request.getMaintenanceDate());
+        entity.setRemark(request.getRemark());
+        eamThirdMaintenanceFurnaceMapper.updateById(entity);
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.THIRD_MAINTENANCE, businessTable = "eam_third_maintenance_furnace")
+    public EamThirdMaintenanceFurnace approval(EamThirdMaintenanceFurnaceRequest request) {
+        EamThirdMaintenanceFurnace entity = eamThirdMaintenanceFurnaceMapper.selectById(request.getId());
+        if (entity == null) {
+            throw new JeecgBootException("寰呭鐞嗙殑鏁版嵁宸插垹闄わ紝璇峰埛鏂伴噸璇曪紒");
+        }
+        // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛
+        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        if (user == null || StrUtil.isBlank(user.getId())) {
+            throw new JeecgBootException("鏈幏鍙栧埌鐧诲綍鐢ㄦ埛锛岃閲嶆柊鐧诲綍鍚庡啀璇曪紒");
+        }
+        request.setAssignee(user.getUsername());
+        // 鑾峰彇娴佺▼涓氬姟璁板綍
+        FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(request.getInstanceId(), request.getTaskId());
+        if (flowMyBusiness == null) {
+            throw new JeecgBootException("娴佺▼瀹炰緥涓嶅瓨鍦紝璇峰埛鏂板悗閲嶈瘯锛�");
+        }
+
+        if (!isUserAuthorized(flowMyBusiness, user)) {
+            throw new JeecgBootException("鐢ㄦ埛鏃犳潈鎿嶄綔姝や换鍔★紝璇峰埛鏂板悗閲嶈瘯锛�");
+        }
+        // 璁ら浠诲姟
+        if (!claimTask(flowMyBusiness.getTaskId(), user)) {
+            throw new JeecgBootException("浠诲姟涓嶅瓨鍦ㄣ�佸凡瀹屾垚鎴栧凡琚粬浜鸿棰嗭紒");
+        }
+        EamEquipment equipment = eamEquipmentService.getById(entity.getEquipmentId());
+        if (equipment == null) {
+            throw new JeecgBootException("璁惧涓嶅瓨鍦紝璇锋鏌ワ紒");
+        }
+        // 璁剧疆娴佺▼鍙橀噺
+        setupProcessVariables(request, entity, user, equipment);
+
+        // 瀹屾垚娴佺▼浠诲姟
+        Result result = flowTaskService.complete(request);
+
+        // 鏍规嵁浠诲姟瀹屾垚缁撴灉鏇存柊宸ュ崟鐘舵��
+        updateOrderStatus(result, request, entity, user);
+
+        //鏇存柊宸ュ崟淇℃伅
+        eamThirdMaintenanceFurnaceMapper.updateById(entity);
+        return entity;
+    }
+
+    /**
+     * 璁剧疆娴佺▼鍙橀噺
+     */
+    private void setupProcessVariables(EamThirdMaintenanceFurnaceRequest request, EamThirdMaintenanceFurnace entity, LoginUser user, EamEquipment equipment) {
+        //娴佺▼鍙橀噺
+        Map<String, Object> values = new HashMap<>();
+        List<String> userApprovalList;
+        List<UserSelector> userSelectors;
+        if (ThirdMaintenanceFurnaceStatusEnum.UNDER_MAINTENANCE.name().equals(entity.getMaintenanceStatus()) && user.getUsername().equals(entity.getOperator())) {
+            // 淇濆吇浜轰繚鍏荤粨鏉�
+            values.put("dataId", entity.getId());
+            values.put("organization", "淇濆吇浜轰繚鍏荤粨鏉�");
+            values.put("comment", "淇濆吇浜轰繚鍏荤粨鏉�");
+            // 鑾峰彇涓嬩竴姝ユ墽琛屼汉
+            userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0008);
+            if (CollectionUtil.isEmpty(userSelectors)) {
+                throw new JeecgBootException("璁惧鏈垎閰嶇粰缁翠慨缁勯暱锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒");
+            }
+            userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
+            values.put("NextAssignee", userApprovalList);
+            request.setComment("淇濆吇浜轰繚鍏荤粨鏉�");
+        } else {
+            // 缁翠慨缁勯暱纭
+            values.put("dataId", entity.getId());
+            values.put("organization", "缁翠慨缁勯暱纭缁撴潫");
+            values.put("comment", "缁翠慨缁勯暱纭缁撴潫");
+            request.setComment("缁翠慨缁勯暱纭缁撴潫");
+        }
+        request.setValues(values);
+    }
+
+    /**
+     * 鏇存柊宸ュ崟鐘舵��
+     */
+    private void updateOrderStatus(Result result, EamThirdMaintenanceFurnaceRequest request, EamThirdMaintenanceFurnace entity, LoginUser user) {
+        if (result.isSuccess()) {
+            if (ThirdMaintenanceFurnaceStatusEnum.UNDER_MAINTENANCE.name().equals(entity.getMaintenanceStatus()) && user.getUsername().equals(entity.getOperator())) {
+                //缁翠慨宸ヤ繚鍏诲畬鎴�
+                entity.setMaintenanceStatus(ThirdMaintenanceFurnaceStatusEnum.WAIT_CONFIRM.name());
+                entity.setOperateTime(new Date());
+                entity.setCompressedAirPressureValue(request.getCompressedAirPressureValue());
+                entity.setUltimateVacuumValue(request.getUltimateVacuumValue());
+                entity.setLeakRate(request.getLeakRate());
+                entity.setPurificationTreatment(request.getPurificationTreatment());
+                entity.setFurnaceTemperatureUniformityTesting(request.getFurnaceTemperatureUniformityTesting());
+                entity.setHeatingPowerTest(request.getHeatingPowerTest());
+                entity.setProcessingRequirementsFlag(request.getProcessingRequirementsFlag());
+            } else {
+                //缁翠慨缁勯暱纭瀹屾垚
+                entity.setMaintenanceStatus(ThirdMaintenanceFurnaceStatusEnum.COMPLETE.name());
+                entity.setConfirmUser(user.getUsername());
+                entity.setConfirmTime(new Date());
+            }
+        }
+    }
+
+    private boolean isUserAuthorized(FlowMyBusiness flowMyBusiness, LoginUser user) {
+        List<String> todoUsers = JSON.parseArray(flowMyBusiness.getTodoUsers(), String.class);
+        return todoUsers != null && todoUsers.contains(user.getUsername());
+    }
+
+    private boolean claimTask(String taskId, LoginUser user) {
+        Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
+        if (task == null) {
+            return false;
+        }
+        if (task.getAssignee() != null && !task.getAssignee().equals(user.getUsername())) {
+            return false;
+        }
+        taskService.claim(taskId, user.getUsername());
+        return true;
+    }
+
+    @Override
+    public void afterFlowHandle(FlowMyBusiness business) {
+        business.getTaskNameId();//鎺ヤ笅鏉ュ鎵圭殑鑺傜偣
+        business.getValues();//鍓嶇浼犺繘鏉ョ殑鍙傛暟
+        business.getActStatus();
+    }
+
+    @Override
+    public Object getBusinessDataById(String dataId) {
+        return this.getById(dataId);
+    }
+
+    @Override
+    public Map<String, Object> flowValuesOfTask(String taskNameId, Map<String, Object> values) {
+        return null;
+    }
+
+    @Override
+    public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) {
+        //涓氬姟鏄惁骞查娴佺▼锛屼笟鍔″共棰勶紝娴佺▼骞查锛屾寚瀹氫汉鍛樿繘琛屽鐞�
+        //鑾峰彇涓嬩竴姝ュ鐞嗕汉
+        Object object = values.get("NextAssignee");
+        return (List<String>) object;
+    }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java
index ef15217..fd1686d 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java
@@ -88,6 +88,8 @@
     private IEamBaseHFCodeService eamBaseHFCodeService;
     @Resource
     private IEamThirdMaintenanceOrderDetailService eamThirdMaintenanceOrderDetailService;
+    @Resource
+    private IEamThirdMaintenanceSpareService eamThirdMaintenanceSpareService;
 
     @Override
     public IPage<EamThirdMaintenanceOrder> queryPageList(Page<EamThirdMaintenanceOrder> page, EamThirdMaintenanceQuery query) {
@@ -549,6 +551,14 @@
                     // 涓変繚鏄庣粏澶勭悊
                     eamThirdMaintenanceOrderDetailService.remove(new LambdaQueryWrapper<EamThirdMaintenanceOrderDetail>().eq(EamThirdMaintenanceOrderDetail::getOrderId, order.getId()));
                     eamThirdMaintenanceOrderDetailService.saveBatch(request.getTableDetailList());
+                    // 涓変繚澶囦欢鏄庣粏澶勭悊
+                    if (request.getTableSpareList() != null && !request.getTableSpareList().isEmpty()) {
+                        List<EamThirdMaintenanceSpare> tableSpareList = request.getTableSpareList();
+                        tableSpareList.forEach(eamThirdMaintenanceSpare -> {
+                            eamThirdMaintenanceSpare.setOrderId(request.getId());
+                        });
+                        eamThirdMaintenanceSpareService.saveBatch(tableSpareList);
+                    }
                     break;
                 case UNDER_FIRST_ACCEPTANCE:
                     // 绗竴娆¢獙鏀剁粨鏉�

--
Gitblit v1.9.3