From c3ae2cc63c6e771ee7007c041a5f499cc9861f29 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期三, 16 七月 2025 17:42:20 +0800
Subject: [PATCH] art: 技术状态变更-基础代码提交

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeDetailServiceImpl.java |   10 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java       |  137 ++++++++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusChangeQuery.java                  |   23 ++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeController.java          |  139 ++++++------
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChangeDetail.java                  |   14 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeService.java               |   37 +++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamTechnicalStatusChangeDetailMapper.java            |    8 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChange.java                        |   16 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeDetailService.java         |    8 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamTechnicalStatusChangeDetailMapper.xml         |    9 
 db/430设备管理数据库设计.pdma.json                                                                                       |   20 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusChangeRequest.java                |   40 +++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeDetailController.java    |  151 ++-----------
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusChangeOrderStatusEnum.java   |   21 +
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusChangeReasonEnum.java        |   19 +
 15 files changed, 450 insertions(+), 202 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 2eda11e..0977d73 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.2",
   "createdTime": "2025-3-10 16:38:19",
-  "updatedTime": "2025-7-16 16:54:24",
+  "updatedTime": "2025-7-16 17:21:35",
   "dbConns": [],
   "profile": {
     "default": {
@@ -30136,6 +30136,24 @@
           "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098"
         },
         {
+          "defKey": "change_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": "F4CA33AF-7AFC-481E-BC01-0263405029BE"
+        },
+        {
           "defKey": "equipment_id",
           "defName": "璁惧ID",
           "comment": "",
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusChangeOrderStatusEnum.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusChangeOrderStatusEnum.java
new file mode 100644
index 0000000..39952ed
--- /dev/null
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusChangeOrderStatusEnum.java
@@ -0,0 +1,21 @@
+package org.jeecg.modules.eam.constant;
+
+public enum TechnicalStatusChangeOrderStatusEnum {
+    WAIT_SUBMIT, //寰呮彁浜�
+    DEPART_HEADER_SIGNING, //浣跨敤鍗曚綅瀹ょ骇涓荤绛惧瓧涓�
+    DEPART_LEADER_SIGNING, //浣跨敤鍗曚綅閮ㄧ骇涓荤绛惧瓧涓�
+    ABOLISH, //宸蹭綔搴�
+    REJECTED, //宸查┏鍥�
+    COMPLETED, //宸插畬鎴�
+    ;
+
+    public static TechnicalStatusChangeOrderStatusEnum getInstance(String code) {
+        TechnicalStatusChangeOrderStatusEnum[] values = TechnicalStatusChangeOrderStatusEnum.values();
+        for (TechnicalStatusChangeOrderStatusEnum value : values) {
+            if (value.name().equals(code)) {
+                return value;
+            }
+        }
+        return null;
+    }
+}
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusChangeReasonEnum.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusChangeReasonEnum.java
new file mode 100644
index 0000000..3ae75fd
--- /dev/null
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusChangeReasonEnum.java
@@ -0,0 +1,19 @@
+package org.jeecg.modules.eam.constant;
+
+public enum TechnicalStatusChangeReasonEnum {
+    EQUIPMENT_MAJOR, //璁惧澶т慨
+    EQUIPMENT_RELOCATION, //璁惧鎼縼
+    EQUIPMENT_RETROFITTING, //璁惧鏀归��
+    OTHER, //鍏朵粬
+    ;
+
+    public static TechnicalStatusChangeReasonEnum getInstance(String code) {
+        TechnicalStatusChangeReasonEnum[] values = TechnicalStatusChangeReasonEnum.values();
+        for (TechnicalStatusChangeReasonEnum value : values) {
+            if (value.name().equals(code)) {
+                return value;
+            }
+        }
+        return null;
+    }
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeController.java
index bea94ef..d0c5f5d 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeController.java
@@ -1,6 +1,6 @@
 package org.jeecg.modules.eam.controller;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import io.swagger.annotations.Api;
@@ -9,16 +9,16 @@
 import org.jeecg.common.api.vo.Result;
 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.constant.TechnicalStatusChangeOrderStatusEnum;
+import org.jeecg.modules.eam.constant.TechnicalStatusEvaluationOrderChangeStatusEnum;
 import org.jeecg.modules.eam.entity.EamTechnicalStatusChange;
+import org.jeecg.modules.eam.request.EamTechnicalStatusChangeQuery;
+import org.jeecg.modules.eam.request.EamTechnicalStatusChangeRequest;
 import org.jeecg.modules.eam.service.IEamTechnicalStatusChangeService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.util.Arrays;
 
  /**
  * @Description: 鎶�鏈姸鎬佸彉鏇寸敵璇�
@@ -37,7 +37,7 @@
 	/**
 	 * 鍒嗛〉鍒楄〃鏌ヨ
 	 *
-	 * @param eamTechnicalStatusChange
+	 * @param query
 	 * @param pageNo
 	 * @param pageSize
 	 * @param req
@@ -45,72 +45,100 @@
 	 */
 	@ApiOperation(value="鎶�鏈姸鎬佸彉鏇寸敵璇�-鍒嗛〉鍒楄〃鏌ヨ", notes="鎶�鏈姸鎬佸彉鏇寸敵璇�-鍒嗛〉鍒楄〃鏌ヨ")
 	@GetMapping(value = "/list")
-	public Result<?> queryPageList(EamTechnicalStatusChange eamTechnicalStatusChange,
+	public Result<?> queryPageList(EamTechnicalStatusChangeQuery query,
 								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
 								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 								   HttpServletRequest req) {
-		QueryWrapper<EamTechnicalStatusChange> queryWrapper = QueryGenerator.initQueryWrapper(eamTechnicalStatusChange, req.getParameterMap());
 		Page<EamTechnicalStatusChange> page = new Page<EamTechnicalStatusChange>(pageNo, pageSize);
-		IPage<EamTechnicalStatusChange> pageList = eamTechnicalStatusChangeService.page(page, queryWrapper);
+		IPage<EamTechnicalStatusChange> pageList = eamTechnicalStatusChangeService.queryPageList(page, query);
 		return Result.OK(pageList);
 	}
 	
 	/**
 	 * 娣诲姞
 	 *
-	 * @param eamTechnicalStatusChange
+	 * @param request
 	 * @return
 	 */
 	@AutoLog(value = "鎶�鏈姸鎬佸彉鏇寸敵璇�-娣诲姞")
 	@ApiOperation(value="鎶�鏈姸鎬佸彉鏇寸敵璇�-娣诲姞", notes="鎶�鏈姸鎬佸彉鏇寸敵璇�-娣诲姞")
 	@PostMapping(value = "/add")
-	public Result<?> add(@RequestBody EamTechnicalStatusChange eamTechnicalStatusChange) {
-		eamTechnicalStatusChangeService.save(eamTechnicalStatusChange);
+	public Result<?> add(@RequestBody EamTechnicalStatusChangeRequest request) {
+		if (request == null) {
+			return Result.error("娣诲姞鐨勫璞′笉鑳戒负绌猴紒");
+		}
+		boolean b = eamTechnicalStatusChangeService.addEamTechnicalStatusChange(request);
+		if (!b) {
+			return Result.error("娣诲姞澶辫触锛�");
+		}
 		return Result.OK("娣诲姞鎴愬姛锛�");
 	}
 	
 	/**
 	 * 缂栬緫
 	 *
-	 * @param eamTechnicalStatusChange
+	 * @param request
 	 * @return
 	 */
 	@AutoLog(value = "鎶�鏈姸鎬佸彉鏇寸敵璇�-缂栬緫")
 	@ApiOperation(value="鎶�鏈姸鎬佸彉鏇寸敵璇�-缂栬緫", notes="鎶�鏈姸鎬佸彉鏇寸敵璇�-缂栬緫")
 	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
-	public Result<?> edit(@RequestBody EamTechnicalStatusChange eamTechnicalStatusChange) {
-		eamTechnicalStatusChangeService.updateById(eamTechnicalStatusChange);
+	public Result<?> edit(@RequestBody EamTechnicalStatusChangeRequest request) {
+		if (request == null) {
+			return Result.error("缂栬緫鐨勫璞′笉鑳戒负绌猴紒");
+		}
+		boolean b = eamTechnicalStatusChangeService.editEamTechnicalStatusChange(request);
+		if (!b) {
+			return Result.error("缂栬緫澶辫触锛�");
+		}
 		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) {
-		eamTechnicalStatusChangeService.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.eamTechnicalStatusChangeService.removeByIds(Arrays.asList(ids.split(",")));
-		return Result.OK("鎵归噺鍒犻櫎鎴愬姛锛�");
-	}
-	
+
+	 @AutoLog(value = "鎶�鏈姸鎬佸彉鏇寸敵璇�-鎻愪氦")
+	 @ApiOperation(value = "鎶�鏈姸鎬佸彉鏇寸敵璇�-鎻愪氦", notes = "鎶�鏈姸鎬佸彉鏇寸敵璇�-鎻愪氦")
+	 @GetMapping("/submit")
+	 public Result<?> submit(@RequestParam(name = "id") String id) {
+		 boolean b = eamTechnicalStatusChangeService.submit(id);
+		 if (!b) {
+			 return Result.error("鎻愪氦澶辫触锛�");
+		 }
+		 return Result.OK("鎻愪氦鎴愬姛!");
+	 }
+
+	 @AutoLog(value = "鎶�鏈姸鎬佸彉鏇寸敵璇�-浣滃簾")
+	 @ApiOperation(value = "鎶�鏈姸鎬佸彉鏇寸敵璇�-浣滃簾", notes = "鎶�鏈姸鎬佸彉鏇寸敵璇�-浣滃簾")
+	 @GetMapping("/abolish")
+	 public Result<?> abolish(@RequestParam(name = "id") String id) {
+		 EamTechnicalStatusChange entity = eamTechnicalStatusChangeService.getById(id);
+		 if (entity == null) {
+			 return Result.error("瑕佷綔搴熺殑鏁版嵁涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒");
+		 }
+		 if (!TechnicalStatusEvaluationOrderChangeStatusEnum.WAIT_SUBMIT.name().equals(entity.getChangeStatus())) {
+			 return Result.error("璇ョ姸鎬佺殑鏁版嵁涓嶅厑璁歌繘琛屼綔搴燂紒");
+		 }
+		 entity.setChangeStatus(TechnicalStatusChangeOrderStatusEnum.ABOLISH.name());
+		 eamTechnicalStatusChangeService.updateById(entity);
+		 return Result.OK("浣滃簾鎴愬姛!");
+	 }
+
+	 @AutoLog(value = "鎶�鏈姸鎬佸彉鏇寸敵璇�-瀹℃壒")
+	 @ApiOperation(value = "鎶�鏈姸鎬佸彉鏇寸敵璇�-瀹℃壒", notes = "鎶�鏈姸鎬佸彉鏇寸敵璇�-瀹℃壒")
+	 @PostMapping("/approval")
+	 public Result<?> approval(@RequestBody EamTechnicalStatusChangeRequest request) {
+		 if (request == null) {
+			 return Result.error("瀹℃壒鐨勫璞′笉鑳戒负绌猴紒");
+		 }
+		 // 妫�鏌ヨ姹傚弬鏁�
+		 if (StrUtil.isBlank(request.getTaskId()) || StrUtil.isBlank(request.getDataId()) || StrUtil.isBlank(request.getInstanceId())) {
+			 return Result.error("瀹℃壒浠诲姟閿欒鎴栦笉瀛樺湪锛�");
+		 }
+		 EamTechnicalStatusChange b = eamTechnicalStatusChangeService.approval(request);
+		 if (b == null) {
+			 return Result.error("鎿嶄綔澶辫触锛�");
+		 }
+		 return Result.ok("鎿嶄綔鎴愬姛锛�");
+	 }
+
 	/**
 	 * 閫氳繃id鏌ヨ
 	 *
@@ -124,28 +152,5 @@
 		EamTechnicalStatusChange eamTechnicalStatusChange = eamTechnicalStatusChangeService.getById(id);
 		return Result.OK(eamTechnicalStatusChange);
 	}
-
-  /**
-   * 瀵煎嚭excel
-   *
-   * @param request
-   * @param eamTechnicalStatusChange
-   */
-  @RequestMapping(value = "/exportXls")
-  public ModelAndView exportXls(HttpServletRequest request, EamTechnicalStatusChange eamTechnicalStatusChange) {
-      return super.exportXls(request, eamTechnicalStatusChange, EamTechnicalStatusChange.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, EamTechnicalStatusChange.class);
-  }
 
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeDetailController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeDetailController.java
index 73b50e5..8c6f98b 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeDetailController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeDetailController.java
@@ -1,151 +1,44 @@
 package org.jeecg.modules.eam.controller;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.api.vo.Result;
-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.EamTechnicalStatusChangeDetail;
 import org.jeecg.modules.eam.service.IEamTechnicalStatusChangeDetailService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.util.Arrays;
+import java.util.List;
 
- /**
+/**
  * @Description: 鎶�鏈姸鎬佸彉鏇寸敵璇锋槑缁�
  * @Author: jeecg-boot
- * @Date:   2025-07-09
+ * @Date: 2025-07-09
  * @Version: V1.0
  */
 @Slf4j
-@Api(tags="鎶�鏈姸鎬佸彉鏇寸敵璇锋槑缁�")
+@Api(tags = "鎶�鏈姸鎬佸彉鏇寸敵璇锋槑缁�")
 @RestController
 @RequestMapping("/eam/eamTechnicalStatusChangeDetail")
 public class EamTechnicalStatusChangeDetailController extends JeecgController<EamTechnicalStatusChangeDetail, IEamTechnicalStatusChangeDetailService> {
-	@Autowired
-	private IEamTechnicalStatusChangeDetailService eamTechnicalStatusChangeDetailService;
-	
-	/**
-	 * 鍒嗛〉鍒楄〃鏌ヨ
-	 *
-	 * @param eamTechnicalStatusChangeDetail
-	 * @param pageNo
-	 * @param pageSize
-	 * @param req
-	 * @return
-	 */
-	@ApiOperation(value="鎶�鏈姸鎬佸彉鏇寸敵璇锋槑缁�-鍒嗛〉鍒楄〃鏌ヨ", notes="鎶�鏈姸鎬佸彉鏇寸敵璇锋槑缁�-鍒嗛〉鍒楄〃鏌ヨ")
-	@GetMapping(value = "/list")
-	public Result<?> queryPageList(EamTechnicalStatusChangeDetail eamTechnicalStatusChangeDetail,
-								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-								   HttpServletRequest req) {
-		QueryWrapper<EamTechnicalStatusChangeDetail> queryWrapper = QueryGenerator.initQueryWrapper(eamTechnicalStatusChangeDetail, req.getParameterMap());
-		Page<EamTechnicalStatusChangeDetail> page = new Page<EamTechnicalStatusChangeDetail>(pageNo, pageSize);
-		IPage<EamTechnicalStatusChangeDetail> pageList = eamTechnicalStatusChangeDetailService.page(page, queryWrapper);
-		return Result.OK(pageList);
-	}
-	
-	/**
-	 * 娣诲姞
-	 *
-	 * @param eamTechnicalStatusChangeDetail
-	 * @return
-	 */
-	@AutoLog(value = "鎶�鏈姸鎬佸彉鏇寸敵璇锋槑缁�-娣诲姞")
-	@ApiOperation(value="鎶�鏈姸鎬佸彉鏇寸敵璇锋槑缁�-娣诲姞", notes="鎶�鏈姸鎬佸彉鏇寸敵璇锋槑缁�-娣诲姞")
-	@PostMapping(value = "/add")
-	public Result<?> add(@RequestBody EamTechnicalStatusChangeDetail eamTechnicalStatusChangeDetail) {
-		eamTechnicalStatusChangeDetailService.save(eamTechnicalStatusChangeDetail);
-		return Result.OK("娣诲姞鎴愬姛锛�");
-	}
-	
-	/**
-	 * 缂栬緫
-	 *
-	 * @param eamTechnicalStatusChangeDetail
-	 * @return
-	 */
-	@AutoLog(value = "鎶�鏈姸鎬佸彉鏇寸敵璇锋槑缁�-缂栬緫")
-	@ApiOperation(value="鎶�鏈姸鎬佸彉鏇寸敵璇锋槑缁�-缂栬緫", notes="鎶�鏈姸鎬佸彉鏇寸敵璇锋槑缁�-缂栬緫")
-	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
-	public Result<?> edit(@RequestBody EamTechnicalStatusChangeDetail eamTechnicalStatusChangeDetail) {
-		eamTechnicalStatusChangeDetailService.updateById(eamTechnicalStatusChangeDetail);
-		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) {
-		eamTechnicalStatusChangeDetailService.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.eamTechnicalStatusChangeDetailService.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) {
-		EamTechnicalStatusChangeDetail eamTechnicalStatusChangeDetail = eamTechnicalStatusChangeDetailService.getById(id);
-		return Result.OK(eamTechnicalStatusChangeDetail);
-	}
+    @Autowired
+    private IEamTechnicalStatusChangeDetailService orderDetailService;
 
-  /**
-   * 瀵煎嚭excel
-   *
-   * @param request
-   * @param eamTechnicalStatusChangeDetail
-   */
-  @RequestMapping(value = "/exportXls")
-  public ModelAndView exportXls(HttpServletRequest request, EamTechnicalStatusChangeDetail eamTechnicalStatusChangeDetail) {
-      return super.exportXls(request, eamTechnicalStatusChangeDetail, EamTechnicalStatusChangeDetail.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, EamTechnicalStatusChangeDetail.class);
-  }
-
+    /**
+     * 涓�娆″姞杞�
+     *
+     * @param orderId
+     * @return
+     */
+    @ApiOperation(value = "鎶�鏈姸鎬佸彉鏇寸敵璇锋槑缁�-涓嶅垎椤靛垪琛ㄦ煡璇�", notes = "鎶�鏈姸鎬佸彉鏇寸敵璇锋槑缁�-涓嶅垎椤靛垪琛ㄦ煡璇�")
+    @GetMapping(value = "/queryList")
+    public Result<?> queryList(@RequestParam("orderId") String orderId) {
+        List<EamTechnicalStatusChangeDetail> list = orderDetailService.queryList(orderId);
+        return Result.OK(list);
+    }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChange.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChange.java
index 1a2c818..6004b87 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChange.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChange.java
@@ -49,6 +49,9 @@
 	/**鍙樻洿鍗曠姸鎬�*/
     @ApiModelProperty(value = "鍙樻洿鍗曠姸鎬�")
 	private String changeStatus;
+	/**鐢宠鍗曚綅*/
+	@ApiModelProperty(value = "鐢宠鍗曚綅")
+	private String factoryOrgCode;
 	/**缂栧埗浜�*/
     @ApiModelProperty(value = "缂栧埗浜�")
 	private String designer;
@@ -61,19 +64,28 @@
 	/**浣跨敤鍗曚綅瀹や富绠$瀛楁椂闂�*/
     @ApiModelProperty(value = "浣跨敤鍗曚綅瀹や富绠$瀛楁椂闂�")
 	private Date departHeaderSignatureTime;
+	/**浣跨敤鍗曚綅瀹や富绠$瀛楃粨鏋�*/
+	@ApiModelProperty(value = "浣跨敤鍗曚綅瀹や富绠$瀛楃粨鏋�")
+	private String departHeaderSignatureResult;
 	/**浣跨敤鍗曚綅瀹や富绠℃剰瑙�*/
     @ApiModelProperty(value = "浣跨敤鍗曚綅瀹や富绠℃剰瑙�")
-	private String departHeaderSignatureComment;
+	private String departHeaderComment;
 	/**浣跨敤鍗曚綅閮ㄤ富绠$瀛�*/
     @ApiModelProperty(value = "浣跨敤鍗曚綅閮ㄤ富绠$瀛�")
 	private String departLeaderSignature;
 	/**浣跨敤鍗曚綅閮ㄤ富绠$瀛楁椂闂�*/
     @ApiModelProperty(value = "浣跨敤鍗曚綅閮ㄤ富绠$瀛楁椂闂�")
 	private Date departLeaderSignatureTime;
+	/**浣跨敤鍗曚綅閮ㄤ富绠$瀛楃粨鏋�*/
+	@ApiModelProperty(value = "浣跨敤鍗曚綅閮ㄤ富绠$瀛楃粨鏋�")
+	private String departLeaderSignatureResult;
 	/**浣跨敤鍗曚綅閮ㄤ富绠$瀛�*/
     @ApiModelProperty(value = "浣跨敤鍗曚綅閮ㄤ富绠$瀛�")
-	private String departLeaderSignatureComment;
+	private String departLeaderComment;
 	/**HF缂栫爜*/
     @ApiModelProperty(value = "HF缂栫爜")
 	private String hfCode;
+	/**澶囨敞*/
+	@ApiModelProperty(value = "澶囨敞")
+	private String remark;
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChangeDetail.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChangeDetail.java
index 567a90e..0a4489b 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChangeDetail.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChangeDetail.java
@@ -1,6 +1,7 @@
 package org.jeecg.modules.eam.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModel;
@@ -40,6 +41,9 @@
 	/**鏇存柊鏃堕棿*/
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
 	private Date updateTime;
+	/**鍙樻洿鍗旾D*/
+	@ApiModelProperty(value = "鍙樻洿鍗旾D")
+	private String changeOrderId;
 	/**璁惧ID*/
     @ApiModelProperty(value = "璁惧ID")
 	private String equipmentId;
@@ -64,4 +68,14 @@
 	/**鎶�鏈姸鎬侀壌瀹氬伐鍗旾D;鎼縼浣跨敤*/
     @ApiModelProperty(value = "鎶�鏈姸鎬侀壌瀹氬伐鍗旾D;鎼縼浣跨敤")
 	private String orderId;
+
+	//鍒楄〃灞曠ず
+	@TableField(exist = false)
+	private String equipmentCode;
+	@TableField(exist = false)
+	private String equipmentName;
+	@TableField(exist = false)
+	private String equipmentModel;
+	@TableField(exist = false)
+	private String factoryName;
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamTechnicalStatusChangeDetailMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamTechnicalStatusChangeDetailMapper.java
index 228c4c5..4bf0277 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamTechnicalStatusChangeDetailMapper.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamTechnicalStatusChangeDetailMapper.java
@@ -2,6 +2,8 @@
 
 import java.util.List;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -14,4 +16,10 @@
  */
 public interface EamTechnicalStatusChangeDetailMapper extends BaseMapper<EamTechnicalStatusChangeDetail> {
 
+    /**
+     * 璁惧鏄庣粏鏌ヨ
+     * @param queryWrapper
+     * @return
+     */
+    List<EamTechnicalStatusChangeDetail> queryList(@Param(Constants.WRAPPER) QueryWrapper<EamTechnicalStatusChangeDetail> queryWrapper);
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamTechnicalStatusChangeDetailMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamTechnicalStatusChangeDetailMapper.xml
index cfb2dd3..cea6c97 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamTechnicalStatusChangeDetailMapper.xml
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamTechnicalStatusChangeDetailMapper.xml
@@ -2,4 +2,13 @@
 <!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.EamTechnicalStatusChangeDetailMapper">
 
+    <select id="queryList" resultType="org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail">
+        select ems.*, e.equipment_code, e.equipment_name, e.equipment_model, f.factory_name
+        from eam_technical_status_change_detail ems
+        inner join eam_equipment e
+        on ems.equipment_id = e.id
+        left join eam_base_factory f
+        on e.factory_org_code = f.org_code
+        ${ew.customSqlSegment}
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusChangeQuery.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusChangeQuery.java
new file mode 100644
index 0000000..4805aad
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusChangeQuery.java
@@ -0,0 +1,23 @@
+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;
+
+@Data
+public class EamTechnicalStatusChangeQuery {
+    private String changeOrderNum;
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date dateBegin;
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date dateEnd;
+    private String changeStatus;
+    private String factoryOrgCode;
+
+    private String column;
+    private String order;
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusChangeRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusChangeRequest.java
new file mode 100644
index 0000000..d040292
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusChangeRequest.java
@@ -0,0 +1,40 @@
+package org.jeecg.modules.eam.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail;
+import org.jeecg.modules.flowable.domain.vo.FlowTaskVo;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="鎶�鏈姸鎬佸彉鏇村鎵瑰璞�", description="鎶�鏈姸鎬佸彉鏇村鎵�")
+public class EamTechnicalStatusChangeRequest extends FlowTaskVo implements Serializable {
+    /**涓婚敭*/
+    @ApiModelProperty(value = "涓婚敭")
+    private String id;
+    /**浣跨敤鍗曚綅瀹や富绠$瀛楃粨鏋�*/
+    @ApiModelProperty(value = "浣跨敤鍗曚綅瀹や富绠$瀛楃粨鏋�")
+    private String departHeaderSignatureResult;
+    /**浣跨敤鍗曚綅瀹や富绠℃剰瑙�*/
+    @ApiModelProperty(value = "浣跨敤鍗曚綅瀹や富绠℃剰瑙�")
+    private String departHeaderComment;
+    /**浣跨敤鍗曚綅閮ㄤ富绠$瀛楃粨鏋�*/
+    @ApiModelProperty(value = "浣跨敤鍗曚綅閮ㄤ富绠$瀛楃粨鏋�")
+    private String departLeaderSignatureResult;
+    /**浣跨敤鍗曚綅閮ㄤ富绠$瀛�*/
+    @ApiModelProperty(value = "浣跨敤鍗曚綅閮ㄤ富绠$瀛�")
+    private String departLeaderComment;
+    /**澶囨敞*/
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+    /**鍒楄〃 璁惧鏄庣粏*/
+    @ApiModelProperty(value = "鍒楄〃 璁惧鏄庣粏")
+    private List<EamTechnicalStatusChangeDetail> tableDetailList;
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeDetailService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeDetailService.java
index 11a5a07..7dbc079 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeDetailService.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeDetailService.java
@@ -3,6 +3,8 @@
 import org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * @Description: 鎶�鏈姸鎬佸彉鏇寸敵璇锋槑缁�
  * @Author: jeecg-boot
@@ -11,4 +13,10 @@
  */
 public interface IEamTechnicalStatusChangeDetailService extends IService<EamTechnicalStatusChangeDetail> {
 
+    /**
+     * 鏌ヨ璁惧鏄庣粏
+     * @param orderId
+     * @return
+     */
+    List<EamTechnicalStatusChangeDetail> queryList(String orderId);
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeService.java
index 4799006..dd90936 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeService.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeService.java
@@ -1,7 +1,11 @@
 package org.jeecg.modules.eam.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.jeecg.modules.eam.entity.EamTechnicalStatusChange;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.eam.request.EamTechnicalStatusChangeQuery;
+import org.jeecg.modules.eam.request.EamTechnicalStatusChangeRequest;
 
 /**
  * @Description: 鎶�鏈姸鎬佸彉鏇寸敵璇�
@@ -11,4 +15,37 @@
  */
 public interface IEamTechnicalStatusChangeService extends IService<EamTechnicalStatusChange> {
 
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param page
+     * @param query
+     * @return
+     */
+    IPage<EamTechnicalStatusChange> queryPageList(Page<EamTechnicalStatusChange> page, EamTechnicalStatusChangeQuery query);
+
+    /**
+     * 鏂板
+     * @param request
+     */
+    boolean addEamTechnicalStatusChange(EamTechnicalStatusChangeRequest request);
+
+    /**
+     * 缂栬緫
+     * @param request
+     */
+    boolean editEamTechnicalStatusChange(EamTechnicalStatusChangeRequest request);
+
+    /**
+     * 鎻愪氦
+     * @param id
+     * @return
+     */
+    boolean submit(String id);
+
+    /**
+     * 瀹℃壒
+     * @param request
+     * @return
+     */
+    EamTechnicalStatusChange approval(EamTechnicalStatusChangeRequest request);
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeDetailServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeDetailServiceImpl.java
index 11ebd24..aaf8b0c 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeDetailServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeDetailServiceImpl.java
@@ -1,11 +1,14 @@
 package org.jeecg.modules.eam.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail;
 import org.jeecg.modules.eam.mapper.EamTechnicalStatusChangeDetailMapper;
 import org.jeecg.modules.eam.service.IEamTechnicalStatusChangeDetailService;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import java.util.List;
 
 /**
  * @Description: 鎶�鏈姸鎬佸彉鏇寸敵璇锋槑缁�
@@ -16,4 +19,11 @@
 @Service
 public class EamTechnicalStatusChangeDetailServiceImpl extends ServiceImpl<EamTechnicalStatusChangeDetailMapper, EamTechnicalStatusChangeDetail> implements IEamTechnicalStatusChangeDetailService {
 
+    @Override
+    public List<EamTechnicalStatusChangeDetail> queryList(String changeOrderId) {
+        QueryWrapper<EamTechnicalStatusChangeDetail> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("ems.change_order_id", changeOrderId);
+        queryWrapper.orderByAsc("ems.create_time");
+        return this.getBaseMapper().queryList(queryWrapper);
+    }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java
index 6738de7..8638c38 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java
@@ -1,11 +1,36 @@
 package org.jeecg.modules.eam.service.impl;
 
+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.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.constant.DataBaseConstant;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.eam.entity.EamTechnicalStatusChange;
 import org.jeecg.modules.eam.mapper.EamTechnicalStatusChangeMapper;
+import org.jeecg.modules.eam.request.EamTechnicalStatusChangeQuery;
+import org.jeecg.modules.eam.request.EamTechnicalStatusChangeRequest;
 import org.jeecg.modules.eam.service.IEamTechnicalStatusChangeService;
+import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
+import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI;
+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.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * @Description: 鎶�鏈姸鎬佸彉鏇寸敵璇�
@@ -13,7 +38,113 @@
  * @Date:   2025-07-09
  * @Version: V1.0
  */
-@Service
-public class EamTechnicalStatusChangeServiceImpl extends ServiceImpl<EamTechnicalStatusChangeMapper, EamTechnicalStatusChange> implements IEamTechnicalStatusChangeService {
+@Service("IEamTechnicalStatusChangeService")
+public class EamTechnicalStatusChangeServiceImpl extends ServiceImpl<EamTechnicalStatusChangeMapper, EamTechnicalStatusChange> implements IEamTechnicalStatusChangeService, FlowCallBackServiceI {
+    @Autowired
+    private IBaseFactoryUserService baseFactoryUserService;
+    @Autowired
+    private IBaseFactoryService baseFactoryService;
+    @Override
+    public IPage<EamTechnicalStatusChange> queryPageList(Page<EamTechnicalStatusChange> page, EamTechnicalStatusChangeQuery query) {
+        QueryWrapper<EamTechnicalStatusChange> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0);
+        //鐢ㄦ埛鏁版嵁鏉冮檺
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        if (sysUser == null) {
+            return page;
+        }
+        //鏍规嵁涓績杩囨护鏁版嵁鏉冮檺
+        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> factoryCodeList = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
+            queryWrapper.in("factory_org_code", factoryCodeList);
+        } else {
+            return page;
+        }
+        if (query != null) {
+            //缂栫爜 妯$硦鏌ヨ
+            if (StringUtils.isNotBlank(query.getChangeOrderNum())) {
+                queryWrapper.like("change_order_num", query.getChangeOrderNum());
+            }
+            //淇濆吇鍒嗙被
+            if (StringUtils.isNotBlank(query.getChangeStatus())) {
+                queryWrapper.eq("change_status", query.getChangeStatus());
+            }
+            if (query.getDateBegin() != null && query.getDateEnd() != null) {
+                queryWrapper.between("designer_time", query.getDateBegin(), query.getDateEnd());
+            }
+            //鐢宠鍗曚綅
+            if(StringUtils.isNotBlank(query.getFactoryOrgCode())) {
+                queryWrapper.eq("factory_org_code", query.getFactoryOrgCode());
+            }
+            //鎺掑簭
+            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(oConvertUtils.camelToUnderline(column));
+                } else {
+                    queryWrapper.orderByDesc(oConvertUtils.camelToUnderline(column));
+                }
+            } else {
+                queryWrapper.orderByDesc("create_time");
+            }
+        } else {
+            queryWrapper.orderByDesc("create_time");
+        }
+        return this.getBaseMapper().selectPage(page, queryWrapper);
+    }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean addEamTechnicalStatusChange(EamTechnicalStatusChangeRequest request) {
+        return false;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean editEamTechnicalStatusChange(EamTechnicalStatusChangeRequest request) {
+        return false;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean submit(String id) {
+        return false;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public EamTechnicalStatusChange approval(EamTechnicalStatusChangeRequest request) {
+        return null;
+    }
+
+    @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;
+    }
 }

--
Gitblit v1.9.3