From 1007e0b552accd3288e7da6b47d8cc49a03bdf62 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期日, 27 四月 2025 11:06:35 +0800
Subject: [PATCH] art: 从沃克项目迁移设备管理代码到航宇

---
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentExtendServiceImpl.java                  |   31 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java                                    |   36 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderRequest.java                                  |   29 
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java |   18 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamWeekMaintenanceRequest.java                                  |   38 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentAttachmentServiceImpl.java                     |   65 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java                            |  112 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceStandardMapper.java                                |   15 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java                                   |   11 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentExtendService.java                          |   14 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/EquipmentOperationTagEnum.java                          |    1 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java                                         |  386 ++-
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentHistoryLogController.java                        |   28 
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/IFlowMyBusinessService.java         |   12 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/WeekMaintenanceStatusEnum.java                          |   11 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentFaultReasonController.java                       |    8 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderResponse.java                                     |   80 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java                            |   53 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java                                      |   71 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentFaultReason.java                              |    6 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java                             |  274 +++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderQuery.java                                    |   23 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java                         |  262 ++-
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSysFilesController.java                                   |   48 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderService.java                            |   16 
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/controller/AssignStreamFlowController.java                    |   31 
 db/数据库产品化设计.pdma.json                                                                                                       |  592 ++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderDetailService.java                      |   10 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentHistoryLog.java                               |    7 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderQuery.java                                        |    2 
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/WorkTaskVoMapper.xml                               |    3 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/InspectionStatus.java                                   |   26 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairOrderController.java                                |  111 +
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamReportRepair.java                                      |    8 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java                                  |   53 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrder.java                              |    6 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentAttachmentService.java                             |   30 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderDetailServiceImpl.java              |   11 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrder.java                                   |   30 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamWeekMaintenanceBatchApprovalRequest.java                     |   41 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java                             |   11 
 lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/util/ThrowableUtil.java                                          |    0 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentAttachmentMapper.java                                |   14 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamEquipmentAttachmentRequest.java                              |   33 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java                            |  470 +++--
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamInspectionOrderMapper.java                                    |   13 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderDetailService.java                           |    9 
 lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml                                                 |    4 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamWeekMaintenanceOrderController.java                       |  171 +
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java                                       |   11 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java                                   |    1 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java                                      |  149 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java                                        |    2 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportRepairController.java                               |   55 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamSysFilesService.java                                        |    7 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamReportRepairQuery.java                                       |    4 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderExpiredJob.java                                 |   86 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentAttachment.java                                      |   67 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java                               |    9 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionBatchApprovalRequest.java                          |   26 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java                                  |   14 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderDetailServiceImpl.java                   |   11 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml                             |   35 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardDetailService.java                       |    9 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java                        |    4 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentAttachmentMapper.xml                             |    5 
 lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java                                                      |   21 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java                                     |   18 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSysFilesServiceImpl.java                                |   31 
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/FlowTaskServiceImpl.java                         |    3 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java                    |  304 +++
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java                        |    4 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml                                     |    5 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml                                 |    7 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderExpiredJob.java                                      |   86 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderService.java                                 |   21 
 lxzn-boot-base-core/src/main/java/org/jeecg/common/util/TranslateDictTextUtils.java                                         |  197 ++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java                     |   57 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java                                |  128 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml                                    |    4 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrderDetail.java                                    |    8 
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/domain/vo/FlowMy.java                                         |    5 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentAttachmentController.java                        |  158 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderGenerateJob.java                                     |  129 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardDetailServiceImpl.java               |   15 
 85 files changed, 4,281 insertions(+), 749 deletions(-)

diff --git "a/db/\346\225\260\346\215\256\345\272\223\344\272\247\345\223\201\345\214\226\350\256\276\350\256\241.pdma.json" "b/db/\346\225\260\346\215\256\345\272\223\344\272\247\345\223\201\345\214\226\350\256\276\350\256\241.pdma.json"
index 8cdd149..e63f2cc 100644
--- "a/db/\346\225\260\346\215\256\345\272\223\344\272\247\345\223\201\345\214\226\350\256\276\350\256\241.pdma.json"
+++ "b/db/\346\225\260\346\215\256\345\272\223\344\272\247\345\223\201\345\214\226\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-4-8 16:18:02",
+  "updatedTime": "2025-4-23 10:36:36",
   "dbConns": [],
   "profile": {
     "default": {
@@ -3923,28 +3923,10 @@
           "defaultValue": "",
           "hideInGraph": false,
           "refDict": "",
-          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "baseType": "B17BDED3-085F-40E1-9019-3B79CF2BF075",
           "extProps": {},
-          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
+          "domain": "13DE7063-440C-426F-B1DF-25EC824C6DB8",
           "id": "5576D652-16B0-4098-A22E-0B2F5EF98107"
-        },
-        {
-          "defKey": "last_generate_time",
-          "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": "47B81CB8-00B3-4A0A-A0D6-6A34D33A9354"
         }
       ],
       "correlations": [],
@@ -4190,6 +4172,24 @@
           "uiHint": "",
           "id": "85FA4C4B-F18B-409F-BE32-E79EE3D8640A",
           "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098"
+        },
+        {
+          "defKey": "del_flag",
+          "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": "2DCD0BA1-6667-4437-BCFF-435A35241D87"
         },
         {
           "defKey": "standard_id",
@@ -4717,8 +4717,44 @@
           "id": "9E1E21C7-514F-491B-AFD8-BB810BB8D06C"
         },
         {
+          "defKey": "confirm_deal_type",
+          "defName": "纭绫诲瀷",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
+          "id": "0C006924-8415-4148-919E-3EF09EB76D5D"
+        },
+        {
+          "defKey": "confirm_comment",
+          "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": "98BA313C-F5DE-438E-9F58-133F1EE63002"
+        },
+        {
           "defKey": "confirm_user",
-          "defName": "璁惧绠$悊鍛樼‘璁�",
+          "defName": "鐝粍闀跨‘璁�",
           "comment": "",
           "type": "",
           "len": "",
@@ -4773,7 +4809,7 @@
         {
           "defKey": "image_files",
           "defName": "鐓х墖鏂囦欢ids",
-          "comment": "id浠ラ�楀彿鍒嗛殧",
+          "comment": "",
           "type": "",
           "len": "",
           "scale": "",
@@ -4783,9 +4819,9 @@
           "defaultValue": "",
           "hideInGraph": false,
           "refDict": "",
-          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "baseType": "B17BDED3-085F-40E1-9019-3B79CF2BF075",
           "extProps": {},
-          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
+          "domain": "13DE7063-440C-426F-B1DF-25EC824C6DB8",
           "id": "F42A4411-75B9-4486-8B8D-98A86DB0F861"
         }
       ],
@@ -5709,8 +5745,8 @@
         {
           "defKey": "image_files",
           "defName": "鐓х墖鏂囦欢ids",
-          "comment": "id浠ラ�楀彿鍒嗛殧",
-          "type": "NVARCHAR(MAX)",
+          "comment": "",
+          "type": "",
           "len": "",
           "scale": "",
           "primaryKey": false,
@@ -5718,7 +5754,7 @@
           "autoIncrement": false,
           "defaultValue": "",
           "hideInGraph": false,
-          "domain": "",
+          "domain": "13DE7063-440C-426F-B1DF-25EC824C6DB8",
           "refDict": "",
           "extProps": {},
           "notes": {},
@@ -6173,8 +6209,8 @@
         {
           "defKey": "image_files",
           "defName": "淇濆吇鎵ц鍥剧墖",
-          "comment": "id浠ラ�楀彿鍒嗛殧",
-          "type": "NVARCHAR(MAX)",
+          "comment": "",
+          "type": "",
           "len": "",
           "scale": "",
           "primaryKey": false,
@@ -6182,7 +6218,7 @@
           "autoIncrement": false,
           "defaultValue": "",
           "hideInGraph": false,
-          "domain": "",
+          "domain": "13DE7063-440C-426F-B1DF-25EC824C6DB8",
           "refDict": null,
           "extProps": {},
           "notes": {},
@@ -6275,6 +6311,24 @@
           "id": "E7835F76-6169-4E42-8DA0-542BE1AFC448",
           "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098",
           "uiHint": null
+        },
+        {
+          "defKey": "confirm_deal_type",
+          "defName": "纭绫诲瀷",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
+          "id": "EF6D9EAA-0BD3-462A-84A8-093D70D919EB"
         },
         {
           "defKey": "confirm_comment",
@@ -7905,7 +7959,7 @@
         {
           "defKey": "image_files",
           "defName": "鐓х墖鏂囦欢ids",
-          "comment": "id浠ラ�楀彿鍒嗛殧",
+          "comment": "",
           "type": "",
           "len": "",
           "scale": "",
@@ -7914,7 +7968,7 @@
           "autoIncrement": false,
           "defaultValue": "",
           "hideInGraph": false,
-          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
+          "domain": "13DE7063-440C-426F-B1DF-25EC824C6DB8",
           "refDict": "",
           "extProps": {},
           "notes": {},
@@ -7928,7 +7982,7 @@
           "attr8": "",
           "attr9": "",
           "id": "4D8E08DB-BB54-49DE-A079-8B5F92964F14",
-          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
+          "baseType": "B17BDED3-085F-40E1-9019-3B79CF2BF075"
         },
         {
           "defKey": "remark",
@@ -9734,6 +9788,24 @@
           "id": "522BCC0E-5AE9-4473-BE36-A68202A7E1ED"
         },
         {
+          "defKey": "fault_name",
+          "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": "A55D711F-243B-4B6B-84E0-471527DAE875"
+        },
+        {
           "defKey": "fault_type",
           "defName": "鏁呴殰鍒嗙被",
           "comment": "",
@@ -9790,7 +9862,7 @@
         {
           "defKey": "image_files",
           "defName": "鐓х墖鏂囦欢ids",
-          "comment": "id浠ラ�楀彿鍒嗛殧",
+          "comment": "",
           "type": "",
           "len": "",
           "scale": "",
@@ -9799,7 +9871,7 @@
           "autoIncrement": false,
           "defaultValue": "",
           "hideInGraph": false,
-          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
+          "domain": "13DE7063-440C-426F-B1DF-25EC824C6DB8",
           "refDict": "",
           "extProps": {},
           "notes": {},
@@ -9813,7 +9885,7 @@
           "attr8": "",
           "attr9": "",
           "id": "0552EC0A-4846-49B3-BA5A-6049CD295D13",
-          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
+          "baseType": "B17BDED3-085F-40E1-9019-3B79CF2BF075"
         },
         {
           "defKey": "remark",
@@ -10351,7 +10423,7 @@
         {
           "defKey": "image_files",
           "defName": "鐓х墖鏂囦欢ids",
-          "comment": "id浠ラ�楀彿鍒嗛殧",
+          "comment": "",
           "type": "",
           "len": "",
           "scale": "",
@@ -10360,7 +10432,7 @@
           "autoIncrement": false,
           "defaultValue": "",
           "hideInGraph": false,
-          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
+          "domain": "13DE7063-440C-426F-B1DF-25EC824C6DB8",
           "refDict": "",
           "extProps": {},
           "notes": {},
@@ -10374,7 +10446,43 @@
           "attr8": "",
           "attr9": "",
           "id": "F12C512D-9550-40EA-8583-C6476F69C135",
-          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
+          "baseType": "B17BDED3-085F-40E1-9019-3B79CF2BF075"
+        },
+        {
+          "defKey": "is_use_spare",
+          "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": "36816184-4B15-4AC7-A460-4E8EC004871D"
+        },
+        {
+          "defKey": "spare_part_description",
+          "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": "3945E6D0-A58E-4B40-AFDA-6D8D477DE78F"
         }
       ],
       "correlations": [],
@@ -16145,8 +16253,8 @@
           "codeRoot": ""
         }
       },
-      "defKey": "eam_sys_files",
-      "defName": "璁惧绠$悊闄勪欢琛�",
+      "defKey": "eam_equipment_attachment",
+      "defName": "璁惧鏂囨。",
       "comment": "",
       "properties": {
         "partitioned by": "(date string)",
@@ -16396,6 +16504,24 @@
           "id": "AE037CD2-F1D7-43A9-8AA7-0B6556CABB47"
         },
         {
+          "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": "16120F75-6AA7-4483-868D-F07F511BB081",
+          "id": "F0AA43F9-BB17-41C9-B5A3-9946067055FC"
+        },
+        {
           "defKey": "file_encode_name",
           "defName": "鏂囦欢鍔犲瘑鍚�",
           "comment": "",
@@ -16460,7 +16586,7 @@
           "notNull": false,
           "autoIncrement": false,
           "defaultValue": "",
-          "hideInGraph": false,
+          "hideInGraph": true,
           "refDict": "",
           "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
           "extProps": {},
@@ -16502,6 +16628,385 @@
           "extProps": {},
           "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
           "id": "5B36A3AD-359D-446C-87AD-338A4C6C0069"
+        }
+      ],
+      "correlations": [],
+      "indexes": [],
+      "type": "P"
+    },
+    {
+      "id": "9D0C5472-CECA-4676-8F92-5AD1D03EE367",
+      "env": {
+        "base": {
+          "nameSpace": "",
+          "codeRoot": ""
+        }
+      },
+      "defKey": "eam_sys_files",
+      "defName": "璁惧绠$悊闄勪欢琛�",
+      "comment": "",
+      "properties": {
+        "partitioned by": "(date string)",
+        "row format delimited": "",
+        "fields terminated by ','": "",
+        "collection items terminated by '-'": "",
+        "map keys terminated by ':'": "",
+        "store as textfile;": ""
+      },
+      "sysProps": {
+        "nameTemplate": "{defKey}[{defName}]"
+      },
+      "notes": {},
+      "headers": [
+        {
+          "refKey": "hideInGraph",
+          "hideInGraph": true
+        },
+        {
+          "refKey": "defKey",
+          "freeze": false,
+          "hideInGraph": false
+        },
+        {
+          "refKey": "defName",
+          "freeze": false,
+          "hideInGraph": false
+        },
+        {
+          "refKey": "primaryKey",
+          "freeze": false,
+          "hideInGraph": false
+        },
+        {
+          "refKey": "notNull",
+          "freeze": false,
+          "hideInGraph": true
+        },
+        {
+          "refKey": "autoIncrement",
+          "freeze": false,
+          "hideInGraph": true
+        },
+        {
+          "refKey": "domain",
+          "freeze": false,
+          "hideInGraph": true
+        },
+        {
+          "refKey": "type",
+          "freeze": false,
+          "hideInGraph": false
+        },
+        {
+          "refKey": "len",
+          "freeze": false,
+          "hideInGraph": false
+        },
+        {
+          "refKey": "scale",
+          "freeze": false,
+          "hideInGraph": false
+        },
+        {
+          "refKey": "comment",
+          "freeze": false,
+          "hideInGraph": true
+        },
+        {
+          "refKey": "refDict",
+          "freeze": false,
+          "hideInGraph": true
+        },
+        {
+          "refKey": "defaultValue",
+          "freeze": false,
+          "hideInGraph": true
+        },
+        {
+          "refKey": "isStandard",
+          "freeze": false,
+          "hideInGraph": false
+        },
+        {
+          "refKey": "uiHint",
+          "freeze": false,
+          "hideInGraph": true
+        },
+        {
+          "refKey": "extProps",
+          "freeze": false,
+          "hideInGraph": true
+        },
+        {
+          "refKey": "attr1",
+          "freeze": false,
+          "hideInGraph": true
+        },
+        {
+          "refKey": "attr2",
+          "freeze": false,
+          "hideInGraph": true
+        },
+        {
+          "refKey": "attr3",
+          "freeze": false,
+          "hideInGraph": true
+        },
+        {
+          "refKey": "attr4",
+          "freeze": false,
+          "hideInGraph": true
+        },
+        {
+          "refKey": "attr5",
+          "freeze": false,
+          "hideInGraph": true
+        },
+        {
+          "refKey": "attr6",
+          "freeze": false,
+          "hideInGraph": true
+        },
+        {
+          "refKey": "attr7",
+          "freeze": false,
+          "hideInGraph": true
+        },
+        {
+          "refKey": "attr8",
+          "freeze": false,
+          "hideInGraph": true
+        },
+        {
+          "refKey": "attr9",
+          "freeze": false,
+          "hideInGraph": true
+        }
+      ],
+      "fields": [
+        {
+          "defKey": "id",
+          "defName": "涓婚敭",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": true,
+          "notNull": true,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": null,
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
+          "id": "3699A3C0-B0E2-4461-BD22-F00D9CCDF981",
+          "uiHint": null
+        },
+        {
+          "defKey": "create_by",
+          "defName": "鍒涘缓浜�",
+          "comment": "",
+          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": true,
+          "refDict": null,
+          "uiHint": null,
+          "id": "66AAE852-A01A-45C5-86FD-CBDAC090207B",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
+        },
+        {
+          "defKey": "create_time",
+          "defName": "鍒涘缓鏃堕棿",
+          "comment": "",
+          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": true,
+          "refDict": null,
+          "uiHint": null,
+          "id": "E5DF786B-CDF8-4C7C-9000-F9DF66EB0B61",
+          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098"
+        },
+        {
+          "defKey": "update_by",
+          "defName": "鏇存柊浜�",
+          "comment": "",
+          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": true,
+          "refDict": null,
+          "uiHint": null,
+          "id": "71FE4281-BBF4-498D-9575-B86D7FBFE279",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
+        },
+        {
+          "defKey": "update_time",
+          "defName": "鏇存柊鏃堕棿",
+          "comment": "",
+          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": true,
+          "refDict": null,
+          "uiHint": null,
+          "id": "52F980A8-0036-4FA4-AC68-3B207A828060",
+          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098"
+        },
+        {
+          "defKey": "del_flag",
+          "defName": "鍒犻櫎鏍囪",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": null,
+          "baseType": "1D764C4A-6F9F-421E-B11A-6F3E23B51811",
+          "extProps": {},
+          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
+          "id": "E05B0E7B-556F-47E0-912A-074924FE90EF",
+          "uiHint": null
+        },
+        {
+          "defKey": "file_encode_name",
+          "defName": "鏂囦欢鍔犲瘑鍚�",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": null,
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "BE09D493-E183-402D-ACC4-EEA21EB35B8E",
+          "id": "01499664-437B-40BF-A2D1-9D931D731984",
+          "uiHint": null
+        },
+        {
+          "defKey": "file_name",
+          "defName": "鏂囦欢鍚嶇О",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": null,
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "BE09D493-E183-402D-ACC4-EEA21EB35B8E",
+          "id": "A3FD9D88-56A8-43D4-94EF-12E2F73DA4E1",
+          "uiHint": null
+        },
+        {
+          "defKey": "file_path",
+          "defName": "鏂囦欢淇濆瓨璺緞",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": null,
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
+          "id": "D3320083-11F8-4A4C-B03D-24E7EB18A527",
+          "uiHint": null
+        },
+        {
+          "defKey": "file_suffix",
+          "defName": "鏂囦欢鍚庣紑鍚�",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": null,
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
+          "id": "2232DE73-B928-4576-A3F7-99DAC095ABD2",
+          "uiHint": null
+        },
+        {
+          "defKey": "file_size",
+          "defName": "鏂囦欢澶у皬",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": null,
+          "baseType": "A48A12F5-2E10-4F0A-8449-60887F0D30E0",
+          "extProps": {},
+          "domain": "2E60DFAE-915E-4328-AEE2-6ED5FB43BAF5",
+          "id": "07C7567D-6B96-432A-BE2C-54AFA4293E9F",
+          "uiHint": null
+        },
+        {
+          "defKey": "description",
+          "defName": "鎻忚堪",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": null,
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
+          "id": "D9B55620-8B6D-48E0-A284-0BD9BF4B062F",
+          "uiHint": null
         }
       ],
       "correlations": [],
@@ -17956,6 +18461,7 @@
       "refEntities": [
         "74D17B8E-6DA8-477B-810C-EC8B3FBF53F2",
         "B2E5D0C4-4FF7-4221-8366-FC7B31B7411A",
+        "9D0C5472-CECA-4676-8F92-5AD1D03EE367",
         "257DC169-B593-4D03-8FE4-6AF75C335A93",
         "B9F80758-3E0D-4350-9DA0-C2D82DC2912A",
         "759CE3A5-4823-4215-B14F-5D26B6FA0B58",
diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java
index f1f4f8f..92f023e 100644
--- a/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java
+++ b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java
@@ -5,6 +5,8 @@
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.ZoneId;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.GregorianCalendar;
@@ -764,8 +766,21 @@
         return dateFormat.format(date);
     }
 
+    /**
+     * Date 杞� LocalDate
+     * @param date
+     * @return
+     */
+    public static LocalDate dateToLocalDate(Date date) {
+        return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+    }
 
-
-
-
+    /**
+     * LocalDate 杞� Date
+     * @param localDate
+     * @return
+     */
+    public static Date localDateToDate(LocalDate localDate) {
+        return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
+    }
 }
\ No newline at end of file
diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/TranslateDictTextUtils.java b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/TranslateDictTextUtils.java
new file mode 100644
index 0000000..4252216
--- /dev/null
+++ b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/TranslateDictTextUtils.java
@@ -0,0 +1,197 @@
+package org.jeecg.common.util;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.jeecg.common.api.CommonAPI;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.system.vo.DictModel;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Component;
+
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+@Component
+@Slf4j
+public class TranslateDictTextUtils {
+
+    @Lazy
+    @Autowired
+    private CommonAPI commonApi;
+    @Autowired
+    private RedisTemplate redisTemplate;
+
+    public void translateField(String field, String value, JSONObject item, String dictCode) {
+        if (StringUtils.isBlank(value)) {
+            item.put(field + CommonConstant.DICT_TEXT_SUFFIX, null);
+            return;
+        }
+        // 瀛楀吀鏁版嵁鍒楄〃锛� key = 瀛楀吀code锛寁alue=鏁版嵁鍒楄〃
+        Map<String, List<String>> dataListMap = new HashMap<>(5);
+        dataListMap.put(dictCode, this.listAddAllDeduplicate(new ArrayList<>(), Arrays.asList(value.split(","))));
+        //step.2 璋冪敤缈昏瘧鏂规硶锛屼竴娆℃�х炕璇�
+        Map<String, List<DictModel>> translText = this.translateAllDict(dataListMap);
+        //缈昏瘧
+        List<DictModel> dictModels = translText.get(dictCode);
+        if (CollectionUtil.isEmpty(dictModels)) {
+            item.put(field + CommonConstant.DICT_TEXT_SUFFIX, null);
+            return;
+        }
+        String textValue = this.translDictText(dictModels, value);
+        item.put(field + CommonConstant.DICT_TEXT_SUFFIX, textValue);
+    }
+
+    /**
+     * 瀛楀吀鍊兼浛鎹㈡枃鏈�
+     *
+     * @param dictModels
+     * @param values
+     * @return
+     */
+    private String translDictText(List<DictModel> dictModels, String values) {
+        List<String> result = new ArrayList<>();
+
+        // 鍏佽澶氫釜閫楀彿鍒嗛殧锛屽厑璁镐紶鏁扮粍瀵硅薄
+        String[] splitVal = values.split(",");
+        for (String val : splitVal) {
+            String dictText = val;
+            for (DictModel dict : dictModels) {
+                if (val.equals(dict.getValue())) {
+                    dictText = dict.getText();
+                    break;
+                }
+            }
+            result.add(dictText);
+        }
+        return String.join(",", result);
+    }
+
+    /**
+     * list 鍘婚噸娣诲姞
+     */
+    private List<String> listAddAllDeduplicate(List<String> dataList, List<String> addList) {
+        // 绛涢�夊嚭dataList涓病鏈夌殑鏁版嵁
+        List<String> filterList = addList.stream().filter(i -> !dataList.contains(i)).collect(Collectors.toList());
+        dataList.addAll(filterList);
+        return dataList;
+    }
+
+    /**
+     * 涓�娆℃�ф妸鎵�鏈夌殑瀛楀吀閮界炕璇戜簡
+     * 1.  鎵�鏈夌殑鏅�氭暟鎹瓧鍏哥殑鎵�鏈夋暟鎹彧鎵ц涓�娆QL
+     * 2.  琛ㄥ瓧鍏哥浉鍚岀殑鎵�鏈夋暟鎹彧鎵ц涓�娆QL
+     *
+     * @param dataListMap
+     * @return
+     */
+    private Map<String, List<DictModel>> translateAllDict(Map<String, List<String>> dataListMap) {
+        // 缈昏瘧鍚庣殑瀛楀吀鏂囨湰锛宬ey=dictCode
+        Map<String, List<DictModel>> translText = new HashMap<>(5);
+        // 闇�瑕佺炕璇戠殑鏁版嵁锛堟湁浜涘彲浠ヤ粠redis缂撳瓨涓幏鍙栵紝灏变笉璧版暟鎹簱鏌ヨ锛�
+        List<String> needTranslData = new ArrayList<>();
+        //step.1 鍏堥�氳繃redis涓幏鍙栫紦瀛樺瓧鍏告暟鎹�
+        for (String dictCode : dataListMap.keySet()) {
+            List<String> dataList = dataListMap.get(dictCode);
+            if (dataList.size() == 0) {
+                continue;
+            }
+            // 琛ㄥ瓧鍏搁渶瑕佺炕璇戠殑鏁版嵁
+            List<String> needTranslDataTable = new ArrayList<>();
+            for (String s : dataList) {
+                String data = s.trim();
+                if (data.length() == 0) {
+                    continue; //璺宠繃寰幆
+                }
+                if (dictCode.contains(",")) {
+                    String keyString = String.format("sys:cache:dictTable::SimpleKey [%s,%s]", dictCode, data);
+                    if (redisTemplate.hasKey(keyString)) {
+                        try {
+                            String text = oConvertUtils.getString(redisTemplate.opsForValue().get(keyString));
+                            List<DictModel> list = translText.computeIfAbsent(dictCode, k -> new ArrayList<>());
+                            list.add(new DictModel(data, text));
+                        } catch (Exception e) {
+                            log.warn(e.getMessage());
+                        }
+                    } else if (!needTranslDataTable.contains(data)) {
+                        // 鍘婚噸娣诲姞
+                        needTranslDataTable.add(data);
+                    }
+                } else {
+                    String keyString = String.format("sys:cache:dict::%s:%s", dictCode, data);
+                    if (redisTemplate.hasKey(keyString)) {
+                        try {
+                            String text = oConvertUtils.getString(redisTemplate.opsForValue().get(keyString));
+                            List<DictModel> list = translText.computeIfAbsent(dictCode, k -> new ArrayList<>());
+                            list.add(new DictModel(data, text));
+                        } catch (Exception e) {
+                            log.warn(e.getMessage());
+                        }
+                    } else if (!needTranslData.contains(data)) {
+                        // 鍘婚噸娣诲姞
+                        needTranslData.add(data);
+                    }
+                }
+
+            }
+            //step.2 璋冪敤鏁版嵁搴撶炕璇戣〃瀛楀吀
+            if (needTranslDataTable.size() > 0) {
+                String[] arr = dictCode.split(",");
+                String table = arr[0], text = arr[1], code = arr[2];
+                String values = String.join(",", needTranslDataTable);
+                log.debug("translateDictFromTableByKeys.dictCode:" + dictCode);
+                log.debug("translateDictFromTableByKeys.values:" + values);
+                List<DictModel> texts = commonApi.translateDictFromTableByKeys(table, text, code, values);
+                log.debug("translateDictFromTableByKeys.result:" + texts);
+                List<DictModel> list = translText.computeIfAbsent(dictCode, k -> new ArrayList<>());
+                list.addAll(texts);
+
+                // 鍋� redis 缂撳瓨
+                for (DictModel dict : texts) {
+                    String redisKey = String.format("sys:cache:dictTable::SimpleKey [%s,%s]", dictCode, dict.getValue());
+                    try {
+                        // update-begin-author:taoyan date:20211012 for: 瀛楀吀琛ㄧ炕璇戞敞瑙g紦瀛樻湭鏇存柊 issues/3061
+                        // 淇濈暀5鍒嗛挓
+                        redisTemplate.opsForValue().set(redisKey, dict.getText(), 300, TimeUnit.SECONDS);
+                        // update-end-author:taoyan date:20211012 for: 瀛楀吀琛ㄧ炕璇戞敞瑙g紦瀛樻湭鏇存柊 issues/3061
+                    } catch (Exception e) {
+                        log.warn(e.getMessage(), e);
+                    }
+                }
+            }
+        }
+
+        //step.3 璋冪敤鏁版嵁搴撹繘琛岀炕璇戞櫘閫氬瓧鍏�
+        if (needTranslData.size() > 0) {
+            List<String> dictCodeList = Arrays.asList(dataListMap.keySet().toArray(new String[]{}));
+            // 灏嗕笉鍖呭惈閫楀彿鐨勫瓧鍏竎ode绛涢�夊嚭鏉ワ紝鍥犱负甯﹂�楀彿鐨勬槸琛ㄥ瓧鍏革紝鑰屼笉鏄櫘閫氱殑鏁版嵁瀛楀吀
+            List<String> filterDictCodes = dictCodeList.stream().filter(key -> !key.contains(",")).collect(Collectors.toList());
+            String dictCodes = String.join(",", filterDictCodes);
+            String values = String.join(",", needTranslData);
+            log.debug("translateManyDict.dictCodes:" + dictCodes);
+            log.debug("translateManyDict.values:" + values);
+            Map<String, List<DictModel>> manyDict = commonApi.translateManyDict(dictCodes, values);
+            log.debug("translateManyDict.result:" + manyDict);
+            for (String dictCode : manyDict.keySet()) {
+                List<DictModel> list = translText.computeIfAbsent(dictCode, k -> new ArrayList<>());
+                List<DictModel> newList = manyDict.get(dictCode);
+                list.addAll(newList);
+
+                // 鍋� redis 缂撳瓨
+                for (DictModel dict : newList) {
+                    String redisKey = String.format("sys:cache:dict::%s:%s", dictCode, dict.getValue());
+                    try {
+                        redisTemplate.opsForValue().set(redisKey, dict.getText());
+                    } catch (Exception e) {
+                        log.warn(e.getMessage(), e);
+                    }
+                }
+            }
+        }
+        return translText;
+    }
+}
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java
index 1bde718..3175021 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java
@@ -1,14 +1,17 @@
 package org.jeecg.modules.eam.aspect;
 
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.*;
 import org.aspectj.lang.reflect.MethodSignature;
 import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog;
 import org.jeecg.modules.eam.constant.EquipmentOperationTagEnum;
-import org.jeecg.modules.eam.entity.EamEquipment;
-import org.jeecg.modules.eam.entity.EamEquipmentHistoryLog;
+import org.jeecg.modules.eam.constant.InspectionStatus;
+import org.jeecg.modules.eam.constant.ReportRepairEnum;
+import org.jeecg.modules.eam.constant.WeekMaintenanceStatusEnum;
+import org.jeecg.modules.eam.entity.*;
 import org.jeecg.modules.eam.service.IEamEquipmentHistoryLogService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -54,7 +57,9 @@
             log.setBusinessTable(syslog.businessTable());
             log.setOperationTag(syslog.operationTag().name());
             convertResult(log, syslog.operationTag(), result);
-            equipmentHistoryLogService.save(log);
+            if (StringUtils.isNotBlank(log.getEquipmentId())) {
+                equipmentHistoryLogService.save(log);
+            }
         }
     }
 
@@ -62,7 +67,7 @@
     private void convertResult(EamEquipmentHistoryLog log, EquipmentOperationTagEnum operationTag, Object result) {
         switch (operationTag) {
             case ACCEPTANCE:
-                if(result instanceof EamEquipment) {
+                if (result instanceof EamEquipment) {
                     EamEquipment equipment = (EamEquipment) result;
                     log.setEquipmentId(equipment.getId());
                     log.setBusinessId(equipment.getId());
@@ -72,14 +77,54 @@
                 }
                 break;
             case POINT_INSPECTION:
+                if (result instanceof EamInspectionOrder) {
+                    EamInspectionOrder order = (EamInspectionOrder) result;
+                    if (InspectionStatus.COMPLETE.name().equals(order.getInspectionStatus())) {
+                        log.setEquipmentId(order.getEquipmentId());
+                        log.setBusinessId(order.getId());
+                        log.setOperator(order.getOperator());
+                        log.setDescription(order.getConfirmComment());
+                        log.setCreateTime(order.getOperateTime());
+                    }
+                }
+                break;
+            case WEEK_MAINTENANCE:
+                if (result instanceof EamWeekMaintenanceOrder) {
+                    EamWeekMaintenanceOrder order = (EamWeekMaintenanceOrder) result;
+                    if (WeekMaintenanceStatusEnum.COMPLETE.name().equals(order.getMaintenanceStatus())) {
+                        log.setEquipmentId(order.getEquipmentId());
+                        log.setBusinessId(order.getId());
+                        log.setOperator(order.getOperator());
+                        log.setDescription(order.getFinalAcceptanceComment());
+                        log.setCreateTime(order.getActualEndTime());
+                    }
+                }
                 break;
             case SECOND_MAINTENANCE:
                 break;
             case THIRD_MAINTENANCE:
                 break;
             case REPORT_REPAIR:
+                if (result instanceof EamReportRepair) {
+                    EamReportRepair repair = (EamReportRepair) result;
+                    log.setEquipmentId(repair.getEquipmentId());
+                    log.setBusinessId(repair.getId());
+                    log.setOperator(repair.getCreateBy());
+                    log.setDescription(repair.getFaultDescription());
+                    log.setCreateTime(repair.getFaultStartTime());
+                }
                 break;
             case REPAIRED:
+                if (result instanceof EamRepairOrder) {
+                    EamRepairOrder order = (EamRepairOrder) result;
+                    if (ReportRepairEnum.COMPLETE.name().equals(order.getRepairStatus())) {
+                        log.setEquipmentId(order.getEquipmentId());
+                        log.setBusinessId(order.getId());
+                        log.setOperator(order.getRepairer());
+                        log.setDescription(order.getRepairDescription());
+                        log.setCreateTime(order.getActualEndTime());
+                    }
+                }
                 break;
             case MAJOR_REPAIR:
                 break;
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 98764d0..f33a01e 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
@@ -24,4 +24,18 @@
     String SPARE_REQUISITION_STATUS_4 = "4";
     String SPARE_REQUISITION_STATUS_5 = "5";
 
+    /**
+     * 宀椾綅缂栫爜
+     */
+    //鎿嶄綔宸�
+    String PCR0001 = "PCR0001";
+    //缁翠慨宸�
+    String PCR0002 = "PCR0002";
+    //鐝粍闀�
+    String PCR0003 = "PCR0003";
+    //璁惧绠$悊鍛�
+    String PCR0004 = "PCR0004";
+    //璁惧鑳芥簮閮�
+    String PCR0005 = "PCR0005";
+
 }
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/EquipmentOperationTagEnum.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/EquipmentOperationTagEnum.java
index d68826d..abc88f2 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/EquipmentOperationTagEnum.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/EquipmentOperationTagEnum.java
@@ -6,6 +6,7 @@
 public enum EquipmentOperationTagEnum {
     ACCEPTANCE, //楠屾敹
     POINT_INSPECTION,  //鐐规
+    WEEK_MAINTENANCE, //鍛ㄤ繚
     SECOND_MAINTENANCE,  //浜屼繚
     THIRD_MAINTENANCE,  //涓変繚
     REPORT_REPAIR,  //鎶ヤ慨
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/InspectionStatus.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/InspectionStatus.java
index b90a87c..5c8be10 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/InspectionStatus.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/InspectionStatus.java
@@ -1,21 +1,13 @@
 package org.jeecg.modules.eam.constant;
 
+import lombok.Getter;
+
+@Getter
 public enum InspectionStatus {
-    INIT("1", "寰呯偣妫�"),
-    IN_PROGRESS("2", "鐐规涓�"),
-    COMPLETED("3", "鐐规瀹屾垚" ),
-    CONFIRMED("4", "宸茬‘璁�" );
-
-    private final String code;
-    private final String desc;
-
-    InspectionStatus(String code, String desc) {
-
-        this.code = code;
-        this.desc = desc;
-    }
-
-    // Getters
-    public String getCode() { return code; }
-    public String getDesc() { return desc; }
+    WAIT_INSPECTION, //寰呯偣妫�
+    UNDER_INSPECTION, //鐐规涓�
+    WAIT_CONFIRM, //寰呯‘璁�
+    COMPLETE, //宸插畬鎴�
+    ABOLISH, //宸蹭綔搴�
+    EXPIRED; //宸茶繃鏈�
 }
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java
index 1d770de..91ff967 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java
@@ -7,4 +7,15 @@
     WAIT_CONFIRM, // 寰呯‘璁�
     COMPLETE, // 宸插畬鎴�
     ABOLISH, // 宸蹭綔搴�
+    ;
+
+    public static ReportRepairEnum getInstance(String code) {
+        ReportRepairEnum[] values = ReportRepairEnum.values();
+        for (ReportRepairEnum 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/WeekMaintenanceStatusEnum.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/WeekMaintenanceStatusEnum.java
index 0956b7e..a7800d9 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/WeekMaintenanceStatusEnum.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/WeekMaintenanceStatusEnum.java
@@ -8,5 +8,16 @@
     WAIT_FINAL_ACCEPTANCE, //寰呯粓楠�
     COMPLETE,  //宸插畬鎴�
     ABOLISH, //宸蹭綔搴�
+    EXPIRED, //宸茶繃鏈�
     ;
+
+    public static WeekMaintenanceStatusEnum getInstance(String code) {
+        WeekMaintenanceStatusEnum[] values = WeekMaintenanceStatusEnum.values();
+        for (WeekMaintenanceStatusEnum 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/entity/EamEquipment.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java
index 7f5a5d0..0756a99 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java
@@ -15,184 +15,272 @@
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
+
 /**
  * @Description: 璁惧鍙拌处
  * @Author: jeecg-boot
- * @Date:   2025-03-19
+ * @Date: 2025-03-19
  * @Version: V1.0
  */
 @Data
 @TableName("eam_equipment")
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
-@ApiModel(value="eam_equipment瀵硅薄", description="璁惧鍙拌处")
+@ApiModel(value = "eam_equipment瀵硅薄", description = "璁惧鍙拌处")
 public class EamEquipment implements Serializable {
-    
-	/**涓婚敭*/
-	@TableId(type = IdType.ASSIGN_ID)
+
+    /**
+     * 涓婚敭
+     */
+    @TableId(type = IdType.ASSIGN_ID)
     @ApiModelProperty(value = "涓婚敭")
-	private java.lang.String id;
-	/**鍒涘缓浜�*/
+    private java.lang.String id;
+    /**
+     * 鍒涘缓浜�
+     */
     @ApiModelProperty(value = "鍒涘缓浜�")
-	@Dict(dicCode = "sys_user, realname, username")
-	private java.lang.String createBy;
-	/**鍒涘缓鏃堕棿*/
+    @Dict(dicCode = "sys_user, realname, username")
+    private java.lang.String createBy;
+    /**
+     * 鍒涘缓鏃堕棿
+     */
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
-	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
-	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss ")
-	private java.util.Date createTime;
-	/**鏇存柊浜�*/
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss ")
+    private java.util.Date createTime;
+    /**
+     * 鏇存柊浜�
+     */
     @ApiModelProperty(value = "鏇存柊浜�")
-	@Dict(dicCode = "sys_user, realname, username")
-	private java.lang.String updateBy;
-	/**鏇存柊鏃堕棿*/
+    @Dict(dicCode = "sys_user, realname, username")
+    private java.lang.String updateBy;
+    /**
+     * 鏇存柊鏃堕棿
+     */
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
-	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
-	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss ")
-	private java.util.Date updateTime;
-	/**鍒犻櫎鏍囪*/
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss ")
+    private java.util.Date updateTime;
+    /**
+     * 鍒犻櫎鏍囪
+     */
     @ApiModelProperty(value = "鍒犻櫎鏍囪")
-	private java.lang.Integer delFlag;
-	/**璁惧缁熶竴缂栧彿*/
-	@Excel(name = "璁惧缂栧彿", width = 15)
+    private java.lang.Integer delFlag;
+    /**
+     * 璁惧缁熶竴缂栧彿
+     */
+    @Excel(name = "璁惧缂栧彿", width = 15)
     @ApiModelProperty(value = "璁惧缂栧彿")
-	private java.lang.String equipmentCode;
-	/**璁惧鍚嶇О*/
-	@Excel(name = "璁惧鍚嶇О", width = 15)
+    private java.lang.String equipmentCode;
+    /**
+     * 璁惧鍚嶇О
+     */
+    @Excel(name = "璁惧鍚嶇О", width = 15)
     @ApiModelProperty(value = "璁惧鍚嶇О")
-	private java.lang.String equipmentName;
-	/**鍏抽敭璁惧鏍囪瘑*/
-	@Excel(name = "鍏抽敭璁惧鏍囪瘑", width = 15, dicCode = "yn")
-	@ApiModelProperty(value = "鍏抽敭璁惧鏍囪瘑")
-	private java.lang.String equipmentImportance;
-	/**鎶�鏈姸鎬�*/
-	@Excel(name = "鎶�鏈姸鎬�", width = 15, dicCode = "technology_status")
-	@ApiModelProperty(value = "鎶�鏈姸鎬�")
-	@Dict(dicCode = "technology_status")
-	private java.lang.String technologyStatus;
-	/**鎿嶄綔绯荤粺*/
-	@Excel(name = "鎿嶄綔绯荤粺", width = 15)
-	@ApiModelProperty(value = "鎿嶄綔绯荤粺")
-	private java.lang.String operationSystem;
-	/**浣跨敤閮ㄩ棬*/
-	@Excel(name = "浣跨敤杞﹂棿", width = 25, dictTable = "mdc_production", dicText = "production_name", dicCode = "id")
-	@ApiModelProperty(value = "浣跨敤閮ㄩ棬")
-	@Dict(dicCode = "mdc_production, production_name, id")
-	private java.lang.String orgId;
-	/**璁惧绠$悊鍛�*/
-	@Excel(name = "璁惧绠$悊鍛�", width = 35, dictTable = "sys_user", dicText = "realname", dicCode = "username")
-	@ApiModelProperty(value = "璁惧绠$悊鍛�")
-	@Dict(dicCode = "sys_user, realname, username")
-	private java.lang.String equipmentManager;
-	/**璁惧鍒嗙被*/
-	@Excel(name = "璁惧鎵�灞炲垎绫�", width = 15, dicCode = "equipment_category")
-	@ApiModelProperty(value = "璁惧鍒嗙被")
-	@Dict(dicCode = "equipment_category")
-	private java.lang.String equipmentCategory;
-	/**璁惧鍨嬪彿*/
-	@Excel(name = "璁惧鍨嬪彿", width = 15)
+    private java.lang.String equipmentName;
+    /**
+     * 鍏抽敭璁惧鏍囪瘑
+     */
+    @Excel(name = "鍏抽敭璁惧鏍囪瘑", width = 15, dicCode = "yn")
+    @ApiModelProperty(value = "鍏抽敭璁惧鏍囪瘑")
+    private java.lang.String equipmentImportance;
+    /**
+     * 鎶�鏈姸鎬�
+     */
+    @Excel(name = "鎶�鏈姸鎬�", width = 15, dicCode = "technology_status")
+    @ApiModelProperty(value = "鎶�鏈姸鎬�")
+    @Dict(dicCode = "technology_status")
+    private java.lang.String technologyStatus;
+    /**
+     * 鎿嶄綔绯荤粺
+     */
+    @Excel(name = "鎿嶄綔绯荤粺", width = 15)
+    @ApiModelProperty(value = "鎿嶄綔绯荤粺")
+    private java.lang.String operationSystem;
+    /**
+     * 浣跨敤閮ㄩ棬
+     */
+    @Excel(name = "浣跨敤杞﹂棿", width = 25, dictTable = "mdc_production", dicText = "production_name", dicCode = "id")
+    @ApiModelProperty(value = "浣跨敤閮ㄩ棬")
+    @Dict(dicCode = "mdc_production, production_name, id")
+    private java.lang.String orgId;
+    /**
+     * 璁惧绠$悊鍛�
+     */
+    @Excel(name = "璁惧绠$悊鍛�", width = 35, dictTable = "sys_user", dicText = "realname", dicCode = "username")
+    @ApiModelProperty(value = "璁惧绠$悊鍛�")
+    @Dict(dicCode = "sys_user, realname, username")
+    private java.lang.String equipmentManager;
+    /**
+     * 璁惧鍒嗙被
+     */
+    @Excel(name = "璁惧鎵�灞炲垎绫�", width = 15, dicCode = "equipment_category")
+    @ApiModelProperty(value = "璁惧鍒嗙被")
+    @Dict(dicCode = "equipment_category")
+    private java.lang.String equipmentCategory;
+    /**
+     * 璁惧鍨嬪彿
+     */
+    @Excel(name = "璁惧鍨嬪彿", width = 15)
     @ApiModelProperty(value = "璁惧鍨嬪彿")
-	private java.lang.String equipmentModel;
-	/**璁惧瑙勬牸*/
-	@Excel(name = "璁惧瑙勬牸", width = 15)
+    private java.lang.String equipmentModel;
+    /**
+     * 璁惧瑙勬牸
+     */
+    @Excel(name = "璁惧瑙勬牸", width = 15)
     @ApiModelProperty(value = "璁惧瑙勬牸")
-	private java.lang.String equipmentSpecification;
-	/**涓昏酱杩炴帴灏哄*/
-	@Excel(name = "涓昏酱杩炴帴灏哄", width = 25)
-	@ApiModelProperty(value = "涓昏酱杩炴帴灏哄")
-	private java.lang.String spindleConnectDimension;
-	/**鎬诲姛鐜�*/
-	@Excel(name = "鎬诲姛鐜�", width = 15)
-	@ApiModelProperty(value = "鎬诲姛鐜�")
-	private java.lang.String equipmentPower;
-	/**瀹夎浣嶇疆*/
-	@Excel(name = "瀹夎浣嶇疆", width = 15)
-	@ApiModelProperty(value = "瀹夎浣嶇疆")
-	private java.lang.String installationPosition;
-	/**璧勪骇鐘舵��*/
-	@Excel(name = "璧勪骇鐘舵��", width = 15, dicCode = "asset_status")
+    private java.lang.String equipmentSpecification;
+    /**
+     * 涓昏酱杩炴帴灏哄
+     */
+    @Excel(name = "涓昏酱杩炴帴灏哄", width = 25)
+    @ApiModelProperty(value = "涓昏酱杩炴帴灏哄")
+    private java.lang.String spindleConnectDimension;
+    /**
+     * 鎬诲姛鐜�
+     */
+    @Excel(name = "鎬诲姛鐜�", width = 15)
+    @ApiModelProperty(value = "鎬诲姛鐜�")
+    private java.lang.String equipmentPower;
+    /**
+     * 瀹夎浣嶇疆
+     */
+    @Excel(name = "瀹夎浣嶇疆", width = 15)
+    @ApiModelProperty(value = "瀹夎浣嶇疆")
+    private java.lang.String installationPosition;
+    /**
+     * 璧勪骇鐘舵��
+     */
+    @Excel(name = "璧勪骇鐘舵��", width = 15, dicCode = "asset_status")
     @ApiModelProperty(value = "璧勪骇鐘舵��")
-	@Dict(dicCode = "asset_status")
-	private java.lang.String assetStatus;
-	/**绔嬮」鍗″彿*/
-	@Excel(name = "绔嬮」鍗″彿", width = 15)
-	@ApiModelProperty(value = "绔嬮」鍗″彿")
-	private java.lang.String cardNumber;
-	/**鍑哄巶缂栧彿*/
-	@Excel(name = "鍑哄巶缂栧彿", width = 15)
-	@ApiModelProperty(value = "鍑哄巶缂栧彿")
-	private java.lang.String factoryNumber;
-	/**鏈哄簥鍘傚*/
-	@Excel(name = "鏈哄簥鍘傚", width = 15)
-	@ApiModelProperty(value = "鏈哄簥鍘傚")
-	private java.lang.String manufacturingEnterprise;
-	/**鏉ユ簮鍥藉*/
-	@Excel(name = "鏈哄簥鏉ユ簮鍥藉", width = 25)
-	@ApiModelProperty(value = "鏉ユ簮鍥藉")
-	private java.lang.String originCountry;
-	/**鍑哄巶鏃ユ湡*/
-	@Excel(name = "鍑哄巶鏃ユ湡", width = 25, format = "yyyy-MM-dd")
-	@ApiModelProperty(value = "鍑哄巶鏃ユ湡")
-	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
-	@DateTimeFormat(pattern = "yyyy-MM-dd")
-	private java.util.Date leaveFactoryDate;
-	/**楠屾敹鏃ユ湡*/
-	@Excel(name = "楠屾敹鏃ユ湡", width = 25, format = "yyyy-MM-dd")
-	@ApiModelProperty(value = "楠屾敹鏃ユ湡")
-	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
-	@DateTimeFormat(pattern = "yyyy-MM-dd")
-	private java.util.Date acceptanceCheckDate;
-	/**璐ㄤ繚寮�濮嬫棩鏈�*/
-	@Excel(name = "璐ㄤ繚寮�濮嬫棩鏈�", width = 25, format = "yyyy-MM-dd")
-	@ApiModelProperty(value = "璐ㄤ繚寮�濮嬫棩鏈�")
-	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
-	@DateTimeFormat(pattern = "yyyy-MM-dd")
-	private java.util.Date warrantyStartDate;
-	/**璐ㄤ繚缁撴潫鏃ユ湡*/
-	@Excel(name = "璐ㄤ繚缁撴潫鏃ユ湡", width = 25, format = "yyyy-MM-dd")
-	@ApiModelProperty(value = "璐ㄤ繚缁撴潫鏃ユ湡")
-	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
-	@DateTimeFormat(pattern = "yyyy-MM-dd")
-	private java.util.Date warrantyEndDate;
-	/**鏄惁瀹炴柦MDC*/
-	@Excel(name = "鏄惁瀹炴柦MDC", width = 15, dicCode = "yn")
-	@ApiModelProperty(value = "鏄惁瀹炴柦MDC")
-	private java.lang.String mdcFlag;
-	/*=====================涓婇潰鏄矁鍏嬫ā鏉垮瓧娈�======================*/
-	/**鐗圭璁惧;鏄惁涓虹壒绉嶈澶�*/
+    @Dict(dicCode = "asset_status")
+    private java.lang.String assetStatus;
+    /**
+     * 绔嬮」鍗″彿
+     */
+    @Excel(name = "绔嬮」鍗″彿", width = 15)
+    @ApiModelProperty(value = "绔嬮」鍗″彿")
+    private java.lang.String cardNumber;
+    /**
+     * 鍑哄巶缂栧彿
+     */
+    @Excel(name = "鍑哄巶缂栧彿", width = 15)
+    @ApiModelProperty(value = "鍑哄巶缂栧彿")
+    private java.lang.String factoryNumber;
+    /**
+     * 鏈哄簥鍘傚
+     */
+    @Excel(name = "鏈哄簥鍘傚", width = 15)
+    @ApiModelProperty(value = "鏈哄簥鍘傚")
+    private java.lang.String manufacturingEnterprise;
+    /**
+     * 鏉ユ簮鍥藉
+     */
+    @Excel(name = "鏈哄簥鏉ユ簮鍥藉", width = 25)
+    @ApiModelProperty(value = "鏉ユ簮鍥藉")
+    private java.lang.String originCountry;
+    /**
+     * 鍑哄巶鏃ユ湡
+     */
+    @Excel(name = "鍑哄巶鏃ユ湡", width = 25, format = "yyyy-MM-dd")
+    @ApiModelProperty(value = "鍑哄巶鏃ユ湡")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private java.util.Date leaveFactoryDate;
+    /**
+     * 楠屾敹鏃ユ湡
+     */
+    @Excel(name = "楠屾敹鏃ユ湡", width = 25, format = "yyyy-MM-dd")
+    @ApiModelProperty(value = "楠屾敹鏃ユ湡")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private java.util.Date acceptanceCheckDate;
+    /**
+     * 璐ㄤ繚寮�濮嬫棩鏈�
+     */
+    @Excel(name = "璐ㄤ繚寮�濮嬫棩鏈�", width = 25, format = "yyyy-MM-dd")
+    @ApiModelProperty(value = "璐ㄤ繚寮�濮嬫棩鏈�")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private java.util.Date warrantyStartDate;
+    /**
+     * 璐ㄤ繚缁撴潫鏃ユ湡
+     */
+    @Excel(name = "璐ㄤ繚缁撴潫鏃ユ湡", width = 25, format = "yyyy-MM-dd")
+    @ApiModelProperty(value = "璐ㄤ繚缁撴潫鏃ユ湡")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private java.util.Date warrantyEndDate;
+    /**
+     * 鏄惁瀹炴柦MDC
+     */
+    @Excel(name = "鏄惁瀹炴柦MDC", width = 15, dicCode = "yn")
+    @ApiModelProperty(value = "鏄惁瀹炴柦MDC")
+    private java.lang.String mdcFlag;
+    /*=====================涓婇潰鏄矁鍏嬫ā鏉垮瓧娈�======================*/
+    /**
+     * 鐗圭璁惧;鏄惁涓虹壒绉嶈澶�
+     */
     @ApiModelProperty(value = "鏄惁鐗圭璁惧")
-	private java.lang.String specialEquipment;
-	/**璁惧鍥剧墖*/
+    private java.lang.String specialEquipment;
+    /**
+     * 璁惧鍥剧墖
+     */
     @ApiModelProperty(value = "璁惧鍥剧墖")
-	private java.lang.String equipmentImage;
-	/**閲嶉噺*/
+    private java.lang.String equipmentImage;
+    /**
+     * 閲嶉噺
+     */
     @ApiModelProperty(value = "閲嶉噺")
-	private java.lang.String equipmentWeight;
-	/**鏄惁鏈夊伐鑹哄弬鏁�*/
+    private java.lang.String equipmentWeight;
+    /**
+     * 鏄惁鏈夊伐鑹哄弬鏁�
+     */
     @ApiModelProperty(value = "鏄惁鏈夊伐鑹哄弬鏁�")
-	private java.lang.String processParametersFlag;
-	/**鏄惁鏈夌簿搴﹀弬鏁�*/
+    private java.lang.String processParametersFlag;
+    /**
+     * 鏄惁鏈夌簿搴﹀弬鏁�
+     */
     @ApiModelProperty(value = "鏄惁鏈夌簿搴﹀弬鏁�")
-	private java.lang.String precisionParametersFlag;
-	/**璁惧绔彛*/
+    private java.lang.String precisionParametersFlag;
+    /**
+     * 璁惧绔彛
+     */
     @ApiModelProperty(value = "璁惧绔彛")
-	private java.lang.String equipmentPort;
-	/**鍧愭爣鏁伴噺*/
+    private java.lang.String equipmentPort;
+    /**
+     * 鍧愭爣鏁伴噺
+     */
     @ApiModelProperty(value = "鍧愭爣鏁伴噺")
-	private java.lang.Integer coordinateNum;
-	/**澶囨敞*/
+    private java.lang.Integer coordinateNum;
+    /**
+     * 澶囨敞
+     */
     @ApiModelProperty(value = "澶囨敞")
-	private java.lang.String remark;
-	@ApiModelProperty(value = "MDC璁惧绫诲瀷")
-	private String deviceType;
+    private java.lang.String remark;
+    @ApiModelProperty(value = "MDC璁惧绫诲瀷")
+    private String deviceType;
 
-	@TableField(exist = false)
-	@ApiModelProperty(value = "缁翠慨鐘舵��")
-	@Dict(dicCode = "equipment_repair_status")
-	private String repairStatus;
+    @TableField(exist = false)
+    @ApiModelProperty(value = "缁翠慨鐘舵��")
+    @Dict(dicCode = "equipment_repair_status")
+    private String repairStatus;
 
-	@TableField(exist = false)
-	@ApiModelProperty(value = "淇濆吇鐘舵��")
-	@Dict(dicCode = "equipment_maintenance_status")
-	private String maintenanceStatus;
+    @TableField(exist = false)
+    @ApiModelProperty(value = "淇濆吇鐘舵��")
+    @Dict(dicCode = "equipment_maintenance_status")
+    private String maintenanceStatus;
+
+    @TableField(exist = false)
+    private String value;
+    @TableField(exist = false)
+    private String text;
+
+    public String getValue() {
+        return this.id;
+    }
+
+    public String getText() {
+        return this.equipmentCode + "[" + this.equipmentName + "]";
+    }
 }
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentFaultReason.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentFaultReason.java
index c4ebc41..dabe79a 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentFaultReason.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentFaultReason.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;
@@ -63,4 +64,9 @@
     @ApiModelProperty(value = "鏁呴殰鍒嗙被")
 	@Dict(dicCode = "fault_reason_category")
 	private String faultCategory;
+
+	@TableField(exist = false)
+	private String text;
+	@TableField(exist = false)
+	private String value;
 }
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentHistoryLog.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentHistoryLog.java
index 917b058..6008547 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentHistoryLog.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentHistoryLog.java
@@ -3,12 +3,15 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
 import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
 
@@ -35,6 +38,8 @@
 	private java.lang.String createBy;
 	/**鍒涘缓鏃堕棿*/
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private java.util.Date createTime;
 	/**璁惧ID*/
 	@Excel(name = "璁惧ID", width = 15)
@@ -43,10 +48,12 @@
 	/**鎿嶄綔鏍囩*/
 	@Excel(name = "鎿嶄綔鏍囩", width = 15)
     @ApiModelProperty(value = "鎿嶄綔鏍囩")
+	@Dict(dicCode = "equipment_operation_tag")
 	private java.lang.String operationTag;
 	/**鎿嶄綔浜�*/
 	@Excel(name = "鎿嶄綔浜�", width = 15)
     @ApiModelProperty(value = "鎿嶄綔浜�")
+	@Dict(dicCode = "sys_user, realname, username")
 	private java.lang.String operator;
 	/**鎿嶄綔鎻忚堪*/
 	@Excel(name = "鎿嶄綔鎻忚堪", width = 15)
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrder.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrder.java
similarity index 87%
rename from lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrder.java
rename to lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrder.java
index bb2358a..863aa72 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrder.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrder.java
@@ -1,9 +1,6 @@
 package org.jeecg.modules.eam.entity;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -16,7 +13,6 @@
 
 import java.io.Serializable;
 import java.util.Date;
-import java.util.List;
 
 /**
  * @Description: 鐐规宸ュ崟
@@ -65,12 +61,11 @@
 	/**璁惧ID*/
 	@Excel(name = "璁惧ID", width = 15)
     @ApiModelProperty(value = "璁惧ID")
-    @Dict(dictTable = "eam_equipment", dicCode = "id", dicText = "equipment_code")
     private String equipmentId;
 	/**鏍囧噯ID*/
 	@Excel(name = "淇濆吇鏍囧噯ID", width = 15)
     @ApiModelProperty(value = "淇濆吇鏍囧噯ID")
-    @Dict(dictTable = "eam_maintenance_standard", dicCode = "id", dicText = "standard_code")
+    @Dict(dictTable = "eam_maintenance_standard", dicCode = "id", dicText = "standard_name")
     private String standardId;
 	/**鐐规鏃ユ湡*/
 	@Excel(name = "鐐规鏃ユ湡锛堣鍒掞級", width = 15, format = "yyyy-MM-dd")
@@ -116,6 +111,13 @@
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "纭鏃堕棿")
     private Date confirmTime;
+    /**纭鎰忚*/
+    @ApiModelProperty(value = "纭鎰忚")
+    private String confirmComment;
+    /** 纭绫诲瀷 1 閫氳繃  2 椹冲洖 */
+    @ApiModelProperty(value = "纭绫诲瀷")
+    @Dict(dicCode = "approved_rejected")
+    private String confirmDealType;
 	/**澶囨敞*/
 	@Excel(name = "澶囨敞", width = 15)
     @ApiModelProperty(value = "澶囨敞-鐐规宸ュ崟鍒涘缓澶囨敞")
@@ -135,15 +137,7 @@
     @ApiModelProperty(value = "璁惧缂栧彿")
     private transient String equipmentCode;
 
-    /**鍒楄〃 淇濆吇椤规槑缁�*/
-    @ApiModelProperty(value = "鍒楄〃 淇濆吇椤规槑缁�")
-    private transient List<EamInspectionOrderDetail> tableDetailList;
-
-    /**澶勭悊绫诲瀷*/
-    @ApiModelProperty(value = "澶勭悊绫诲瀷")
-    private transient String dealType;
-
-    /**澶勭悊鎰忚*/
-    @ApiModelProperty(value = "澶勭悊鎰忚")
-    private transient String dealSuggestion;
+    @ApiModelProperty(value = "璁惧鍚嶇О")
+    @TableField(exist = false)
+    private String equipmentName;
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java
similarity index 91%
rename from lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java
rename to lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java
index 9d50b04..8d2c264 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java
@@ -71,6 +71,16 @@
     @ApiModelProperty(value = "缁翠慨缁撴潫鏃堕棿")
     private Date actualEndTime;
     /**
+     * 鏄惁棰嗙敤澶囦欢 1锛氭槸  0锛氬惁
+     */
+    @ApiModelProperty(value = "鏄惁棰嗙敤澶囦欢")
+    private Integer isUseSpare;
+    /**
+     * 澶囦欢鎻忚堪
+     */
+    @ApiModelProperty(value = "澶囦欢鎻忚堪")
+    private String sparePartDescription;
+    /**
      * 鏁呴殰鍘熷洜
      */
     @Excel(name = "鏁呴殰鍘熷洜", width = 15)
@@ -87,6 +97,7 @@
      */
     @Excel(name = "缁翠慨璐熻矗浜�", width = 15)
     @ApiModelProperty(value = "缁翠慨璐熻矗浜�")
+    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
     private String repairer;
     /**
      * 鏄惁濮斿
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamReportRepair.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamReportRepair.java
similarity index 93%
rename from lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamReportRepair.java
rename to lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamReportRepair.java
index 1cdc36e..714cf42 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamReportRepair.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamReportRepair.java
@@ -8,6 +8,7 @@
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import org.jeecg.common.api.vo.FileUploadResult;
 import org.jeecg.common.aspect.annotation.Dict;
 import org.jeecg.common.system.base.entity.JeecgEntity;
 import org.jeecgframework.poi.excel.annotation.Excel;
@@ -15,6 +16,7 @@
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @Description: 鏁呴殰鎶ヤ慨
@@ -97,6 +99,12 @@
     @Excel(name = "鐓х墖", width = 15, type = 2)
     @ApiModelProperty(value = "鐓х墖")
     private String imageFiles;
+
+    /**鐓х墖*/
+    @ApiModelProperty(value = "鐓х墖")
+    @TableField(exist = false)
+    private List<FileUploadResult> imageFilesResult;
+
     /**
      * 澶囨敞
      */
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrder.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrder.java
similarity index 94%
rename from lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrder.java
rename to lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrder.java
index 6c4d814..260f414 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrder.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrder.java
@@ -96,6 +96,10 @@
 	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
 	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private Date confirmTime;
+	/** 纭绫诲瀷 1 閫氳繃  2 椹冲洖 */
+	@ApiModelProperty(value = "纭绫诲瀷")
+	@Dict(dicCode = "approved_rejected")
+	private String confirmDealType;
 	/**淇濆吇鎵ц鍥剧墖;id浠ラ�楀彿鍒嗛殧*/
     @ApiModelProperty(value = "淇濆吇鎵ц鍥剧墖;id浠ラ�楀彿鍒嗛殧")
 	private String imageFiles;
@@ -107,6 +111,7 @@
 	private String confirmComment;
 	/**鍒濋獙鏀朵汉*/
 	@ApiModelProperty(value = "鍒濋獙鏀朵汉")
+	@Dict(dicCode = "sys_user, realname, username")
 	private String initialAcceptanceUser;
 	/**鍒濋獙鏀舵椂闂�*/
 	@ApiModelProperty(value = "鍒濋獙鏀舵椂闂�")
@@ -121,6 +126,7 @@
 	private String initialAcceptanceFiles;
 	/**缁堥獙鏀朵汉*/
 	@ApiModelProperty(value = "缁堥獙鏀朵汉")
+	@Dict(dicCode = "sys_user, realname, username")
 	private String finalAcceptanceUser;
 	/**缁堥獙鏀舵椂闂�*/
 	@ApiModelProperty(value = "缁堥獙鏀舵椂闂�")
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java
index bede1d1..40293d6 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java
@@ -4,6 +4,7 @@
 
 @Data
 public class EamEquipmentQuery {
+    private String id;
     private String equipmentCode;
     private String equipmentName;
     private String equipmentImportance;
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentExtendService.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentExtendService.java
index f24e398..c886331 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentExtendService.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentExtendService.java
@@ -10,5 +10,19 @@
  * @Version: V1.0
  */
 public interface IEamEquipmentExtendService extends IService<EamEquipmentExtend> {
+    /**
+     * 鏇存柊璁惧淇濆吇鐘舵��
+     * @param equipmentId 璁惧id
+     * @param status 鐘舵��
+     * @return
+     */
+    boolean updateEquipmentMaintenanceStatus(String equipmentId, String status);
 
+    /**
+     * 鏇存柊璁惧缁翠慨鐘舵��
+     * @param equipmentId 璁惧id
+     * @param status 鐘舵��
+     * @return
+     */
+    boolean updateEquipmentRepairStatus(String equipmentId, String status);
 }
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentExtendServiceImpl.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentExtendServiceImpl.java
index eceed0f..b7c322d 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentExtendServiceImpl.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentExtendServiceImpl.java
@@ -6,14 +6,43 @@
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
 
 /**
  * @Description: 璁惧鍙拌处鎵╁睍琛�
  * @Author: jeecg-boot
- * @Date:   2025-03-19
+ * @Date: 2025-03-19
  * @Version: V1.0
  */
 @Service
 public class EamEquipmentExtendServiceImpl extends ServiceImpl<EamEquipmentExtendMapper, EamEquipmentExtend> implements IEamEquipmentExtendService {
 
+    @Resource
+    private EamEquipmentExtendMapper eamEquipmentExtendMapper;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean updateEquipmentMaintenanceStatus(String equipmentId, String status) {
+        EamEquipmentExtend entity = eamEquipmentExtendMapper.selectById(equipmentId);
+        if (entity == null) {
+            return false;
+        }
+        entity.setMaintenanceStatus(status);
+        eamEquipmentExtendMapper.updateById(entity);
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean updateEquipmentRepairStatus(String equipmentId, String status) {
+        EamEquipmentExtend entity = eamEquipmentExtendMapper.selectById(equipmentId);
+        if (entity == null) {
+            return false;
+        }
+        entity.setRepairStatus(status);
+        eamEquipmentExtendMapper.updateById(entity);
+        return true;
+    }
 }
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
index f4fcd30..b508ae8 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
@@ -103,6 +103,7 @@
     @Override
     public IPage<EamEquipment> queryPageList(IPage<EamEquipment> page, EamEquipmentQuery eamEquipment) {
         QueryWrapper<EamEquipment> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("e.del_flag", CommonConstant.DEL_FLAG_0);
         //鐢ㄦ埛鏁版嵁鏉冮檺
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         if (sysUser == null) {
@@ -142,6 +143,9 @@
             if (StringUtils.isNotBlank(eamEquipment.getEquipmentCategory())) {
                 queryWrapper.like("e.equipment_category", eamEquipment.getEquipmentCategory());
             }
+            if (StringUtils.isNotBlank(eamEquipment.getId())) {
+                queryWrapper.eq("e.id", eamEquipment.getId());
+            }
             //鎺掑簭
             if (StringUtils.isNotBlank(eamEquipment.getColumn()) && StringUtils.isNotBlank(eamEquipment.getOrder())) {
                 //queryWrapper.like("column", eamEquipment.getColumn());
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentAttachmentController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentAttachmentController.java
new file mode 100644
index 0000000..5ec3396
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentAttachmentController.java
@@ -0,0 +1,158 @@
+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.apache.commons.lang3.StringUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.eam.entity.EamEquipmentAttachment;
+import org.jeecg.modules.eam.request.EamEquipmentAttachmentRequest;
+import org.jeecg.modules.eam.service.IEamEquipmentAttachmentService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * @Description: 璁惧鏂囨。鍙拌处浣跨敤
+ * @Author: jeecg-boot
+ * @Date:   2025-04-16
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags="璁惧鏂囨。鍙拌处浣跨敤")
+@RestController
+@RequestMapping("/eam/equipmentAttachment")
+public class EamEquipmentAttachmentController extends JeecgController<EamEquipmentAttachment, IEamEquipmentAttachmentService> {
+	@Autowired
+	private IEamEquipmentAttachmentService eamEquipmentAttachmentService;
+	
+	/**
+	 * 鍒嗛〉鍒楄〃鏌ヨ
+	 *
+	 * @param eamEquipmentAttachment
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@AutoLog(value = "璁惧鏂囨。鍙拌处浣跨敤-鍒嗛〉鍒楄〃鏌ヨ")
+	@ApiOperation(value="璁惧鏂囨。鍙拌处浣跨敤-鍒嗛〉鍒楄〃鏌ヨ", notes="璁惧鏂囨。鍙拌处浣跨敤-鍒嗛〉鍒楄〃鏌ヨ")
+	@GetMapping(value = "/list")
+	public Result<?> queryPageList(EamEquipmentAttachment eamEquipmentAttachment,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		Page<EamEquipmentAttachment> page = new Page<>(pageNo, pageSize);
+		if(StringUtils.isBlank(eamEquipmentAttachment.getEquipmentId())) {
+			return Result.OK(page);
+		}
+		//鍙繚鐣欒澶噄d
+		EamEquipmentAttachment query = new EamEquipmentAttachment();
+		query.setEquipmentId(eamEquipmentAttachment.getEquipmentId());
+		QueryWrapper<EamEquipmentAttachment> queryWrapper = QueryGenerator.initQueryWrapper(eamEquipmentAttachment, req.getParameterMap());
+		queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0);
+		IPage<EamEquipmentAttachment> pageList = eamEquipmentAttachmentService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 * 娣诲姞
+	 *
+	 * @param request
+	 * @return
+	 */
+	@AutoLog(value = "璁惧鏂囨。鍙拌处浣跨敤-娣诲姞")
+	@ApiOperation(value="璁惧鏂囨。鍙拌处浣跨敤-娣诲姞", notes="璁惧鏂囨。鍙拌处浣跨敤-娣诲姞")
+	@PostMapping(value = "/add")
+	public Result<?> add(@RequestBody EamEquipmentAttachmentRequest request) {
+		boolean b = eamEquipmentAttachmentService.saveEntity(request);
+		if(!b) {
+			return Result.OK("鎿嶄綔澶辫触锛�");
+		}
+		return Result.OK("娣诲姞鎴愬姛锛�");
+	}
+	
+	/**
+	 * 缂栬緫
+	 *
+	 * @param eamEquipmentAttachment
+	 * @return
+	 */
+	@AutoLog(value = "璁惧鏂囨。鍙拌处浣跨敤-缂栬緫")
+	@ApiOperation(value="璁惧鏂囨。鍙拌处浣跨敤-缂栬緫", notes="璁惧鏂囨。鍙拌处浣跨敤-缂栬緫")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<?> edit(@RequestBody EamEquipmentAttachment eamEquipmentAttachment) {
+		eamEquipmentAttachmentService.updateById(eamEquipmentAttachment);
+		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) {
+		EamEquipmentAttachment entity = eamEquipmentAttachmentService.getById(id);
+		if(entity != null) {
+			entity.setDelFlag(CommonConstant.DEL_FLAG_1);
+			eamEquipmentAttachmentService.updateById(entity);
+		}
+		return Result.OK("鍒犻櫎鎴愬姛!");
+	}
+	
+	/**
+	 * 鎵归噺鍒犻櫎
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "璁惧鏂囨。鍙拌处浣跨敤-鎵归噺鍒犻櫎")
+	@ApiOperation(value="璁惧鏂囨。鍙拌处浣跨敤-鎵归噺鍒犻櫎", notes="璁惧鏂囨。鍙拌处浣跨敤-鎵归噺鍒犻櫎")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		List<String> list = Arrays.asList(ids.split(","));
+		list.forEach(id -> {
+			EamEquipmentAttachment entity = eamEquipmentAttachmentService.getById(id);
+			if(entity != null) {
+				entity.setDelFlag(CommonConstant.DEL_FLAG_1);
+				eamEquipmentAttachmentService.updateById(entity);
+			}
+		});
+		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) {
+		EamEquipmentAttachment eamEquipmentAttachment = eamEquipmentAttachmentService.getById(id);
+		return Result.OK(eamEquipmentAttachment);
+	}
+
+	 @GetMapping("/downloadFile")
+	 public void downloadFile(@RequestParam("id") String id, HttpServletResponse response) {
+		 eamEquipmentAttachmentService.downloadFile(response, eamEquipmentAttachmentService.getById(id));
+	 }
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
index e5a735d..b704de3 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
@@ -1,8 +1,12 @@
 package org.jeecg.modules.eam.controller;
 
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.parser.Feature;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 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 +14,11 @@
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.util.TranslateDictTextUtils;
 import org.jeecg.modules.eam.entity.EamEquipment;
+import org.jeecg.modules.eam.entity.EamEquipmentExtend;
 import org.jeecg.modules.eam.request.EamEquipmentQuery;
+import org.jeecg.modules.eam.service.IEamEquipmentExtendService;
 import org.jeecg.modules.eam.service.IEamEquipmentService;
 import org.jeecg.modules.eam.vo.EamEquipmentTree;
 import org.jeecg.modules.eam.vo.EquipmentSearchResult;
@@ -47,7 +54,15 @@
     private IEamEquipmentService eamEquipmentService;
 
     @Autowired
+    private IEamEquipmentExtendService eamEquipmentExtendService;
+
+    @Autowired
     private IMdcEquipmentService mdcEquipmentService;
+
+    @Autowired
+    private ObjectMapper objectMapper;
+    @Autowired
+    private TranslateDictTextUtils translateDictTextUtils;
 
     /**
      * 鍒嗛〉鍒楄〃鏌ヨ
@@ -155,7 +170,30 @@
     @GetMapping(value = "/queryById")
     public Result<?> queryById(@RequestParam(name = "id", required = true) String id) {
         EamEquipment eamEquipment = eamEquipmentService.getById(id);
-        return Result.OK(eamEquipment);
+        if (eamEquipment == null) {
+            return Result.error("鏈壘鍒板搴旀暟鎹�");
+        }
+        EamEquipmentExtend extend = eamEquipmentExtendService.getById(id);
+        if(extend != null){
+            eamEquipment.setRepairStatus(extend.getRepairStatus());
+            eamEquipment.setMaintenanceStatus(extend.getMaintenanceStatus());
+        }
+        try {
+            String json = objectMapper.writeValueAsString(eamEquipment);
+            JSONObject item = JSONObject.parseObject(json, Feature.OrderedField);
+            translateDictTextUtils.translateField("createBy", eamEquipment.getCreateBy(), item, "sys_user,realname,username");
+            translateDictTextUtils.translateField("updateBy", eamEquipment.getUpdateBy(), item, "sys_user,realname,username");
+            translateDictTextUtils.translateField("technologyStatus", eamEquipment.getTechnologyStatus(), item, "technology_status");
+            translateDictTextUtils.translateField("orgId", eamEquipment.getOrgId(), item, "mdc_production,production_name,id");
+            translateDictTextUtils.translateField("equipmentManager", eamEquipment.getEquipmentManager(), item, "sys_user,realname,username");
+            translateDictTextUtils.translateField("equipmentCategory", eamEquipment.getEquipmentCategory(), item, "equipment_category");
+            translateDictTextUtils.translateField("assetStatus", eamEquipment.getAssetStatus(), item, "asset_status");
+            translateDictTextUtils.translateField("repairStatus", eamEquipment.getRepairStatus(), item, "equipment_repair_status");
+            translateDictTextUtils.translateField("maintenanceStatus", eamEquipment.getMaintenanceStatus(), item, "equipment_maintenance_status");
+            return Result.OK(item);
+        } catch (JsonProcessingException e) {
+            return Result.error("鏁版嵁杞瘧澶辫触锛�");
+        }
     }
 
     /**
@@ -187,6 +225,8 @@
             params.setTitleRows(0);
             params.setHeadRows(1);
             params.setNeedSave(true);
+            params.setStartSheetIndex(0);
+            params.setSheetNum(1);
             try {
                 List<EamEquipment> list = ExcelImportUtil.importExcel(file.getInputStream(), EamEquipment.class, params);
                 //update-begin-author:taoyan date:20190528 for:鎵归噺鎻掑叆鏁版嵁
@@ -207,10 +247,10 @@
                         sb.append(String.format("璁惧缂栫爜[%s]浣跨敤杞﹂棿鎴栬澶囩鐞嗗憳涓虹┖锛屾棤娉曞鍏n\n", eamEquipment.getEquipmentCode()));
                         continue;
                     }
-                    if (eamEquipment.getAcceptanceCheckDate() == null) {
-                        sb.append(String.format("璁惧缂栫爜[%s]楠屾敹涓虹┖锛屾棤娉曞鍏n\r", eamEquipment.getEquipmentCode()));
-                        continue;
-                    }
+//                    if (eamEquipment.getAcceptanceCheckDate() == null) {
+//                        sb.append(String.format("璁惧缂栫爜[%s]楠屾敹涓虹┖锛屾棤娉曞鍏n\r", eamEquipment.getEquipmentCode()));
+//                        continue;
+//                    }
                     if (StringUtils.isBlank(eamEquipment.getTechnologyStatus())) {
                         sb.append(String.format("璁惧缂栫爜[%s]鎶�鏈姸鎬佷负绌猴紝鏃犳硶瀵煎叆\n\r", eamEquipment.getEquipmentCode()));
                         continue;
@@ -220,6 +260,9 @@
                         sb.append(String.format("璁惧缂栫爜[%s]宸插瓨鍦紝鏃犳硶閲嶅瀵煎叆\n\r", eamEquipment.getEquipmentCode()));
                         continue;
                     }
+                    if (!CommonConstant.DEFAULT_1.equals(eamEquipment.getMdcFlag())) {
+                        eamEquipment.setMdcFlag(CommonConstant.DEFAULT_0);
+                    }
                     EamEquipment equipment = eamEquipmentService.saveEquipment(eamEquipment);
                     if (equipment == null) {
                         //淇濆瓨澶辫触锛岃烦杩囨湰娆″惊鐜�
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentFaultReasonController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentFaultReasonController.java
index 6680dbb..6b23d3d 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentFaultReasonController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentFaultReasonController.java
@@ -22,8 +22,9 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.util.Arrays;
+import java.util.List;
 
- /**
+/**
  * @Description: 璁惧鏁呴殰鍘熷洜缁存姢
  * @Author: jeecg-boot
  * @Date:   2025-03-19
@@ -58,6 +59,11 @@
 		queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0);
 		Page<EamEquipmentFaultReason> page = new Page<EamEquipmentFaultReason>(pageNo, pageSize);
 		IPage<EamEquipmentFaultReason> pageList = eamEquipmentFaultReasonService.page(page, queryWrapper);
+		List<EamEquipmentFaultReason> records = pageList.getRecords();
+		records.forEach(r ->{
+			r.setText(r.getFaultName());
+			r.setValue(r.getId());
+		});
 		return Result.OK(pageList);
 	}
 	
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentHistoryLogController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentHistoryLogController.java
index 1298c93..6b1f782 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentHistoryLogController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentHistoryLogController.java
@@ -1,26 +1,44 @@
 package org.jeecg.modules.eam.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.system.base.controller.JeecgController;
 import org.jeecg.modules.eam.entity.EamEquipmentHistoryLog;
+import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrder;
 import org.jeecg.modules.eam.service.IEamEquipmentHistoryLogService;
 import org.springframework.beans.factory.annotation.Autowired;
+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;
 
- /**
+/**
  * @Description: 璁惧灞ュ巻
  * @Author: jeecg-boot
- * @Date:   2025-03-19
+ * @Date: 2025-03-19
  * @Version: V1.0
  */
 @Slf4j
-@Api(tags="璁惧灞ュ巻")
+@Api(tags = "璁惧灞ュ巻")
 @RestController
 @RequestMapping("/eam/equipmentHistoryLog")
 public class EamEquipmentHistoryLogController extends JeecgController<EamEquipmentHistoryLog, IEamEquipmentHistoryLogService> {
-	@Autowired
-	private IEamEquipmentHistoryLogService eamEquipmentHistoryLogService;
+    @Autowired
+    private IEamEquipmentHistoryLogService eamEquipmentHistoryLogService;
+
+    @ApiOperation(value = "璁惧灞ュ巻-鑾峰彇璁惧鏈�鏂板饱鍘嗕俊鎭�", notes = "璁惧灞ュ巻-鑾峰彇璁惧鏈�鏂板饱鍘嗕俊鎭�")
+    @GetMapping(value = "/list")
+    public Result<?> selectEquipmentHistoryLog(@RequestParam("equipmentId") String equipmentId, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
+		Page<EamEquipmentHistoryLog> page = new Page<>(pageNo, pageSize);
+		LambdaQueryWrapper<EamEquipmentHistoryLog> queryWrapper = new LambdaQueryWrapper<>();
+		queryWrapper.eq(EamEquipmentHistoryLog::getEquipmentId, equipmentId);
+		queryWrapper.orderByDesc(EamEquipmentHistoryLog::getCreateTime);
+		Page<EamEquipmentHistoryLog> resultPage = eamEquipmentHistoryLogService.page(page, queryWrapper);
+		return Result.ok(resultPage);
+    }
 
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java
index 428905e..ea4d9df 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java
@@ -1,21 +1,30 @@
 package org.jeecg.modules.eam.controller;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import cn.hutool.core.collection.CollectionUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.parser.Feature;
 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;
 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.common.util.TranslateDictTextUtils;
 import org.jeecg.modules.eam.constant.BusinessCodeConst;
+import org.jeecg.modules.eam.constant.InspectionStatus;
 import org.jeecg.modules.eam.constant.OrderCreationMethodEnum;
 import org.jeecg.modules.eam.entity.EamInspectionOrder;
+import org.jeecg.modules.eam.entity.EamInspectionOrderDetail;
+import org.jeecg.modules.eam.request.EamInspectionBatchApprovalRequest;
+import org.jeecg.modules.eam.request.EamInspectionOrderQuery;
 import org.jeecg.modules.eam.request.EamInspectionOrderRequest;
+import org.jeecg.modules.eam.service.IEamInspectionOrderDetailService;
 import org.jeecg.modules.eam.service.IEamInspectionOrderService;
-import org.jeecg.modules.eam.service.IEamMaintenanceStandardService;
+import org.jeecg.modules.flowable.domain.vo.WorkTaskDataVo;
 import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -24,195 +33,282 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.util.Arrays;
+import java.util.List;
 
- /**
+/**
  * @Description: 鐐规宸ュ崟
  * @Author: jeecg-boot
- * @Date:   2025-04-02
+ * @Date: 2025-04-02
  * @Version: V1.0
  */
-@Api(tags="鐐规宸ュ崟")
+@Api(tags = "鐐规宸ュ崟")
 @RestController
 @RequestMapping("/eam/eamInspectionOrder")
 @Slf4j
 public class EamInspectionOrderController extends JeecgController<EamInspectionOrder, IEamInspectionOrderService> {
-	 @Autowired
-	 private IEamInspectionOrderService eamInspectionOrderService;
-	 @Autowired
-	 private ISysBusinessCodeRuleService businessCodeRuleService;
-	 @Autowired
-	 private IEamMaintenanceStandardService eamMaintenanceStandardService;
-	/**
-	 * 鍒嗛〉鍒楄〃鏌ヨ
-	 *
-	 * @param eamInspectionOrder
-	 * @param pageNo
-	 * @param pageSize
-	 * @param req
-	 * @return
-	 */
-	//@AutoLog(value = "鐐规宸ュ崟-鍒嗛〉鍒楄〃鏌ヨ")
-	@ApiOperation(value="鐐规宸ュ崟-鍒嗛〉鍒楄〃鏌ヨ", notes="鐐规宸ュ崟-鍒嗛〉鍒楄〃鏌ヨ")
-	@GetMapping(value = "/list")
-	public Result<IPage<EamInspectionOrder>> queryPageList(EamInspectionOrder eamInspectionOrder,
-								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-								   HttpServletRequest req) {
-		QueryWrapper<EamInspectionOrder> queryWrapper = QueryGenerator.initQueryWrapper(eamInspectionOrder, req.getParameterMap());
-		Page<EamInspectionOrder> page = new Page<EamInspectionOrder>(pageNo, pageSize);
-		IPage<EamInspectionOrder> pageList = eamInspectionOrderService.page(page, queryWrapper);
-		return Result.OK(pageList);
-	}
-
-	 /**
-	  * 鏌ヨ鐐规宸ュ崟鍩烘湰淇℃伅
-	  * @param id
-	  * @return
-	  */
-	 @ApiOperation(value = "鏌ヨ鐐规宸ュ崟鍩烘湰淇℃伅", notes = "鏌ヨ鐐规宸ュ崟鍩烘湰淇℃伅")
-	 @GetMapping(value = "/selectVoById")
-	 public Result<?> selectVoById(@RequestParam(name="id") String id){
-		 return eamInspectionOrderService.selectVoById(id);
-	 }
-
-
-	/**
-	 *   娣诲姞
-	 *
-	 * @param eamInspectionOrderRequest
-	 * @return
-	 */
-	@AutoLog(value = "鐐规宸ュ崟-娣诲姞")
-	@ApiOperation(value="鐐规宸ュ崟-娣诲姞", notes="鐐规宸ュ崟-娣诲姞")
-	//@RequiresPermissions("org.jeecg.modules:鐐规宸ュ崟:add")
-	@PostMapping(value = "/add")
-	public Result<String> add(@RequestBody EamInspectionOrderRequest eamInspectionOrderRequest) {
-		String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.INSPECTION_ORDER_CODE_RULE);
-		eamInspectionOrderRequest.setOrderNum(codeSeq);
-		eamInspectionOrderRequest.setCreationMethod(String.valueOf(OrderCreationMethodEnum.AUTO));
-		eamInspectionOrderService.addInspectionOrder(eamInspectionOrderRequest);
-		return Result.OK("娣诲姞鎴愬姛锛�");
-	}
-
-	/**
-	 *  缂栬緫
-	 *
-	 * @param eamInspectionOrderRequest
-	 * @return
-	 */
-	@AutoLog(value = "鐐规宸ュ崟-缂栬緫")
-	@ApiOperation(value="鐐规宸ュ崟-缂栬緫", notes="鐐规宸ュ崟-缂栬緫")
-	//@RequiresPermissions("org.jeecg.modules:鐐规宸ュ崟:edit")
-	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
-	public Result<String> edit(@RequestBody EamInspectionOrderRequest eamInspectionOrderRequest) {
-		eamInspectionOrderService.editInspectionOrder(eamInspectionOrderRequest);
-		return Result.OK("缂栬緫鎴愬姛!");
-	}
-
-	 /**
-	  * 棰嗗彇鐐规宸ュ崟
-	  * @param id
-	  * @return
-	  */
-	 @AutoLog(value = "鐐规宸ュ崟-棰嗗彇鐐规宸ュ崟")
-	 @ApiOperation(value="鐐规宸ュ崟-棰嗗彇鐐规宸ュ崟", notes="鐐规宸ュ崟-棰嗗彇鐐规宸ュ崟")
-	 @GetMapping(value = "/receiveInspectionOrder")
-	 public Result<String> receiveInspectionOrder(@RequestParam(name="id") String id) {
-		 eamInspectionOrderService.takeInspectionOrder(id);
-		 return Result.OK("棰嗗彇鎴愬姛");
-	 }
-
-	 /**
-	  * 浣滃簾鐐规宸ュ崟
-	  * @param id
-	  * @return
-	  */
-	 @AutoLog(value = "鐐规宸ュ崟-浣滃簾鐐规宸ュ崟")
-	 @ApiOperation(value="鐐规宸ュ崟-浣滃簾鐐规宸ュ崟", notes="鐐规宸ュ崟-浣滃簾鐐规宸ュ崟")
-	 @GetMapping(value = "/cancelInspectionOrder")
-	 public Result<String> cancelInspectionOrder(@RequestParam(name="id") String id) {
-		 eamInspectionOrderService.cancelInspectionOrder(id);
-		 return Result.OK("浣滃簾鎴愬姛");
-	 }
-
-	 /**
-	  * 鎵归噺浣滃簾涓庨鍙�
-	  * @param ids
-	  * @param type
-	  * @return
-	  */
-	 @AutoLog(value = "鐐规宸ュ崟-鎵归噺浣滃簾涓庨鍙�")
-	 @ApiOperation(value="鐐规宸ュ崟-鎵归噺浣滃簾涓庨鍙�", notes="鐐规宸ュ崟-鎵归噺浣滃簾涓庨鍙�")
-	 @GetMapping(value = "/cancelOrReceive")
-	 public Result<?> cancelOrReceive(@RequestParam(name="ids") String ids, @RequestParam(name="type") String type) {
-		 return eamInspectionOrderService.batchCancelOrTakeInspectionOrder(ids, type);
-	 }
-
-	 /**
-	  * 鐐规娴佺▼
-	  * @param eamInspectionOrderRequest
-	  * @return
-	  */
-	 @AutoLog(value = "鐐规娴佺▼")
-	 @ApiOperation(value="鐐规宸ュ崟-鐐规娴佺▼", notes="鐐规宸ュ崟-鐐规娴佺▼")
-	 @PostMapping("/approval")
-	 public Result<?> approval(@RequestBody EamInspectionOrderRequest eamInspectionOrderRequest) {
-		 return eamInspectionOrderService.inspectionProcess(eamInspectionOrderRequest);
-	 }
-
-	/**
-	 *   閫氳繃id鍒犻櫎
-	 *
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "鐐规宸ュ崟-閫氳繃id鍒犻櫎")
-	@ApiOperation(value="鐐规宸ュ崟-閫氳繃id鍒犻櫎", notes="鐐规宸ュ崟-閫氳繃id鍒犻櫎")
-	//@RequiresPermissions("org.jeecg.modules:鐐规宸ュ崟:delete")
-	@DeleteMapping(value = "/delete")
-	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
-		eamInspectionOrderService.removeById(id);
-		return Result.OK("鍒犻櫎鎴愬姛!");
-	}
-
-	/**
-	 *  鎵归噺鍒犻櫎
-	 *
-	 * @param ids
-	 * @return
-	 */
-	@AutoLog(value = "鐐规宸ュ崟-鎵归噺鍒犻櫎")
-	@ApiOperation(value="鐐规宸ュ崟-鎵归噺鍒犻櫎", notes="鐐规宸ュ崟-鎵归噺鍒犻櫎")
-	//@RequiresPermissions("org.jeecg.modules:鐐规宸ュ崟:deleteBatch")
-	@DeleteMapping(value = "/deleteBatch")
-	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
-		this.eamInspectionOrderService.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<EamInspectionOrder> queryById(@RequestParam(name="id",required=true) String id) {
-		EamInspectionOrder eamInspectionOrder = eamInspectionOrderService.getById(id);
-		if(eamInspectionOrder==null) {
-			return Result.error("鏈壘鍒板搴旀暟鎹�");
-		}
-		return Result.OK(eamInspectionOrder);
-	}
+    @Autowired
+    private IEamInspectionOrderService eamInspectionOrderService;
+    @Autowired
+    private ISysBusinessCodeRuleService businessCodeRuleService;
+    @Autowired
+    private ObjectMapper objectMapper;
+    @Autowired
+    private TranslateDictTextUtils translateDictTextUtils;
+    @Autowired
+    private IEamInspectionOrderDetailService eamInspectionOrderDetailService;
 
     /**
-    * 瀵煎嚭excel
-    *
-    * @param request
-    * @param eamInspectionOrder
-    */
+     * 鍒嗛〉鍒楄〃鏌ヨ
+     *
+     * @param query
+     * @param pageNo
+     * @param pageSize
+     * @param req
+     * @return
+     */
+    //@AutoLog(value = "鐐规宸ュ崟-鍒嗛〉鍒楄〃鏌ヨ")
+    @ApiOperation(value = "鐐规宸ュ崟-鍒嗛〉鍒楄〃鏌ヨ", notes = "鐐规宸ュ崟-鍒嗛〉鍒楄〃鏌ヨ")
+    @GetMapping(value = "/list")
+    public Result<IPage<EamInspectionOrder>> queryPageList(EamInspectionOrderQuery query,
+                                                           @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                                           @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                                           HttpServletRequest req) {
+//		QueryWrapper<EamInspectionOrder> queryWrapper = QueryGenerator.initQueryWrapper(eamInspectionOrder, req.getParameterMap());
+        Page<EamInspectionOrder> page = new Page<EamInspectionOrder>(pageNo, pageSize);
+        IPage<EamInspectionOrder> pageList = eamInspectionOrderService.queryPageList(page, query);
+        return Result.OK(pageList);
+    }
+
+    /**
+     * 鏌ヨ鐐规宸ュ崟鍩烘湰淇℃伅
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "鏌ヨ鐐规宸ュ崟鍩烘湰淇℃伅", notes = "鏌ヨ鐐规宸ュ崟鍩烘湰淇℃伅")
+    @GetMapping(value = "/selectVoById")
+    public Result<?> selectVoById(@RequestParam(name = "id") String id) {
+        return eamInspectionOrderService.selectVoById(id);
+    }
+
+
+    /**
+     * 娣诲姞
+     *
+     * @param eamInspectionOrderRequest
+     * @return
+     */
+    @AutoLog(value = "鐐规宸ュ崟-娣诲姞")
+    @ApiOperation(value = "鐐规宸ュ崟-娣诲姞", notes = "鐐规宸ュ崟-娣诲姞")
+    //@RequiresPermissions("org.jeecg.modules:鐐规宸ュ崟:add")
+    @PostMapping(value = "/add")
+    public Result<String> add(@RequestBody EamInspectionOrderRequest eamInspectionOrderRequest) {
+        String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.INSPECTION_ORDER_CODE_RULE);
+        eamInspectionOrderRequest.setOrderNum(codeSeq);
+        eamInspectionOrderRequest.setCreationMethod(String.valueOf(OrderCreationMethodEnum.MANUAL));
+        eamInspectionOrderService.addInspectionOrder(eamInspectionOrderRequest);
+        return Result.OK("娣诲姞鎴愬姛锛�");
+    }
+
+    /**
+     * 缂栬緫
+     *
+     * @param eamInspectionOrderRequest
+     * @return
+     */
+    @AutoLog(value = "鐐规宸ュ崟-缂栬緫")
+    @ApiOperation(value = "鐐规宸ュ崟-缂栬緫", notes = "鐐规宸ュ崟-缂栬緫")
+    //@RequiresPermissions("org.jeecg.modules:鐐规宸ュ崟:edit")
+    @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
+    public Result<String> edit(@RequestBody EamInspectionOrderRequest eamInspectionOrderRequest) {
+        eamInspectionOrderService.editInspectionOrder(eamInspectionOrderRequest);
+        return Result.OK("缂栬緫鎴愬姛!");
+    }
+
+    /**
+     * 棰嗗彇鐐规宸ュ崟
+     *
+     * @param id
+     * @return
+     */
+    @AutoLog(value = "鐐规宸ュ崟-棰嗗彇鐐规宸ュ崟")
+    @ApiOperation(value = "鐐规宸ュ崟-棰嗗彇鐐规宸ュ崟", notes = "鐐规宸ュ崟-棰嗗彇鐐规宸ュ崟")
+    @GetMapping(value = "/receiveInspectionOrder")
+    public Result<String> receiveInspectionOrder(@RequestParam(name = "id") String id) {
+        eamInspectionOrderService.takeInspectionOrder(id);
+        return Result.OK("棰嗗彇鎴愬姛");
+    }
+
+    /**
+     * 浣滃簾鐐规宸ュ崟
+     *
+     * @param id
+     * @return
+     */
+    @AutoLog(value = "鐐规宸ュ崟-浣滃簾鐐规宸ュ崟")
+    @ApiOperation(value = "鐐规宸ュ崟-浣滃簾鐐规宸ュ崟", notes = "鐐规宸ュ崟-浣滃簾鐐规宸ュ崟")
+    @GetMapping(value = "/cancelInspectionOrder")
+    public Result<String> cancelInspectionOrder(@RequestParam(name = "id") String id) {
+        eamInspectionOrderService.cancelInspectionOrder(id);
+        return Result.OK("浣滃簾鎴愬姛");
+    }
+
+    /**
+     * 鎵归噺浣滃簾涓庨鍙�
+     *
+     * @param ids
+     * @param type
+     * @return
+     */
+    @AutoLog(value = "鐐规宸ュ崟-鎵归噺浣滃簾涓庨鍙�")
+    @ApiOperation(value = "鐐规宸ュ崟-鎵归噺浣滃簾涓庨鍙�", notes = "鐐规宸ュ崟-鎵归噺浣滃簾涓庨鍙�")
+    @GetMapping(value = "/cancelOrReceive")
+    public Result<?> cancelOrReceive(@RequestParam(name = "ids") String ids, @RequestParam(name = "type") String type) {
+        return eamInspectionOrderService.batchCancelOrTakeInspectionOrder(ids, type);
+    }
+
+    /**
+     * 鐐规娴佺▼
+     *
+     * @param eamInspectionOrderRequest
+     * @return
+     */
+    @AutoLog(value = "鐐规娴佺▼")
+    @ApiOperation(value = "鐐规宸ュ崟-鐐规娴佺▼", notes = "鐐规宸ュ崟-鐐规娴佺▼")
+    @PostMapping("/approval")
+    public Result<?> approval(@RequestBody EamInspectionOrderRequest eamInspectionOrderRequest) {
+        eamInspectionOrderService.inspectionProcess(eamInspectionOrderRequest);
+        return Result.OK("鎿嶄綔鎴愬姛");
+    }
+
+    @ApiOperation(value = "鐐规宸ュ崟-鎵归噺瀹℃壒娴佺▼", notes = "鐐规宸ュ崟-鎵归噺瀹℃壒娴佺▼")
+    @PostMapping("/batchApproval")
+    public Result<?> batchApproval(@RequestBody EamInspectionBatchApprovalRequest request) {
+        if(request == null || CollectionUtil.isEmpty(request.getTaskList())) {
+            return Result.error("娌℃湁闇�瑕佸鎵圭殑鏁版嵁锛�");
+        }
+        int n = 0;
+        StringBuilder errorMsg = new StringBuilder();
+        List<WorkTaskDataVo> tastList = request.getTaskList();
+        for(WorkTaskDataVo workTaskDataVo : tastList) {
+            EamInspectionOrderRequest orderRequest = new EamInspectionOrderRequest();
+            EamInspectionOrder order = eamInspectionOrderService.getById(workTaskDataVo.getDataId());
+            if(order == null) {
+                errorMsg.append("宸ュ崟ID锛�");
+                errorMsg.append(workTaskDataVo.getDataId());
+                errorMsg.append(",涓嶅瓨鍦ㄦ垨宸茶鍒犻櫎!\n");
+                continue;
+            }
+            if(!InspectionStatus.WAIT_CONFIRM.name().equals(order.getInspectionStatus())) {
+                errorMsg.append("宸ュ崟鍙凤細");
+                errorMsg.append(order.getOrderNum());
+                errorMsg.append(",鐘舵�佹棤娉曟壒閲忓鎵�!\n");
+                continue;
+            }
+            List<EamInspectionOrderDetail> tableDetailList = eamInspectionOrderDetailService.queryListByOrderId(order.getId());
+            try {
+                orderRequest.setId(order.getId());
+                orderRequest.setEquipmentId(order.getEquipmentId());
+                //瀹℃壒淇℃伅
+                orderRequest.setConfirmComment(request.getConfirmComment());
+                orderRequest.setConfirmDealType(request.getConfirmDealType());
+                //浠诲姟淇℃伅
+                orderRequest.setDataId(workTaskDataVo.getDataId());
+                orderRequest.setTaskId(workTaskDataVo.getId());
+                orderRequest.setUserId(workTaskDataVo.getAssignee());
+                orderRequest.setInstanceId(workTaskDataVo.getProcInstId());
+                orderRequest.setValues(workTaskDataVo.getVariables());
+                orderRequest.setTableDetailList(tableDetailList);
+                EamInspectionOrder result = eamInspectionOrderService.inspectionProcess(orderRequest);
+                if(result == null) {
+                    errorMsg.append("宸ュ崟鍙凤細");
+                    errorMsg.append(order.getOrderNum());
+                    errorMsg.append(",瀹℃壒澶辫触!\n");
+                    continue;
+                }
+                n++;
+
+            } catch (Exception e) {
+                errorMsg.append("宸ュ崟鍙凤細");
+                errorMsg.append(order.getOrderNum());
+                errorMsg.append(",瀹℃壒澶辫触,閿欒鍘熷洜:");
+                errorMsg.append(e.getMessage() + "\n");
+            }
+
+        }
+        if(n > 0) {
+            String message = "鎴愬姛瀹℃壒閫氳繃" + n + "鏉¤褰曪紒\n" + errorMsg;
+            return Result.OK(message);
+        }
+        return Result.error(errorMsg.toString());
+    }
+
+    /**
+     * 閫氳繃id鍒犻櫎
+     *
+     * @param id
+     * @return
+     */
+    @AutoLog(value = "鐐规宸ュ崟-閫氳繃id鍒犻櫎")
+    @ApiOperation(value = "鐐规宸ュ崟-閫氳繃id鍒犻櫎", notes = "鐐规宸ュ崟-閫氳繃id鍒犻櫎")
+    //@RequiresPermissions("org.jeecg.modules:鐐规宸ュ崟:delete")
+    @DeleteMapping(value = "/delete")
+    public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
+        eamInspectionOrderService.removeById(id);
+        return Result.OK("鍒犻櫎鎴愬姛!");
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎
+     *
+     * @param ids
+     * @return
+     */
+    @AutoLog(value = "鐐规宸ュ崟-鎵归噺鍒犻櫎")
+    @ApiOperation(value = "鐐规宸ュ崟-鎵归噺鍒犻櫎", notes = "鐐规宸ュ崟-鎵归噺鍒犻櫎")
+    //@RequiresPermissions("org.jeecg.modules:鐐规宸ュ崟:deleteBatch")
+    @DeleteMapping(value = "/deleteBatch")
+    public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
+        this.eamInspectionOrderService.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) {
+        EamInspectionOrder eamInspectionOrder = eamInspectionOrderService.getById(id);
+        if (eamInspectionOrder == null) {
+            return Result.error("鏈壘鍒板搴旀暟鎹�");
+        }
+        try {
+            String json = objectMapper.writeValueAsString(eamInspectionOrder);
+            JSONObject item = JSONObject.parseObject(json, Feature.OrderedField);
+            translateDictTextUtils.translateField("createBy", eamInspectionOrder.getCreateBy(), item, "sys_user,realname,username");
+            translateDictTextUtils.translateField("standardId", eamInspectionOrder.getStandardId(), item, "eam_maintenance_standard,standard_name,id");
+            translateDictTextUtils.translateField("operator", eamInspectionOrder.getOperator(), item, "sys_user,realname,username");
+            translateDictTextUtils.translateField("creationMethod", eamInspectionOrder.getCreationMethod(), item, "order_creation_method");
+            translateDictTextUtils.translateField("inspectionStatus", eamInspectionOrder.getInspectionStatus(), item, "inspection_status");
+            translateDictTextUtils.translateField("confirmUser", eamInspectionOrder.getConfirmUser(), item, "sys_user,realname,username");
+            translateDictTextUtils.translateField("confirmDealType", eamInspectionOrder.getConfirmDealType(), item, "approved_rejected");
+            return Result.OK(item);
+        } catch (JsonProcessingException e) {
+            return Result.error("鏁版嵁杞瘧澶辫触锛�");
+        }
+    }
+
+    /**
+     * 瀵煎嚭excel
+     *
+     * @param request
+     * @param eamInspectionOrder
+     */
     //@RequiresPermissions("org.jeecg.modules:鐐规宸ュ崟:exportXls")
     @RequestMapping(value = "/exportXls")
     public ModelAndView exportXls(HttpServletRequest request, EamInspectionOrder eamInspectionOrder) {
@@ -220,12 +316,12 @@
     }
 
     /**
-      * 閫氳繃excel瀵煎叆鏁版嵁
-    *
-    * @param request
-    * @param response
-    * @return
-    */
+     * 閫氳繃excel瀵煎叆鏁版嵁
+     *
+     * @param request
+     * @param response
+     * @return
+     */
     //@RequiresPermissions("鐐规宸ュ崟:importExcel")
     @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
     public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java
index 4623e8a..35b2997 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java
@@ -168,8 +168,10 @@
     @ApiOperation(value = "淇濆吇鏍囧噯-鏌ヨ鏍囧噯鍒楄〃-鍓嶇灞曠ず璇ョ敤鎴锋嫢鏈夌殑鏍囧噯", notes = "淇濆吇鏍囧噯-鏌ヨ鏍囧噯鍒楄〃-鍓嶇灞曠ず璇ョ敤鎴锋嫢鏈夌殑鏍囧噯")
     @GetMapping(value = "/listByUser")
     public Result<?> listByUser(@RequestParam(name = "keyword", required = false) String keyword,
+                                @RequestParam(name = "equipmentId", required = false) String equipmentId,
+                                @RequestParam(value = "pageSize", required = false, defaultValue = "20") Integer pageSize,
                                 @RequestParam(name = "maintenanceCategory", required = false) String maintenanceCategory) {
-        List<EamMaintenanceStandard> list = eamMaintenanceStandardService.queryListBykeywordAndCategory(keyword, maintenanceCategory);
+        List<EamMaintenanceStandard> list = eamMaintenanceStandardService.queryListByKeywordAndCategory(keyword, equipmentId, pageSize, maintenanceCategory);
         return Result.OK(list);
     }
 
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairOrderController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairOrderController.java
index 51e38a0..b45298b 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairOrderController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairOrderController.java
@@ -1,32 +1,31 @@
 package org.jeecg.modules.eam.controller;
 
-import java.util.Arrays;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.parser.Feature;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.constant.CommonConstant;
-import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.TranslateDictTextUtils;
 import org.jeecg.modules.eam.constant.BusinessCodeConst;
-import org.jeecg.modules.eam.constant.ReportRepairEnum;
 import org.jeecg.modules.eam.entity.EamRepairOrder;
-import org.jeecg.modules.eam.entity.EamReportRepair;
 import org.jeecg.modules.eam.request.EamRepairOrderQuery;
+import org.jeecg.modules.eam.request.EamRepairOrderRequest;
+import org.jeecg.modules.eam.request.EamRepairOrderResponse;
+import org.jeecg.modules.eam.request.EamReportRepairQuery;
 import org.jeecg.modules.eam.service.IEamRepairOrderService;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.system.base.controller.JeecgController;
-import org.jeecg.modules.eam.service.IEamReportRepairService;
-import org.jeecg.modules.flowable.apithird.service.FlowCommonService;
-import org.jeecg.modules.mdc.util.DateUtils;
-import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.jeecg.modules.system.entity.SysUser;
+import org.jeecg.modules.system.service.ISysUserService;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
 import io.swagger.annotations.Api;
@@ -45,6 +44,15 @@
 
     @Resource
     private IEamRepairOrderService eamRepairOrderService;
+
+    @Resource
+    private ObjectMapper objectMapper;
+
+    @Resource
+    private TranslateDictTextUtils translateDictTextUtils;
+
+    @Resource
+    private ISysUserService sysUserService;
 
     /**
      * 鍒嗛〉鍒楄〃鏌ヨ
@@ -77,23 +85,68 @@
         if (StringUtils.isBlank(eamRepairOrder.getReportId())) {
             return Result.error("棰嗗彇澶辫触,璇烽�夋嫨缁翠慨璁板綍锛�");
         }
+        // 鏍¢獙棰嗗彇鏉冮檺
+        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        if (!BusinessCodeConst.PCR0002.equals(user.getPost())) {
+            return Result.error("棰嗗彇澶辫触,娌℃湁棰嗗彇鏉冮檺锛�");
+        }
         eamRepairOrderService.saveRepairOrder(eamRepairOrder);
         return Result.OK("娣诲姞鎴愬姛锛�");
     }
 
     /**
-     * 鎵ц缁翠慨
+     * 鎸囨淳
      *
-     * @param eamRepairOrder
+     * @param
      * @return
      */
-    @AutoLog(value = "缁翠慨宸ュ崟-鎵ц")
-    @ApiOperation(value = "缁翠慨宸ュ崟-鎵ц", notes = "缁翠慨宸ュ崟-鎵ц")
-    @PostMapping(value = "/perform")
-    public Result<?> perform(@RequestBody EamRepairOrder eamRepairOrder) {
+    @AutoLog(value = "鏁呴殰鎶ヤ慨-鎸囨淳")
+    @ApiOperation(value = "鏁呴殰鎶ヤ慨-鎸囨淳", notes = "鏁呴殰鎶ヤ慨-鎸囨淳")
+    @GetMapping(value = "/assign")
+    public Result<?> assign(@RequestBody EamReportRepairQuery eamReportRepairQuery) {
+        if (StringUtils.isBlank(eamReportRepairQuery.getRepairer())) {
+            return Result.error("鎸囨淳澶辫触,璇烽�夋嫨缁翠慨宸ワ紒");
+        }
+        // 鏍¢獙鎸囨淳鏉冮檺
+        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        if (!BusinessCodeConst.PCR0004.equals(user.getPost())) {
+            return Result.error("鎸囨淳澶辫触,娌℃湁鎸囨淳鏉冮檺锛�");
+        }
+        // 鏍¢獙缁翠慨宸ユ潈闄�
+        SysUser sysUser = sysUserService.getUserByName(eamReportRepairQuery.getRepairer());
+        if (sysUser == null) {
+            return Result.error("鎸囨淳澶辫触,鏈壘鍒版缁翠慨宸ョ敤鎴凤紒");
+        }
+        if (!BusinessCodeConst.PCR0002.equals(sysUser.getPost())) {
+            return Result.error("鎸囨淳澶辫触,姝ょ敤鎴蜂笉鏄淮淇伐锛�");
+        }
+        eamRepairOrderService.assign(eamReportRepairQuery);
 
-//        eamRepairOrderService.updateById(eamRepairOrder);
-        return Result.OK("鎵ц鎴愬姛!");
+        return Result.OK("鎸囨淳鎴愬姛锛�");
+    }
+
+    /**
+     * 鎴戠殑寰呭姙 鎵ц/瀹℃壒
+     *
+     * @param request
+     * @return
+     */
+    @AutoLog(value = "缁翠慨宸ュ崟-鎵ц/瀹℃壒")
+    @ApiOperation(value = "缁翠慨宸ュ崟-鎵ц/瀹℃壒", notes = "缁翠慨宸ュ崟-鎵ц/瀹℃壒")
+    @PostMapping(value = "/perform")
+    public Result<?> perform(@RequestBody EamRepairOrderRequest request) {
+        if (request == null) {
+            return Result.error("瀹℃壒鐨勫璞′笉鑳戒负绌猴紒");
+        }
+        // 妫�鏌ヨ姹傚弬鏁�
+        if (StrUtil.isBlank(request.getTaskId()) || StrUtil.isBlank(request.getDataId()) || StrUtil.isBlank(request.getInstanceId())) {
+            return Result.error("瀹℃壒浠诲姟閿欒鎴栦笉瀛樺湪锛�");
+        }
+        EamRepairOrder b = eamRepairOrderService.perform(request);
+        if(b == null) {
+            return Result.error("鎿嶄綔澶辫触锛�");
+        }
+        return Result.OK("鎿嶄綔鎴愬姛!");
     }
 
     /**
@@ -106,8 +159,24 @@
     @ApiOperation(value = "缁翠慨宸ュ崟-閫氳繃id鏌ヨ", notes = "缁翠慨宸ュ崟-閫氳繃id鏌ヨ")
     @GetMapping(value = "/queryById")
     public Result<?> queryById(@RequestParam(name = "id", required = true) String id) {
-        EamRepairOrder eamRepairOrder = eamRepairOrderService.getById(id);
-        return Result.OK(eamRepairOrder);
+        EamRepairOrderResponse eamRepairOrder = eamRepairOrderService.findById(id);
+        if (eamRepairOrder == null) {
+            return Result.error("鏈壘鍒板搴旀暟鎹紒");
+        }
+        try {
+            String json = objectMapper.writeValueAsString(eamRepairOrder);
+            JSONObject item = JSONObject.parseObject(json, Feature.OrderedField);
+            translateDictTextUtils.translateField("createBy", eamRepairOrder.getCreateBy(), item, "sys_user,realname,username");
+            translateDictTextUtils.translateField("breakdownFlag", eamRepairOrder.getBreakdownFlag(), item, "breakdown_flag");
+            translateDictTextUtils.translateField("faultType", eamRepairOrder.getFaultType(), item, "fault_reason_category");
+            translateDictTextUtils.translateField("reportStatus", eamRepairOrder.getReportStatus(), item, "report_repair_status");
+            translateDictTextUtils.translateField("equipmentId", eamRepairOrder.getEquipmentId(), item, "eam_equipment,id,equipment_code");
+            translateDictTextUtils.translateField("repairStatus", eamRepairOrder.getRepairStatus(), item, "report_repair_status");
+            translateDictTextUtils.translateField("repairer", eamRepairOrder.getRepairer(), item, "sys_user,username,realname");
+            return Result.OK(item);
+        } catch (Exception e) {
+            return Result.error("鏁版嵁杞瘧澶辫触锛�");
+        }
     }
 
     /**
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportRepairController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportRepairController.java
index ffdb07d..02044ac 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportRepairController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportRepairController.java
@@ -4,13 +4,22 @@
 import java.util.List;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
 
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.parser.Feature;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.vo.FileUploadResult;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.TranslateDictTextUtils;
+import org.jeecg.modules.eam.constant.BusinessCodeConst;
 import org.jeecg.modules.eam.constant.ReportRepairEnum;
 import org.jeecg.modules.eam.entity.EamReportRepair;
 import org.jeecg.modules.eam.request.EamReportRepairQuery;
@@ -21,6 +30,8 @@
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.system.base.controller.JeecgController;
 
+import org.jeecg.modules.system.entity.SysUser;
+import org.jeecg.modules.system.service.ISysUserService;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
 import io.swagger.annotations.Api;
@@ -39,6 +50,12 @@
 
     @Resource
     private IEamReportRepairService eamReportRepairService;
+
+    @Resource
+    private ObjectMapper objectMapper;
+
+    @Resource
+    private TranslateDictTextUtils translateDictTextUtils;
 
     /**
      * 鍒嗛〉鍒楄〃鏌ヨ
@@ -69,9 +86,10 @@
     @ApiOperation(value = "鏁呴殰鎶ヤ慨-娣诲姞", notes = "鏁呴殰鎶ヤ慨-娣诲姞")
     @PostMapping(value = "/add")
     public Result<?> add(@RequestBody EamReportRepair eamReportRepair) {
-        eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_REPAIR.name());
-        eamReportRepair.setDelFlag(CommonConstant.DEL_FLAG_0);
-        eamReportRepairService.save(eamReportRepair);
+        EamReportRepair b = eamReportRepairService.add(eamReportRepair);
+        if(b == null) {
+            return Result.error("娣诲姞澶辫触锛�");
+        }
         return Result.OK("娣诲姞鎴愬姛锛�");
     }
 
@@ -85,7 +103,10 @@
     @ApiOperation(value = "鏁呴殰鎶ヤ慨-缂栬緫", notes = "鏁呴殰鎶ヤ慨-缂栬緫")
     @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
     public Result<?> edit(@RequestBody EamReportRepair eamReportRepair) {
-        eamReportRepairService.updateById(eamReportRepair);
+        boolean b = eamReportRepairService.edit(eamReportRepair);
+        if(!b) {
+            return Result.error("缂栬緫澶辫触锛�");
+        }
         return Result.OK("缂栬緫鎴愬姛!");
     }
 
@@ -99,7 +120,7 @@
     @ApiOperation(value = "鏁呴殰鎶ヤ慨-浣滃簾", notes = "鏁呴殰鎶ヤ慨-浣滃簾")
     @DeleteMapping(value = "/abolish")
     public Result<?> abolish(@RequestParam(name = "id", required = true) String id) {
-        eamReportRepairService.update(new LambdaUpdateWrapper<EamReportRepair>().set(EamReportRepair::getReportStatus, ReportRepairEnum.ABOLISH.name()).eq(EamReportRepair::getId, id));
+        eamReportRepairService.update(new LambdaUpdateWrapper<EamReportRepair>().set(EamReportRepair::getReportStatus, ReportRepairEnum.ABOLISH.name()).eq(EamReportRepair::getId, id).eq(EamReportRepair::getReportStatus, ReportRepairEnum.WAIT_REPAIR.name()));
         return Result.OK("浣滃簾鎴愬姛!");
     }
 
@@ -114,7 +135,11 @@
     @DeleteMapping(value = "/abolishBatch")
     public Result<?> abolishBatch(@RequestParam(name = "ids", required = true) String ids) {
         List<EamReportRepair> eamReportRepairs = eamReportRepairService.listByIds(Arrays.asList(ids.split(",")));
-        eamReportRepairs.forEach(eamReportRepair -> eamReportRepair.setReportStatus(ReportRepairEnum.ABOLISH.name()));
+        eamReportRepairs.forEach(eamReportRepair -> {
+            if(ReportRepairEnum.ABOLISH.name().equals(eamReportRepair.getReportStatus())) {
+                eamReportRepair.setReportStatus(ReportRepairEnum.ABOLISH.name());
+            }
+        });
         this.eamReportRepairService.updateBatchById(eamReportRepairs);
         return Result.OK("鎵归噺浣滃簾鎴愬姛锛�");
     }
@@ -130,7 +155,21 @@
     @GetMapping(value = "/queryById")
     public Result<?> queryById(@RequestParam(name = "id", required = true) String id) {
         EamReportRepair eamReportRepair = eamReportRepairService.getById(id);
-        return Result.OK(eamReportRepair);
+        if (eamReportRepair == null) {
+            return Result.error("鏈壘鍒板搴旀暟鎹紒");
+        }
+        try {
+            String json = objectMapper.writeValueAsString(eamReportRepair);
+            JSONObject item = JSONObject.parseObject(json, Feature.OrderedField);
+            translateDictTextUtils.translateField("createBy", eamReportRepair.getCreateBy(), item, "sys_user,realname,username");
+            translateDictTextUtils.translateField("breakdownFlag", eamReportRepair.getBreakdownFlag(), item, "breakdown_flag");
+            translateDictTextUtils.translateField("faultType", eamReportRepair.getFaultType(), item, "fault_reason_category");
+            translateDictTextUtils.translateField("reportStatus", eamReportRepair.getReportStatus(), item, "report_repair_status");
+            translateDictTextUtils.translateField("equipmentId", eamReportRepair.getEquipmentId(), item, "eam_equipment,id,equipment_code");
+            return Result.OK(item);
+        } catch (Exception e) {
+            return Result.error("鏁版嵁杞瘧澶辫触锛�");
+        }
     }
 
     /**
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSysFilesController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSysFilesController.java
index d4c046a..f05ee26 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSysFilesController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSysFilesController.java
@@ -22,8 +22,10 @@
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Description: 璁惧闄勪欢绠$悊
@@ -140,6 +142,13 @@
         return Result.OK(eamSysFiles);
     }
 
+    /**
+     * 鍗曚釜鏂囦欢涓婁紶
+     * @param request
+     * @param response
+     * @return
+     */
+    @ApiOperation(value = "璁惧闄勪欢绠$悊-鍗曚釜鏂囦欢涓婁紶", notes = "璁惧闄勪欢绠$悊-鍗曚釜鏂囦欢涓婁紶")
     @PostMapping("/upload")
     public Result<?> uploadFile(HttpServletRequest request, HttpServletResponse response) {
         // 杞崲鎴愬閮ㄥ垎request
@@ -150,6 +159,14 @@
             if(sysUpload == null) {
                 return Result.error("鎿嶄綔澶辫触: 涓婁紶缁撴灉涓虹┖锛�");
             }
+            EamSysFiles sysFiles = new EamSysFiles();
+            sysFiles.setFileEncodeName(sysUpload.getFileEncodeName());
+            sysFiles.setFileName(sysUpload.getFileName());
+            sysFiles.setFileSize(sysUpload.getFileSize());
+            sysFiles.setFilePath(sysUpload.getFilePath());
+            sysFiles.setFileSuffix(sysUpload.getFileSuffix());
+            sysFiles.setDelFlag(CommonConstant.DEL_FLAG_0);
+            eamSysFilesService.save(sysFiles);
             return Result.ok(sysUpload);
         } catch (Exception e) {
             log.error(e.getMessage(), e);
@@ -158,6 +175,37 @@
 
     }
 
+    /**
+     * 鎵归噺涓婁紶鎺ュ彛
+     * @param request
+     * @param response
+     * @return
+     */
+    @ApiOperation(value = "璁惧闄勪欢绠$悊-澶氫釜鏂囦欢涓婁紶", notes = "璁惧闄勪欢绠$悊-澶氫釜鏂囦欢涓婁紶")
+    @PostMapping("/batch_upload")
+    public Result<?> batchUploadFile(HttpServletRequest request, HttpServletResponse response) {
+        // 杞崲鎴愬閮ㄥ垎request
+        MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
+        Map<String, MultipartFile> fileMap = multiRequest.getFileMap();
+        List<FileUploadResult> resultList = new ArrayList<>();
+        for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+            FileUploadResult sysUpload = eamSysFilesService.uploadFile(entity.getValue());
+            if(sysUpload == null) {
+                continue;
+            }
+            EamSysFiles sysFiles = new EamSysFiles();
+            sysFiles.setFileEncodeName(sysUpload.getFileEncodeName());
+            sysFiles.setFileName(sysUpload.getFileName());
+            sysFiles.setFileSize(sysUpload.getFileSize());
+            sysFiles.setFilePath(sysUpload.getFilePath());
+            sysFiles.setFileSuffix(sysUpload.getFileSuffix());
+            sysFiles.setDelFlag(CommonConstant.DEL_FLAG_0);
+            eamSysFilesService.save(sysFiles);
+            resultList.add(sysUpload);
+        }
+        return Result.ok(resultList);
+    }
+
     @GetMapping("/downloadFile")
     public void downloadFile(@RequestParam("id") String id, HttpServletResponse response) {
         eamSysFilesService.downloadFile(response, eamSysFilesService.getById(id));
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamWeekMaintenanceOrderController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamWeekMaintenanceOrderController.java
index 13b404e..5ead1e6 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamWeekMaintenanceOrderController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamWeekMaintenanceOrderController.java
@@ -1,20 +1,31 @@
 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.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;
 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.util.TranslateDictTextUtils;
 import org.jeecg.modules.eam.constant.BusinessCodeConst;
+import org.jeecg.modules.eam.constant.OrderCreationMethodEnum;
 import org.jeecg.modules.eam.constant.WeekMaintenanceStatusEnum;
 import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrder;
+import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail;
+import org.jeecg.modules.eam.request.EamWeekMaintenanceBatchApprovalRequest;
 import org.jeecg.modules.eam.request.EamWeekMaintenanceQuery;
 import org.jeecg.modules.eam.request.EamWeekMaintenanceRequest;
+import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderDetailService;
 import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderService;
+import org.jeecg.modules.flowable.domain.vo.WorkTaskDataVo;
 import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -22,6 +33,7 @@
 import javax.servlet.http.HttpServletRequest;
 import java.util.Arrays;
 import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * @Description: 鍛ㄤ繚宸ュ崟
@@ -38,6 +50,12 @@
     private IEamWeekMaintenanceOrderService eamWeekMaintenanceOrderService;
     @Autowired
     private ISysBusinessCodeRuleService businessCodeRuleService;
+    @Autowired
+    private ObjectMapper objectMapper;
+    @Autowired
+    private TranslateDictTextUtils translateDictTextUtils;
+    @Autowired
+    private IEamWeekMaintenanceOrderDetailService weekMaintenanceOrderDetailService;
 
     /**
      * 鍒嗛〉鍒楄〃鏌ヨ
@@ -78,6 +96,7 @@
         }
         String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.WEEK_MAINTENANCE_CODE_RULE);
         request.setOrderNum(codeSeq);
+        request.setCreationMethod(OrderCreationMethodEnum.MANUAL.name());
         boolean b = eamWeekMaintenanceOrderService.addWeekMaintenance(request);
         if (!b) {
             return Result.error("娣诲姞澶辫触锛�");
@@ -133,10 +152,10 @@
     @DeleteMapping(value = "/abolish")
     public Result<?> abolish(@RequestParam(name = "id", required = true) String id) {
         EamWeekMaintenanceOrder entity = eamWeekMaintenanceOrderService.getById(id);
-        if(entity == null) {
+        if (entity == null) {
             return Result.error("瑕佷綔搴熺殑鏁版嵁涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒");
         }
-        if(!WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) {
+        if (!WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) {
             return Result.error("璇ョ姸鎬佺殑鏁版嵁涓嶅厑璁歌繘琛屼綔搴燂紒");
         }
         entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.ABOLISH.name());
@@ -155,7 +174,7 @@
     @GetMapping(value = "/collect")
     public Result<?> collect(@RequestParam(name = "id", required = true) String id) {
         boolean b = eamWeekMaintenanceOrderService.collect(id);
-        if(!b) {
+        if (!b) {
             Result.OK("棰嗗彇澶辫触!");
         }
         return Result.OK("棰嗗彇鎴愬姛!");
@@ -186,14 +205,40 @@
     @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 -> {
             EamWeekMaintenanceOrder entity = eamWeekMaintenanceOrderService.getById(id);
             if (entity != null && WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) {
                 entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.ABOLISH.name());
                 eamWeekMaintenanceOrderService.updateById(entity);
+                i.getAndIncrement();
             }
         });
-        return Result.OK("鎵归噺浣滃簾鎴愬姛锛�");
+        return Result.OK("鎵归噺浣滃簾鎴愬姛 " + i.get() + " 鏉″伐鍗曪紒");
+    }
+
+    /**
+     * 閫氳繃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 -> {
+            EamWeekMaintenanceOrder entity = eamWeekMaintenanceOrderService.getById(id);
+            if (entity != null && WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) {
+                boolean b = eamWeekMaintenanceOrderService.collect(id);
+                if (b) {
+                    i.getAndIncrement();
+                }
+            }
+        });
+        return Result.OK("鎵归噺棰嗗彇鎴愬姛 " + i.get() + " 鏉″伐鍗曪紒");
     }
 
     /**
@@ -206,6 +251,122 @@
     @GetMapping(value = "/queryById")
     public Result<?> queryById(@RequestParam(name = "id", required = true) String id) {
         EamWeekMaintenanceOrder eamWeekMaintenanceOrder = eamWeekMaintenanceOrderService.getById(id);
-        return Result.OK(eamWeekMaintenanceOrder);
+        if (eamWeekMaintenanceOrder == null) {
+            return Result.error("鏈壘鍒板搴旀暟鎹�");
+        }
+        try {
+            String json = objectMapper.writeValueAsString(eamWeekMaintenanceOrder);
+            JSONObject item = JSONObject.parseObject(json, Feature.OrderedField);
+            translateDictTextUtils.translateField("equipmentId", eamWeekMaintenanceOrder.getEquipmentId(), item, "eam_equipment,equipment_code,id");
+            translateDictTextUtils.translateField("standardId", eamWeekMaintenanceOrder.getStandardId(), item, "eam_maintenance_standard,standard_name,id");
+            translateDictTextUtils.translateField("operator", eamWeekMaintenanceOrder.getOperator(), item, "sys_user,realname,username");
+            translateDictTextUtils.translateField("creationMethod", eamWeekMaintenanceOrder.getCreationMethod(), item, "order_creation_method");
+            translateDictTextUtils.translateField("maintenanceStatus", eamWeekMaintenanceOrder.getMaintenanceStatus(), item, "week_maintenance_status");
+            translateDictTextUtils.translateField("confirmUser", eamWeekMaintenanceOrder.getConfirmUser(), item, "sys_user,realname,username");
+            translateDictTextUtils.translateField("confirmDealType", eamWeekMaintenanceOrder.getConfirmDealType(), item, "approved_rejected");
+            translateDictTextUtils.translateField("initialAcceptanceUser", eamWeekMaintenanceOrder.getInitialAcceptanceUser(), item, "sys_user,realname,username");
+            translateDictTextUtils.translateField("finalAcceptanceUser", eamWeekMaintenanceOrder.getFinalAcceptanceUser(), item, "sys_user,realname,username");
+            return Result.OK(item);
+        } catch (JsonProcessingException e) {
+            return Result.error("鏁版嵁杞瘧澶辫触锛�");
+        }
+    }
+
+    /**
+     * 鎴戠殑寰呭姙锛屽鎵瑰姩浣�
+     *
+     * @param request
+     * @return
+     */
+    @ApiOperation(value = "鍛ㄤ繚宸ュ崟-鎵ц鎿嶄綔", notes = "鍛ㄤ繚宸ュ崟-鎵ц鎿嶄綔")
+    @PutMapping(value = "/approval")
+    public Result<?> approval(@RequestBody EamWeekMaintenanceRequest request) {
+        if (request == null) {
+            return Result.error("瀹℃壒鐨勫璞′笉鑳戒负绌猴紒");
+        }
+        if (CollectionUtil.isEmpty(request.getTableDetailList())) {
+            return Result.error("淇濆吇椤逛笉鑳戒负绌猴紒");
+        }
+        // 妫�鏌ヨ姹傚弬鏁�
+        if (StrUtil.isBlank(request.getTaskId()) || StrUtil.isBlank(request.getDataId()) || StrUtil.isBlank(request.getInstanceId())) {
+            return Result.error("瀹℃壒浠诲姟閿欒鎴栦笉瀛樺湪锛�");
+        }
+        EamWeekMaintenanceOrder b = eamWeekMaintenanceOrderService.approval(request);
+        if (b == null) {
+            return Result.error("鎿嶄綔澶辫触锛�");
+        }
+        return Result.ok("鎿嶄綔鎴愬姛锛�");
+    }
+
+    @ApiOperation(value = "鍛ㄤ繚宸ュ崟-鎵归噺瀹℃壒娴佺▼", notes = "鍛ㄤ繚宸ュ崟-鎵归噺瀹℃壒娴佺▼")
+    @PostMapping("/batchApproval")
+    public Result<?> batchApproval(@RequestBody EamWeekMaintenanceBatchApprovalRequest request) {
+        if (request == null || CollectionUtil.isEmpty(request.getTaskList())) {
+            return Result.error("娌℃湁闇�瑕佸鎵圭殑鏁版嵁锛�");
+        }
+        int n = 0;
+        StringBuilder errorMsg = new StringBuilder();
+        List<WorkTaskDataVo> tastList = request.getTaskList();
+        for (WorkTaskDataVo workTaskDataVo : tastList) {
+            EamWeekMaintenanceRequest orderRequest = new EamWeekMaintenanceRequest();
+            EamWeekMaintenanceOrder order = eamWeekMaintenanceOrderService.getById(workTaskDataVo.getDataId());
+            if (order == null) {
+                errorMsg.append("宸ュ崟ID锛�");
+                errorMsg.append(workTaskDataVo.getDataId());
+                errorMsg.append(",涓嶅瓨鍦ㄦ垨宸茶鍒犻櫎!\n");
+                continue;
+            }
+            if (!(WeekMaintenanceStatusEnum.WAIT_CONFIRM.name().equals(order.getMaintenanceStatus())
+                    || WeekMaintenanceStatusEnum.WAIT_INITIAL_ACCEPTANCE.name().equals(order.getMaintenanceStatus())
+                    || WeekMaintenanceStatusEnum.WAIT_FINAL_ACCEPTANCE.name().equals(order.getMaintenanceStatus()))) {
+                errorMsg.append("宸ュ崟鍙凤細");
+                errorMsg.append(order.getOrderNum());
+                errorMsg.append(",鐘舵�佹棤娉曟壒閲忓鎵�!\n");
+                continue;
+            }
+            List<EamWeekMaintenanceOrderDetail> tableDetailList = weekMaintenanceOrderDetailService.queryListByOrderId(order.getId());
+            try {
+                orderRequest.setId(order.getId());
+                orderRequest.setEquipmentId(order.getEquipmentId());
+                //瀹℃壒淇℃伅
+                if (WeekMaintenanceStatusEnum.WAIT_CONFIRM.name().equals(order.getMaintenanceStatus())) {
+                    orderRequest.setConfirmComment(request.getConfirmComment());
+                    orderRequest.setConfirmDealType(request.getConfirmDealType());
+                } else if (WeekMaintenanceStatusEnum.WAIT_INITIAL_ACCEPTANCE.name().equals(order.getMaintenanceStatus())) {
+                    orderRequest.setInitialAcceptanceComment(request.getInitialAcceptanceComment());
+                    orderRequest.setInitialAcceptanceFilesResult(request.getInitialAcceptanceFilesResult());
+                } else if (WeekMaintenanceStatusEnum.WAIT_FINAL_ACCEPTANCE.name().equals(order.getMaintenanceStatus())) {
+                    orderRequest.setFinalAcceptanceComment(request.getFinalAcceptanceComment());
+                    orderRequest.setFinalAcceptanceFilesResult(request.getFinalAcceptanceFilesResult());
+                }
+                //浠诲姟淇℃伅
+                orderRequest.setDataId(workTaskDataVo.getDataId());
+                orderRequest.setTaskId(workTaskDataVo.getId());
+                orderRequest.setUserId(workTaskDataVo.getAssignee());
+                orderRequest.setInstanceId(workTaskDataVo.getProcInstId());
+                orderRequest.setValues(workTaskDataVo.getVariables());
+                orderRequest.setTableDetailList(tableDetailList);
+                EamWeekMaintenanceOrder result = eamWeekMaintenanceOrderService.approval(orderRequest);
+                if (result == null) {
+                    errorMsg.append("宸ュ崟鍙凤細");
+                    errorMsg.append(order.getOrderNum());
+                    errorMsg.append(",瀹℃壒澶辫触!\n");
+                    continue;
+                }
+                n++;
+
+            } catch (Exception e) {
+                errorMsg.append("宸ュ崟鍙凤細");
+                errorMsg.append(order.getOrderNum());
+                errorMsg.append(",瀹℃壒澶辫触,閿欒鍘熷洜:");
+                errorMsg.append(e.getMessage() + "\n");
+            }
+
+        }
+        if (n > 0) {
+            String message = "鎴愬姛瀹℃壒閫氳繃" + n + "鏉¤褰曪紒\n" + errorMsg;
+            return Result.OK(message);
+        }
+        return Result.error(errorMsg.toString());
     }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentAttachment.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentAttachment.java
new file mode 100644
index 0000000..7135feb
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentAttachment.java
@@ -0,0 +1,67 @@
+package org.jeecg.modules.eam.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+/**
+ * @Description: 璁惧鏂囨。鍙拌处浣跨敤
+ * @Author: jeecg-boot
+ * @Date:   2025-04-16
+ * @Version: V1.0
+ */
+@Data
+@TableName("eam_equipment_attachment")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="eam_equipment_attachment瀵硅薄", description="璁惧鏂囨。鍙拌处浣跨敤")
+public class EamEquipmentAttachment implements Serializable {
+    
+	/**涓婚敭*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "涓婚敭")
+	private String id;
+	/**鍒涘缓浜�*/
+    @ApiModelProperty(value = "鍒涘缓浜�")
+	private String createBy;
+	/**鍒涘缓鏃堕棿*/
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+	private Date createTime;
+	/**鏇存柊浜�*/
+    @ApiModelProperty(value = "鏇存柊浜�")
+	private String updateBy;
+	/**鏇存柊鏃堕棿*/
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+	private Date updateTime;
+	/**鍒犻櫎鏍囪*/
+    @ApiModelProperty(value = "鍒犻櫎鏍囪")
+	private Integer delFlag;
+	/**鏂囦欢鍔犲瘑鍚�*/
+	@ApiModelProperty(value = "璁惧ID")
+	private String equipmentId;
+	/**鏂囦欢鍔犲瘑鍚�*/
+    @ApiModelProperty(value = "鏂囦欢鍔犲瘑鍚�")
+	private String fileEncodeName;
+	/**鏂囦欢鍚嶇О*/
+    @ApiModelProperty(value = "鏂囦欢鍚嶇О")
+	private String fileName;
+	/**鏂囦欢淇濆瓨璺緞*/
+    @ApiModelProperty(value = "鏂囦欢淇濆瓨璺緞")
+	private String filePath;
+	/**鏂囦欢鍚庣紑鍚�*/
+    @ApiModelProperty(value = "鏂囦欢鍚庣紑鍚�")
+	private String fileSuffix;
+	/**鏂囦欢澶у皬*/
+    @ApiModelProperty(value = "鏂囦欢澶у皬")
+	private Long fileSize;
+	/**鎻忚堪*/
+    @ApiModelProperty(value = "鎻忚堪")
+	private String description;
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrderDetail.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrderDetail.java
index 1759b3a..00962c2 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrderDetail.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrderDetail.java
@@ -75,4 +75,12 @@
     @ApiModelProperty(value = "淇濆吇瑕佹眰")
     private String  itemDemand;
 
+    public EamInspectionOrderDetail(){}
+
+    public EamInspectionOrderDetail(EamMaintenanceStandardDetail detail) {
+        this.itemCode = detail.getItemCode();
+        this.itemName = detail.getItemName();
+        this.itemDemand = detail.getItemDemand();
+    }
+
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java
index 37502c6..5dabd18 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.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 com.fasterxml.jackson.annotation.JsonFormat;
@@ -14,81 +15,127 @@
 
 import java.io.Serializable;
 import java.util.Date;
+
 /**
  * @Description: 淇濆吇鏍囧噯
  * @Author: jeecg-boot
- * @Date:   2025-03-26
+ * @Date: 2025-03-26
  * @Version: V1.0
  */
 @Data
 @TableName("eam_maintenance_standard")
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
-@ApiModel(value="eam_maintenance_standard瀵硅薄", description="淇濆吇鏍囧噯")
+@ApiModel(value = "eam_maintenance_standard瀵硅薄", description = "淇濆吇鏍囧噯")
 public class EamMaintenanceStandard implements Serializable {
 
-	/**涓婚敭*/
-	@TableId(type = IdType.ASSIGN_ID)
+    /**
+     * 涓婚敭
+     */
+    @TableId(type = IdType.ASSIGN_ID)
     @ApiModelProperty(value = "涓婚敭")
-	private String id;
-	/**鍒涘缓浜�*/
+    private String id;
+    /**
+     * 鍒涘缓浜�
+     */
     @ApiModelProperty(value = "鍒涘缓浜�")
-	private String createBy;
-	/**鍒涘缓鏃堕棿*/
+    private String createBy;
+    /**
+     * 鍒涘缓鏃堕棿
+     */
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
-	private Date createTime;
-	/**鏇存柊浜�*/
+    private Date createTime;
+    /**
+     * 鏇存柊浜�
+     */
     @ApiModelProperty(value = "鏇存柊浜�")
-	private String updateBy;
-	/**鏇存柊鏃堕棿*/
+    private String updateBy;
+    /**
+     * 鏇存柊鏃堕棿
+     */
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
-	private Date updateTime;
-	/**鍒犻櫎鏍囪*/
+    private Date updateTime;
+    /**
+     * 鍒犻櫎鏍囪
+     */
     @ApiModelProperty(value = "鍒犻櫎鏍囪")
-	private Integer delFlag;
-	/**鏍囧噯缂栫爜*/
+    private Integer delFlag;
+    /**
+     * 鏍囧噯缂栫爜
+     */
     @ApiModelProperty(value = "鏍囧噯缂栫爜")
-	private String standardCode;
-	/**鏍囧噯鍚嶇О*/
+    private String standardCode;
+    /**
+     * 鏍囧噯鍚嶇О
+     */
     @ApiModelProperty(value = "鏍囧噯鍚嶇О")
-	private String standardName;
-	/**淇濆吇鍛ㄦ湡;鍗曚綅:澶�*/
+    private String standardName;
+    /**
+     * 淇濆吇鍛ㄦ湡;鍗曚綅:澶�
+     */
     @ApiModelProperty(value = "淇濆吇鍛ㄦ湡;鍗曚綅:澶�")
-	private Integer maintenancePeriod;
-	/**鍒濆鏃ユ湡 浠庡摢涓�澶╁紑濮嬭绠椾笅娆′繚鍏绘棩鏈�*/
-	@ApiModelProperty(value = "鍒濆鏃ユ湡")
-	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
-	@DateTimeFormat(pattern = "yyyy-MM-dd")
-	private Date initialDate;
-	/**淇濆吇鍒嗙被*/
+    private Integer maintenancePeriod;
+    /**
+     * 鍒濆鏃ユ湡 浠庡摢涓�澶╁紑濮嬭绠椾笅娆′繚鍏绘棩鏈�
+     */
+    @ApiModelProperty(value = "鍒濆鏃ユ湡")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date initialDate;
+    /**
+     * 淇濆吇鍒嗙被
+     */
     @ApiModelProperty(value = "淇濆吇鍒嗙被")
-	@Dict(dicCode = "maintenance_category")
-	private String maintenanceCategory;
-	/**璁惧缂栧彿*/
+    @Dict(dicCode = "maintenance_category")
+    private String maintenanceCategory;
+    /**
+     * 璁惧缂栧彿
+     */
     @ApiModelProperty(value = "璁惧缂栧彿")
-	@Dict(dicCode = "eam_equipment, equipment_code, id")
-	private String equipmentId;
-	/**鏍囧噯鐘舵��*/
+    @Dict(dicCode = "eam_equipment, equipment_code, id")
+    private String equipmentId;
+    /**
+     * 鏍囧噯鐘舵��
+     */
     @ApiModelProperty(value = "鏍囧噯鐘舵��")
-	@Dict(dicCode = "maintenance_standard_status")
-	private String standardStatus;
-	/**鏍囧噯鐗堟湰*/
+    @Dict(dicCode = "maintenance_standard_status")
+    private String standardStatus;
+    /**
+     * 鏍囧噯鐗堟湰
+     */
     @ApiModelProperty(value = "鏍囧噯鐗堟湰")
-	private Integer standardVersion;
-	/**鏂囦欢缂栧彿*/
-	@ApiModelProperty(value = "鏂囦欢缂栧彿")
-	private String fileCode;
-	/**鍙傝�冩枃浠�*/
-	@ApiModelProperty(value = "鍙傝�冩枃浠�")
-	private String referenceFile;
-	/**
-	 * 鏈�鏂扮敓鎴愬伐鍗曟椂闂�
-	 * 涓嬩竴娆$敓鎴愭椂闂翠负姝ゆ椂闂� + 淇濆吇鍛ㄦ湡
-	 */
-	@ApiModelProperty(value = "鏈�鏂扮敓鎴愬伐鍗曟椂闂�")
-	private Date lastGenerateTime;
+    private Integer standardVersion;
+    /**
+     * 鏂囦欢缂栧彿
+     */
+    @ApiModelProperty(value = "鏂囦欢缂栧彿")
+    private String fileCode;
+    /**
+     * 鍙傝�冩枃浠�
+     */
+    @ApiModelProperty(value = "鍙傝�冩枃浠�")
+    private String referenceFile;
+    /**
+     * 鏈�鏂扮敓鎴愬伐鍗曟椂闂�
+     * 涓嬩竴娆$敓鎴愭椂闂翠负姝ゆ椂闂� + 淇濆吇鍛ㄦ湡
+     */
+    @ApiModelProperty(value = "鏈�鏂扮敓鎴愬伐鍗曟椂闂�")
+    private Date lastGenerateTime;
 
-	/**璁惧缂栧彿*/
-	private transient String equipmentText;
+    //鍒楄〃灞曠ず
+    @TableField(exist = false)
+    private String equipmentCode;
+    @TableField(exist = false)
+    private String equipmentName;
+    @TableField(exist = false)
+    private String keyword;
+    /**
+     * 璁惧缂栧彿鎷兼帴
+     */
+    @TableField(exist = false)
+    private String equipmentText;
 
+    public String getEquipmentText() {
+        return equipmentCode + "[" + equipmentName + "]";
+    }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java
index 4372cde..0d010bb 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java
@@ -64,4 +64,13 @@
 	/**鎶ヤ慨鏍囪*/
     @ApiModelProperty(value = "鎶ヤ慨鏍囪")
 	private String reportFlag;
+
+	public EamWeekMaintenanceOrderDetail(){}
+
+	public EamWeekMaintenanceOrderDetail(EamMaintenanceStandardDetail detail) {
+		this.itemCode = detail.getItemCode();
+		this.itemName = detail.getItemName();
+		this.subItemName = detail.getSubItemName();
+		this.itemDemand = detail.getItemDemand();
+	}
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderExpiredJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderExpiredJob.java
new file mode 100644
index 0000000..ffc9040
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderExpiredJob.java
@@ -0,0 +1,86 @@
+package org.jeecg.modules.eam.job;
+
+import cn.hutool.core.collection.CollectionUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.modules.eam.constant.InspectionStatus;
+import org.jeecg.modules.eam.entity.EamInspectionOrder;
+import org.jeecg.modules.eam.service.IEamInspectionOrderService;
+import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
+import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService;
+import org.jeecg.modules.flowable.service.IFlowTaskService;
+import org.jeecg.modules.mdc.util.ThrowableUtil;
+import org.jeecg.modules.quartz.entity.QuartzJob;
+import org.jeecg.modules.quartz.entity.SysQuartzLog;
+import org.jeecg.modules.quartz.service.IQuartzJobService;
+import org.jeecg.modules.quartz.service.ISysQuartzLogService;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDate;
+import java.util.Date;
+import java.util.List;
+
+@Component
+@Slf4j
+public class InspectionOrderExpiredJob implements Job {
+
+    @Autowired
+    private IEamInspectionOrderService eamInspectionOrderService;
+
+    @Autowired
+    private IFlowMyBusinessService flowMyBusinessService;
+    @Autowired
+    private IFlowTaskService flowTaskService;
+    @Autowired
+    private ISysQuartzLogService sysQuartzLogService;
+    @Autowired
+    private IQuartzJobService quartzJobService;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        //浠诲姟鏃ュ織
+        SysQuartzLog quartzLog = new SysQuartzLog();
+        quartzLog.setCreateTime(new Date());
+        List<QuartzJob> byJobClassName = quartzJobService.findByJobClassName(this.getClass().getName());
+        if (byJobClassName != null && !byJobClassName.isEmpty()) {
+            quartzLog.setJobId(byJobClassName.get(0).getId());
+        }
+        long startTime = System.currentTimeMillis();
+        LocalDate now = LocalDate.now();
+        try {
+            List<EamInspectionOrder> unCompleteOrderList = eamInspectionOrderService.selectUnCompleteOrder(now.toString());
+            if (CollectionUtil.isEmpty(unCompleteOrderList)) {
+                //娌℃湁闇�瑕佸鐞嗙殑鏁版嵁
+                return;
+            }
+            for (EamInspectionOrder order : unCompleteOrderList) {
+                if (InspectionStatus.WAIT_INSPECTION.name().equals(order.getInspectionStatus())) {
+                    order.setInspectionStatus(InspectionStatus.EXPIRED.name());
+                } else if (InspectionStatus.UNDER_INSPECTION.name().equals(order.getInspectionStatus())) {
+                    //宸茬粡琚帴鍗� 浣嗘湭鎵ц瀹屾垚
+                    order.setInspectionStatus(InspectionStatus.EXPIRED.name());
+                    //寮哄埗缁撴潫娴佺▼ 鍒犻櫎鐢ㄦ埛鐨勬寰呭姙浠诲姟
+                    FlowMyBusiness flowMyBusiness = flowMyBusinessService.selectByDataId(order.getId());
+                    if (flowMyBusiness != null) {
+                        flowTaskService.end(flowMyBusiness.getProcessInstanceId(), "杩囨湡鍒犻櫎");
+                    }
+                }
+            }
+            eamInspectionOrderService.updateBatchById(unCompleteOrderList);
+            quartzLog.setIsSuccess(0);
+        } catch (Exception e) {
+            log.error("鐐规杩囨湡鎵ц瀹氭椂浠诲姟澶辫触锛寋}", e.getMessage(), e);
+            quartzLog.setIsSuccess(-1);
+            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
+        }
+        long endTime = System.currentTimeMillis();
+        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+        sysQuartzLogService.save(quartzLog);
+    }
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderGenerateJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderGenerateJob.java
new file mode 100644
index 0000000..00faa7e
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderGenerateJob.java
@@ -0,0 +1,129 @@
+package org.jeecg.modules.eam.job;
+
+import cn.hutool.core.collection.CollectionUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.util.DateUtils;
+import org.jeecg.modules.eam.constant.BusinessCodeConst;
+import org.jeecg.modules.eam.constant.MaintenanceCategoryEnum;
+import org.jeecg.modules.eam.constant.OrderCreationMethodEnum;
+import org.jeecg.modules.eam.entity.EamInspectionOrderDetail;
+import org.jeecg.modules.eam.entity.EamMaintenanceStandard;
+import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
+import org.jeecg.modules.eam.request.EamInspectionOrderRequest;
+import org.jeecg.modules.eam.service.IEamInspectionOrderService;
+import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService;
+import org.jeecg.modules.eam.service.IEamMaintenanceStandardService;
+import org.jeecg.modules.mdc.util.ThrowableUtil;
+import org.jeecg.modules.quartz.entity.QuartzJob;
+import org.jeecg.modules.quartz.entity.SysQuartzLog;
+import org.jeecg.modules.quartz.service.IQuartzJobService;
+import org.jeecg.modules.quartz.service.ISysQuartzLogService;
+import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDate;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Component
+@Slf4j
+public class InspectionOrderGenerateJob implements Job {
+    @Autowired
+    private IEamMaintenanceStandardService eamMaintenanceStandardService;
+    @Autowired
+    private IEamMaintenanceStandardDetailService eamMaintenanceStandardDetailService;
+    @Autowired
+    private IEamInspectionOrderService eamInspectionOrderService;
+    @Autowired
+    private ISysBusinessCodeRuleService businessCodeRuleService;
+    @Autowired
+    private ISysQuartzLogService sysQuartzLogService;
+    @Autowired
+    private IQuartzJobService quartzJobService;
+
+    /**
+     * 宸ュ崟鐢熸垚
+     *
+     * @param jobExecutionContext
+     * @throws JobExecutionException
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        //浠诲姟鏃ュ織
+        SysQuartzLog quartzLog = new SysQuartzLog();
+        quartzLog.setCreateTime(new Date());
+        List<QuartzJob> byJobClassName = quartzJobService.findByJobClassName(this.getClass().getName());
+        if (byJobClassName != null && !byJobClassName.isEmpty()) {
+            quartzLog.setJobId(byJobClassName.get(0).getId());
+        }
+        long startTime = System.currentTimeMillis();
+        /**
+         * 鑾峰彇 閰嶇疆浜� 鍛ㄤ繚鏍囧噯鐨� 淇℃伅
+         */
+        List<EamMaintenanceStandard> standardList = eamMaintenanceStandardService.queryListByCategory(MaintenanceCategoryEnum.POINT_INSPECTION.name());
+        if (CollectionUtil.isEmpty(standardList)) {
+            log.warn("娌℃湁閰嶇疆浠讳綍鍛ㄤ繚鏍囧噯锛屼换鍔$粨鏉�");
+            return;
+        }
+        //褰撳墠鏃ユ湡
+        LocalDate now = LocalDate.now();
+        try {
+            for (EamMaintenanceStandard standard : standardList) {
+                if (standard.getMaintenancePeriod() == null || standard.getMaintenancePeriod() < 1) {
+                    log.error("鐐规鏍囧噯鍛ㄦ湡璁剧疆閿欒锛岃鍏堥厤缃爣鍑嗗懆鏈�, standard:{}", standard);
+                    continue;
+                }
+                if (standard.getInitialDate() == null) {
+                    //璁剧疆鍒濆鏃ユ湡涓哄墠涓�澶�
+                    standard.setInitialDate(DateUtils.localDateToDate(now.minusDays(1)));
+                }
+                LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate());
+                if (standard.getLastGenerateTime() != null) {
+                    generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime());
+                }
+                //鍔犲懆鏈�
+                do {
+                    //鍒濆鏃ユ湡璁剧疆鐨勬瘮杈冩棭锛屾垨浠诲姟闀挎椂闂存病鎵ц锛屽繀椤诲懆鏈熷埌浠婂ぉ鎵嶄細鐢熸垚宸ュ崟
+                    generateDate = generateDate.plusDays(standard.getMaintenancePeriod());
+                } while (now.isAfter(generateDate));
+                if(!now.isEqual(generateDate)) {
+                    //杩樻湭鍒扮敓鎴愭棩鏈燂紝璺宠繃鎵ц
+                    continue;
+                }
+                //鑾峰彇淇濆吇椤规槑缁�
+                List<EamMaintenanceStandardDetail> standardDetailList = eamMaintenanceStandardDetailService.selectByStandardId(standard.getId());
+                if(CollectionUtil.isEmpty(standardDetailList)) {
+                    log.error("鐐规鏍囧噯娌℃湁淇濆吇鏄庣粏锛岃鍏堥厤缃繚鍏绘槑缁�, standard:{}", standard);
+                    continue;
+                }
+                //寮�濮嬬敓鎴�
+                EamInspectionOrderRequest request = new EamInspectionOrderRequest();
+                request.setEquipmentId(standard.getEquipmentId());
+                request.setStandardId(standard.getId());
+                request.setInspectionDate(DateUtils.localDateToDate(generateDate));
+                request.setExpirationTime(DateUtils.localDateToDate(generateDate.plusDays(standard.getMaintenancePeriod())));
+                request.setCreationMethod(OrderCreationMethodEnum.AUTO.name());
+                String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.INSPECTION_ORDER_CODE_RULE);
+                request.setOrderNum(codeSeq);
+                List<EamInspectionOrderDetail> collect = standardDetailList.stream().map(EamInspectionOrderDetail::new).collect(Collectors.toList());
+                request.setTableDetailList(collect);
+                eamInspectionOrderService.addInspectionOrder(request);
+            }
+            quartzLog.setIsSuccess(0);
+        } catch (Exception e) {
+            log.error("鍛ㄤ繚杩囩敓鎴愭墽琛屽畾鏃朵换鍔″け璐ワ紝{}", e.getMessage(), e);
+            quartzLog.setIsSuccess(-1);
+            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
+        }
+        long endTime = System.currentTimeMillis();
+        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+        sysQuartzLogService.save(quartzLog);
+    }
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderExpiredJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderExpiredJob.java
new file mode 100644
index 0000000..227c0e8
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderExpiredJob.java
@@ -0,0 +1,86 @@
+package org.jeecg.modules.eam.job;
+
+import cn.hutool.core.collection.CollectionUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.modules.eam.constant.WeekMaintenanceStatusEnum;
+import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrder;
+import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderService;
+import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
+import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService;
+import org.jeecg.modules.flowable.service.IFlowTaskService;
+import org.jeecg.modules.mdc.util.ThrowableUtil;
+import org.jeecg.modules.quartz.entity.QuartzJob;
+import org.jeecg.modules.quartz.entity.SysQuartzLog;
+import org.jeecg.modules.quartz.service.IQuartzJobService;
+import org.jeecg.modules.quartz.service.ISysQuartzLogService;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDate;
+import java.util.Date;
+import java.util.List;
+
+@Component
+@Slf4j
+public class WeekMaintenanceOrderExpiredJob implements Job {
+
+    @Autowired
+    private IEamWeekMaintenanceOrderService eamWeekMaintenanceOrderService;
+
+    @Autowired
+    private IFlowMyBusinessService flowMyBusinessService;
+    @Autowired
+    private IFlowTaskService flowTaskService;
+    @Autowired
+    private ISysQuartzLogService sysQuartzLogService;
+    @Autowired
+    private IQuartzJobService quartzJobService;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        //浠诲姟鏃ュ織
+        SysQuartzLog quartzLog = new SysQuartzLog();
+        quartzLog.setCreateTime(new Date());
+        List<QuartzJob> byJobClassName = quartzJobService.findByJobClassName(this.getClass().getName());
+        if (byJobClassName != null && !byJobClassName.isEmpty()) {
+            quartzLog.setJobId(byJobClassName.get(0).getId());
+        }
+        long startTime = System.currentTimeMillis();
+        LocalDate now = LocalDate.now();
+        try {
+            List<EamWeekMaintenanceOrder> unCompleteOrderList = eamWeekMaintenanceOrderService.selectUnCompleteOrder(now.toString());
+            if (CollectionUtil.isEmpty(unCompleteOrderList)) {
+                //娌℃湁闇�瑕佸鐞嗙殑鏁版嵁
+                return;
+            }
+            for (EamWeekMaintenanceOrder order : unCompleteOrderList) {
+                if (WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(order.getMaintenanceStatus())) {
+                    order.setMaintenanceStatus(WeekMaintenanceStatusEnum.EXPIRED.name());
+                } else if (WeekMaintenanceStatusEnum.UNDER_MAINTENANCE.name().equals(order.getMaintenanceStatus())) {
+                    //宸茬粡琚帴鍗� 浣嗘湭鎵ц瀹屾垚
+                    order.setMaintenanceStatus(WeekMaintenanceStatusEnum.EXPIRED.name());
+                    //寮哄埗缁撴潫娴佺▼ 鍒犻櫎鐢ㄦ埛鐨勬寰呭姙浠诲姟
+                    FlowMyBusiness flowMyBusiness = flowMyBusinessService.selectByDataId(order.getId());
+                    if (flowMyBusiness != null) {
+                        flowTaskService.end(flowMyBusiness.getProcessInstanceId(), "杩囨湡鍒犻櫎");
+                    }
+                }
+            }
+            eamWeekMaintenanceOrderService.updateBatchById(unCompleteOrderList);
+            quartzLog.setIsSuccess(0);
+        } catch (Exception e) {
+            log.error("鍛ㄤ繚杩囨湡鎵ц瀹氭椂浠诲姟澶辫触锛寋}", e.getMessage(), e);
+            quartzLog.setIsSuccess(-1);
+            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
+        }
+        long endTime = System.currentTimeMillis();
+        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+        sysQuartzLogService.save(quartzLog);
+    }
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java
new file mode 100644
index 0000000..61e3a92
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java
@@ -0,0 +1,128 @@
+package org.jeecg.modules.eam.job;
+
+import cn.hutool.core.collection.CollectionUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.util.DateUtils;
+import org.jeecg.modules.eam.constant.BusinessCodeConst;
+import org.jeecg.modules.eam.constant.MaintenanceCategoryEnum;
+import org.jeecg.modules.eam.constant.OrderCreationMethodEnum;
+import org.jeecg.modules.eam.entity.EamMaintenanceStandard;
+import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
+import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail;
+import org.jeecg.modules.eam.request.EamWeekMaintenanceRequest;
+import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService;
+import org.jeecg.modules.eam.service.IEamMaintenanceStandardService;
+import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderService;
+import org.jeecg.modules.mdc.util.ThrowableUtil;
+import org.jeecg.modules.quartz.entity.QuartzJob;
+import org.jeecg.modules.quartz.entity.SysQuartzLog;
+import org.jeecg.modules.quartz.service.IQuartzJobService;
+import org.jeecg.modules.quartz.service.ISysQuartzLogService;
+import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDate;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Component
+@Slf4j
+public class WeekMaintenanceOrderGenerateJob implements Job {
+    @Autowired
+    private IEamMaintenanceStandardService eamMaintenanceStandardService;
+    @Autowired
+    private IEamMaintenanceStandardDetailService eamMaintenanceStandardDetailService;
+    @Autowired
+    private IEamWeekMaintenanceOrderService eamWeekMaintenanceOrderService;
+    @Autowired
+    private ISysBusinessCodeRuleService businessCodeRuleService;
+    @Autowired
+    private ISysQuartzLogService sysQuartzLogService;
+    @Autowired
+    private IQuartzJobService quartzJobService;
+
+    /**
+     * 宸ュ崟鐢熸垚
+     *
+     * @param jobExecutionContext
+     * @throws JobExecutionException
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        //浠诲姟鏃ュ織
+        SysQuartzLog quartzLog = new SysQuartzLog();
+        quartzLog.setCreateTime(new Date());
+        List<QuartzJob> byJobClassName = quartzJobService.findByJobClassName(this.getClass().getName());
+        if (byJobClassName != null && !byJobClassName.isEmpty()) {
+            quartzLog.setJobId(byJobClassName.get(0).getId());
+        }
+        long startTime = System.currentTimeMillis();
+        /**
+         * 鑾峰彇 閰嶇疆浜� 鍛ㄤ繚鏍囧噯鐨� 淇℃伅
+         */
+        List<EamMaintenanceStandard> standardList = eamMaintenanceStandardService.queryListByCategory(MaintenanceCategoryEnum.WEEK_MAINTENANCE.name());
+        if (CollectionUtil.isEmpty(standardList)) {
+            log.warn("娌℃湁閰嶇疆浠讳綍鍛ㄤ繚鏍囧噯锛屼换鍔$粨鏉�");
+            return;
+        }
+        //褰撳墠鏃ユ湡
+        LocalDate now = LocalDate.now();
+        try {
+            for (EamMaintenanceStandard standard : standardList) {
+                if (standard.getMaintenancePeriod() == null || standard.getMaintenancePeriod() < 1) {
+                    log.error("鍛ㄤ繚鏍囧噯鍛ㄦ湡璁剧疆閿欒锛岃鍏堥厤缃爣鍑嗗懆鏈�, standard:{}", standard);
+                    continue;
+                }
+                if (standard.getInitialDate() == null) {
+                    //璁剧疆鍒濆鏃ユ湡涓哄墠涓�澶�
+                    standard.setInitialDate(DateUtils.localDateToDate(now.minusDays(1)));
+                }
+                LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate());
+                if (standard.getLastGenerateTime() != null) {
+                    generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime());
+                }
+                //鍔犲懆鏈�
+                do {
+                    //鍒濆鏃ユ湡璁剧疆鐨勬瘮杈冩棭锛屾垨浠诲姟闀挎椂闂存病鎵ц锛屽繀椤诲懆鏈熷埌浠婂ぉ鎵嶄細鐢熸垚宸ュ崟
+                    generateDate = generateDate.plusDays(standard.getMaintenancePeriod());
+                } while (now.isAfter(generateDate));
+                if(!now.isEqual(generateDate)) {
+                    //杩樻湭鍒扮敓鎴愭棩鏈燂紝璺宠繃鎵ц
+                    continue;
+                }
+                //鑾峰彇淇濆吇椤规槑缁�
+                List<EamMaintenanceStandardDetail> standardDetailList = eamMaintenanceStandardDetailService.selectByStandardId(standard.getId());
+                if(CollectionUtil.isEmpty(standardDetailList)) {
+                    log.error("鍛ㄤ繚鏍囧噯娌℃湁淇濆吇鏄庣粏锛岃鍏堥厤缃繚鍏绘槑缁�, standard:{}", standard);
+                    continue;
+                }
+                //寮�濮嬬敓鎴�
+                EamWeekMaintenanceRequest request = new EamWeekMaintenanceRequest();
+                request.setEquipmentId(standard.getEquipmentId());
+                request.setStandardId(standard.getId());
+                request.setMaintenanceDate(DateUtils.localDateToDate(generateDate));
+                String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.WEEK_MAINTENANCE_CODE_RULE);
+                request.setOrderNum(codeSeq);
+                request.setCreationMethod(OrderCreationMethodEnum.AUTO.name());
+                List<EamWeekMaintenanceOrderDetail> collect = standardDetailList.stream().map(EamWeekMaintenanceOrderDetail::new).collect(Collectors.toList());
+                request.setTableDetailList(collect);
+                eamWeekMaintenanceOrderService.addWeekMaintenance(request);
+            }
+            quartzLog.setIsSuccess(0);
+        } catch (Exception e) {
+            log.error("鍛ㄤ繚杩囩敓鎴愭墽琛屽畾鏃朵换鍔″け璐ワ紝{}", e.getMessage(), e);
+            quartzLog.setIsSuccess(-1);
+            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
+        }
+        long endTime = System.currentTimeMillis();
+        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+        sysQuartzLogService.save(quartzLog);
+    }
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentAttachmentMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentAttachmentMapper.java
new file mode 100644
index 0000000..ca99a69
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentAttachmentMapper.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.eam.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.eam.entity.EamEquipmentAttachment;
+
+/**
+ * @Description: 璁惧鏂囨。鍙拌处浣跨敤
+ * @Author: jeecg-boot
+ * @Date:   2025-04-16
+ * @Version: V1.0
+ */
+public interface EamEquipmentAttachmentMapper extends BaseMapper<EamEquipmentAttachment> {
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamInspectionOrderMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamInspectionOrderMapper.java
index f62c2a4..0851910 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamInspectionOrderMapper.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamInspectionOrderMapper.java
@@ -1,7 +1,13 @@
 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.EamInspectionOrder;
+import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrder;
 
 /**
  * @Description: 鐐规宸ュ崟
@@ -11,4 +17,11 @@
  */
 public interface EamInspectionOrderMapper extends BaseMapper<EamInspectionOrder> {
 
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param page
+     * @param queryWrapper
+     * @return
+     */
+    IPage<EamInspectionOrder> queryPageList(Page<EamInspectionOrder> page, @Param(Constants.WRAPPER) QueryWrapper<EamInspectionOrder> queryWrapper);
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceStandardMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceStandardMapper.java
index 5a0d83c..2c0fd59 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceStandardMapper.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceStandardMapper.java
@@ -1,6 +1,9 @@
 package org.jeecg.modules.eam.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.eam.entity.EamMaintenanceStandard;
 
@@ -9,18 +12,16 @@
 /**
  * @Description: 淇濆吇鏍囧噯
  * @Author: jeecg-boot
- * @Date:   2025-03-26
+ * @Date: 2025-03-26
  * @Version: V1.0
  */
 public interface EamMaintenanceStandardMapper extends BaseMapper<EamMaintenanceStandard> {
 
     /**
-     * 鏌ヨ鏍囧噯鍒楄〃-鍓嶇灞曠ず璇ョ敤鎴锋嫢鏈夌殑鏍囧噯
-     * @param userId 鐢ㄦ埛
-     * @param keyword 璁惧缂栧彿
-     * @param maintenanceCategory 淇濆吇绫诲瀷
+     * 鍒嗛〉鏌ヨ
+     * @param page
+     * @param queryWrapper
      * @return
      */
-    List<EamMaintenanceStandard> queryListBykeywordAndCategory(@Param("userId")String userId ,@Param("keyword") String keyword, @Param("maintenanceCategory") String maintenanceCategory);
-
+    IPage<EamMaintenanceStandard> queryPageList(IPage<EamMaintenanceStandard> page, @Param(Constants.WRAPPER) Wrapper<EamMaintenanceStandard> queryWrapper);
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java
index 979ae9b..90b1277 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java
@@ -25,5 +25,5 @@
      * @param equipmentIds
      * @return
      */
-    IPage<EamRepairOrder> pageList(Page<EamRepairOrder> page, @Param("eamRepairOrder") EamRepairOrderQuery eamRepairOrderQuery, @Param("userId") String userId, @Param("equipmentIds") List<String> equipmentIds);
+    IPage<EamRepairOrder> pageList(Page<EamRepairOrder> page, @Param("eamRepairOrder") EamRepairOrderQuery eamRepairOrder, @Param("userId") String userId, @Param("equipmentIds") List<String> equipmentIds);
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentAttachmentMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentAttachmentMapper.xml
new file mode 100644
index 0000000..ec5ca50
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentAttachmentMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!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.EamEquipmentAttachmentMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml
index a69ec96..b596292 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.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.EamInspectionOrderMapper">
 
+    <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamInspectionOrder">
+        select wmo.*, e.equipment_code, e.equipment_name
+        from eam_inspection_order wmo
+        inner join eam_equipment e
+        on wmo.equipment_id = e.id
+        ${ew.customSqlSegment}
+    </select>
 </mapper>
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml
index d1e8ff0..68f0ef2 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml
@@ -1,34 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!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.EamMaintenanceStandardMapper">
-
-    <select id="queryListBykeywordAndCategory" resultType="org.jeecg.modules.eam.entity.EamMaintenanceStandard">
-        SELECT
-            e.equipment_code+ '[' + e.equipment_name+ ']' AS 'equipmentText',
-            m.id,
-            m.standard_code,
-            m.standard_name,
-            m.maintenance_period,
-            m.equipment_id
-        FROM
-            eam_maintenance_standard m -- 鍏堣繃婊よ澶囪〃锛屽噺灏� JOIN 閲�
-                INNER JOIN (
-                SELECT
-                    id,
-                    eam_equipment.equipment_code as equipment_code,
-                    eam_equipment.equipment_name as equipment_name,
-                    org_id
-                FROM
-                    eam_equipment
-                WHERE
-                    del_flag = 0
-                  AND ( equipment_code LIKE CONCAT ( #{ keyword }, '%' ) -- 鍙虫ā绯婂埄鐢ㄧ储寮�
-                    OR equipment_name LIKE CONCAT ( #{ keyword }, '%' ) )
-            ) e ON m.equipment_id = e.id
-        WHERE
-            m.del_flag = 0
-          AND m.standard_status= 'NORMAL'
-          AND m.maintenance_category = #{maintenanceCategory}
-          AND EXISTS ( SELECT 1 FROM mdc_user_production t WHERE t.user_id = #{ userId } AND t.pro_id = e.org_id );
+    <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamMaintenanceStandard">
+        select ems.*, e.equipment_code, e.equipment_name
+        from eam_maintenance_standard ems
+        inner join eam_equipment e
+        on ems.equipment_id = e.id
+            ${ew.customSqlSegment}
     </select>
 </mapper>
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml
index d76beae..b7136f3 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml
@@ -39,7 +39,10 @@
             <if test="eamRepairOrder.repairCode != null and eamRepairOrder.repairCode != ''">
                 AND t1.repair_code LIKE CONCAT(CONCAT('%',#{ eamRepairOrder.repairCode }),'%')
             </if>
+            <if test="eamRepairOrder.sparePartDescription != null and eamRepairOrder.sparePartDescription != ''">
+                AND t1.spare_part_description LIKE CONCAT(CONCAT('%',#{ eamRepairOrder.sparePartDescription }),'%')
+            </if>
         </where>
-        ORDER BY t1.create_time
+        ORDER BY t1.create_time DESC
     </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml
index fb16bd6..e95236a 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml
@@ -14,7 +14,7 @@
                 <when test="equipmentIds != null and equipmentIds.size() > 0 ">
                     AND t2.equipment_code IN
                     <foreach collection="equipmentIds" item="equipmentId" index="index" open="(" close=")" separator=",">
-                        {equipmentId}
+                        #{equipmentId}
                     </foreach>
                 </when>
                 <otherwise>
@@ -46,6 +46,6 @@
                 AND t1.fault_start_time BETWEEN #{ eamReportRepair.startTime } AND #{ eamReportRepair.endTime }
             </if>
         </where>
-        ORDER BY t1.fault_start_time DESC
+        ORDER BY t1.create_time DESC
     </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamEquipmentAttachmentRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamEquipmentAttachmentRequest.java
new file mode 100644
index 0000000..e1552f3
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamEquipmentAttachmentRequest.java
@@ -0,0 +1,33 @@
+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.common.api.vo.FileUploadResult;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description: 璁惧闄勪欢绠$悊
+ * @Author: jeecg-boot
+ * @Date:   2025-03-17
+ * @Version: V1.0
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="璇锋眰瀵硅薄", description="璁惧闄勪欢绠$悊")
+public class EamEquipmentAttachmentRequest implements Serializable {
+	/**鎻忚堪*/
+    @ApiModelProperty(value = "鎻忚堪")
+	private String description;
+	/**鎻忚堪*/
+	@ApiModelProperty(value = "璁惧ID")
+	private String equipmentId;
+	/**涓婁紶鏂囦欢瀵圭郴*/
+	@ApiModelProperty(value = "涓婁紶鏂囦欢瀵圭郴")
+	private List<FileUploadResult> fileList;
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionBatchApprovalRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionBatchApprovalRequest.java
new file mode 100644
index 0000000..36a84e2
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionBatchApprovalRequest.java
@@ -0,0 +1,26 @@
+package org.jeecg.modules.eam.request;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.modules.flowable.domain.vo.WorkTaskDataVo;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class EamInspectionBatchApprovalRequest implements Serializable {
+
+    /** 纭绫诲瀷 1 閫氳繃  2 椹冲洖 */
+    @ApiModelProperty(value = "纭绫诲瀷")
+    private String confirmDealType;
+    /**纭鎰忚*/
+    @ApiModelProperty(value = "纭鎰忚")
+    private String confirmComment;
+    /**浠诲姟鍒楄〃*/
+    @ApiModelProperty(value = "浠诲姟鍒楄〃")
+    private List<WorkTaskDataVo> taskList;
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderQuery.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderQuery.java
new file mode 100644
index 0000000..b53d8d5
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderQuery.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 EamInspectionOrderQuery {
+    private String orderNum;
+    private String equipmentId;
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date inspectionDateBegin;
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date inspectionDateEnd;
+    private String inspectionStatus;
+
+    private String column;
+    private String order;
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderRequest.java
index 691f2b2..fcaa20b 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderRequest.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderRequest.java
@@ -26,7 +26,6 @@
     private static final long serialVersionUID = 1L;
 
     /**涓婚敭*/
-    @TableId(type = IdType.ASSIGN_ID)
     @ApiModelProperty(value = "涓婚敭")
     private String id;
     /**鍒涘缓浜�*/
@@ -47,72 +46,58 @@
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
     private Date updateTime;
     /**鍒犻櫎鏍囪*/
-    @Excel(name = "鍒犻櫎鏍囪", width = 15)
     @ApiModelProperty(value = "鍒犻櫎鏍囪")
     @TableLogic
     private Integer delFlag;
     /**宸ュ崟鍙�*/
-    @Excel(name = "宸ュ崟鍙�", width = 15)
     @ApiModelProperty(value = "宸ュ崟鍙�")
     private String orderNum;
     /**璁惧ID*/
-    @Excel(name = "璁惧ID", width = 15)
     @ApiModelProperty(value = "璁惧ID")
     @Dict(dictTable = "eam_equipment", dicCode = "equipment_code", dicText = "id")
     private String equipmentId;
     /**鏍囧噯ID*/
-    @Excel(name = "淇濆吇鏍囧噯ID", width = 15)
     @ApiModelProperty(value = "淇濆吇鏍囧噯ID")
     @Dict(dictTable = "eam_maintenance_standard", dicCode = "standard_code", dicText = "id")
     private String standardId;
     /**鐐规鏃ユ湡*/
-    @Excel(name = "鐐规鏃ユ湡锛堣鍒掞級", width = 15, format = "yyyy-MM-dd")
     @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern="yyyy-MM-dd")
     @ApiModelProperty(value = "鐐规鏃ユ湡")
     private Date inspectionDate;
     /**鐐规杩囨湡鏃堕棿*/
-    @Excel(name = "鐐规杩囨湡鏃堕棿", width = 15, format = "yyyy-MM-dd")
     @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern="yyyy-MM-dd")
     @ApiModelProperty(value = "鐐规杩囨湡鏃堕棿")
     private Date expirationTime;
     /**鐐规鏃堕棿*/
-    @Excel(name = "鐐规鏃堕棿锛堝疄闄咃級", width = 15, 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")
     @ApiModelProperty(value = "鐐规鏃堕棿")
     private Date operateTime;
     /**鐐规浜�*/
-    @Excel(name = "鐐规浜�", width = 15)
     @ApiModelProperty(value = "鐐规浜�-鏄鍙栦汉")
     @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
     private String operator;
     /**鍒涘缓鏂瑰紡*/
-    @Excel(name = "鍒涘缓鏂瑰紡", width = 15)
     @ApiModelProperty(value = "鍒涘缓鏂瑰紡")
     private String creationMethod;
     /**鐐规鐘舵��*/
-    @Excel(name = "鐐规鐘舵��", width = 15)
     @ApiModelProperty(value = "鐐规鐘舵��   寰呯偣妫�-寰呯‘璁�-宸插畬鎴�")
     private String inspectionStatus;
     /**鐝粍闀跨‘璁�*/
-    @Excel(name = "鐝粍闀跨‘璁�", width = 15)
     @ApiModelProperty(value = "鐝粍闀跨‘璁�--棰嗗彇鍚庝骇鐢�")
     @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
     private String confirmUser;
     /**纭鏃堕棿*/
-    @Excel(name = "纭鏃堕棿", width = 15, 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")
     @ApiModelProperty(value = "纭鏃堕棿")
     private Date confirmTime;
     /**澶囨敞*/
-    @Excel(name = "澶囨敞", width = 15)
     @ApiModelProperty(value = "澶囨敞-鐐规宸ュ崟鍒涘缓澶囨敞")
     private String remark;
     /**鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧*/
-    @Excel(name = "鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧-鎵ц鏃�", width = 15)
     @ApiModelProperty(value = "鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧")
     private String imageFiles;
 
@@ -124,11 +109,11 @@
     @ApiModelProperty(value = "鍒楄〃 淇濆吇椤规槑缁�")
     private List<EamInspectionOrderDetail> tableDetailList;
 
-    /**澶勭悊绫诲瀷*/
-    @ApiModelProperty(value = "澶勭悊绫诲瀷")
-    private String dealType;
-
-    /**澶勭悊鎰忚*/
-    @ApiModelProperty(value = "澶勭悊鎰忚")
-    private String dealSuggestion;
+    /**纭鎰忚*/
+    @ApiModelProperty(value = "纭鎰忚")
+    private String confirmComment;
+    /** 纭绫诲瀷 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/EamRepairOrderQuery.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderQuery.java
index 9726bcc..45a6ad2 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderQuery.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderQuery.java
@@ -1,6 +1,7 @@
 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;
@@ -24,5 +25,6 @@
     /**
      * 璁惧缂栫爜
      */
+    @ApiModelProperty(value = "璁惧缂栫爜")
     private String equipmentCode;
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java
new file mode 100644
index 0000000..0ae9b1d
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java
@@ -0,0 +1,71 @@
+package org.jeecg.modules.eam.request;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.api.vo.FileUploadResult;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecg.modules.flowable.domain.vo.FlowTaskVo;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author: Lius
+ * @CreateTime: 2025-04-21
+ * @Description:
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class EamRepairOrderRequest extends FlowTaskVo implements Serializable {
+
+    private static final long serialVersionUID = 3844096033304425984L;
+
+    /**涓婚敭*/
+    @ApiModelProperty(value = "涓婚敭")
+    private String id;
+
+    /**璁惧ID*/
+    @ApiModelProperty(value = "璁惧ID")
+    private String equipmentId;
+
+    /**
+     * 缁翠慨鐘舵��
+     */
+    @ApiModelProperty(value = "缁翠慨鐘舵��")
+    private String repairStatus;
+
+    /**
+     * 鏄惁闇�瑕侀鐢ㄥ浠�  1:鏄�  0:鍚�
+     */
+    @ApiModelProperty(value = "鏄惁闇�瑕侀鐢ㄥ浠�")
+    private Integer isUseSpare;
+
+    /**
+     * 鏁呴殰鍘熷洜
+     */
+    @ApiModelProperty(value = "鏁呴殰鍘熷洜")
+    private String faultReason;
+    /**
+     * 缁翠慨缁撴灉鎻忚堪
+     */
+    @ApiModelProperty(value = "缁翠慨缁撴灉鎻忚堪")
+    private String repairDescription;
+
+    /**
+     * 鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧
+     */
+    @ApiModelProperty(value = "鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧")
+    private String imageFiles;
+
+    /**缁翠慨鍥剧墖*/
+    @ApiModelProperty(value = "缁翠慨鍥剧墖闆嗗悎")
+    private List<FileUploadResult> imageFilesResult;
+
+    /**澶囦欢鎻忚堪*/
+    @ApiModelProperty(value = "澶囦欢鎻忚堪")
+    private String sparePartDescription;
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderResponse.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderResponse.java
new file mode 100644
index 0000000..15b0dd3
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderResponse.java
@@ -0,0 +1,80 @@
+package org.jeecg.modules.eam.request;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+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.eam.entity.EamRepairOrder;
+import org.jeecg.modules.eam.entity.EamReportRepair;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.beans.BeanUtils;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Author: Lius
+ * @CreateTime: 2025-04-21
+ * @Description:
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="杩斿洖瀵硅薄", description="缁翠慨宸ュ崟璇︾粏")
+public class EamRepairOrderResponse extends EamRepairOrder implements Serializable {
+
+    private static final long serialVersionUID = 367152649525625307L;
+
+    /**
+     * 鏁呴殰寮�濮嬫椂闂�
+     */
+    @ApiModelProperty(value = "鏁呴殰寮�濮嬫椂闂�")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date faultStartTime;
+    /**
+     * 鏄惁鍋滄満
+     */
+    @ApiModelProperty(value = "鏄惁鍋滄満")
+    @Dict(dicCode = "breakdown_flag")
+    private String breakdownFlag;
+    /**
+     * 鏁呴殰绠�绉�
+     */
+    @ApiModelProperty(value = "鏁呴殰绠�绉�")
+    private String faultName;
+    /**
+     * 鏁呴殰鍒嗙被
+     */
+    @ApiModelProperty(value = "鏁呴殰鍒嗙被")
+    @Dict(dicCode = "fault_reason_category")
+    private String faultType;
+    /**
+     * 鏁呴殰鎻忚堪
+     */
+    @ApiModelProperty(value = "鏁呴殰鎻忚堪")
+    private String faultDescription;
+    /**
+     * 鎶ヤ慨鐘舵��
+     */
+    @ApiModelProperty(value = "鎶ヤ慨鐘舵��")
+    @Dict(dicCode = "report_repair_status")
+    private String reportStatus;
+    /**
+     * 鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧
+     */
+    @ApiModelProperty(value = "鎶ヤ慨鐓х墖")
+    private String reportImageFiles;
+
+    /**
+     * 澶囨敞
+     */
+    @Excel(name = "澶囨敞", width = 15)
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamReportRepairQuery.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamReportRepairQuery.java
index b468492..57396eb 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamReportRepairQuery.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamReportRepairQuery.java
@@ -34,4 +34,8 @@
      * 缁撴潫鏃堕棿
      */
     private String endTime;
+    /**
+     * 鎸囨淳浜猴紙缁翠慨璐熻矗浜猴級
+     */
+    private String repairer;
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamWeekMaintenanceBatchApprovalRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamWeekMaintenanceBatchApprovalRequest.java
new file mode 100644
index 0000000..cd62fe2
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamWeekMaintenanceBatchApprovalRequest.java
@@ -0,0 +1,41 @@
+package org.jeecg.modules.eam.request;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.api.vo.FileUploadResult;
+import org.jeecg.modules.flowable.domain.vo.WorkTaskDataVo;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class EamWeekMaintenanceBatchApprovalRequest implements Serializable {
+    //纭鎿嶄綔
+    /**纭鎰忚*/
+    @ApiModelProperty(value = "纭鎰忚")
+    private String confirmComment;
+    @ApiModelProperty(value = "纭绫诲瀷")
+    private String confirmDealType;
+    //鍒濋獙鏀舵搷浣�
+    /**鍒濋獙鏀舵剰瑙�*/
+    @ApiModelProperty(value = "鍒濋獙鏀舵剰瑙�")
+    private String initialAcceptanceComment;
+    /**鍒濋獙鏀堕檮浠�*/
+    @ApiModelProperty(value = "鍒濋獙鏀堕檮浠�")
+    private List<FileUploadResult> initialAcceptanceFilesResult;
+    //缁堥獙鏀舵搷浣�
+    /**缁堥獙鏀舵剰瑙�*/
+    @ApiModelProperty(value = "缁堥獙鏀舵剰瑙�")
+    private String finalAcceptanceComment;
+    /**缁堥獙鏀堕檮浠�*/
+    @ApiModelProperty(value = "缁堥獙鏀堕檮浠�")
+    private List<FileUploadResult> finalAcceptanceFilesResult;
+
+    /**浠诲姟鍒楄〃*/
+    @ApiModelProperty(value = "浠诲姟鍒楄〃")
+    private List<WorkTaskDataVo> taskList;
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamWeekMaintenanceRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamWeekMaintenanceRequest.java
index df69050..c2f7ecf 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamWeekMaintenanceRequest.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamWeekMaintenanceRequest.java
@@ -6,7 +6,10 @@
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import org.jeecg.common.api.vo.FileUploadResult;
+import org.jeecg.common.aspect.annotation.Dict;
 import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail;
+import org.jeecg.modules.flowable.domain.vo.FlowTaskVo;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
@@ -17,7 +20,7 @@
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
 @ApiModel(value="eam_maintenance_standard瀵硅薄", description="淇濆吇鏍囧噯")
-public class EamWeekMaintenanceRequest implements Serializable {
+public class EamWeekMaintenanceRequest extends FlowTaskVo implements Serializable {
 
     /**涓婚敭*/
     @ApiModelProperty(value = "涓婚敭")
@@ -42,13 +45,46 @@
     /**淇濆吇鍥剧墖*/
     @ApiModelProperty(value = "淇濆吇鍥剧墖")
     private String imageFiles;
+    /**淇濆吇鍥剧墖*/
+    @ApiModelProperty(value = "淇濆吇鍥剧墖")
+    private List<FileUploadResult> imageFilesResult;
     /**澶囨敞*/
     @ApiModelProperty(value = "澶囨敞")
     private String remark;
+    /**鍒涘缓鏂瑰紡*/
+    @ApiModelProperty(value = "鍒涘缓鏂瑰紡")
+    private String creationMethod;
     /**鍒楄〃 淇濆吇椤规槑缁�*/
     @ApiModelProperty(value = "鍒楄〃 淇濆吇椤规槑缁�")
     private List<EamWeekMaintenanceOrderDetail> tableDetailList;
     /**鍒犻櫎 淇濆吇椤规槑缁�*/
     @ApiModelProperty(value = "鍒犻櫎 淇濆吇椤规槑缁�")
     private List<EamWeekMaintenanceOrderDetail> removeDetailList;
+
+    //纭鎿嶄綔
+    /**纭鎰忚*/
+    @ApiModelProperty(value = "纭鎰忚")
+    private String confirmComment;
+    @ApiModelProperty(value = "纭绫诲瀷")
+    private String confirmDealType;
+    //鍒濋獙鏀舵搷浣�
+    /**鍒濋獙鏀舵剰瑙�*/
+    @ApiModelProperty(value = "鍒濋獙鏀舵剰瑙�")
+    private String initialAcceptanceComment;
+    /**鍒濋獙鏀堕檮浠�*/
+    @ApiModelProperty(value = "鍒濋獙鏀堕檮浠�")
+    private String initialAcceptanceFiles;
+    /**鍒濋獙鏀堕檮浠�*/
+    @ApiModelProperty(value = "鍒濋獙鏀堕檮浠�")
+    private List<FileUploadResult> initialAcceptanceFilesResult;
+    //缁堥獙鏀舵搷浣�
+    /**缁堥獙鏀舵剰瑙�*/
+    @ApiModelProperty(value = "缁堥獙鏀舵剰瑙�")
+    private String finalAcceptanceComment;
+    /**缁堥獙鏀堕檮浠�*/
+    @ApiModelProperty(value = "缁堥獙鏀堕檮浠�")
+    private String finalAcceptanceFiles;
+    /**缁堥獙鏀堕檮浠�*/
+    @ApiModelProperty(value = "缁堥獙鏀堕檮浠�")
+    private List<FileUploadResult> finalAcceptanceFilesResult;
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentAttachmentService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentAttachmentService.java
new file mode 100644
index 0000000..fc4c18f
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentAttachmentService.java
@@ -0,0 +1,30 @@
+package org.jeecg.modules.eam.service;
+
+import org.jeecg.modules.eam.entity.EamEquipmentAttachment;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.eam.request.EamEquipmentAttachmentRequest;
+
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @Description: 璁惧鏂囨。鍙拌处浣跨敤
+ * @Author: jeecg-boot
+ * @Date:   2025-04-16
+ * @Version: V1.0
+ */
+public interface IEamEquipmentAttachmentService extends IService<EamEquipmentAttachment> {
+
+    /**
+     *
+     * @param response
+     * @param byId
+     */
+    void downloadFile(HttpServletResponse response, EamEquipmentAttachment byId);
+
+    /**
+     * 淇濆瓨瀵硅薄
+     * @param request
+     * @return
+     */
+    boolean saveEntity(EamEquipmentAttachmentRequest request);
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderDetailService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderDetailService.java
index 07b2697..0fd64c7 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderDetailService.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderDetailService.java
@@ -3,6 +3,8 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.eam.entity.EamInspectionOrderDetail;
 
+import java.util.List;
+
 /**
  * @Description: 鐐规宸ュ崟鏄庣粏
  * @Author: jeecg-boot
@@ -10,5 +12,10 @@
  * @Version: V1.0
  */
 public interface IEamInspectionOrderDetailService extends IService<EamInspectionOrderDetail> {
-
+    /**
+     * 鑾峰彇宸ュ崟淇濆吇椤瑰唴瀹�
+     * @param orderId 宸ュ崟ID
+     * @return
+     */
+    List<EamInspectionOrderDetail> queryListByOrderId(String orderId);
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderService.java
index fdeee05..7999fa1 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderService.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderService.java
@@ -1,9 +1,14 @@
 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.EamInspectionOrder;
+import org.jeecg.modules.eam.request.EamInspectionOrderQuery;
 import org.jeecg.modules.eam.request.EamInspectionOrderRequest;
+
+import java.util.List;
 
 /**
  * @Description: 鐐规宸ュ崟
@@ -61,6 +66,20 @@
      * @param eamInspectionOrderRequest
      * @return
      */
-    Result<?> inspectionProcess(EamInspectionOrderRequest eamInspectionOrderRequest);
+    EamInspectionOrder inspectionProcess(EamInspectionOrderRequest eamInspectionOrderRequest);
 
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param page
+     * @param query
+     * @return
+     */
+    IPage<EamInspectionOrder> queryPageList(Page<EamInspectionOrder> page, EamInspectionOrderQuery query);
+
+    /**
+     * 鑾峰彇鏈偣妫�鐨勫伐鍗�
+     * @param expiredDate 杩囨湡鏃ユ湡
+     * @return
+     */
+    List<EamInspectionOrder> selectUnCompleteOrder(String expiredDate);
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardDetailService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardDetailService.java
index 676cfbe..eff776a 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardDetailService.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardDetailService.java
@@ -3,6 +3,8 @@
 import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * @Description: 淇濆吇鏍囧噯鏄庣粏
  * @Author: jeecg-boot
@@ -10,5 +12,10 @@
  * @Version: V1.0
  */
 public interface IEamMaintenanceStandardDetailService extends IService<EamMaintenanceStandardDetail> {
-
+    /**
+     * 鑾峰彇鏍囧噯涓嬫槑缁嗛」淇℃伅
+     * @param standardId
+     * @return
+     */
+    List<EamMaintenanceStandardDetail> selectByStandardId(String standardId);
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java
index 8890114..c136e81 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java
@@ -52,9 +52,16 @@
 
     /**
      * 鏌ヨ鏍囧噯鍒楄〃-鍓嶇灞曠ず璇ョ敤鎴锋嫢鏈夌殑鏍囧噯
-     * @param keyword 璁惧缂栧彿
+     * @param keyword 鍏抽敭璇�
      * @param maintenanceCategory 淇濆吇绫诲瀷
      * @return
      */
-    List<EamMaintenanceStandard> queryListBykeywordAndCategory( String keyword, String maintenanceCategory);
+    List<EamMaintenanceStandard> queryListByKeywordAndCategory(String keyword, String equipmentId, Integer pageSize, String maintenanceCategory);
+
+    /**
+     * 鏌ヨ淇濆吇绫诲瀷涓嬫甯哥殑淇濆吇鏍囧噯
+     * @param maintenanceCategory 淇濆吇绫诲瀷
+     * @return
+     */
+    List<EamMaintenanceStandard> queryListByCategory(String maintenanceCategory);
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java
index 6af321b..4faae6e 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java
@@ -5,6 +5,9 @@
 import org.jeecg.modules.eam.entity.EamRepairOrder;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.eam.request.EamRepairOrderQuery;
+import org.jeecg.modules.eam.request.EamRepairOrderRequest;
+import org.jeecg.modules.eam.request.EamRepairOrderResponse;
+import org.jeecg.modules.eam.request.EamReportRepairQuery;
 
 /**
  * @Description: 缁翠慨宸ュ崟
@@ -26,4 +29,19 @@
      * @param eamRepairOrder
      */
     void saveRepairOrder(EamRepairOrder eamRepairOrder);
+
+    /**
+     * 娴佺▼鎿嶄綔
+     * @param request
+     * @return
+     */
+    EamRepairOrder perform(EamRepairOrderRequest request);
+
+    EamRepairOrderResponse findById(String id);
+
+    /**
+     * 鎸囨淳
+     * @param eamReportRepairQuery
+     */
+    void assign(EamReportRepairQuery eamReportRepairQuery);
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java
index dbaedda..059a9f6 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java
@@ -2,9 +2,13 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import org.jeecg.modules.eam.entity.EamReportRepair;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.eam.entity.EamInspectionOrderDetail;
+import org.jeecg.modules.eam.entity.EamReportRepair;
+import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail;
 import org.jeecg.modules.eam.request.EamReportRepairQuery;
+
+import java.util.List;
 
 /**
  * @Description: 鏁呴殰鎶ヤ慨
@@ -20,4 +24,34 @@
      * @return
      */
     IPage<EamReportRepair> pageList(Page<EamReportRepair> page, EamReportRepairQuery eamReportRepairQuery);
+
+    /**
+     * 浠庡懆淇濅腑鐢熸垚鎶ヤ慨
+     * @param detailList
+     * @return
+     */
+    EamReportRepair reportRepairFromMaintenance(String equipmentId, String reportUser, List<EamWeekMaintenanceOrderDetail> detailList);
+
+
+    /**
+     * 浠庡懆淇濅腑鐢熸垚鎶ヤ慨
+     * @param detailList
+     * @return
+     */
+    EamReportRepair reportRepairFromInspection(String equipmentId, String reportUser, List<EamInspectionOrderDetail> detailList);
+
+    /**
+     * 鏁呴殰淇濅慨
+     * @param eamReportRepair
+     * @return
+     */
+    EamReportRepair add(EamReportRepair eamReportRepair);
+
+    /**
+     * 缂栬緫
+     * @param eamReportRepair
+     * @return
+     */
+    boolean edit(EamReportRepair eamReportRepair);
+
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamSysFilesService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamSysFilesService.java
index 9e3a27a..293ecb1 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamSysFilesService.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamSysFilesService.java
@@ -37,4 +37,11 @@
      * @param request
      */
     boolean saveEamSysFiles(EamSysFilesRequest request);
+
+    /**
+     * 鏍规嵁璺緞鑾峰彇鏂囦欢
+     * @param path
+     * @return
+     */
+    EamSysFiles getByPath(String path);
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderDetailService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderDetailService.java
index e536fa7..6a78ac0 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderDetailService.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderDetailService.java
@@ -1,7 +1,9 @@
 package org.jeecg.modules.eam.service;
 
-import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail;
+
+import java.util.List;
 
 /**
  * @Description: 鍛ㄤ繚宸ュ崟鏄庣粏
@@ -11,4 +13,10 @@
  */
 public interface IEamWeekMaintenanceOrderDetailService extends IService<EamWeekMaintenanceOrderDetail> {
 
+    /**
+     * 鏍规嵁宸ュ崟ID 鏌ヨ淇濆吇鏄庣粏
+     * @param orderId
+     * @return
+     */
+    List<EamWeekMaintenanceOrderDetail> queryListByOrderId(String orderId);
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderService.java
index 8679fcd..2a69318 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderService.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderService.java
@@ -7,6 +7,8 @@
 import org.jeecg.modules.eam.request.EamWeekMaintenanceQuery;
 import org.jeecg.modules.eam.request.EamWeekMaintenanceRequest;
 
+import java.util.List;
+
 /**
  * @Description: 鍛ㄤ繚宸ュ崟
  * @Author: jeecg-boot
@@ -43,4 +45,18 @@
      * @return
      */
     boolean collect(String id);
+
+    /**
+     * 鎴戠殑寰呭姙锛屽鎵瑰姩浣�
+     * @param request
+     * @return
+     */
+    EamWeekMaintenanceOrder approval(EamWeekMaintenanceRequest request);
+
+    /**
+     * 鑾峰彇浠婂ぉ涔嬪墠鏈繚鍏诲畬鎴愮殑宸ュ崟
+     * @param expiredDate 杩囨湡鏃ユ湡
+     * @return
+     */
+    List<EamWeekMaintenanceOrder> selectUnCompleteOrder(String expiredDate);
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentAttachmentServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentAttachmentServiceImpl.java
new file mode 100644
index 0000000..2dbbe82
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentAttachmentServiceImpl.java
@@ -0,0 +1,65 @@
+package org.jeecg.modules.eam.service.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.common.api.vo.FileUploadResult;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.exception.JeecgBootException;
+import org.jeecg.common.util.FileUtil;
+import org.jeecg.modules.eam.entity.EamEquipment;
+import org.jeecg.modules.eam.entity.EamEquipmentAttachment;
+import org.jeecg.modules.eam.mapper.EamEquipmentAttachmentMapper;
+import org.jeecg.modules.eam.request.EamEquipmentAttachmentRequest;
+import org.jeecg.modules.eam.service.IEamEquipmentAttachmentService;
+import org.jeecg.modules.eam.service.IEamEquipmentService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description: 璁惧鏂囨。鍙拌处浣跨敤
+ * @Author: jeecg-boot
+ * @Date:   2025-04-16
+ * @Version: V1.0
+ */
+@Service
+public class EamEquipmentAttachmentServiceImpl extends ServiceImpl<EamEquipmentAttachmentMapper, EamEquipmentAttachment> implements IEamEquipmentAttachmentService {
+
+    @Autowired
+    private IEamEquipmentService eamEquipmentService;
+
+    @Override
+    public void downloadFile(HttpServletResponse response, EamEquipmentAttachment entity) {
+        FileUtil.downLoadFile(response, entity.getFilePath(), entity.getFileName());
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean saveEntity(EamEquipmentAttachmentRequest request) {
+        if(request == null || CollectionUtil.isEmpty(request.getFileList())){
+            return false;
+        }
+        EamEquipment equipment = eamEquipmentService.getById(request.getEquipmentId());
+        if(equipment == null){
+            throw new JeecgBootException("璇峰厛閫夋嫨璁惧鍐嶄笂浼犳枃妗�");
+        }
+        List<EamEquipmentAttachment> resultList = new ArrayList<>();
+        for (FileUploadResult fileUploadResult : request.getFileList()) {
+            EamEquipmentAttachment entity = new EamEquipmentAttachment();
+            entity.setFilePath(fileUploadResult.getFilePath());
+            entity.setFileName(fileUploadResult.getFileName());
+            entity.setFileEncodeName(fileUploadResult.getFileEncodeName());
+            entity.setFileSize(fileUploadResult.getFileSize());
+            entity.setFileSuffix(fileUploadResult.getFileSuffix());
+            entity.setDescription(request.getDescription());
+            entity.setDelFlag(CommonConstant.DEL_FLAG_0);
+            entity.setEquipmentId(request.getEquipmentId());
+            resultList.add(entity);
+        }
+        return this.saveBatch(resultList);
+    }
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderDetailServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderDetailServiceImpl.java
index ae09fde..6ca87cb 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderDetailServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderDetailServiceImpl.java
@@ -1,10 +1,14 @@
 package org.jeecg.modules.eam.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.jeecg.modules.eam.entity.EamInspectionOrderDetail;
 import org.jeecg.modules.eam.mapper.EamInspectionOrderDetailMapper;
 import org.jeecg.modules.eam.service.IEamInspectionOrderDetailService;
 import org.springframework.stereotype.Service;
+
+import java.util.Collections;
+import java.util.List;
 
 /**
  * @Description: 鐐规宸ュ崟鏄庣粏
@@ -15,4 +19,11 @@
 @Service
 public class EamInspectionOrderDetailServiceImpl extends ServiceImpl<EamInspectionOrderDetailMapper, EamInspectionOrderDetail> implements IEamInspectionOrderDetailService {
 
+    @Override
+    public List<EamInspectionOrderDetail> queryListByOrderId(String orderId) {
+        LambdaQueryWrapper<EamInspectionOrderDetail> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(EamInspectionOrderDetail::getOrderId, orderId);
+        queryWrapper.orderByAsc(EamInspectionOrderDetail::getItemCode);
+        return super.list(queryWrapper);
+    }
 }
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 3642513..fbcf6a5 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
@@ -3,23 +3,38 @@
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
+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.FileUploadResult;
 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.BusinessCodeConst;
+import org.jeecg.modules.eam.constant.EquipmentOperationTagEnum;
 import org.jeecg.modules.eam.constant.InspectionStatus;
-import org.jeecg.modules.eam.constant.ReportRepairEnum;
-import org.jeecg.modules.eam.entity.*;
+import org.jeecg.modules.eam.entity.EamEquipment;
+import org.jeecg.modules.eam.entity.EamInspectionOrder;
+import org.jeecg.modules.eam.entity.EamInspectionOrderDetail;
 import org.jeecg.modules.eam.mapper.EamInspectionOrderMapper;
+import org.jeecg.modules.eam.request.EamInspectionOrderQuery;
 import org.jeecg.modules.eam.request.EamInspectionOrderRequest;
-import org.jeecg.modules.eam.service.*;
+import org.jeecg.modules.eam.service.IEamEquipmentService;
+import org.jeecg.modules.eam.service.IEamInspectionOrderDetailService;
+import org.jeecg.modules.eam.service.IEamInspectionOrderService;
+import org.jeecg.modules.eam.service.IEamReportRepairService;
 import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
 import org.jeecg.modules.flowable.apithird.business.service.impl.FlowMyBusinessServiceImpl;
 import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI;
@@ -40,11 +55,14 @@
 /**
  * @Description: 鐐规宸ュ崟
  * @Author: jeecg-boot
- * @Date:   2025-04-02
+ * @Date: 2025-04-02
  * @Version: V1.0
  */
 @Service("IEamInspectionOrderService")
 public class EamInspectionOrderServiceImpl extends ServiceImpl<EamInspectionOrderMapper, EamInspectionOrder> implements IEamInspectionOrderService, FlowCallBackServiceI {
+
+    @Resource
+    private EamInspectionOrderMapper eamInspectionOrderMapper;
     @Autowired
     private IEamInspectionOrderDetailService eamInspectionOrderDetailService;
     @Resource
@@ -65,23 +83,84 @@
     private IMdcUserProductionService mdcUserProductionService;
     @Autowired
     private IEamReportRepairService eamReportRepairService;
-    @Autowired
-    private IEamEquipmentFaultReasonService eamEquipmentFaultReasonService;
+
+    @Override
+    public IPage<EamInspectionOrder> queryPageList(Page<EamInspectionOrder> page, EamInspectionOrderQuery query) {
+        QueryWrapper<EamInspectionOrder> 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 {
+            //娌℃湁閫夋嫨璁惧锛屾牴鎹溅闂磋繃婊よ澶�
+            queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id ", sysUser.getId());
+        }
+        //鏌ヨ鏉′欢杩囨护
+        if (query != null) {
+            if (StringUtils.isNotBlank(query.getEquipmentId())) {
+                queryWrapper.eq("wmo.equipment_id", query.getEquipmentId());
+            }
+            if (StringUtils.isNotBlank(query.getOrderNum())) {
+                queryWrapper.like("wmo.order_num", query.getOrderNum());
+            }
+            if (StringUtils.isNotBlank(query.getInspectionStatus())) {
+                queryWrapper.eq("wmo.inspection_status", query.getInspectionStatus());
+            }
+            if (query.getInspectionDateBegin() != null && query.getInspectionDateEnd() != null) {
+                queryWrapper.between("wmo.inspection_date", query.getInspectionDateBegin(), query.getInspectionDateEnd());
+            }
+            //鎺掑簭
+            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("wmo." + oConvertUtils.camelToUnderline(column));
+                } else {
+                    queryWrapper.orderByDesc("wmo." + oConvertUtils.camelToUnderline(column));
+                }
+            } else {
+                queryWrapper.orderByDesc("wmo.create_time");
+            }
+        } else {
+            queryWrapper.orderByDesc("wmo.create_time");
+        }
+
+        return eamInspectionOrderMapper.queryPageList(page, queryWrapper);
+    }
+
+    @Override
+    public List<EamInspectionOrder> selectUnCompleteOrder(String expiredDate) {
+        LambdaQueryWrapper<EamInspectionOrder> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.lt(EamInspectionOrder::getInspectionDate, expiredDate);
+        List<String> unCompleteStatus = new ArrayList<>();
+        unCompleteStatus.add(InspectionStatus.WAIT_INSPECTION.name());
+        unCompleteStatus.add(InspectionStatus.UNDER_INSPECTION.name());
+        queryWrapper.in(EamInspectionOrder::getInspectionStatus, unCompleteStatus);
+        queryWrapper.orderByAsc(EamInspectionOrder::getInspectionDate);
+        return eamInspectionOrderMapper.selectList(queryWrapper);
+    }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean addInspectionOrder(EamInspectionOrderRequest eamInspectionOrderRequest) {
         EamInspectionOrder eamInspectionOrder = new EamInspectionOrder();
-        BeanUtils.copyProperties(eamInspectionOrderRequest,eamInspectionOrder);
+        BeanUtils.copyProperties(eamInspectionOrderRequest, eamInspectionOrder);
         //淇敼鐘舵��
-        if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())){
-            eamInspectionOrder.setInspectionStatus(InspectionStatus.IN_PROGRESS.getCode());
-        }else {
-            eamInspectionOrder.setInspectionStatus(InspectionStatus.INIT.getCode());
+        if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())) {
+            eamInspectionOrder.setInspectionStatus(InspectionStatus.UNDER_INSPECTION.name());
+        } else {
+            eamInspectionOrder.setInspectionStatus(InspectionStatus.WAIT_INSPECTION.name());
         }
         save(eamInspectionOrder);
         //澶勭悊鏄庣粏鏁版嵁
-        if(CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getTableDetailList())) {
+        if (CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getTableDetailList())) {
             eamInspectionOrderRequest.getTableDetailList().forEach(tableDetail -> {
                 tableDetail.setOrderId(eamInspectionOrder.getId());
                 tableDetail.setId(null);
@@ -89,7 +168,7 @@
             eamInspectionOrderDetailService.saveBatch(eamInspectionOrderRequest.getTableDetailList());
         }
         //澶勭悊闄勪欢
-        if(CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getFileList())) {
+        if (CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getFileList())) {
             FileUploadResult fileUploadResult = eamInspectionOrderRequest.getFileList().get(0);
             ObjectMapper mapper = new ObjectMapper();
             try {
@@ -99,7 +178,7 @@
                 log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
             }
         }
-        if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())){
+        if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())) {
             triggerProcess(eamInspectionOrder);
         }
         return true;
@@ -107,6 +186,7 @@
 
     /**
      * 瑙﹀彂娴佺▼
+     *
      * @param eamInspectionOrder
      * @return
      */
@@ -114,26 +194,26 @@
         EamEquipment equipment = eamEquipmentService.getById(eamInspectionOrder.getEquipmentId());
         if (equipment == null) {
             return false;
-        }else {
+        } else {
             eamInspectionOrder.setEquipmentCode(equipment.getEquipmentCode());
         }
         System.out.println("璁惧鐐规锛�" + eamInspectionOrder.getId());
-        flowCommonService.initActBusiness("宸ュ崟鍙凤細"+eamInspectionOrder.getOrderNum()+"璁惧缂栧彿"+eamInspectionOrder.getEquipmentCode()+"杩涜璁惧鐐规",
+        flowCommonService.initActBusiness("宸ュ崟鍙凤細" + eamInspectionOrder.getOrderNum() + "璁惧缂栧彿" + eamInspectionOrder.getEquipmentCode() + "杩涜璁惧鐐规",
                 eamInspectionOrder.getId(), "IEamInspectionOrderService", "eam_inspection", null);
         Map<String, Object> variables = new HashMap<>();
         variables.put("dataId", eamInspectionOrder.getId());
-        if (StrUtil.isEmpty(eamInspectionOrder.getRemark())){
+        if (StrUtil.isEmpty(eamInspectionOrder.getRemark())) {
             variables.put("organization", "鏂板鐐规宸ュ崟榛樿鍚姩娴佺▼");
             variables.put("comment", "鏂板鐐规宸ュ崟榛樿鍚姩娴佺▼");
-        }else {
+        } else {
             variables.put("organization", eamInspectionOrder.getRemark());
             variables.put("comment", eamInspectionOrder.getRemark());
         }
-        variables.put("proofreading",true);
-        List<String> usernames=new ArrayList<>();
+        variables.put("proofreading", true);
+        List<String> usernames = new ArrayList<>();
         usernames.add(eamInspectionOrder.getOperator());
         variables.put("NextAssignee", usernames);
-        Result result= flowDefinitionService.startProcessInstanceByKey("eam_inspection", variables);
+        Result result = flowDefinitionService.startProcessInstanceByKey("eam_inspection", variables);
         return result.isSuccess();
     }
 
@@ -142,10 +222,10 @@
     public boolean editInspectionOrder(EamInspectionOrderRequest eamInspectionOrderRequest) {
         EamInspectionOrder eamInspectionOrder = new EamInspectionOrder();
         BeanUtils.copyProperties(eamInspectionOrderRequest, eamInspectionOrder);
-        if (StrUtil.isNotEmpty(eamInspectionOrder.getOperator())){
-            eamInspectionOrder.setInspectionStatus(InspectionStatus.IN_PROGRESS.getCode());
+        if (StrUtil.isNotEmpty(eamInspectionOrder.getOperator())) {
+            eamInspectionOrder.setInspectionStatus(InspectionStatus.UNDER_INSPECTION.name());
         }
-        updateById(eamInspectionOrder);
+        super.updateById(eamInspectionOrder);
         //澶勭悊鏄庣粏鏁版嵁
         if (CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getTableDetailList())) {
             eamInspectionOrderRequest.getTableDetailList().forEach(tableDetail -> {
@@ -161,19 +241,24 @@
 
     /**
      * 棰嗗彇鐐规宸ュ崟
+     *
      * @param id
      * @return
      */
     @Override
-    public boolean takeInspectionOrder(String id){
+    @Transactional(rollbackFor = Exception.class)
+    public boolean takeInspectionOrder(String id) {
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        EamInspectionOrder eamInspectionOrder=this.getById(id);
-        if (eamInspectionOrder==null) {
+        if(user == null || !BusinessCodeConst.PCR0001.equals(user.getPost())) {
+            throw new JeecgBootException("涓嶆槸鎿嶄綔宸ワ紝鏃犳硶棰嗗彇姝ゅ伐鍗曪紒");
+        }
+        EamInspectionOrder eamInspectionOrder = this.getById(id);
+        if (eamInspectionOrder == null) {
             return false;
-        }else {
+        } else {
             eamInspectionOrder.setOperator(user.getUsername());
             //淇敼鐘舵��
-            eamInspectionOrder.setInspectionStatus(InspectionStatus.IN_PROGRESS.getCode());
+            eamInspectionOrder.setInspectionStatus(InspectionStatus.UNDER_INSPECTION.name());
             this.triggerProcess(eamInspectionOrder);
             this.updateById(eamInspectionOrder);
             return true;
@@ -182,60 +267,64 @@
 
     /**
      * 浣滃簾鐐规宸ュ崟
+     *
      * @param id
      * @return
      */
     @Override
-    public boolean cancelInspectionOrder(String id){
+    public boolean cancelInspectionOrder(String id) {
         EamInspectionOrder eamInspectionOrder = this.getById(id);
         if (eamInspectionOrder == null) {
             return false;
-        }else {
-            eamInspectionOrder.setInspectionStatus("5");
+        } else {
+            eamInspectionOrder.setInspectionStatus(InspectionStatus.ABOLISH.name());
             return updateById(eamInspectionOrder);
         }
     }
 
     /**
      * 鐐规娴佺▼
+     *
      * @param eamInspectionOrderRequest
      * @return
      */
     @Override
-    public Result<?> inspectionProcess(EamInspectionOrderRequest eamInspectionOrderRequest) {
+    @Transactional(rollbackFor = Exception.class)
+    @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.POINT_INSPECTION, businessTable = "eam_inspection_order")
+    public EamInspectionOrder inspectionProcess(EamInspectionOrderRequest eamInspectionOrderRequest) {
         try {
             // 妫�鏌ヨ姹傚弬鏁�
             if (!isValidRequest(eamInspectionOrderRequest)) {
-                return Result.error("闈炴硶鍙傛暟");
+                throw new JeecgBootException("闈炴硶鍙傛暟");
             }
 
             // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛
             LoginUser user = getCurrentUser();
             if (user == null || StrUtil.isBlank(user.getId())) {
-                return Result.error("璐﹀彿涓嶅瓨鍦�");
+                throw new JeecgBootException("璐﹀彿涓嶅瓨鍦�");
             }
             eamInspectionOrderRequest.setAssignee(user.getUsername());
 
             // 鑾峰彇鐐规宸ュ崟淇℃伅
             EamInspectionOrder eamInspectionOrder = getEamInspectionOrder(eamInspectionOrderRequest.getDataId());
             if (eamInspectionOrder == null) {
-                return Result.error("鏈壘鍒板搴旀暟鎹�");
+                throw new JeecgBootException("鏈壘鍒板搴旀暟鎹�");
             }
 
             // 鑾峰彇娴佺▼涓氬姟璁板綍
             FlowMyBusiness flowMyBusiness = getFlowMyBusiness(eamInspectionOrderRequest.getInstanceId());
             if (flowMyBusiness == null) {
-                return Result.error("娴佺▼璁板綍涓嶅瓨鍦�");
+                throw new JeecgBootException("娴佺▼璁板綍涓嶅瓨鍦�");
             }
 
             // 妫�鏌ョ敤鎴锋槸鍚︽湁鏉冮檺鎿嶄綔浠诲姟
             if (!isUserAuthorized(flowMyBusiness, user)) {
-                return Result.error("鐢ㄦ埛鏃犳潈鎿嶄綔姝や换鍔�");
+                throw new JeecgBootException("鐢ㄦ埛鏃犳潈鎿嶄綔姝や换鍔�");
             }
 
             // 璁ら浠诲姟
             if (!claimTask(flowMyBusiness.getTaskId(), user)) {
-                return Result.error("浠诲姟涓嶅瓨鍦ㄣ�佸凡瀹屾垚鎴栧凡琚粬浜鸿棰�");
+                throw new JeecgBootException("浠诲姟涓嶅瓨鍦ㄣ�佸凡瀹屾垚鎴栧凡琚粬浜鸿棰�");
             }
 
             // 璁剧疆娴佺▼鍙橀噺
@@ -251,15 +340,16 @@
             updateEamInspectionOrder(eamInspectionOrder);
 
             //鏌ヨ鏁版嵁,杩涜璁惧缁翠慨澶勭悊
-            if (eamInspectionOrder.getInspectionStatus().equals(InspectionStatus.CONFIRMED.getCode())){
+            if (eamInspectionOrder.getInspectionStatus().equals(InspectionStatus.WAIT_CONFIRM.name())) {
                 updateEamInspectionOrderDetail(eamInspectionOrder);
             }
 
-            return Result.OK("鎿嶄綔鎴愬姛");
+            return eamInspectionOrder;
         } catch (Exception e) {
-            return Result.error("鎿嶄綔澶辫触锛�" + e.getMessage());
+            throw new JeecgBootException("鎿嶄綔澶辫触锛�" + e.getMessage());
         }
     }
+
 
     private boolean isValidRequest(EamInspectionOrderRequest request) {
         return StrUtil.isNotBlank(request.getTaskId()) && StrUtil.isNotBlank(request.getDataId());
@@ -302,7 +392,7 @@
 
     private void setupProcessVariables(EamInspectionOrderRequest request, EamInspectionOrder order, LoginUser user) {
         Map<String, Object> values = new HashMap<>();
-        if (InspectionStatus.IN_PROGRESS.getCode().equals(order.getInspectionStatus()) && user.getUsername().equals(order.getOperator())) {
+        if (InspectionStatus.UNDER_INSPECTION.name().equals(order.getInspectionStatus()) && user.getUsername().equals(order.getOperator())) {
             // 鐐规浜虹偣妫�缁撴潫
             String orgId = Optional.ofNullable(iEamEquipmentService.getById(order.getEquipmentId()))
                     .map(equipment -> equipment.getOrgId())
@@ -323,15 +413,15 @@
         } else {
             // 鐝粍闀跨‘璁�
             values.put("dataId", order.getId());
-            values.put("organization", request.getDealSuggestion());
-            values.put("comment", request.getDealSuggestion());
-            values.put("confirmation", request.getDealType());
-            request.setComment(request.getDealSuggestion());
-            if ("2".equals(request.getDealType())) {
+            values.put("organization", request.getConfirmComment());
+            values.put("comment", request.getConfirmComment());
+            values.put("confirmation", request.getConfirmDealType());
+            request.setComment(request.getConfirmComment());
+            if ("2".equals(request.getConfirmDealType())) {
                 // 鐝粍闀块┏鍥�
                 List<String> usernames = new ArrayList<>();
                 usernames.add(order.getOperator());
-                order.setInspectionStatus("2");
+                order.setInspectionStatus(InspectionStatus.UNDER_INSPECTION.name());
                 values.put("NextAssignee", usernames);
             }
         }
@@ -340,16 +430,28 @@
 
     private void updateOrderStatus(Result result, EamInspectionOrderRequest request, EamInspectionOrder order, LoginUser user) {
         if (result.isSuccess()) {
-            if (InspectionStatus.IN_PROGRESS.getCode().equals(order.getInspectionStatus()) && StrUtil.isEmpty(request.getDealType())) {
+            if (InspectionStatus.UNDER_INSPECTION.name().equals(order.getInspectionStatus()) && StrUtil.isEmpty(request.getConfirmDealType())) {
                 // 鐐规瀹屾垚
-                order.setInspectionStatus("3");
+                order.setInspectionStatus(InspectionStatus.WAIT_CONFIRM.name());
                 order.setOperateTime(new Date());
+                if (CollectionUtil.isNotEmpty(request.getFileList())) {
+                    List<FileUploadResult> fileUploadResultList = request.getFileList();
+                    ObjectMapper mapper = new ObjectMapper();
+                    try {
+                        String referenceFile = mapper.writeValueAsString(fileUploadResultList);
+                        order.setImageFiles(referenceFile);
+                    } catch (JsonProcessingException e) {
+                        log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
+                    }
+                }
                 eamInspectionOrderDetailService.remove(new QueryWrapper<EamInspectionOrderDetail>().eq("order_id", order.getId()));
                 eamInspectionOrderDetailService.saveBatch(request.getTableDetailList());
-            } else if (InspectionStatus.COMPLETED.getCode().equals(order.getInspectionStatus()) && StrUtil.isNotEmpty(request.getDealType())) {
+            } else if (InspectionStatus.WAIT_CONFIRM.name().equals(order.getInspectionStatus()) && StrUtil.isNotEmpty(request.getConfirmDealType())) {
                 // 鐝粍闀跨‘璁や换鍔�
-                order.setInspectionStatus("4");
+                order.setInspectionStatus(InspectionStatus.COMPLETE.name());
                 order.setConfirmUser(user.getUsername());
+                order.setConfirmComment(request.getConfirmComment());
+                order.setConfirmDealType(request.getConfirmDealType());
                 order.setConfirmTime(new Date());
             }
         }
@@ -361,60 +463,42 @@
 
     /**
      * 璁惧鏄惁瀛樺湪寮傚父,骞惰繘琛岃澶囩淮淇�
+     *
      * @param eamInspectionOrder
      */
     private void updateEamInspectionOrderDetail(EamInspectionOrder eamInspectionOrder) {
-        EamEquipmentFaultReason eamEquipmentFaultReason=eamEquipmentFaultReasonService.
-                getOne(new QueryWrapper<EamEquipmentFaultReason>().eq("fault_code","EFR20250003"));
         List<EamInspectionOrderDetail> eamInspectionOrderDetails = eamInspectionOrderDetailService
                 .list(new QueryWrapper<EamInspectionOrderDetail>()
-                        .eq("order_id", eamInspectionOrder.getId()).eq("report_flag","1"));
-        List<EamReportRepair> eamReportRepairs = new ArrayList<>();
-        if (!eamInspectionOrderDetails.isEmpty()) {
-            eamInspectionOrderDetails.forEach(item->{
-                EamReportRepair eamReportRepair=new EamReportRepair();
-                eamReportRepair.setEquipmentId(eamInspectionOrder.getEquipmentId());
-                eamReportRepair.setFaultName(eamEquipmentFaultReason.getFaultName());
-                eamReportRepair.setFaultType(eamEquipmentFaultReason.getFaultCategory());
-                eamReportRepair.setFaultDescription(eamEquipmentFaultReason.getFaultDescription());
-                eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_REPAIR.name());
-                eamReportRepair.setBreakdownFlag("1");
-                eamReportRepair.setDelFlag(CommonConstant.DEL_FLAG_0);
-                eamReportRepair.setFaultStartTime(new Date());
-                eamReportRepair.setRemark(item.getExceptionDescription());
-                eamReportRepairs.add(eamReportRepair);
-            });
-        }
-        if (!eamReportRepairs.isEmpty()) {
-            eamReportRepairService.saveBatch(eamReportRepairs);
-        }
+                        .eq("order_id", eamInspectionOrder.getId()).eq("report_flag", "1").eq("inspection_result", "2"));
+        eamReportRepairService.reportRepairFromInspection(eamInspectionOrder.getEquipmentId(), eamInspectionOrder.getOperator(), eamInspectionOrderDetails);
     }
 
     /**
      * 鎵归噺浣滃簾涓庨鍙�
+     *
      * @param ids
      * @param type
      * @return
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Result<?> batchCancelOrTakeInspectionOrder(String ids, String type){
+    public Result<?> batchCancelOrTakeInspectionOrder(String ids, String type) {
         if (type == null) {
             return Result.error("璇烽�夋嫨鎿嶄綔绫诲瀷");
         }
         LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         List<String> list = Arrays.asList(ids.split(","));
-        QueryWrapper<EamInspectionOrder> queryWrapper =new QueryWrapper<>();
+        QueryWrapper<EamInspectionOrder> queryWrapper = new QueryWrapper<>();
         queryWrapper.in("id", list);
-        queryWrapper.eq("inspection_status", "1");
-        List<EamInspectionOrder> eamInspectionOrderList =this.list(queryWrapper);
-        if (!eamInspectionOrderList.isEmpty()){
+        queryWrapper.eq("inspection_status", InspectionStatus.WAIT_INSPECTION.name());
+        List<EamInspectionOrder> eamInspectionOrderList = this.list(queryWrapper);
+        if (!eamInspectionOrderList.isEmpty()) {
             eamInspectionOrderList.forEach(eamInspectionOrder -> {
                 eamInspectionOrder.setInspectionStatus(type);
-                if (type.equals("2")){
+                if (InspectionStatus.UNDER_INSPECTION.name().equals(type)) {
                     eamInspectionOrder.setOperator(loginUser.getUsername());
                     this.triggerProcess(eamInspectionOrder);
-                }else {
+                } else {
                     eamInspectionOrder.setOperator(null);
                 }
             });
@@ -425,13 +509,13 @@
 
 
     @Override
-    public Result<?> selectVoById(String id){
-        List<EamInspectionOrder> eamInspectionOrders=this.list(new QueryWrapper<EamInspectionOrder>().eq("id", id));
-        List<EamInspectionOrderRequest> eamInspectionOrderRequestList=new ArrayList<>();
+    public Result<?> selectVoById(String id) {
+        List<EamInspectionOrder> eamInspectionOrders = this.list(new QueryWrapper<EamInspectionOrder>().eq("id", id));
+        List<EamInspectionOrderRequest> eamInspectionOrderRequestList = new ArrayList<>();
         eamInspectionOrders.forEach(eamInspectionOrder -> {
-            EamInspectionOrderRequest eamInspectionOrderRequest=new EamInspectionOrderRequest();
-            BeanUtils.copyProperties(eamInspectionOrder,eamInspectionOrderRequest);
-            List<EamInspectionOrderDetail> eamInspectionOrderDetails=eamInspectionOrderDetailService
+            EamInspectionOrderRequest eamInspectionOrderRequest = new EamInspectionOrderRequest();
+            BeanUtils.copyProperties(eamInspectionOrder, eamInspectionOrderRequest);
+            List<EamInspectionOrderDetail> eamInspectionOrderDetails = eamInspectionOrderDetailService
                     .list(new QueryWrapper<EamInspectionOrderDetail>().eq("order_id", eamInspectionOrder.getId()));
             eamInspectionOrderRequest.setTableDetailList(eamInspectionOrderDetails);
             eamInspectionOrderRequestList.add(eamInspectionOrderRequest);
@@ -460,7 +544,7 @@
     public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) {
         //涓氬姟鏄惁骞查娴佺▼锛屼笟鍔″共棰勶紝娴佺▼骞查锛屾寚瀹氫汉鍛樿繘琛屽鐞�
         //鑾峰彇涓嬩竴姝ュ鐞嗕汉
-        Object object=values.get("NextAssignee");
+        Object object = values.get("NextAssignee");
         return (List<String>) object;
     }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardDetailServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardDetailServiceImpl.java
index 966f604..5a0327a 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardDetailServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardDetailServiceImpl.java
@@ -1,11 +1,17 @@
 package org.jeecg.modules.eam.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
 import org.jeecg.modules.eam.mapper.EamMaintenanceStandardDetailMapper;
 import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import javax.annotation.Resource;
+import java.util.Collections;
+import java.util.List;
 
 /**
  * @Description: 淇濆吇鏍囧噯鏄庣粏
@@ -15,5 +21,14 @@
  */
 @Service
 public class EamMaintenanceStandardDetailServiceImpl extends ServiceImpl<EamMaintenanceStandardDetailMapper, EamMaintenanceStandardDetail> implements IEamMaintenanceStandardDetailService {
+    @Resource
+    private EamMaintenanceStandardDetailMapper emMaintenanceStandardDetailMapper;
 
+    @Override
+    public List<EamMaintenanceStandardDetail> selectByStandardId(String standardId) {
+        LambdaQueryWrapper<EamMaintenanceStandardDetail> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(EamMaintenanceStandardDetail::getStandardId, standardId);
+        queryWrapper.orderByAsc(EamMaintenanceStandardDetail::getItemCode);
+        return emMaintenanceStandardDetailMapper.selectList(queryWrapper);
+    }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
index c8c4bcb..6d30e4b 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
@@ -2,6 +2,7 @@
 
 import cn.hutool.core.collection.CollectionUtil;
 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;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -27,6 +28,7 @@
 import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -47,8 +49,8 @@
 
     @Override
     public IPage<EamMaintenanceStandard> queryPageList(Page<EamMaintenanceStandard> page, EamMaintenanceStandard eamMaintenanceStandard) {
-        LambdaQueryWrapper<EamMaintenanceStandard> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(EamMaintenanceStandard::getDelFlag, CommonConstant.DEL_FLAG_0);
+        QueryWrapper<EamMaintenanceStandard> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("ems.del_flag", CommonConstant.DEL_FLAG_0);
         //鐢ㄦ埛鏁版嵁鏉冮檺
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         if (sysUser == null) {
@@ -57,41 +59,41 @@
         if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) {
             //閫夋嫨浜嗚澶囷紝鏍规嵁璁惧id杩囨护璁惧
             List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(","));
-            StringBuilder sqlSb = new StringBuilder("select 1 from eam_equipment t where t.id = equipment_id and t.equipment_code in (");
-            equipArr.forEach(equipmentCode -> {
-                sqlSb.append("'").append(equipmentCode).append("',");
-            });
-            sqlSb.append(")");
-            String sql = sqlSb.toString().replaceAll(",\\)", ")");
-            queryWrapper.exists(sql);
+            queryWrapper.in("e.equipment_code", equipArr);
         } else {
             //娌℃湁閫夋嫨璁惧锛屾牴鎹溅闂磋繃婊よ澶�
-            queryWrapper.exists("select 1 from eam_equipment e where exists (select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id) and e.id = equipment_id", sysUser.getId());
+            queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id ", sysUser.getId());
         }
         if(eamMaintenanceStandard != null) {
             //缂栫爜 妯$硦鏌ヨ
             if(StringUtils.isNotBlank(eamMaintenanceStandard.getStandardCode())) {
-                queryWrapper.like(EamMaintenanceStandard::getStandardCode, eamMaintenanceStandard.getStandardCode());
+                queryWrapper.like("ems.standard_code", eamMaintenanceStandard.getStandardCode());
             }
             //鍚嶇О 妯$硦鏌ヨ
             if(StringUtils.isNotBlank(eamMaintenanceStandard.getStandardName())) {
-                queryWrapper.like(EamMaintenanceStandard::getStandardName, eamMaintenanceStandard.getStandardName());
+                queryWrapper.like("ems.standard_name", eamMaintenanceStandard.getStandardCode());
             }
             //璁惧
             if(StringUtils.isNotBlank(eamMaintenanceStandard.getEquipmentId())) {
-                queryWrapper.eq(EamMaintenanceStandard::getEquipmentId, eamMaintenanceStandard.getEquipmentId());
+                queryWrapper.eq("ems.equipment_id", eamMaintenanceStandard.getEquipmentId());
             }
             //淇濆吇鍒嗙被
             if(StringUtils.isNotBlank(eamMaintenanceStandard.getMaintenanceCategory())) {
-                queryWrapper.eq(EamMaintenanceStandard::getMaintenanceCategory, eamMaintenanceStandard.getMaintenanceCategory());
+                queryWrapper.eq("ems.maintenance_category", eamMaintenanceStandard.getMaintenanceCategory());
             }
             //淇濆吇鍒嗙被
             if(StringUtils.isNotBlank(eamMaintenanceStandard.getStandardStatus())) {
-                queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, eamMaintenanceStandard.getStandardStatus());
+                queryWrapper.eq("ems.standard_status", eamMaintenanceStandard.getStandardStatus());
+            }
+            //璁惧缂栫爜
+            if(StringUtils.isNotBlank(eamMaintenanceStandard.getKeyword())) {
+                queryWrapper.and(wrapper -> wrapper.like("e.equipment_name", eamMaintenanceStandard.getKeyword())
+                        .or()
+                        .like("e.equipment_code", eamMaintenanceStandard.getKeyword()));
             }
         }
-        queryWrapper.orderByDesc(EamMaintenanceStandard::getCreateTime);
-        return eamMaintenanceStandardMapper.selectPage(page, queryWrapper);
+        queryWrapper.orderByDesc("ems.create_time");
+        return eamMaintenanceStandardMapper.queryPageList(page, queryWrapper);
     }
 
     @Override
@@ -269,8 +271,23 @@
      * @return
      */
     @Override
-    public List<EamMaintenanceStandard> queryListBykeywordAndCategory(String keyword, String maintenanceCategory){
-        LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        return eamMaintenanceStandardMapper.queryListBykeywordAndCategory(loginUser.getId(),keyword, maintenanceCategory);
+    public List<EamMaintenanceStandard> queryListByKeywordAndCategory(String keyword, String equipmentId, Integer pageSize, String maintenanceCategory){
+        Page<EamMaintenanceStandard> page = new Page<EamMaintenanceStandard>(1, pageSize);
+        EamMaintenanceStandard query = new EamMaintenanceStandard();
+        query.setEquipmentId(equipmentId);
+        query.setKeyword(keyword);
+        query.setMaintenanceCategory(maintenanceCategory);
+        query.setStandardStatus(MaintenanceStandardStatusEnum.NORMAL.name());
+        IPage<EamMaintenanceStandard> pageData = this.queryPageList(page, query);
+        return pageData.getRecords();
+    }
+
+    @Override
+    public List<EamMaintenanceStandard> queryListByCategory(String maintenanceCategory) {
+        LambdaQueryWrapper<EamMaintenanceStandard> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(EamMaintenanceStandard::getDelFlag, CommonConstant.DEL_FLAG_0);
+        queryWrapper.eq(EamMaintenanceStandard::getMaintenanceCategory, maintenanceCategory);
+        queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.NORMAL.name());
+        return eamMaintenanceStandardMapper.selectList(queryWrapper);
     }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java
index 5bcf4b8..b86ab14 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java
@@ -1,28 +1,44 @@
 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.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
 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.FileUploadResult;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.vo.LoginUser;
-import org.jeecg.modules.eam.constant.BusinessCodeConst;
-import org.jeecg.modules.eam.constant.ReportRepairEnum;
+import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog;
+import org.jeecg.modules.eam.constant.*;
 import org.jeecg.modules.eam.entity.EamEquipment;
 import org.jeecg.modules.eam.entity.EamRepairOrder;
 import org.jeecg.modules.eam.entity.EamReportRepair;
 import org.jeecg.modules.eam.mapper.EamRepairOrderMapper;
 import org.jeecg.modules.eam.request.EamRepairOrderQuery;
+import org.jeecg.modules.eam.request.EamRepairOrderRequest;
+import org.jeecg.modules.eam.request.EamRepairOrderResponse;
+import org.jeecg.modules.eam.request.EamReportRepairQuery;
+import org.jeecg.modules.eam.service.IEamEquipmentExtendService;
 import org.jeecg.modules.eam.service.IEamEquipmentService;
 import org.jeecg.modules.eam.service.IEamRepairOrderService;
 import org.jeecg.modules.eam.service.IEamReportRepairService;
 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.mdc.util.DateUtils;
 import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -53,6 +69,18 @@
 
     @Resource
     private IEamEquipmentService eamEquipmentService;
+
+    @Resource
+    private IFlowMyBusinessService flowMyBusinessService;
+
+    @Resource
+    private TaskService taskService;
+
+    @Resource
+    private IFlowTaskService flowTaskService;
+
+    @Resource
+    private IEamEquipmentExtendService eamEquipmentExtendService;
 
     /**
      * 鍒嗛〉鍒楄〃
@@ -86,8 +114,9 @@
         eamRepairOrder.setEquipmentId(eamReportRepair.getEquipmentId());
         eamRepairOrder.setRepairStatus(ReportRepairEnum.UNDER_REPAIR.name());
         eamRepairOrder.setActualStartTime(DateUtils.getNow());
+        eamRepairOrder.setIsUseSpare(0);
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        eamRepairOrder.setRepairer(user.getRealname());
+        eamRepairOrder.setRepairer(user.getUsername());
         super.save(eamRepairOrder);
         EamEquipment eamEquipment = eamEquipmentService.getById(eamReportRepair.getEquipmentId());
         // 鍚姩缁翠慨娴佺▼
@@ -110,7 +139,244 @@
         } else {
             eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_REPAIR.name());
             eamReportRepairService.updateById(eamReportRepair);
+            //鏇存柊璁惧缁翠慨鐘舵��
+            eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.UNDER_REPAIR.name());
         }
+    }
+
+    /**
+     * 鎸囨淳
+     * @param eamReportRepairQuery
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void assign(EamReportRepairQuery eamReportRepairQuery) {
+        EamRepairOrder eamRepairOrder = new EamRepairOrder();
+        String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.REPAIR_ORDER_CODE_RULE);
+        eamRepairOrder.setRepairCode(codeSeq);
+        EamReportRepair eamReportRepair = eamReportRepairService.getById(eamReportRepairQuery.getId());
+        eamRepairOrder.setDelFlag(CommonConstant.DEL_FLAG_0);
+        eamRepairOrder.setEquipmentId(eamReportRepair.getEquipmentId());
+        eamRepairOrder.setRepairStatus(ReportRepairEnum.UNDER_REPAIR.name());
+        eamRepairOrder.setActualStartTime(DateUtils.getNow());
+        eamRepairOrder.setIsUseSpare(0);
+        eamRepairOrder.setRepairer(eamReportRepairQuery.getRepairer());
+        super.save(eamRepairOrder);
+        EamEquipment eamEquipment = eamEquipmentService.getById(eamReportRepair.getEquipmentId());
+        // 鍚姩缁翠慨娴佺▼
+        flowCommonService.initActBusiness("缁翠慨宸ュ崟鍙凤細" + codeSeq + ", 璁惧缂栧彿锛�" + eamEquipment.getEquipmentCode() + "寮�濮嬬淮淇�",
+                eamRepairOrder.getId(),
+                "IEamRepairOrderService",
+                "eam_repair",
+                null);
+        Map<String, Object> variables = new HashMap<>();
+        variables.put("dataId", eamRepairOrder.getId());
+        variables.put("organization", "缁翠慨宸ュ崟鍚姩娴佺▼");
+        variables.put("comment", "缁翠慨宸ュ崟鍚姩娴佺▼");
+        variables.put("proofreading", true);
+        List<String> usernames = new ArrayList<>();
+        usernames.add(eamReportRepairQuery.getRepairer());
+        variables.put("NextAssignee", usernames);
+        Result result = flowDefinitionService.startProcessInstanceByKey("eam_repair", variables);
+        if (!result.isSuccess()) {
+            super.removeById(eamRepairOrder);
+        } else {
+            eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_REPAIR.name());
+            eamReportRepairService.updateById(eamReportRepair);
+            //鏇存柊璁惧缁翠慨鐘舵��
+            eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.UNDER_REPAIR.name());
+        }
+    }
+
+    /**
+     * 娴佺▼鎿嶄綔
+     *
+     * @param request
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.REPAIRED, businessTable = "eam_repair_order")
+    public EamRepairOrder perform(EamRepairOrderRequest request) {
+        EamRepairOrder eamRepairOrder = this.baseMapper.selectById(request.getId());
+        EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId());
+        if (eamRepairOrder == 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());
+        if (flowMyBusiness == null) {
+            throw new JeecgBootException("娴佺▼瀹炰緥涓嶅瓨鍦紝璇峰埛鏂板悗閲嶈瘯锛�");
+        }
+        boolean userAuthorized = isUserAuthorized(flowMyBusiness, user);
+        if (!userAuthorized) {
+            throw new JeecgBootException("鐢ㄦ埛鏃犳潈鎿嶄綔姝や换鍔★紝璇峰埛鏂板悗閲嶈瘯锛�");
+        }
+        // 璁ら浠诲姟
+        if (!claimTask(flowMyBusiness.getTaskId(), user)) {
+            throw new JeecgBootException("浠诲姟涓嶅瓨鍦ㄣ�佸凡瀹屾垚鎴栧凡琚粬浜鸿棰嗭紒");
+        }
+        EamEquipment equipment = eamEquipmentService.getById(request.getEquipmentId());
+        if (equipment == null) {
+            throw new JeecgBootException("璁惧涓嶅瓨鍦紝璇锋鏌ワ紒");
+        }
+
+        ReportRepairEnum status = ReportRepairEnum.getInstance(eamRepairOrder.getRepairStatus());
+        if (status == null) {
+            return null;
+        }
+        //娴佺▼鍙橀噺
+        Map<String, Object> values = new HashMap<>();
+        switch (status) {
+            case UNDER_REPAIR:
+                //缁翠慨涓細涓嬩竴姝� 鍒ゆ柇鏄惁闇�瑕佸浠�, 闇�瑕佸浠惰浆璁惧绠$悊鍛橀鐢ㄥ浠�, 涓嶉渶瑕佸垯杞埌璁惧鎶ヤ慨鍛樼‘璁ょ淮淇畬鎴�
+                if (request.getIsUseSpare() == 1) {
+                    // 闇�瑕�
+                    if (StringUtils.isBlank(equipment.getEquipmentManager())) {
+                        throw new JeecgBootException("璁惧鏈垎閰嶈澶囩鐞嗗憳锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒");
+                    }
+                    if (StringUtils.isBlank(eamRepairOrder.getSparePartDescription())) {
+                        values.put("dataId", eamRepairOrder.getId());
+                        values.put("organization", "缁翠慨宸ュ崟杩涘叆绛夊浠剁姸鎬�");
+                        values.put("comment", "缁翠慨宸ュ崟杩涘叆绛夊浠剁姸鎬�");
+                        values.put("NextAssignee", Arrays.asList(equipment.getEquipmentManager().split(",")));
+                        values.put("status", 1);
+                        request.setComment("缁翠慨宸ュ崟杩涘叆绛夊浠剁姸鎬�");
+                        eamRepairOrder.setRepairStatus(ReportRepairEnum.WAIT_SPARES.name());
+                        eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_SPARES.name());
+                        eamRepairOrder.setIsUseSpare(1);
+                    } else {
+                        values.put("dataId", eamRepairOrder.getId());
+                        values.put("organization", "缁翠慨宸ュ崟杩涘叆鎶ヤ慨鍛樼‘璁ら樁娈�");
+                        values.put("comment", "缁翠慨宸ュ崟杩涘叆鎶ヤ慨鍛樼‘璁ら樁娈�");
+                        values.put("NextAssignee", Arrays.asList(eamReportRepair.getCreateBy().split(",")));
+                        request.setComment("缁翠慨宸ュ崟杩涘叆绛夊浠剁姸鎬�");
+                        eamRepairOrder.setRepairStatus(ReportRepairEnum.WAIT_CONFIRM.name());
+                        eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_CONFIRM.name());
+                        eamRepairOrder.setFaultReason(request.getFaultReason());
+                        eamRepairOrder.setRepairDescription(request.getRepairDescription());
+                        // 澶勭悊闄勪欢
+                        if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) {
+                            List<FileUploadResult> fileUploadResultList = request.getImageFilesResult();
+                            ObjectMapper mapper = new ObjectMapper();
+                            try {
+                                String referenceFile = mapper.writeValueAsString(fileUploadResultList);
+                                eamRepairOrder.setImageFiles(referenceFile);
+                            } catch (JsonProcessingException e) {
+                                log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
+                            }
+                        }
+                        //鏇存柊璁惧缁翠慨鐘舵��
+                        eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_CONFIRM.name());
+                    }
+                } else {
+                    // 涓嶉渶瑕�
+                    values.put("dataId", eamRepairOrder.getId());
+                    values.put("organization", "缁翠慨宸ュ崟杩涘叆鎶ヤ慨鍛樼‘璁ら樁娈�");
+                    values.put("comment", "缁翠慨宸ュ崟杩涘叆鎶ヤ慨鍛樼‘璁ら樁娈�");
+                    values.put("NextAssignee", Arrays.asList(eamReportRepair.getCreateBy().split(",")));
+                    values.put("status", 0);
+                    request.setComment("缁翠慨宸ュ崟杩涘叆鎶ヤ慨鍛樼‘璁ら樁娈�");
+                    eamRepairOrder.setRepairStatus(ReportRepairEnum.WAIT_CONFIRM.name());
+                    eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_CONFIRM.name());
+                    eamRepairOrder.setFaultReason(request.getFaultReason());
+                    eamRepairOrder.setRepairDescription(request.getRepairDescription());
+                    eamRepairOrder.setIsUseSpare(0);
+                    // 澶勭悊闄勪欢
+                    if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) {
+                        List<FileUploadResult> fileUploadResultList = request.getImageFilesResult();
+                        ObjectMapper mapper = new ObjectMapper();
+                        try {
+                            String referenceFile = mapper.writeValueAsString(fileUploadResultList);
+                            eamRepairOrder.setImageFiles(referenceFile);
+                        } catch (JsonProcessingException e) {
+                            log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
+                        }
+                    }
+                    //鏇存柊璁惧缁翠慨鐘舵��
+                    eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_CONFIRM.name());
+                }
+                break;
+            case WAIT_SPARES:
+                // 绛夊浠�, 绠$悊鍛樼‘璁ゅ浠跺埌浣嶏紝娴佺▼杞埌缁翠慨鍛樼户缁淮淇�,鐘舵�佽浆涓虹淮淇腑
+                values.put("dataId", eamRepairOrder.getId());
+                values.put("organization", "缁翠慨宸ュ崟杩涘叆缁翠慨鍛樼户缁淮淇樁娈�");
+                values.put("comment", "缁翠慨宸ュ崟杩涘叆缁翠慨鍛樼户缁淮淇樁娈�");
+                values.put("NextAssignee", Arrays.asList(eamRepairOrder.getRepairer().split(",")));
+                values.put("status", 0);
+                request.setComment("缁翠慨宸ュ崟杩涘叆缁翠慨鍛樼户缁淮淇樁娈�");
+                eamRepairOrder.setRepairStatus(ReportRepairEnum.UNDER_REPAIR.name());
+                eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_REPAIR.name());
+                eamRepairOrder.setSparePartDescription(request.getSparePartDescription());
+                break;
+            case WAIT_CONFIRM:
+                // 寰呯‘璁�, 缁翠慨鍛樼淮淇畬鎴愶紝鎶ヤ慨浜虹‘璁ょ粨鏉熸祦绋�
+                values.put("dataId", eamRepairOrder.getId());
+                values.put("organization", "缁翠慨宸ュ崟娴佺▼缁撴潫");
+                values.put("comment", "缁翠慨宸ュ崟娴佺▼缁撴潫");
+                values.put("NextAssignee", Arrays.asList(eamReportRepair.getCreateBy().split(",")));
+                values.put("status", 0);
+                request.setComment("缁翠慨宸ュ崟杩涘叆鎶ヤ慨鍛樼‘璁ら樁娈�");
+                eamRepairOrder.setRepairStatus(ReportRepairEnum.COMPLETE.name());
+                eamReportRepair.setReportStatus(ReportRepairEnum.COMPLETE.name());
+                eamRepairOrder.setActualEndTime(new Date());
+                //鏇存柊璁惧缁翠慨鐘舵��
+                eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.NORMAL.name());
+                break;
+        }
+        request.setValues(values);
+
+        // 瀹屾垚娴佺▼浠诲姟
+        Result result = flowTaskService.complete(request);
+        if (!result.isSuccess()) {
+            throw new JeecgBootException("瀹℃壒澶辫触锛岃鍒锋柊鏌ョ湅锛�");
+        }
+        //淇濆瓨宸ュ崟
+        this.baseMapper.updateById(eamRepairOrder);
+        // 鍚屾鏇存柊鎶ヤ慨琛ㄧ姸鎬�
+        eamReportRepairService.updateById(eamReportRepair);
+        return eamRepairOrder;
+    }
+
+    @Override
+    public EamRepairOrderResponse findById(String id) {
+        EamRepairOrderResponse eamRepairOrderResponse = new EamRepairOrderResponse();
+        EamRepairOrder eamRepairOrder = this.baseMapper.selectById(id);
+        BeanUtils.copyProperties(eamRepairOrder, eamRepairOrderResponse);
+        EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId());
+        BeanUtils.copyProperties(eamReportRepair, eamRepairOrderResponse);
+        eamRepairOrderResponse.setReportImageFiles(eamReportRepair.getImageFiles());
+        eamRepairOrderResponse.setImageFiles(eamRepairOrder.getImageFiles());
+        return eamRepairOrderResponse;
+    }
+
+    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;
+    }
+
+    /**
+     * 鍒ゆ柇鐢ㄦ埛鏄惁鎷ユ湁姝ゆ潈闄�
+     * @param flowMyBusiness
+     * @param user
+     * @return
+     */
+    private boolean isUserAuthorized(FlowMyBusiness flowMyBusiness, LoginUser user) {
+        List<String> todoUsers = JSON.parseArray(flowMyBusiness.getTodoUsers(), String.class);
+        return todoUsers != null && todoUsers.contains(user.getUsername());
     }
 
 
@@ -132,7 +398,7 @@
     @Override
     public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) {
         //鑾峰彇涓嬩竴姝ュ鐞嗕汉
-        Object object=values.get("NextAssignee");
+        Object object = values.get("NextAssignee");
         return (List<String>) object;
     }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java
index 996b510..faf446f 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java
@@ -2,20 +2,26 @@
 
 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 org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.vo.FileUploadResult;
+import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.system.vo.LoginUser;
-import org.jeecg.modules.eam.entity.EamReportRepair;
+import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog;
+import org.jeecg.modules.eam.constant.*;
+import org.jeecg.modules.eam.entity.*;
 import org.jeecg.modules.eam.mapper.EamReportRepairMapper;
 import org.jeecg.modules.eam.request.EamReportRepairQuery;
+import org.jeecg.modules.eam.service.IEamEquipmentExtendService;
 import org.jeecg.modules.eam.service.IEamReportRepairService;
 import org.springframework.stereotype.Service;
-
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import javax.annotation.Resource;
+import java.util.*;
 
 /**
  * @Description: 鏁呴殰鎶ヤ慨
@@ -24,6 +30,9 @@
  */
 @Service
 public class EamReportRepairServiceImpl extends ServiceImpl<EamReportRepairMapper, EamReportRepair> implements IEamReportRepairService {
+
+    @Resource
+    private IEamEquipmentExtendService eamEquipmentExtendService;
 
     /**
      * 鍒嗛〉鍒楄〃
@@ -46,4 +55,97 @@
         }
         return this.baseMapper.pageList(page, eamReportRepairQuery, sysUser.getId(), equipmentIds);
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.REPORT_REPAIR, businessTable = "eam_report_repair")
+    public EamReportRepair reportRepairFromMaintenance(String equipmentId, String reportUser, List<EamWeekMaintenanceOrderDetail> detailList) {
+        StringBuilder sb = new StringBuilder();
+        detailList.forEach(detail -> {
+            sb.append(detail.getItemCode()).append("銆�");
+            sb.append(detail.getExceptionDescription()).append(";");
+        });
+        EamReportRepair entity = new EamReportRepair();
+        entity.setEquipmentId(equipmentId);
+        entity.setCreateBy(reportUser);
+        entity.setFaultStartTime(new Date());
+        entity.setBreakdownFlag(CommonConstant.DEFAULT_0);
+        entity.setDelFlag(CommonConstant.DEL_FLAG_0);
+        entity.setFaultName("鍛ㄤ繚鎵ц鎶ヤ慨澶勭悊");
+        entity.setFaultDescription(sb.toString());
+        entity.setFaultType(CommonConstant.DEFAULT_1);
+        entity.setReportStatus(ReportRepairEnum.WAIT_REPAIR.name());
+        this.baseMapper.insert(entity);
+        //鏇存柊璁惧缁翠慨鐘舵��
+        eamEquipmentExtendService.updateEquipmentRepairStatus(entity.getEquipmentId(), EquipmentRepairStatus.WAIT_REPAIR.name());
+        return entity;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.REPORT_REPAIR, businessTable = "eam_report_repair")
+    public EamReportRepair reportRepairFromInspection(String equipmentId, String reportUser, List<EamInspectionOrderDetail> detailList) {
+        StringBuilder sb = new StringBuilder();
+        detailList.forEach(detail -> {
+            sb.append(detail.getItemCode()).append("銆�");
+            sb.append(detail.getExceptionDescription()).append(";");
+        });
+        EamReportRepair entity = new EamReportRepair();
+        entity.setEquipmentId(equipmentId);
+        entity.setCreateBy(reportUser);
+        entity.setFaultStartTime(new Date());
+        entity.setBreakdownFlag(CommonConstant.DEFAULT_0);
+        entity.setDelFlag(CommonConstant.DEL_FLAG_0);
+        entity.setFaultName("鐐规鎵ц鎶ヤ慨澶勭悊");
+        entity.setFaultDescription(sb.toString());
+        entity.setFaultType(CommonConstant.DEFAULT_1);
+        entity.setReportStatus(ReportRepairEnum.WAIT_REPAIR.name());
+        this.baseMapper.insert(entity);
+        //鏇存柊璁惧缁翠慨鐘舵��
+        eamEquipmentExtendService.updateEquipmentRepairStatus(entity.getEquipmentId(), EquipmentRepairStatus.WAIT_REPAIR.name());
+        return entity;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.REPORT_REPAIR, businessTable = "eam_report_repair")
+    public EamReportRepair add(EamReportRepair eamReportRepair) {
+        eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_REPAIR.name());
+        eamReportRepair.setDelFlag(CommonConstant.DEL_FLAG_0);
+        // 闄勪欢澶勭悊
+        if (eamReportRepair.getImageFilesResult() != null) {
+            List<FileUploadResult> imageFilesResult = eamReportRepair.getImageFilesResult();
+            ObjectMapper mapper = new ObjectMapper();
+            try {
+                String referenceFile = mapper.writeValueAsString(imageFilesResult);
+                eamReportRepair.setImageFiles(referenceFile);
+            } catch (JsonProcessingException e) {
+                return null;
+            }
+        }
+        this.baseMapper.insert(eamReportRepair);
+        //鏇存柊璁惧缁翠慨鐘舵��
+        eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_REPAIR.name());
+        return eamReportRepair;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean edit(EamReportRepair eamReportRepair) {
+        // 闄勪欢澶勭悊
+        if (eamReportRepair.getImageFilesResult() != null) {
+            List<FileUploadResult> imageFilesResult = eamReportRepair.getImageFilesResult();
+            ObjectMapper mapper = new ObjectMapper();
+            try {
+                String referenceFile = mapper.writeValueAsString(imageFilesResult);
+                eamReportRepair.setImageFiles(referenceFile);
+            } catch (JsonProcessingException e) {
+                return false;
+            }
+        } else {
+            eamReportRepair.setImageFiles(null);
+        }
+        this.baseMapper.updateById(eamReportRepair);
+        return true;
+    }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSysFilesServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSysFilesServiceImpl.java
index 3ce472e..cf40724 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSysFilesServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSysFilesServiceImpl.java
@@ -1,6 +1,7 @@
 package org.jeecg.modules.eam.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.jeecg.common.api.vo.FileUploadResult;
 import org.jeecg.common.constant.CommonConstant;
@@ -13,6 +14,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
 import java.util.List;
@@ -25,6 +27,9 @@
  */
 @Service
 public class EamSysFilesServiceImpl extends ServiceImpl<EamSysFilesMapper, EamSysFiles> implements IEamSysFilesService {
+
+    @Resource
+    private EamSysFilesMapper eamSysFilesMapper;
 
     @Override
     public void downloadFile(HttpServletResponse response, EamSysFiles entity) {
@@ -39,21 +44,29 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean saveEamSysFiles(EamSysFilesRequest request) {
-        if(request == null || CollectionUtil.isEmpty(request.getFileList())){
+        if (request == null || CollectionUtil.isEmpty(request.getFileList())) {
             return false;
         }
         List<EamSysFiles> resultList = new ArrayList<>();
         for (FileUploadResult fileUploadResult : request.getFileList()) {
-            EamSysFiles eamSysFiles = new EamSysFiles();
-            eamSysFiles.setFilePath(fileUploadResult.getFilePath());
-            eamSysFiles.setFileName(fileUploadResult.getFileName());
-            eamSysFiles.setFileEncodeName(fileUploadResult.getFileEncodeName());
-            eamSysFiles.setFileSize(fileUploadResult.getFileSize());
-            eamSysFiles.setFileSuffix(fileUploadResult.getFileSuffix());
+            EamSysFiles eamSysFiles = this.getByPath(fileUploadResult.getFilePath());
+            if (eamSysFiles == null) {
+                continue;
+            }
             eamSysFiles.setDescription(request.getDescription());
-            eamSysFiles.setDelFlag(CommonConstant.DEL_FLAG_0);
             resultList.add(eamSysFiles);
         }
-        return this.saveBatch(resultList);
+        return this.updateBatchById(resultList);
+    }
+
+    @Override
+    public EamSysFiles getByPath(String path) {
+        LambdaQueryWrapper<EamSysFiles> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(EamSysFiles::getFileEncodeName, path);
+        List<EamSysFiles> list = eamSysFilesMapper.selectList(queryWrapper);
+        if (CollectionUtil.isEmpty(list)) {
+            return null;
+        }
+        return list.get(0);
     }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderDetailServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderDetailServiceImpl.java
index 6f7c727..63539fb 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderDetailServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderDetailServiceImpl.java
@@ -1,11 +1,13 @@
 package org.jeecg.modules.eam.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail;
 import org.jeecg.modules.eam.mapper.EamWeekMaintenanceOrderDetailMapper;
 import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderDetailService;
 import org.springframework.stereotype.Service;
 
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.List;
 
 /**
  * @Description: 鍛ㄤ繚宸ュ崟鏄庣粏
@@ -16,4 +18,11 @@
 @Service
 public class EamWeekMaintenanceOrderDetailServiceImpl extends ServiceImpl<EamWeekMaintenanceOrderDetailMapper, EamWeekMaintenanceOrderDetail> implements IEamWeekMaintenanceOrderDetailService {
 
+    @Override
+    public List<EamWeekMaintenanceOrderDetail> queryListByOrderId(String orderId) {
+        LambdaQueryWrapper<EamWeekMaintenanceOrderDetail> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(EamWeekMaintenanceOrderDetail::getOrderId, orderId);
+        queryWrapper.orderByAsc(EamWeekMaintenanceOrderDetail::getItemCode);
+        return super.list(queryWrapper);
+    }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java
index c17c420..661eba9 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java
@@ -2,31 +2,42 @@
 
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
 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.FileUploadResult;
 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.constant.WeekMaintenanceStatusEnum;
-import org.jeecg.modules.eam.constant.OrderCreationMethodEnum;
+import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog;
+import org.jeecg.modules.eam.constant.*;
+import org.jeecg.modules.eam.entity.EamEquipment;
 import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrder;
 import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail;
 import org.jeecg.modules.eam.mapper.EamWeekMaintenanceOrderMapper;
 import org.jeecg.modules.eam.request.EamWeekMaintenanceQuery;
 import org.jeecg.modules.eam.request.EamWeekMaintenanceRequest;
-import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderDetailService;
-import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderService;
+import org.jeecg.modules.eam.service.*;
 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.service.ISysUserService;
+import org.jeecg.modules.system.vo.UserSelector;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -38,7 +49,7 @@
 /**
  * @Description: 鍛ㄤ繚宸ュ崟
  * @Author: jeecg-boot
- * @Date:   2025-04-02
+ * @Date: 2025-04-02
  * @Version: V1.0
  */
 @Service("IEamWeekMaintenanceOrderService")
@@ -50,14 +61,33 @@
     @Autowired
     private IEamWeekMaintenanceOrderDetailService eamWeekMaintenanceOrderDetailService;
 
-    @Resource
+    @Autowired
     private FlowCommonService flowCommonService;
-    @Resource
+    @Autowired
     private IFlowDefinitionService flowDefinitionService;
+    @Autowired
+    private IFlowMyBusinessService flowMyBusinessService;
+    @Autowired
+    private TaskService taskService;
+    @Autowired
+    private IFlowTaskService flowTaskService;
+
+    @Autowired
+    private ISysUserService sysUserService;
+    @Autowired
+    private IEamEquipmentService eamEquipmentService;
+    @Autowired
+    private IEamReportRepairService eamReportRepairService;
+    @Autowired
+    private IEamEquipmentExtendService eamEquipmentExtendService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean addWeekMaintenance(EamWeekMaintenanceRequest request) {
+        EamEquipment equipment = eamEquipmentService.getById(request.getEquipmentId());
+        if (equipment == null) {
+            throw new JeecgBootException("璁惧涓嶅瓨鍦紝娣诲姞澶辫触锛�");
+        }
         EamWeekMaintenanceOrder order = new EamWeekMaintenanceOrder();
         order.setOrderNum(request.getOrderNum());
         order.setEquipmentId(request.getEquipmentId());
@@ -67,12 +97,12 @@
         order.setRemark(request.getRemark());
         //鐘舵�佸垵濮嬪寲
         order.setMaintenanceStatus(WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name());
-        order.setCreationMethod(OrderCreationMethodEnum.MANUAL.name());
+        order.setCreationMethod(request.getCreationMethod());
         //鍒犻櫎鏍囪
         order.setDelFlag(CommonConstant.DEL_FLAG_0);
         eamWeekMaintenanceOrderMapper.insert(order);
         //澶勭悊鏄庣粏鏁版嵁
-        if(CollectionUtil.isNotEmpty(request.getTableDetailList())) {
+        if (CollectionUtil.isNotEmpty(request.getTableDetailList())) {
             request.getTableDetailList().forEach(tableDetail -> {
                 tableDetail.setId(null);
                 tableDetail.setOrderId(order.getId());
@@ -80,9 +110,9 @@
             eamWeekMaintenanceOrderDetailService.saveBatch(request.getTableDetailList());
         }
         //鍒ゆ柇鏄惁瀛樺湪淇濆吇浜� 濡傛灉瀛樺湪鍒欏惎鍔ㄦ祦绋�
-        if(StringUtils.isNotBlank(order.getOperator())) {
+        if (StringUtils.isNotBlank(order.getOperator())) {
             //鍚姩娴佺▼
-            flowCommonService.initActBusiness("宸ュ崟鍙�:" + order.getOrderNum() + ";寮�濮嬭繘琛岃澶囧懆淇�",
+            flowCommonService.initActBusiness("宸ュ崟鍙�:" + order.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";杩涜璁惧鍛ㄤ繚",
                     order.getId(), "IEamWeekMaintenanceOrderService", "week_maintenance_process", null);
             Map<String, Object> variables = new HashMap<>();
             variables.put("dataId", order.getId());
@@ -98,11 +128,13 @@
             usernames.add(order.getOperator());
             variables.put("NextAssignee", usernames);
             Result result = flowDefinitionService.startProcessInstanceByKey("week_maintenance_process", variables);
-            if(result != null){
+            if (result != null) {
                 //鏇存柊鍛ㄤ繚鐘舵��
                 order.setMaintenanceStatus(WeekMaintenanceStatusEnum.UNDER_MAINTENANCE.name());
                 order.setActualStartTime(new Date());
                 eamWeekMaintenanceOrderMapper.updateById(order);
+                //鏇存柊璁惧淇濆吇鐘舵��
+                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(order.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name());
                 return result.isSuccess();
             }
         }
@@ -164,11 +196,15 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean editWeekMaintenance(EamWeekMaintenanceRequest request) {
+        EamEquipment equipment = eamEquipmentService.getById(request.getEquipmentId());
+        if (equipment == null) {
+            throw new JeecgBootException("璁惧涓嶅瓨鍦紝娣诲姞澶辫触锛�");
+        }
         EamWeekMaintenanceOrder entity = eamWeekMaintenanceOrderMapper.selectById(request.getId());
-        if(entity == null){
+        if (entity == null) {
             throw new JeecgBootException("缂栬緫鐨勬暟鎹凡鍒犻櫎锛岃鍒锋柊閲嶈瘯锛�");
         }
-        if(!WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())){
+        if (!WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) {
             throw new JeecgBootException("鍙湁寰呬繚鍏荤姸鎬佺殑鏁版嵁鎵嶅彲缂栬緫锛�");
         }
         entity.setMaintenanceDate(request.getMaintenanceDate());
@@ -177,32 +213,32 @@
 
         eamWeekMaintenanceOrderMapper.updateById(entity);
         //澶勭悊璇︽儏
-        if(CollectionUtil.isNotEmpty(request.getTableDetailList())) {
+        if (CollectionUtil.isNotEmpty(request.getTableDetailList())) {
             List<EamWeekMaintenanceOrderDetail> addList = new ArrayList<>();
             List<EamWeekMaintenanceOrderDetail> updateList = new ArrayList<>();
             request.getTableDetailList().forEach(tableDetail -> {
                 tableDetail.setOrderId(entity.getId());
-                if(tableDetail.getId() == null){
+                if (tableDetail.getId() == null) {
                     addList.add(tableDetail);
-                }else {
+                } else {
                     updateList.add(tableDetail);
                 }
             });
-            if(CollectionUtil.isNotEmpty(addList)){
+            if (CollectionUtil.isNotEmpty(addList)) {
                 eamWeekMaintenanceOrderDetailService.saveBatch(addList);
             }
-            if(CollectionUtil.isNotEmpty(updateList)){
+            if (CollectionUtil.isNotEmpty(updateList)) {
                 eamWeekMaintenanceOrderDetailService.updateBatchById(updateList);
             }
         }
-        if(CollectionUtil.isNotEmpty(request.getRemoveDetailList())) {
+        if (CollectionUtil.isNotEmpty(request.getRemoveDetailList())) {
             List<String> ids = request.getRemoveDetailList().stream().map(EamWeekMaintenanceOrderDetail::getId).collect(Collectors.toList());
             eamWeekMaintenanceOrderDetailService.removeBatchByIds(ids);
         }
         //鍒ゆ柇鏄惁瀛樺湪淇濆吇浜� 濡傛灉瀛樺湪鍒欏惎鍔ㄦ祦绋�
-        if(StringUtils.isNotBlank(entity.getOperator())) {
+        if (StringUtils.isNotBlank(entity.getOperator())) {
             //鍚姩娴佺▼
-            flowCommonService.initActBusiness("宸ュ崟鍙�:" + entity.getOrderNum() + ";寮�濮嬭繘琛岃澶囧懆淇�",
+            flowCommonService.initActBusiness("宸ュ崟鍙�:" + entity.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";杩涜璁惧鍛ㄤ繚",
                     entity.getId(), "IEamWeekMaintenanceOrderService", "week_maintenance_process", null);
             Map<String, Object> variables = new HashMap<>();
             variables.put("dataId", entity.getId());
@@ -218,13 +254,16 @@
             usernames.add(entity.getOperator());
             variables.put("NextAssignee", usernames);
             Result result = flowDefinitionService.startProcessInstanceByKey("week_maintenance_process", variables);
-            if(result != null){
+            if (result != null) {
                 //鏇存柊鍛ㄤ繚鐘舵��
                 entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.UNDER_MAINTENANCE.name());
                 entity.setActualStartTime(new Date());
                 eamWeekMaintenanceOrderMapper.updateById(entity);
+                //鏇存柊璁惧淇濆吇鐘舵��
+                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name());
                 return result.isSuccess();
             }
+
         }
         return true;
     }
@@ -233,20 +272,27 @@
     @Transactional(rollbackFor = Exception.class)
     public boolean collect(String id) {
         EamWeekMaintenanceOrder entity = eamWeekMaintenanceOrderMapper.selectById(id);
-        if(entity == null) {
+        if (entity == null) {
             throw new JeecgBootException("瑕侀鍙栫殑宸ュ崟涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒");
         }
-        if(!WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) {
+        if (!WeekMaintenanceStatusEnum.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.PCR0001.equals(sysUser.getPost())) {
+            throw new JeecgBootException("涓嶆槸鎿嶄綔宸ワ紝鏃犳硶棰嗗彇姝ゅ伐鍗曪紒");
+        }
         entity.setOperator(sysUser.getUsername());
         entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.UNDER_MAINTENANCE.name());
         entity.setActualStartTime(new Date());
         eamWeekMaintenanceOrderMapper.updateById(entity);
 
         //鍚姩娴佺▼
-        flowCommonService.initActBusiness("宸ュ崟鍙�:" + entity.getOrderNum() + ";寮�濮嬭繘琛岃澶囧懆淇�",
+        flowCommonService.initActBusiness("宸ュ崟鍙�:" + entity.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";杩涜璁惧鍛ㄤ繚",
                 entity.getId(), "IEamWeekMaintenanceOrderService", "week_maintenance_process", null);
         Map<String, Object> variables = new HashMap<>();
         variables.put("dataId", entity.getId());
@@ -262,9 +308,211 @@
         usernames.add(entity.getOperator());
         variables.put("NextAssignee", usernames);
         Result result = flowDefinitionService.startProcessInstanceByKey("week_maintenance_process", variables);
-        if(result != null){
+        if (result != null) {
+            //鏇存柊璁惧淇濆吇鐘舵��
+            eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name());
             return result.isSuccess();
         }
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.WEEK_MAINTENANCE, businessTable = "eam_week_maintenance_order")
+    public EamWeekMaintenanceOrder approval(EamWeekMaintenanceRequest request) {
+        EamWeekMaintenanceOrder entity = eamWeekMaintenanceOrderMapper.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());
+        if (flowMyBusiness == null) {
+            throw new JeecgBootException("娴佺▼瀹炰緥涓嶅瓨鍦紝璇峰埛鏂板悗閲嶈瘯锛�");
+        }
+
+        boolean userAuthorized = isUserAuthorized(flowMyBusiness, user);
+        if (!userAuthorized) {
+            throw new JeecgBootException("鐢ㄦ埛鏃犳潈鎿嶄綔姝や换鍔★紝璇峰埛鏂板悗閲嶈瘯锛�");
+        }
+        // 璁ら浠诲姟
+        if (!claimTask(flowMyBusiness.getTaskId(), user)) {
+            throw new JeecgBootException("浠诲姟涓嶅瓨鍦ㄣ�佸凡瀹屾垚鎴栧凡琚粬浜鸿棰嗭紒");
+        }
+
+        EamEquipment equipment = eamEquipmentService.getById(entity.getEquipmentId());
+        if (equipment == null) {
+            throw new JeecgBootException("璁惧涓嶅瓨鍦紝璇锋鏌ワ紒");
+        }
+
+        WeekMaintenanceStatusEnum status = WeekMaintenanceStatusEnum.getInstance(entity.getMaintenanceStatus());
+        if (status == null) {
+            return null;
+        }
+        //娴佺▼鍙橀噺
+        Map<String, Object> values = new HashMap<>();
+        switch (status) {
+            case UNDER_MAINTENANCE:
+                //鎵ц瀹屾垚
+                List<UserSelector> userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0003);
+                if (CollectionUtil.isEmpty(userSelectors)) {
+                    throw new JeecgBootException("璁惧鏈垎閰嶇粰鐝粍闀匡紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�");
+                }
+                List<String> userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
+                values.put("dataId", entity.getId());
+                values.put("organization", "鍛ㄤ繚鎵ц缁撴潫");
+                values.put("comment", "鍛ㄤ繚鎵ц缁撴潫");
+                values.put("NextAssignee", userApprovalList);
+                request.setComment("鍛ㄤ繚鎵ц缁撴潫");
+                //璁剧疆entity
+                entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.WAIT_CONFIRM.name());
+                entity.setActualEndTime(new Date());
+                //澶勭悊闄勪欢
+                if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) {
+                    List<FileUploadResult> fileUploadResultList = request.getImageFilesResult();
+                    ObjectMapper mapper = new ObjectMapper();
+                    try {
+                        String referenceFile = mapper.writeValueAsString(fileUploadResultList);
+                        entity.setImageFiles(referenceFile);
+                    } catch (JsonProcessingException e) {
+                        log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
+                    }
+                }
+                //澶勭悊璇︽儏
+                if (CollectionUtil.isNotEmpty(request.getTableDetailList())) {
+                    eamWeekMaintenanceOrderDetailService.updateBatchById(request.getTableDetailList());
+                }
+                //鏇存柊璁惧淇濆吇鐘舵��
+                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.WAIT_CONFIRM.name());
+                break;
+            case WAIT_CONFIRM:
+                if (StringUtils.isBlank(equipment.getEquipmentManager())) {
+                    throw new JeecgBootException("璁惧鏈垎閰嶈澶囩鐞嗗憳锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒");
+                }
+                //鐝粍闀跨‘璁�
+                userApprovalList = new ArrayList<>();
+                userApprovalList.add(equipment.getEquipmentManager());
+                values.put("dataId", entity.getId());
+                values.put("organization", request.getConfirmComment());
+                values.put("comment", request.getConfirmComment());
+                values.put("NextAssignee", userApprovalList);
+                values.put("confirmation", request.getConfirmDealType());
+                request.setComment(request.getConfirmComment());
+                //璁剧疆entity
+                entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.WAIT_INITIAL_ACCEPTANCE.name());
+                entity.setConfirmUser(user.getUsername());
+                entity.setConfirmComment(request.getConfirmComment());
+                entity.setConfirmTime(new Date());
+                entity.setConfirmDealType(request.getConfirmDealType());
+                if (CommonConstant.HAS_CANCLE.equals(request.getConfirmDealType())) {
+                    //椹冲洖
+                    userApprovalList = new ArrayList<>();
+                    userApprovalList.add(entity.getOperator());
+                    values.put("NextAssignee", userApprovalList);
+                    entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.UNDER_MAINTENANCE.name());
+                }
+                //澶勭悊鎶ヤ慨
+                List<EamWeekMaintenanceOrderDetail> collect = request.getTableDetailList().stream().filter((detail) -> CommonConstant.DEFAULT_1.equals(detail.getReportFlag())).collect(Collectors.toList());
+                if (CollectionUtil.isNotEmpty(collect)) {
+                    eamReportRepairService.reportRepairFromMaintenance(equipment.getId(), entity.getOperator(), collect);
+                }
+                break;
+            case WAIT_INITIAL_ACCEPTANCE:
+                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0005);
+                if (CollectionUtil.isEmpty(userSelectors)) {
+                    throw new JeecgBootException("璁惧鏈垎閰嶇粰璁捐兘閮ㄧ鐞嗗憳锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒");
+                }
+                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
+                values.put("dataId", entity.getId());
+                values.put("organization", request.getInitialAcceptanceComment());
+                values.put("comment", request.getInitialAcceptanceComment());
+                values.put("NextAssignee", userApprovalList);
+                request.setComment(request.getInitialAcceptanceComment());
+                //璁剧疆entity
+                entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.WAIT_FINAL_ACCEPTANCE.name());
+                entity.setInitialAcceptanceUser(user.getUsername());
+                entity.setInitialAcceptanceComment(request.getInitialAcceptanceComment());
+                entity.setInitialAcceptanceTime(new Date());
+                //澶勭悊闄勪欢
+                if (CollectionUtil.isNotEmpty(request.getInitialAcceptanceFilesResult())) {
+                    List<FileUploadResult> fileUploadResultList = request.getInitialAcceptanceFilesResult();
+                    ObjectMapper mapper = new ObjectMapper();
+                    try {
+                        String referenceFile = mapper.writeValueAsString(fileUploadResultList);
+                        entity.setInitialAcceptanceFiles(referenceFile);
+                    } catch (JsonProcessingException e) {
+                        log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
+                    }
+                }
+                break;
+            case WAIT_FINAL_ACCEPTANCE:
+                values.put("dataId", entity.getId());
+                values.put("organization", request.getFinalAcceptanceComment());
+                values.put("comment", request.getFinalAcceptanceComment());
+                request.setComment(request.getFinalAcceptanceComment());
+                //璁剧疆entity
+                entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.COMPLETE.name());
+                entity.setFinalAcceptanceUser(user.getUsername());
+                entity.setFinalAcceptanceComment(request.getFinalAcceptanceComment());
+                entity.setFinalAcceptanceTime(new Date());
+                //澶勭悊闄勪欢
+                if (CollectionUtil.isNotEmpty(request.getFinalAcceptanceFilesResult())) {
+                    List<FileUploadResult> fileUploadResultList = request.getFinalAcceptanceFilesResult();
+                    ObjectMapper mapper = new ObjectMapper();
+                    try {
+                        String referenceFile = mapper.writeValueAsString(fileUploadResultList);
+                        entity.setFinalAcceptanceFiles(referenceFile);
+                    } catch (JsonProcessingException e) {
+                        log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
+                    }
+                }
+                //鏇存柊璁惧淇濆吇鐘舵��
+                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name());
+                break;
+        }
+        request.setValues(values);
+
+        // 瀹屾垚娴佺▼浠诲姟
+        Result result = flowTaskService.complete(request);
+        if (!result.isSuccess()) {
+            throw new JeecgBootException("瀹℃壒澶辫触锛岃鍒锋柊鏌ョ湅锛�");
+        }
+        //淇濆瓨宸ュ崟
+        eamWeekMaintenanceOrderMapper.updateById(entity);
+        return entity;
+    }
+
+    @Override
+    public List<EamWeekMaintenanceOrder> selectUnCompleteOrder(String expiredDate) {
+        LambdaQueryWrapper<EamWeekMaintenanceOrder> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.lt(EamWeekMaintenanceOrder::getMaintenanceDate, expiredDate);
+        List<String> unCompleteStatus = new ArrayList<>();
+        unCompleteStatus.add(WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name());
+        unCompleteStatus.add(WeekMaintenanceStatusEnum.UNDER_MAINTENANCE.name());
+        queryWrapper.in(EamWeekMaintenanceOrder::getMaintenanceStatus, unCompleteStatus);
+        queryWrapper.orderByAsc(EamWeekMaintenanceOrder::getMaintenanceDate);
+        return eamWeekMaintenanceOrderMapper.selectList(queryWrapper);
+    }
+
+    private boolean isUserAuthorized(FlowMyBusiness flowMyBusiness, LoginUser user) {
+        List<String> todoUsers = JSON.parseArray(flowMyBusiness.getTodoUsers(), String.class);
+        return todoUsers != null && todoUsers.contains(user.getUsername());
+    }
+
+    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;
     }
 
@@ -289,7 +537,7 @@
     public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) {
         //涓氬姟鏄惁骞查娴佺▼锛屼笟鍔″共棰勶紝娴佺▼骞查锛屾寚瀹氫汉鍛樿繘琛屽鐞�
         //鑾峰彇涓嬩竴姝ュ鐞嗕汉
-        Object object=values.get("NextAssignee");
+        Object object = values.get("NextAssignee");
         return (List<String>) object;
     }
 }
diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/IFlowMyBusinessService.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/IFlowMyBusinessService.java
index aca2489..0093f0e 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/IFlowMyBusinessService.java
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/IFlowMyBusinessService.java
@@ -9,5 +9,17 @@
  * @Version: V1.0
  */
 public interface IFlowMyBusinessService extends IService<FlowMyBusiness> {
+    /**
+     * 鏍规嵁娴佺▼瀹炰緥id 鑾峰彇 娴佺▼瀹炰緥
+     * @param instanceId 娴佺▼瀹炰緥id
+     * @return
+     */
+    FlowMyBusiness getFlowMyBusiness(String instanceId);
 
+    /**
+     * 鑾峰彇娴佺▼瀹炰緥
+     * @param dataId 涓氬姟Id
+     * @return
+     */
+    FlowMyBusiness selectByDataId(String dataId);
 }
diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java
index 793799f..1cf4f7f 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java
@@ -1,6 +1,7 @@
 package org.jeecg.modules.flowable.apithird.business.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.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -16,6 +17,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.util.Date;
 import java.util.List;
 
@@ -27,7 +29,7 @@
  */
 @Service
 public class FlowMyBusinessServiceImpl extends ServiceImpl<FlowMyBusinessMapper, FlowMyBusiness> implements IFlowMyBusinessService {
-    @Autowired
+    @Resource
     private FlowMyBusinessMapper flowMyBusinessMapper;
 
     @Autowired
@@ -124,4 +126,18 @@
         });
         return flowMyBusinessDtoIPage;
     }
+
+    @Override
+    public FlowMyBusiness getFlowMyBusiness(String instanceId) {
+        List<FlowMyBusiness> businessList = super.list(
+                new QueryWrapper<FlowMyBusiness>().eq("process_instance_id", instanceId));
+        return businessList.isEmpty() ? null : businessList.get(0);
+    }
+
+    @Override
+    public FlowMyBusiness selectByDataId(String dataId) {
+        List<FlowMyBusiness> businessList = super.list(
+                new QueryWrapper<FlowMyBusiness>().eq("data_id", dataId));
+        return businessList.isEmpty() ? null : businessList.get(0);
+    }
 }
diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/controller/AssignStreamFlowController.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/controller/AssignStreamFlowController.java
index 68278b0..d41ab56 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/controller/AssignStreamFlowController.java
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/controller/AssignStreamFlowController.java
@@ -1,7 +1,12 @@
 package org.jeecg.modules.flowable.controller;
 
+import cn.hutool.core.collection.CollectionUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.parser.Feature;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.extern.slf4j.Slf4j;
@@ -15,9 +20,11 @@
 import org.flowable.image.ProcessDiagramGenerator;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.TranslateDictTextUtils;
 import org.jeecg.modules.flowable.apithird.business.dto.FlowMyBusinessDto;
 import org.jeecg.modules.flowable.apithird.business.service.impl.FlowMyBusinessServiceImpl;
 import org.jeecg.modules.flowable.domain.dto.FlowTaskDto;
+import org.jeecg.modules.flowable.domain.vo.FlowHistoricalVo;
 import org.jeecg.modules.flowable.domain.vo.FlowMy;
 import org.jeecg.modules.flowable.domain.vo.WorkTaskDataVo;
 import org.jeecg.modules.flowable.service.IFlowTaskService;
@@ -35,8 +42,10 @@
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
+@Api(tags = "宸ヤ綔娴侀�氱敤涓氬姟鎺ュ彛")
 @RestController
 @RequestMapping("assign/flow")
 @Slf4j
@@ -55,6 +64,10 @@
     private HistoryService historyService;
     @Autowired
     private ProcessEngine processEngine;
+    @Autowired
+    private ObjectMapper objectMapper;
+    @Autowired
+    private TranslateDictTextUtils translateDictTextUtils;
 
     @ApiOperation(value = "鑾峰彇鎬诲彴璐�", response = FlowTaskDto.class)
     @GetMapping(value = "/list")
@@ -97,10 +110,26 @@
         return flowTaskService.finishedList(pageNo, pageSize,flowMyBusinessDto);
     }
 
+
     @ApiOperation(value = "鑾峰彇宸ヤ綔娴佸巻鍙蹭换鍔�", response = FlowTaskDto.class)
     @GetMapping(value = "/queryHisTaskList")
     public Result<?> queryHisTaskList(@RequestParam(name = "procInstId") String procInstId) {
-        return Result.OK(hisWorkTaskService.queryHisTaskByProcInstId(procInstId));
+        List<FlowHistoricalVo> flowHistoricalVos = hisWorkTaskService.queryHisTaskByProcInstId(procInstId);
+        if(CollectionUtil.isEmpty(flowHistoricalVos)) {
+            return Result.OK(Collections.emptyList());
+        }
+        List<JSONObject> items = new ArrayList<>();
+        try {
+            for(FlowHistoricalVo vo : flowHistoricalVos) {
+                String json = objectMapper.writeValueAsString(vo);
+                JSONObject item = JSONObject.parseObject(json, Feature.OrderedField);
+                translateDictTextUtils.translateField("assignee", vo.getAssignee(), item, "sys_user,realname,username");
+                items.add(item);
+            }
+            return Result.OK(items);
+        }catch (Exception e) {
+            return Result.error("鏁版嵁杞瘧澶辫触锛�");
+        }
     }
 
     @ApiOperation(value = "瀹℃壒浠诲姟-鏌ョ湅娴佺▼鍥�")
diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/domain/vo/FlowMy.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/domain/vo/FlowMy.java
index f8d311f..7602af0 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/domain/vo/FlowMy.java
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/domain/vo/FlowMy.java
@@ -34,4 +34,9 @@
      * 娴佺▼鍒嗙被
      */
     private String category;
+
+    /**
+     * 褰撳墠鑺傜偣鍚嶇О
+     */
+    private String name;
 }
diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/WorkTaskVoMapper.xml b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/WorkTaskVoMapper.xml
index 81e862f..6d4e32b 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/WorkTaskVoMapper.xml
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/WorkTaskVoMapper.xml
@@ -45,6 +45,9 @@
           <if test="flowMy.category!= null and flowMy.category!= ''">
               AND pro.CATEGORY_ = #{flowMy.category}
           </if>
+          <if test="flowMy.name!= null and flowMy.name!= ''">
+              AND atask.name_ = #{flowMy.name}
+          </if>
         ORDER BY
             create_time_ DESC
     </select>
diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/FlowTaskServiceImpl.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/FlowTaskServiceImpl.java
index c39da7c..c5243fe 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/FlowTaskServiceImpl.java
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/FlowTaskServiceImpl.java
@@ -678,6 +678,9 @@
         try {
             // 寮哄埗缁撴潫娴佺▼瀹炰緥
             runtimeService.deleteProcessInstance(processInstanceId, deleteReason);
+            // 鍒犻櫎鍏宠仈娴佺▼鐨勪笟鍔�
+            FlowMyBusiness flowMyBusiness=flowMyBusinessService.getFlowMyBusiness(processInstanceId);
+            flowMyBusinessService.removeById(flowMyBusiness.getId());
             System.out.println("Process instance with ID " + processInstanceId + " has been forcefully ended.");
         } catch (Exception e) {
             System.err.println("Failed to force end process instance: " + e.getMessage());
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/ThrowableUtil.java b/lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/util/ThrowableUtil.java
similarity index 100%
rename from lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/ThrowableUtil.java
rename to lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/util/ThrowableUtil.java
diff --git a/lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml b/lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml
index 2b4b48b..2e398df 100644
--- a/lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml
+++ b/lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml
@@ -7,7 +7,7 @@
     include-stacktrace: ALWAYS
     include-message: ALWAYS
   servlet:
-    context-path:
+    context-path: /jeecg-boot
   compression:
     enabled: true
     min-response-size: 1024
@@ -135,7 +135,7 @@
     database: 0
     host: 127.0.0.1
     port: 6379
-    password: 123456
+    password: ''
 flowable:
   enable: true
   #鍏抽棴瀹氭椂浠诲姟JOB

--
Gitblit v1.9.3