From 5836788a6aabf60014a746b724607e3e965a0d86 Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期二, 10 六月 2025 10:51:58 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsStocktakingBoundController.java          |   20 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/OutStoreDetailController.java                 |   20 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolSharpeningController.java                 |   21 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InStoreDetailMapper.xml                       |    3 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsSharpeningServiceImpl.java             |   32 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java             |   59 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java    |    6 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsLossBoundController.java                 |   24 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java                    |    7 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolLedgerController.java                     |   19 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolLedgerMapper.xml                          |   29 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/OutStoreDetailMapper.xml                      |   38 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java                       |   37 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolLedgerService.java                          |    4 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java              |  357 ++++-
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IOutStoreDetailService.java                      |    2 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java          |    3 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolLedgerDetailMapper.java                       |    2 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsLossBoundDetail.java                         |    3 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java                |   17 
 db/数据库产品化设计.pdma.json                                                                                        | 2108 +++++++++++++++++++++++++++++++++---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderQuery.java                         |    9 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolLedgerDetailMapper.xml                    |   20 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamReportRepair.java                       |    8 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolLedgerMapper.java                             |    5 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsSharpeningMapper.java                        |    4 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolLedgerDetailServiceImpl.java            |   25 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsLossBoundDetailServiceImpl.java        |   35 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/OutStoreDetailMapper.java                         |    3 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsStocktakingBoundDetailService.java         |    2 
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java                        |   98 +
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsStocktakingBoundDetailMapper.java            |    3 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsSharpeningMapper.xml                     |   62 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsLossBoundDetailService.java                |    2 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java                         |   10 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolLedgerDetailController.java               |   19 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamReportRepairQuery.java                        |    3 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsLossBoundDetailMapper.xml                |   74 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsStocktakingBoundDetailMapper.xml         |   26 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolLedgerServiceImpl.java                  |   38 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolSharpening.java                               |    1 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsStocktakingBoundDetailServiceImpl.java |   32 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java   |    6 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml                      |    7 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsSharpeningService.java                     |    2 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamReportRepairMapper.java                        |   10 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsLossBoundDetailMapper.java                   |    3 
 lxzn-boot-base-core/src/main/java/org/jeecg/common/util/TranslateDictTextUtils.java                          |    7 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolLedgerDetailService.java                    |    2 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/OutStoreDetailServiceImpl.java              |   33 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml                     |    7 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml                           |   55 
 52 files changed, 3,004 insertions(+), 418 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 c989e10..361bb90 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-6-6 10:13:46",
+  "updatedTime": "2025-6-9 10:59:32",
   "dbConns": [],
   "profile": {
     "default": {
@@ -632,7 +632,7 @@
       "#DDE5FF"
     ],
     "DDLToggleCase": "L",
-    "menuWidth": "336px"
+    "menuWidth": "420px"
   },
   "entities": [
     {
@@ -10720,6 +10720,60 @@
           "id": "F0A26536-E486-44CE-A4D8-874A7753D20D"
         },
         {
+          "defKey": "repair_confirm",
+          "defName": "缁翠慨纭",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
+          "id": "74A93393-824F-4652-9A66-E9BA869A03A9"
+        },
+        {
+          "defKey": "repair_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": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
+          "id": "7658B2A6-A43B-4C1D-BAFD-93ADC3422234"
+        },
+        {
+          "defKey": "repair_confirm_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": "E3BD4018-31D8-412D-AD9C-00ED3F068906"
+        },
+        {
           "defKey": "fault_reason",
           "defName": "鏁呴殰鍘熷洜",
           "comment": "",
@@ -10757,7 +10811,7 @@
         },
         {
           "defKey": "repairer",
-          "defName": "缁翠慨璐熻矗浜�",
+          "defName": "缁翠慨浜�",
           "comment": "",
           "type": "",
           "len": "",
@@ -10774,8 +10828,26 @@
           "id": "39B6A4DB-4B2F-4997-BE68-04267F517AD6"
         },
         {
-          "defKey": "outsourced_flag",
-          "defName": "鏄惁濮斿",
+          "defKey": "leader_user",
+          "defName": "纭棰嗗",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
+          "id": "BE863706-C9DD-45D3-9303-4180F1A444E2"
+        },
+        {
+          "defKey": "leader_confirm",
+          "defName": "棰嗗纭缁撴灉",
           "comment": "",
           "type": "",
           "len": "",
@@ -10789,11 +10861,11 @@
           "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
           "extProps": {},
           "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
-          "id": "DA146E97-BBC5-4384-A5BB-DDC93B583CE5"
+          "id": "958A9D56-586D-483A-B670-EA3351BEEF50"
         },
         {
-          "defKey": "outsourced_repair_decription",
-          "defName": "濮斿缁翠慨鎻忚堪",
+          "defKey": "leader_confirm_comment",
+          "defName": "棰嗗鎰忚",
           "comment": "",
           "type": "",
           "len": "",
@@ -10807,11 +10879,11 @@
           "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
           "extProps": {},
           "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
-          "id": "69CB22EB-2B80-49A7-B805-7C4F1F1C1CB2"
+          "id": "F7BAD961-9011-4A25-B80B-7D6865B93F92"
         },
         {
-          "defKey": "outsourced_start_time",
-          "defName": "濮斿缁翠慨寮�濮嬫椂闂�",
+          "defKey": "leader_confirm_time",
+          "defName": "棰嗗纭鏃堕棿",
           "comment": "",
           "type": "",
           "len": "",
@@ -10825,11 +10897,65 @@
           "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098",
           "extProps": {},
           "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
-          "id": "FA66CD6A-B56E-4498-B9CA-51DFE0C04AE5"
+          "id": "32CAA017-36BD-4EB3-B4E5-88F972CEE9CD"
         },
         {
-          "defKey": "outsourced_end_time",
-          "defName": "濮斿缁翠慨缁撴潫鏃堕棿",
+          "defKey": "external_repairer",
+          "defName": "鏈哄姩鍔炵淮淇汉",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
+          "id": "AC27EA79-E7DA-4B72-B39B-8ECA8D968958"
+        },
+        {
+          "defKey": "external_confirm",
+          "defName": "鏈哄姩鍔炵‘璁ょ粨鏋�",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
+          "id": "ED829432-3B4C-49D4-8B91-05DF171070E9"
+        },
+        {
+          "defKey": "external_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": "16D85E43-DC62-4809-BC8C-8274A8EACD4C"
+        },
+        {
+          "defKey": "external_confirm_time",
+          "defName": "鏈哄姩鍔炵‘璁ゆ椂闂�",
           "comment": "",
           "type": "",
           "len": "",
@@ -10843,10 +10969,10 @@
           "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098",
           "extProps": {},
           "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
-          "id": "C48C41A7-1AC7-43E4-98D8-DEFEE359B4AA"
+          "id": "1FFC3F79-6226-4B7C-9F96-233CCEB9FE6E"
         },
         {
-          "defKey": "outsourced_person",
+          "defKey": "outsourced_user",
           "defName": "濮斿璐熻矗浜�",
           "comment": "",
           "type": "",
@@ -10892,8 +11018,8 @@
           "baseType": "B17BDED3-085F-40E1-9019-3B79CF2BF075"
         },
         {
-          "defKey": "is_use_spare",
-          "defName": "鏄惁棰嗙敤澶囦欢",
+          "defKey": "confirmer",
+          "defName": "鎿嶄綔宸�",
           "comment": "",
           "type": "",
           "len": "",
@@ -10904,14 +11030,32 @@
           "defaultValue": "",
           "hideInGraph": false,
           "refDict": "",
-          "baseType": "1D764C4A-6F9F-421E-B11A-6F3E23B51811",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
           "extProps": {},
-          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
-          "id": "36816184-4B15-4AC7-A460-4E8EC004871D"
+          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
+          "id": "D12E8E73-B626-404F-9C60-E1D260F2DD9C"
         },
         {
-          "defKey": "spare_part_description",
-          "defName": "澶囦欢鎻忚堪",
+          "defKey": "confirm_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": "73F12932-B17A-43D7-8ABE-E492DBD081A4"
+        },
+        {
+          "defKey": "confirm_comment",
+          "defName": "鎿嶄綔宸ョ‘璁ゆ剰瑙�",
           "comment": "",
           "type": "",
           "len": "",
@@ -10925,7 +11069,7 @@
           "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
           "extProps": {},
           "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
-          "id": "3945E6D0-A58E-4B40-AFDA-6D8D477DE78F"
+          "id": "D78104A0-7502-4867-BE4D-6727F35FAE54"
         }
       ],
       "correlations": [],
@@ -11191,88 +11335,6 @@
           "id": "85CDAFC1-967B-4CB3-982E-8E8BF03A09BC"
         },
         {
-          "defKey": "equipment_id",
-          "defName": "璁惧ID",
-          "comment": "",
-          "type": "",
-          "len": "",
-          "scale": "",
-          "primaryKey": false,
-          "notNull": false,
-          "autoIncrement": false,
-          "defaultValue": "",
-          "hideInGraph": false,
-          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
-          "refDict": "",
-          "extProps": {},
-          "notes": {},
-          "attr1": "",
-          "attr2": "",
-          "attr3": "",
-          "attr4": "",
-          "attr5": "",
-          "attr6": "",
-          "attr7": "",
-          "attr8": "",
-          "attr9": "",
-          "id": "6903B4C4-A6B4-41CE-9738-55F019462350",
-          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
-        },
-        {
-          "defKey": "repair_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": "19D358EF-F8CA-4B59-9174-DBF9D9031D15"
-        },
-        {
-          "defKey": "plan_start_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": "A7BF0506-46FD-49EB-94F4-6D1FB00364B6"
-        },
-        {
-          "defKey": "plan_end_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": "AFB42D15-7B7C-472C-80C3-0C99A8D45E37"
-        },
-        {
           "defKey": "repair_code",
           "defName": "缁翠慨缂栫爜",
           "comment": "",
@@ -11292,7 +11354,7 @@
         },
         {
           "defKey": "repair_name",
-          "defName": "缁翠慨鍚嶇О",
+          "defName": "椤圭洰鍚嶇О",
           "comment": "",
           "type": "",
           "len": "",
@@ -11325,6 +11387,96 @@
           "extProps": {},
           "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
           "id": "6A9F4674-955E-4632-ADE4-37B8642F302F"
+        },
+        {
+          "defKey": "repair_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": "19D358EF-F8CA-4B59-9174-DBF9D9031D15"
+        },
+        {
+          "defKey": "applicant",
+          "defName": "鐢宠浜�",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
+          "id": "BAF0FBEF-F52F-4C30-B32C-50804ECDBA5E"
+        },
+        {
+          "defKey": "applicant_production",
+          "defName": "鐢宠杞﹂棿",
+          "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": "A676B900-E220-48C2-8D39-897C7510CE7D"
+        },
+        {
+          "defKey": "plan_start_date",
+          "defName": "璁″垝寮�濮嬫棩鏈�",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098",
+          "extProps": {},
+          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
+          "id": "A7BF0506-46FD-49EB-94F4-6D1FB00364B6"
+        },
+        {
+          "defKey": "plan_end_date",
+          "defName": "璁″垝缁撴潫鏃ユ湡",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098",
+          "extProps": {},
+          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
+          "id": "AFB42D15-7B7C-472C-80C3-0C99A8D45E37"
         },
         {
           "defKey": "actual_start_time",
@@ -11381,26 +11533,8 @@
           "id": "9E38846A-B6B9-4758-80AB-D516B7069740"
         },
         {
-          "defKey": "attachment",
-          "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": "A7DC8D03-1A32-4B93-8CCA-C640BC4B3C23"
-        },
-        {
-          "defKey": "repair_description",
-          "defName": "缁翠慨鎻忚堪",
+          "defKey": "fault_description",
+          "defName": "鏁呴殰鎻忚堪",
           "comment": "",
           "type": "",
           "len": "",
@@ -11417,8 +11551,8 @@
           "id": "3A15FA62-968C-4BF4-B0AD-BBDC1403714F"
         },
         {
-          "defKey": "repair_method",
-          "defName": "缁翠慨鏂瑰紡",
+          "defKey": "applicant_reason",
+          "defName": "鐢宠鍘熷洜",
           "comment": "",
           "type": "",
           "len": "",
@@ -11431,26 +11565,8 @@
           "refDict": "",
           "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
           "extProps": {},
-          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
-          "id": "98FEFCC8-35AE-449E-A871-3EC16A77EE8B"
-        },
-        {
-          "defKey": "outsourced_company",
-          "defName": "濮斿鍏徃",
-          "comment": "",
-          "type": "",
-          "len": "",
-          "scale": "",
-          "primaryKey": false,
-          "notNull": false,
-          "autoIncrement": false,
-          "defaultValue": "",
-          "hideInGraph": false,
-          "refDict": "",
-          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
-          "extProps": {},
-          "domain": "BE09D493-E183-402D-ACC4-EEA21EB35B8E",
-          "id": "D603234A-461B-49B8-93C1-4712D7B44F43"
+          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
+          "id": "B04C4899-7FB7-45DA-B14C-BB23498403A5"
         },
         {
           "defKey": "responsible_person",
@@ -11469,6 +11585,24 @@
           "extProps": {},
           "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
           "id": "9371C30D-BFE6-4A65-879D-3F9FCEF04422"
+        },
+        {
+          "defKey": "remark",
+          "defName": "澶囨敞",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
+          "id": "C44003D7-D3F9-4C2C-98F2-E85D64731D4B"
         }
       ],
       "correlations": [],
@@ -11716,26 +11850,8 @@
           "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": "7CF8393A-0CF1-41F7-B042-8E39796F1EE0"
-        },
-        {
-          "defKey": "emergency_degree",
-          "defName": "绱ф�ョ▼搴�",
+          "defKey": "equipment_id",
+          "defName": "璁惧ID",
           "comment": "",
           "type": "",
           "len": "",
@@ -11748,8 +11864,26 @@
           "refDict": "",
           "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
           "extProps": {},
-          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
-          "id": "D7EDEEBD-6CA9-419D-B501-B763E8EAB296"
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
+          "id": "FB7C630E-7620-4FAF-B7B3-993C35C04380"
+        },
+        {
+          "defKey": "unit_price",
+          "defName": "鍗曚环",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E",
+          "extProps": {},
+          "domain": "C3B1681B-99F9-4818-9E80-DE1652A51D85",
+          "id": "CF1BDE59-06BB-4C63-9D87-FEAA51BCD77B"
         },
         {
           "defKey": "repair_result",
@@ -17148,24 +17282,6 @@
           "attr9": "",
           "id": "C45C1700-635C-4F3B-B92F-D488BB4BB27A",
           "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098"
-        },
-        {
-          "defKey": "scrap_status",
-          "defName": "鎶ュ簾鐘舵��",
-          "comment": "1锛氬緟鎶ュ簾锛�2锛氬凡鎶ュ簾",
-          "type": "",
-          "len": "",
-          "scale": "",
-          "primaryKey": false,
-          "notNull": false,
-          "autoIncrement": false,
-          "defaultValue": "",
-          "hideInGraph": false,
-          "refDict": "",
-          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
-          "extProps": {},
-          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
-          "id": "DD95E111-E409-44AE-A481-B88D5ED11766"
         }
       ],
       "correlations": [],
@@ -19139,6 +19255,1614 @@
       ],
       "correlations": [],
       "notes": {}
+    },
+    {
+      "id": "7BD6579A-5569-4F7F-A8B3-CA17908A43AC",
+      "env": {
+        "base": {
+          "nameSpace": "",
+          "codeRoot": ""
+        }
+      },
+      "defKey": "eam_equipment_purchase_plan",
+      "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": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
+          "id": "70E16932-3261-4AAE-BCF4-E513D3F2AB16"
+        },
+        {
+          "defKey": "create_by",
+          "defName": "鍒涘缓浜�",
+          "comment": "",
+          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": true,
+          "refDict": "",
+          "uiHint": "",
+          "id": "100D82CC-D045-479B-A211-4063271207F7",
+          "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": "",
+          "uiHint": "",
+          "id": "DE68092A-CBAC-49A0-B96B-75503C53AFD7",
+          "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": "",
+          "uiHint": "",
+          "id": "97945365-94EE-4CBC-B0B4-27ADAD68F798",
+          "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": "",
+          "uiHint": "",
+          "id": "081C0F7E-C583-4522-823D-FE2A4E17BB25",
+          "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": "5AD25E7A-6B4A-4462-8F76-AC05660FF9DC"
+        },
+        {
+          "defKey": "plan_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": "C757C668-468C-4A05-BEFC-F40A19F14338"
+        },
+        {
+          "defKey": "plan_code",
+          "defName": "閲囪喘璁″垝缂栫爜",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
+          "id": "E0EFB1AC-0AFE-426F-A307-0F104DA5B02A"
+        },
+        {
+          "defKey": "plan_status",
+          "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": "8E41BF7D-AB4F-4C75-951A-58DC90370E80"
+        },
+        {
+          "defKey": "equipment_model",
+          "defName": "鍨嬪彿",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "BE09D493-E183-402D-ACC4-EEA21EB35B8E",
+          "id": "9565E68F-6079-40CB-9C87-8352DF1E7699"
+        },
+        {
+          "defKey": "purchase_number",
+          "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": "70268A4D-EC14-4389-8B7D-67A306878886"
+        },
+        {
+          "defKey": "estimated_unit_price",
+          "defName": "棰勮鍗曚环",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E",
+          "extProps": {},
+          "domain": "C3B1681B-99F9-4818-9E80-DE1652A51D85",
+          "id": "DBAD45BD-25D9-429B-ACAD-7D04E61830ED"
+        },
+        {
+          "defKey": "total_price",
+          "defName": "鎬讳环",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E",
+          "extProps": {},
+          "domain": "C3B1681B-99F9-4818-9E80-DE1652A51D85",
+          "id": "751CC71D-DC9A-46E1-B1BE-C3F3F03FE62A"
+        },
+        {
+          "defKey": "overall_contract_amount",
+          "defName": "鍚堝悓鎬婚噾棰�",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E",
+          "extProps": {},
+          "domain": "C3B1681B-99F9-4818-9E80-DE1652A51D85",
+          "id": "643CC9A0-34DE-4409-93AB-9FEB2BA6A026"
+        },
+        {
+          "defKey": "equipment_importance",
+          "defName": "ABC鏍囪瘑(绠$悊鍒嗙被)",
+          "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": "108879A4-40F9-4829-A3D9-1A4C87219838"
+        },
+        {
+          "defKey": "plan_category",
+          "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": "25F8D58C-A2B6-4A14-9398-F0988F362834"
+        },
+        {
+          "defKey": "applicant",
+          "defName": "鐢宠浜�",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
+          "id": "377544C4-9A38-40EA-A036-89F1AD9BA6B4"
+        },
+        {
+          "defKey": "applicant_production",
+          "defName": "鐢宠杞﹂棿",
+          "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": "A6E80149-A12F-4659-A875-9C3A231B62FB"
+        },
+        {
+          "defKey": "plan_start_date",
+          "defName": "璁″垝寮�濮嬫棩鏈�",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098",
+          "extProps": {},
+          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
+          "id": "7C0317FE-3DB9-422A-8CAB-38BCE0D7C5B3"
+        },
+        {
+          "defKey": "plan_end_date",
+          "defName": "璁″垝瀹屾垚鏃ユ湡",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098",
+          "extProps": {},
+          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
+          "id": "96B68373-7BA6-4B11-B996-85064E58FB2B"
+        },
+        {
+          "defKey": "plan_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": "F45CEBBC-B9A2-4D43-B92A-1AF7DAB57404"
+        },
+        {
+          "defKey": "related_departs",
+          "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": "21A927DB-4353-4139-B089-B47CAE3AAACD"
+        },
+        {
+          "defKey": "remark",
+          "defName": "澶囨敞",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
+          "id": "2F7EDE10-5B72-46E8-A7FF-895280887508"
+        }
+      ],
+      "correlations": [],
+      "indexes": [],
+      "type": "P"
+    },
+    {
+      "id": "3EDC2496-813C-427C-9456-C04253A4B06A",
+      "env": {
+        "base": {
+          "nameSpace": "",
+          "codeRoot": ""
+        }
+      },
+      "defKey": "eam_purchase_plan_attachment",
+      "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": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
+          "id": "8E112BE0-FF7F-4177-A215-523379C39964"
+        },
+        {
+          "defKey": "create_by",
+          "defName": "鍒涘缓浜�",
+          "comment": "",
+          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": true,
+          "refDict": "",
+          "uiHint": "",
+          "id": "6CC7CF9F-D8D3-4B4C-B7D0-14BBF01D970D",
+          "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": "",
+          "uiHint": "",
+          "id": "4C7CB8E4-70FD-46D0-91B3-00D4FF9C6F40",
+          "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": "",
+          "uiHint": "",
+          "id": "E164EEEB-C23A-44C4-8162-3DFEE06847B3",
+          "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": "",
+          "uiHint": "",
+          "id": "292340D3-D2B2-4022-A749-FD965C9376FA",
+          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098"
+        },
+        {
+          "defKey": "plan_id",
+          "defName": "璁″垝ID",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
+          "refDict": "",
+          "extProps": {},
+          "notes": {},
+          "attr1": "",
+          "attr2": "",
+          "attr3": "",
+          "attr4": "",
+          "attr5": "",
+          "attr6": "",
+          "attr7": "",
+          "attr8": "",
+          "attr9": "",
+          "id": "B9190341-C37B-4BA3-A3F1-1A88C7DA4BD5",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
+        },
+        {
+          "defKey": "file_encode_name",
+          "defName": "鏂囦欢鍔犲瘑鍚�",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "domain": "BE09D493-E183-402D-ACC4-EEA21EB35B8E",
+          "refDict": "",
+          "extProps": {},
+          "notes": {},
+          "attr1": "",
+          "attr2": "",
+          "attr3": "",
+          "attr4": "",
+          "attr5": "",
+          "attr6": "",
+          "attr7": "",
+          "attr8": "",
+          "attr9": "",
+          "id": "018B7F70-B9F4-4A35-993A-DDA3844690D3",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
+        },
+        {
+          "defKey": "file_name",
+          "defName": "鏂囦欢鍚嶇О",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "domain": "BE09D493-E183-402D-ACC4-EEA21EB35B8E",
+          "refDict": "",
+          "extProps": {},
+          "notes": {},
+          "attr1": "",
+          "attr2": "",
+          "attr3": "",
+          "attr4": "",
+          "attr5": "",
+          "attr6": "",
+          "attr7": "",
+          "attr8": "",
+          "attr9": "",
+          "id": "AC1A9B68-9223-4B80-BBD0-12137AEC946A",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
+        },
+        {
+          "defKey": "file_path",
+          "defName": "鏂囦欢淇濆瓨璺緞",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
+          "refDict": "",
+          "extProps": {},
+          "notes": {},
+          "attr1": "",
+          "attr2": "",
+          "attr3": "",
+          "attr4": "",
+          "attr5": "",
+          "attr6": "",
+          "attr7": "",
+          "attr8": "",
+          "attr9": "",
+          "id": "F4A78F44-220C-462C-A27B-6B5715F13D09",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
+        },
+        {
+          "defKey": "file_suffix",
+          "defName": "鏂囦欢鍚庣紑鍚�",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": true,
+          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
+          "refDict": "",
+          "extProps": {},
+          "notes": {},
+          "attr1": "",
+          "attr2": "",
+          "attr3": "",
+          "attr4": "",
+          "attr5": "",
+          "attr6": "",
+          "attr7": "",
+          "attr8": "",
+          "attr9": "",
+          "id": "20266E6B-28F9-469C-8489-E8874A771668",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
+        },
+        {
+          "defKey": "file_size",
+          "defName": "鏂囦欢澶у皬",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "domain": "2E60DFAE-915E-4328-AEE2-6ED5FB43BAF5",
+          "refDict": "",
+          "extProps": {},
+          "notes": {},
+          "attr1": "",
+          "attr2": "",
+          "attr3": "",
+          "attr4": "",
+          "attr5": "",
+          "attr6": "",
+          "attr7": "",
+          "attr8": "",
+          "attr9": "",
+          "id": "0770FBC9-FB9E-42DC-9FA4-85BD7BDA6BB1",
+          "baseType": "A48A12F5-2E10-4F0A-8449-60887F0D30E0"
+        },
+        {
+          "defKey": "description",
+          "defName": "鎻忚堪",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
+          "refDict": "",
+          "extProps": {},
+          "notes": {},
+          "attr1": "",
+          "attr2": "",
+          "attr3": "",
+          "attr4": "",
+          "attr5": "",
+          "attr6": "",
+          "attr7": "",
+          "attr8": "",
+          "attr9": "",
+          "id": "0F1A1409-2FAC-4EE1-81EC-E41BB2E57D56",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
+        }
+      ],
+      "correlations": [],
+      "indexes": [],
+      "type": "P"
+    },
+    {
+      "id": "46306C3F-BCD6-4EF3-9D5A-ABFFCE89F519",
+      "env": {
+        "base": {
+          "nameSpace": "",
+          "codeRoot": ""
+        }
+      },
+      "defKey": "eam_fluid",
+      "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": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
+          "id": "279D367E-55FC-4456-878A-84ABD78F8E6E"
+        },
+        {
+          "defKey": "create_by",
+          "defName": "鍒涘缓浜�",
+          "comment": "",
+          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": true,
+          "refDict": "",
+          "uiHint": "",
+          "id": "1039A834-33CB-4F12-9EF5-8FD14D94ABFA",
+          "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": "",
+          "uiHint": "",
+          "id": "6A4DB154-B0BC-428C-A3B8-887FC3DFA6DA",
+          "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": "",
+          "uiHint": "",
+          "id": "900E517B-2931-43CB-BE9B-B1CBC4E1121A",
+          "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": "",
+          "uiHint": "",
+          "id": "FC4ECAC9-F67E-45C1-8B45-B9760E3AEB65",
+          "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": "FE0C2577-7F4A-4516-A7D6-6E94616DEEE0"
+        },
+        {
+          "defKey": "fluid_name",
+          "defName": "娌规恫鍚嶇О",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "BE09D493-E183-402D-ACC4-EEA21EB35B8E",
+          "id": "9F1E7AC9-9CF6-4589-9F8A-F43B54590327"
+        },
+        {
+          "defKey": "fluid_code",
+          "defName": "娌规恫缂栫爜",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
+          "id": "F8D5CB8A-7528-45E4-83E8-7D928522EE5D"
+        },
+        {
+          "defKey": "remark",
+          "defName": "澶囨敞",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
+          "id": "8BEB0101-F9E9-4D7A-BFE6-988569E8F5EC"
+        }
+      ],
+      "correlations": [],
+      "indexes": [],
+      "type": "P"
+    },
+    {
+      "id": "B5E08543-A1B9-4D84-944D-3883C1BFD8DC",
+      "env": {
+        "base": {
+          "nameSpace": "",
+          "codeRoot": ""
+        }
+      },
+      "defKey": "eam_equipment_fluid",
+      "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": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
+          "id": "2A49CE3C-D7B7-4832-99E2-D835045929BB"
+        },
+        {
+          "defKey": "create_by",
+          "defName": "鍒涘缓浜�",
+          "comment": "",
+          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": true,
+          "refDict": "",
+          "uiHint": "",
+          "id": "72D8BFD4-1D58-4616-977E-0C30AF1AEF91",
+          "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": "",
+          "uiHint": "",
+          "id": "9A2E721C-2B3B-4974-825E-96EB1FE264D9",
+          "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": "",
+          "uiHint": "",
+          "id": "3972E0CD-AA9D-4D9D-81A2-09EF81E385C5",
+          "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": "",
+          "uiHint": "",
+          "id": "19AC25E3-49B7-4A9F-A2A0-93A0D0F409D3",
+          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098"
+        },
+        {
+          "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": "96D63F73-563A-4292-809B-61B43777B0B1"
+        },
+        {
+          "defKey": "fluid_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": "7DE665B8-9D9E-4B9B-9955-E3B80A970C6C"
+        }
+      ],
+      "correlations": [],
+      "indexes": [],
+      "type": "P"
     }
   ],
   "views": [],
@@ -19871,7 +21595,11 @@
         "71B42532-3485-411A-88FF-712C439AE60E",
         "804A08AE-C5BE-49C9-BCA3-B6521C236EE1",
         "918CE0CD-78C7-4BEF-95F3-BAE2C4F828ED",
-        "378CF92C-B63B-4D7F-84DF-5D2F84CE4753"
+        "378CF92C-B63B-4D7F-84DF-5D2F84CE4753",
+        "7BD6579A-5569-4F7F-A8B3-CA17908A43AC",
+        "3EDC2496-813C-427C-9456-C04253A4B06A",
+        "46306C3F-BCD6-4EF3-9D5A-ABFFCE89F519",
+        "B5E08543-A1B9-4D84-944D-3883C1BFD8DC"
       ],
       "refViews": [],
       "refDiagrams": [],
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
index 4252216..623abf2 100644
--- 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
@@ -66,7 +66,12 @@
                     break;
                 }
             }
-            result.add(dictText);
+            if(StringUtils.isNotBlank(dictText)) {
+                result.add(dictText);
+            }
+        }
+        if(CollectionUtil.isEmpty(result)) {
+            return "";
         }
         return String.join(",", result);
     }
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 85fef79..38583f3 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
@@ -2,12 +2,13 @@
 
 public enum ReportRepairEnum {
     WAIT_REPAIR, // 寰呯淮淇�
+    WAIT_INTERNAL_CONFIRM, // 寰呯淮淇‘璁�
     UNDER_INTERNAL_REPAIR, // 鍐呴儴缁翠慨涓�
-    EXTERNAL_REPAIR_CONFIRM, // 澶栭儴缁翠慨纭涓� 璁惧绠$悊鍛橈紵
-    WAIT_EXTERNAL_RECEIVE, // 寰呮満鍔ㄥ姙鎺ュ崟
+    WAIT_LEADER_CONFIRM, // 寰呴瀵肩‘璁� 璁惧绠$悊鍛�
+    WAIT_EXTERNAL_CONFIRM, // 寰呮満鍔ㄥ姙纭
     UNDER_EXTERNAL_REPAIR, // 鏈哄姩鍔炵淮淇腑
     UNDER_OUTSIDE_REPAIR, // 濮斿缁翠慨涓� 璐d换浜烘槸璋侊紵
-    WAIT_CONFIRM, // 寰呯‘璁�
+    WAIT_CONFIRM, // 鎿嶄綔宸ュ緟纭
     COMPLETE, // 宸插畬鎴�
     ABOLISH, // 宸蹭綔搴�
     ;
diff --git a/lxzn-module-eam-common/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
index 8d2c264..c28502d 100644
--- a/lxzn-module-eam-common/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
@@ -51,7 +51,7 @@
      */
     @Excel(name = "璁惧ID", width = 15)
     @ApiModelProperty(value = "璁惧ID")
-    @Dict(dictTable = "eam_equipment", dicCode = "id", dicText = "equipment_code")
+//    @Dict(dictTable = "eam_equipment", dicCode = "id", dicText = "equipment_code")
     private String equipmentId;
     /**
      * 缁翠慨鐘舵��
@@ -70,16 +70,23 @@
      */
     @ApiModelProperty(value = "缁翠慨缁撴潫鏃堕棿")
     private Date actualEndTime;
+
     /**
-     * 鏄惁棰嗙敤澶囦欢 1锛氭槸  0锛氬惁
+     * 缁翠慨纭缁撴灉
      */
-    @ApiModelProperty(value = "鏄惁棰嗙敤澶囦欢")
-    private Integer isUseSpare;
+    @ApiModelProperty(value = "缁翠慨纭缁撴灉")
+    @Dict(dicCode = "yn")
+    private String repairConfirm;
     /**
-     * 澶囦欢鎻忚堪
+     * 缁翠慨纭鎰忚
      */
-    @ApiModelProperty(value = "澶囦欢鎻忚堪")
-    private String sparePartDescription;
+    @ApiModelProperty(value = "缁翠慨纭鎰忚")
+    private String repairConfirmComment;
+    /**
+     * 缁翠慨纭鏃堕棿
+     */
+    @ApiModelProperty(value = "缁翠慨纭鏃堕棿")
+    private Date repairConfirmTime;
     /**
      * 鏁呴殰鍘熷洜
      */
@@ -99,42 +106,89 @@
     @ApiModelProperty(value = "缁翠慨璐熻矗浜�")
     @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
     private String repairer;
+
     /**
-     * 鏄惁濮斿
+     * 纭棰嗗
      */
-    @Excel(name = "鏄惁濮斿", width = 15)
-    @ApiModelProperty(value = "鏄惁濮斿")
-    private String outsourcedFlag;
+    @ApiModelProperty(value = "纭棰嗗")
+    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
+    private String leaderUser;
     /**
-     * 濮斿缁翠慨鎻忚堪
+     * 棰嗗纭缁撴灉
      */
-    @Excel(name = "濮斿缁翠慨鎻忚堪", width = 15)
-    @ApiModelProperty(value = "濮斿缁翠慨鎻忚堪")
-    private String outsourcedRepairDescription;
+    @ApiModelProperty(value = "棰嗗纭缁撴灉")
+    @Dict(dicCode = "yn")
+    private String leaderConfirm;
     /**
-     * 濮斿缁翠慨寮�濮嬫椂闂�
+     * 纭鎰忚
      */
-    @ApiModelProperty(value = "濮斿缁翠慨寮�濮嬫椂闂�")
-    private Date outsourcedStartTime;
+    @ApiModelProperty(value = "纭鎰忚")
+    private String leaderConfirmComment;
     /**
-     * 濮斿缁翠慨缁撴潫鏃堕棿
+     * 纭鏃堕棿
      */
-    @ApiModelProperty(value = "濮斿缁翠慨缁撴潫鏃堕棿")
-    private Date outsourcedEndTime;
+    @ApiModelProperty(value = "纭鏃堕棿")
+    private Date leaderConfirmTime;
+    /**
+     * 鏈哄姩鍔炵淮淇汉
+     */
+    @ApiModelProperty(value = "鏈哄姩鍔炵淮淇汉")
+    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
+    private String externalRepairer;
+    /**
+     * 鏈哄姩鍔炵‘璁ょ粨鏋�
+     */
+    @ApiModelProperty(value = "鏈哄姩鍔炵‘璁ょ粨鏋�")
+    @Dict(dicCode = "yn")
+    private String externalConfirm;
+    /**
+     * 鏈哄姩鍔炵‘璁ゆ剰瑙�
+     */
+    @ApiModelProperty(value = "鏈哄姩鍔炵‘璁ゆ剰瑙�")
+    private String externalConfirmComment;
+    /**
+     * 鏈哄姩鍔炵‘璁ゆ椂闂�
+     */
+    @ApiModelProperty(value = "鏈哄姩鍔炵‘璁ゆ椂闂�")
+    private Date externalConfirmTime;
     /**
      * 濮斿璐熻矗浜�
      */
     @Excel(name = "濮斿璐熻矗浜�", width = 15)
     @ApiModelProperty(value = "濮斿璐熻矗浜�")
-    private String outsourcedPerson;
+    private String outsourcedUser;
     /**
      * 鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧
      */
     @Excel(name = "鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧", width = 15)
     @ApiModelProperty(value = "鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧")
     private String imageFiles;
+    /**
+     * 鎿嶄綔宸ョ‘璁�
+     */
+    @ApiModelProperty(value = "鎿嶄綔宸ョ‘璁�")
+    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
+    private String confirmer;
+    /**
+     * 鎿嶄綔宸ョ‘璁ゆ剰瑙�
+     */
+    @ApiModelProperty(value = "鎿嶄綔宸ョ‘璁ゆ剰瑙�")
+    private String confirmComment;
+    /**
+     * 鎿嶄綔宸ョ‘璁ゆ椂闂�
+     */
+    @ApiModelProperty(value = "鎿嶄綔宸ョ‘璁ゆ椂闂�")
+    private Date confirmTime;
 
     @TableField(exist = false)
     @ApiModelProperty(value = "璁惧鍚嶇О")
     private String equipmentName;
+    /**
+     * 璁惧缂栫爜
+     */
+    @TableField(exist = false)
+    @ApiModelProperty(value = "璁惧缂栫爜")
+    private String equipmentCode;
+    @TableField(exist = false)
+    private String installationPosition;
 }
diff --git a/lxzn-module-eam-common/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
index 714cf42..f0e3429 100644
--- a/lxzn-module-eam-common/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
@@ -37,7 +37,7 @@
      */
     @Excel(name = "璁惧ID", width = 15, dictTable = "eam_equipment", dicCode = "id", dicText = "equipment_code")
     @ApiModelProperty(value = "璁惧ID")
-    @Dict(dictTable = "eam_equipment", dicCode = "id", dicText = "equipment_code")
+//    @Dict(dictTable = "eam_equipment", dicCode = "id", dicText = "equipment_code")
     private String equipmentId;
     /**
      * 璁惧鍚嶇О
@@ -112,4 +112,10 @@
     @ApiModelProperty(value = "澶囨敞")
     private String remark;
 
+    //鍒楄〃灞曠ず
+    @TableField(exist = false)
+    private String equipmentCode;
+    @TableField(exist = false)
+    private String installationPosition;
+
 }
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 90b1277..8788003 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
@@ -1,6 +1,8 @@
 package org.jeecg.modules.eam.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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.EamRepairOrder;
@@ -26,4 +28,12 @@
      * @return
      */
     IPage<EamRepairOrder> pageList(Page<EamRepairOrder> page, @Param("eamRepairOrder") EamRepairOrderQuery eamRepairOrder, @Param("userId") String userId, @Param("equipmentIds") List<String> equipmentIds);
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param page
+     * @param queryWrapper
+     * @return
+     */
+    IPage<EamRepairOrder> queryPageList(Page<EamRepairOrder> page, @Param(Constants.WRAPPER) QueryWrapper<EamRepairOrder> queryWrapper);
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamReportRepairMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamReportRepairMapper.java
index a86d58c..742d4e6 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamReportRepairMapper.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamReportRepairMapper.java
@@ -1,6 +1,8 @@
 package org.jeecg.modules.eam.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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.EamReportRepair;
@@ -25,4 +27,12 @@
      * @return
      */
     IPage<EamReportRepair> pageList(Page<EamReportRepair> page, @Param("eamReportRepair") EamReportRepairQuery eamReportRepairQuery, @Param("userId") String userId, @Param("equipmentIds") List<String> equipmentIds);
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param page
+     * @param queryWrapper
+     * @return
+     */
+    IPage<EamReportRepair> queryPageList(Page<EamReportRepair> page, @Param(Constants.WRAPPER) QueryWrapper<EamReportRepair> queryWrapper);
 }
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 b20669f..d4f19ed 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
@@ -45,4 +45,11 @@
         </where>
         ORDER BY t1.create_time DESC
     </select>
+    <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamRepairOrder">
+        select wmo.*, e.equipment_code, e.equipment_name, e.installation_position
+        from eam_repair_order wmo
+        inner join eam_equipment e
+        on wmo.equipment_id = e.id
+        ${ew.customSqlSegment}
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml
index e95236a..dd2d260 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
@@ -48,4 +48,11 @@
         </where>
         ORDER BY t1.create_time DESC
     </select>
+    <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamReportRepair">
+        select wmo.*, e.equipment_code, e.equipment_name, e.installation_position
+        from eam_report_repair wmo
+        inner join eam_equipment e
+        on wmo.equipment_id = e.id
+        ${ew.customSqlSegment}
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderQuery.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderQuery.java
index 45a6ad2..4b41b61 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
@@ -22,9 +22,8 @@
 
     private static final long serialVersionUID = 7710893031748864058L;
 
-    /**
-     * 璁惧缂栫爜
-     */
-    @ApiModelProperty(value = "璁惧缂栫爜")
-    private String equipmentCode;
+
+
+    private String column;
+    private String order;
 }
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
index 0ae9b1d..d3616d8 100644
--- 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
@@ -33,18 +33,6 @@
     private String equipmentId;
 
     /**
-     * 缁翠慨鐘舵��
-     */
-    @ApiModelProperty(value = "缁翠慨鐘舵��")
-    private String repairStatus;
-
-    /**
-     * 鏄惁闇�瑕侀鐢ㄥ浠�  1:鏄�  0:鍚�
-     */
-    @ApiModelProperty(value = "鏄惁闇�瑕侀鐢ㄥ浠�")
-    private Integer isUseSpare;
-
-    /**
      * 鏁呴殰鍘熷洜
      */
     @ApiModelProperty(value = "鏁呴殰鍘熷洜")
@@ -65,7 +53,26 @@
     @ApiModelProperty(value = "缁翠慨鍥剧墖闆嗗悎")
     private List<FileUploadResult> imageFilesResult;
 
-    /**澶囦欢鎻忚堪*/
-    @ApiModelProperty(value = "澶囦欢鎻忚堪")
-    private String sparePartDescription;
+    /**
+     * 缁翠慨浜虹‘璁�
+     */
+    private String repairConfirm;
+    private String repairConfirmComment;
+
+    /**
+     * 棰嗗纭
+     */
+    private String leaderConfirm;
+    private String leaderConfirmComment;
+
+    /**
+     * 鏈哄姩鍔炵‘璁�
+     */
+    private String externalConfirm;
+    private String externalConfirmComment;
+
+    /**
+     * 鎿嶄綔宸ョ‘璁ゆ剰瑙�
+     */
+    private String confirmComment;
 }
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 57396eb..8bbc279 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
@@ -38,4 +38,7 @@
      * 鎸囨淳浜猴紙缁翠慨璐熻矗浜猴級
      */
     private String repairer;
+
+    private String column;
+    private String order;
 }
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 e7efc5f..bf8ebff 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
@@ -195,8 +195,7 @@
         } else {
             eamInspectionOrder.setEquipmentCode(equipment.getEquipmentCode());
         }
-        System.out.println("璁惧鐐规锛�" + eamInspectionOrder.getId());
-        flowCommonService.initActBusiness("宸ュ崟鍙凤細" + eamInspectionOrder.getOrderNum() + "璁惧缂栧彿" + eamInspectionOrder.getEquipmentCode() + "杩涜璁惧鐐规",
+        flowCommonService.initActBusiness("宸ュ崟鍙�: " + eamInspectionOrder.getOrderNum() + ";璁惧缂栧彿: " + eamInspectionOrder.getEquipmentCode() + ";瀹夎浣嶇疆: " + equipment.getInstallationPosition(),
                 eamInspectionOrder.getId(), "IEamInspectionOrderService", "eam_inspection", null);
         Map<String, Object> variables = new HashMap<>();
         variables.put("dataId", eamInspectionOrder.getId());
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 a5e9b1f..a44565e 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
@@ -3,6 +3,7 @@
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fasterxml.jackson.core.JsonProcessingException;
@@ -14,8 +15,10 @@
 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.*;
 import org.jeecg.modules.eam.entity.EamEquipment;
@@ -38,7 +41,10 @@
 import org.jeecg.modules.flowable.service.IFlowTaskService;
 import org.jeecg.modules.mdc.util.DateUtils;
 import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
+import org.jeecg.modules.system.service.ISysUserService;
+import org.jeecg.modules.system.vo.UserSelector;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -46,6 +52,7 @@
 
 import javax.annotation.Resource;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @Description: 缁翠慨宸ュ崟
@@ -82,26 +89,75 @@
     @Resource
     private IEamEquipmentExtendService eamEquipmentExtendService;
 
+    @Autowired
+    private ISysUserService sysUserService;
+
     /**
      * 鍒嗛〉鍒楄〃
      *
      * @param page
-     * @param eamRepairOrderQuery
+     * @param query
      * @return
      */
     @Override
-    public IPage<EamRepairOrder> pageList(Page<EamRepairOrder> page, EamRepairOrderQuery eamRepairOrderQuery) {
+    public IPage<EamRepairOrder> pageList(Page<EamRepairOrder> page, EamRepairOrderQuery query) {
+        QueryWrapper<EamRepairOrder> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("wmo.del_flag", CommonConstant.DEL_FLAG_0);
         //鐢ㄦ埛鏁版嵁鏉冮檺
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         if (sysUser == null) {
             return page;
         }
-        List<String> equipmentIds = new ArrayList<>();
         if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) {
             //閫夋嫨浜嗚澶囷紝鏍规嵁璁惧id杩囨护璁惧
-            equipmentIds = Arrays.asList(sysUser.getEquipmentIds().split(","));
+            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());
         }
-        return this.baseMapper.pageList(page, eamRepairOrderQuery, sysUser.getId(), equipmentIds);
+        //鏌ヨ鏉′欢杩囨护
+        if (query != null) {
+            if (StringUtils.isNotBlank(query.getEquipmentId())) {
+                queryWrapper.eq("wmo.equipment_id", query.getEquipmentId());
+            }
+            if (StringUtils.isNotBlank(query.getEquipmentCode())) {
+                queryWrapper.like("e.equipment_code", query.getEquipmentCode());
+            }
+            if (StringUtils.isNotBlank(query.getEquipmentName())) {
+                queryWrapper.like("e.equipment_name", query.getEquipmentName());
+            }
+            if (StringUtils.isNotBlank(query.getRepairStatus())) {
+                queryWrapper.eq("wmo.repair_status", query.getRepairStatus());
+            }
+            if (StringUtils.isNotBlank(query.getRepairer())) {
+                queryWrapper.like("wmo.repairer", query.getRepairer());
+            }
+            if (StringUtils.isNotBlank(query.getRepairCode())) {
+                queryWrapper.like("wmo.repair_code", query.getRepairCode());
+            }
+//            if(query.getStartTime() != null && query.getEndTime() != null) {
+//                queryWrapper.between("wmo.fault_start_time", query.getStartTime(), query.getEndTime());
+//            }
+            //鎺掑簭
+            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 baseMapper.queryPageList(page, queryWrapper);
     }
 
     @Override
@@ -110,17 +166,19 @@
         String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.REPAIR_ORDER_CODE_RULE);
         eamRepairOrder.setRepairCode(codeSeq);
         EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId());
+        if(eamReportRepair == null){
+            throw new JeecgBootException("鏁呴殰鎶ヤ慨涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒");
+        }
         eamRepairOrder.setDelFlag(CommonConstant.DEL_FLAG_0);
         eamRepairOrder.setEquipmentId(eamReportRepair.getEquipmentId());
-        eamRepairOrder.setRepairStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name());
+        eamRepairOrder.setRepairStatus(ReportRepairEnum.WAIT_INTERNAL_CONFIRM.name());
         eamRepairOrder.setActualStartTime(DateUtils.getNow());
-        eamRepairOrder.setIsUseSpare(0);
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         eamRepairOrder.setRepairer(user.getUsername());
         super.save(eamRepairOrder);
         EamEquipment eamEquipment = eamEquipmentService.getById(eamReportRepair.getEquipmentId());
         // 鍚姩缁翠慨娴佺▼
-        flowCommonService.initActBusiness("缁翠慨宸ュ崟鍙凤細" + codeSeq + ", 璁惧缂栧彿锛�" + eamEquipment.getEquipmentCode() + "寮�濮嬬淮淇�",
+        flowCommonService.initActBusiness("宸ュ崟鍙凤細" + codeSeq + ", 璁惧缂栧彿锛�" + eamEquipment.getEquipmentCode() + ";瀹夎浣嶇疆: " + eamEquipment.getInstallationPosition(),
                 eamRepairOrder.getId(),
                 "IEamRepairOrderService",
                 "eam_repair",
@@ -137,7 +195,7 @@
         if (!result.isSuccess()) {
             super.removeById(eamRepairOrder);
         } else {
-            eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name());
+            eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_INTERNAL_CONFIRM.name());
             eamReportRepairService.updateById(eamReportRepair);
             //鏇存柊璁惧缁翠慨鐘舵��
             eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.UNDER_REPAIR.name());
@@ -155,16 +213,18 @@
         String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.REPAIR_ORDER_CODE_RULE);
         eamRepairOrder.setRepairCode(codeSeq);
         EamReportRepair eamReportRepair = eamReportRepairService.getById(eamReportRepairQuery.getId());
+        if(eamReportRepair == null){
+            throw new JeecgBootException("鏁呴殰鎶ヤ慨涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒");
+        }
         eamRepairOrder.setDelFlag(CommonConstant.DEL_FLAG_0);
         eamRepairOrder.setEquipmentId(eamReportRepair.getEquipmentId());
-        eamRepairOrder.setRepairStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name());
+        eamRepairOrder.setRepairStatus(ReportRepairEnum.WAIT_INTERNAL_CONFIRM.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() + "寮�濮嬬淮淇�",
+        flowCommonService.initActBusiness("宸ュ崟鍙凤細" + codeSeq + ", 璁惧缂栧彿锛�" + eamEquipment.getEquipmentCode() + ";瀹夎浣嶇疆: " + eamEquipment.getInstallationPosition(),
                 eamRepairOrder.getId(),
                 "IEamRepairOrderService",
                 "eam_repair",
@@ -181,7 +241,7 @@
         if (!result.isSuccess()) {
             super.removeById(eamRepairOrder);
         } else {
-            eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name());
+            eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_INTERNAL_CONFIRM.name());
             eamReportRepairService.updateById(eamReportRepair);
             //鏇存柊璁惧缁翠慨鐘舵��
             eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.UNDER_REPAIR.name());
@@ -198,10 +258,13 @@
     @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("瀹℃壒鐨勬暟鎹凡鍒犻櫎锛岃鍒锋柊閲嶈瘯锛�");
+        EamRepairOrder order = this.baseMapper.selectById(request.getId());
+        if (order == null) {
+            throw new JeecgBootException("缁翠慨宸ュ崟涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒");
+        }
+        EamReportRepair eamReportRepair = eamReportRepairService.getById(order.getReportId());
+        if (eamReportRepair == null) {
+            throw new JeecgBootException("鏁呴殰鎶ヤ慨涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒");
         }
         // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@@ -227,93 +290,199 @@
             throw new JeecgBootException("璁惧涓嶅瓨鍦紝璇锋鏌ワ紒");
         }
 
-        ReportRepairEnum status = ReportRepairEnum.getInstance(eamRepairOrder.getRepairStatus());
+        ReportRepairEnum status = ReportRepairEnum.getInstance(order.getRepairStatus());
         if (status == null) {
-            return null;
+            throw new JeecgBootException("宸ュ崟鐘舵�佷笉鍚堟硶锛岃妫�鏌ワ紒");
         }
         //娴佺▼鍙橀噺
         Map<String, Object> values = new HashMap<>();
+        List<UserSelector> userSelectors;
+        List<String> userApprovalList;
         switch (status) {
-            case UNDER_INTERNAL_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());
+            case WAIT_INTERNAL_CONFIRM:
+                order.setRepairConfirm(request.getRepairConfirm());
+                order.setRepairConfirmComment(request.getRepairConfirmComment());
+                order.setRepairConfirmTime(new Date());
+                values.put("dataId", order.getId());
+                values.put("repairConfirm", request.getRepairConfirm());
+                if(StringUtils.isNotBlank(request.getRepairConfirmComment())){
+                    values.put("organization", request.getRepairConfirmComment());
+                    values.put("comment", request.getRepairConfirmComment());
+                    request.setComment(request.getRepairConfirmComment());
+                }else {
+                    values.put("organization", "缁翠慨宸ュ崟缁翠慨浜虹‘璁ゅ畬鎴�");
+                    values.put("comment", "缁翠慨宸ュ崟缁翠慨浜虹‘璁ゅ畬鎴�");
+                    request.setComment("缁翠慨宸ュ崟缁翠慨浜虹‘璁ゅ畬鎴�");
                 }
+                if(CommonConstant.STATUS_1.equals(request.getRepairConfirm())) {
+                    //鍙唴閮ㄧ淮淇�  缁翠慨浜鸿繘琛岀淮淇�
+                    values.put("NextAssignee", Arrays.asList(order.getRepairer().split(",")));
+
+                    order.setRepairStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name());
+                    eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name());
+                }else {
+                    //鎻愪氦鏈哄姩鍔炵淮淇紝杞﹂棿绠$悊鍛樼‘璁�
+                    userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0003);
+                    if (CollectionUtil.isEmpty(userSelectors)) {
+                        throw new JeecgBootException("璁惧鏈垎閰嶇粰鐝粍闀匡紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�");
+                    }
+                    userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
+                    values.put("NextAssignee", userApprovalList);
+                    order.setRepairStatus(ReportRepairEnum.WAIT_LEADER_CONFIRM.name());
+                    eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_LEADER_CONFIRM.name());
+                }
+                break;
+            case UNDER_INTERNAL_REPAIR:
+                // 鍐呴儴缁翠慨
+                values.put("dataId", order.getId());
+                values.put("organization", "缁翠慨宸ュ崟缁翠慨瀹屾垚寰呮搷浣滃伐纭");
+                values.put("comment", "缁翠慨宸ュ崟缁翠慨瀹屾垚寰呮搷浣滃伐纭");
+                values.put("NextAssignee", Arrays.asList(eamReportRepair.getCreateBy().split(",")));
+                request.setComment("缁翠慨宸ュ崟缁翠慨瀹屾垚寰呮搷浣滃伐纭");
+                order.setRepairStatus(ReportRepairEnum.WAIT_CONFIRM.name());
+                eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_CONFIRM.name());
+                order.setFaultReason(request.getFaultReason());
+                order.setRepairDescription(request.getRepairDescription());
+                order.setActualEndTime(new Date());
+                // 澶勭悊闄勪欢
+                if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) {
+                    List<FileUploadResult> fileUploadResultList = request.getImageFilesResult();
+                    ObjectMapper mapper = new ObjectMapper();
+                    try {
+                        String referenceFile = mapper.writeValueAsString(fileUploadResultList);
+                        order.setImageFiles(referenceFile);
+                    } catch (JsonProcessingException e) {
+                        log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
+                    }
+                }
+                //鏇存柊璁惧缁翠慨鐘舵��
+                eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_CONFIRM.name());
+                break;
+            case WAIT_LEADER_CONFIRM:
+                order.setLeaderConfirm(request.getLeaderConfirm());
+                order.setLeaderConfirmComment(request.getLeaderConfirmComment());
+                order.setLeaderUser(user.getUsername());
+                order.setLeaderConfirmTime(new Date());
+                values.put("dataId", order.getId());
+                values.put("leaderConfirm", request.getLeaderConfirm());
+                if(StringUtils.isNotBlank(request.getLeaderConfirmComment())){
+                    values.put("organization", request.getLeaderConfirmComment());
+                    values.put("comment", request.getLeaderConfirmComment());
+                    request.setComment(request.getLeaderConfirmComment());
+                }else {
+                    values.put("organization", "缁翠慨宸ュ崟棰嗗纭瀹屾垚");
+                    values.put("comment", "缁翠慨宸ュ崟棰嗗纭瀹屾垚");
+                    request.setComment("缁翠慨宸ュ崟棰嗗纭瀹屾垚");
+                }
+                if(CommonConstant.STATUS_1.equals(request.getLeaderConfirm())) {
+                    //閫氳繃 鎻愪氦鏈哄姩鍔炵淮淇�
+                    userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0006);
+                    if (CollectionUtil.isEmpty(userSelectors)) {
+                        throw new JeecgBootException("璁惧鏈垎閰嶇粰鍏徃绠$悊鍛橈紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�");
+                    }
+                    userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
+                    values.put("NextAssignee", userApprovalList);
+                    order.setRepairStatus(ReportRepairEnum.WAIT_EXTERNAL_CONFIRM.name());
+                    eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_EXTERNAL_CONFIRM.name());
+                }else {
+                    //椹冲洖 鍙唴閮ㄧ淮淇�  缁翠慨浜鸿繘琛岀淮淇�
+                    values.put("NextAssignee", Arrays.asList(order.getRepairer().split(",")));
+                    order.setRepairStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name());
+                    eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name());
+                }
+                break;
+            case WAIT_EXTERNAL_CONFIRM:
+                order.setExternalConfirm(request.getExternalConfirm());
+                order.setExternalConfirmComment(request.getExternalConfirmComment());
+                order.setExternalRepairer(user.getUsername());
+                order.setExternalConfirmTime(new Date());
+                values.put("dataId", order.getId());
+                values.put("externalConfirm", request.getExternalConfirm());
+                if(StringUtils.isNotBlank(request.getExternalConfirmComment())){
+                    values.put("organization", request.getExternalConfirmComment());
+                    values.put("comment", request.getExternalConfirmComment());
+                    request.setComment(request.getExternalConfirmComment());
+                }else {
+                    values.put("organization", "缁翠慨宸ュ崟鏈哄姩鍔炵‘璁ゅ畬鎴�");
+                    values.put("comment", "缁翠慨宸ュ崟鏈哄姩鍔炵‘璁ゅ畬鎴�");
+                    request.setComment("缁翠慨宸ュ崟鏈哄姩鍔炵‘璁ゅ畬鎴�");
+                }
+                if(CommonConstant.STATUS_1.equals(request.getExternalConfirm())) {
+                    //鏈哄姩鍔炲彲缁翠慨  鏈哄姩鍔炵淮淇汉杩涜缁翠慨
+                    values.put("NextAssignee", Arrays.asList(order.getExternalRepairer().split(",")));
+                    order.setRepairStatus(ReportRepairEnum.UNDER_EXTERNAL_REPAIR.name());
+                    eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_EXTERNAL_REPAIR.name());
+                }else {
+                    //鏈哄姩鍔炰笉鍙淮淇� 杩涜濮斿缁翠慨
+                    values.put("NextAssignee", Arrays.asList(order.getExternalRepairer().split(",")));
+                    order.setRepairStatus(ReportRepairEnum.UNDER_OUTSIDE_REPAIR.name());
+                    eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_OUTSIDE_REPAIR.name());
+                }
+                break;
+            case UNDER_EXTERNAL_REPAIR:
+                // 鏈哄姩鍔炵淮淇�
+                values.put("dataId", order.getId());
+                values.put("organization", "缁翠慨宸ュ崟鏈哄姩鍔炵淮淇畬鎴愬緟鎿嶄綔宸ョ‘璁�");
+                values.put("comment", "缁翠慨宸ュ崟鏈哄姩鍔炵淮淇畬鎴愬緟鎿嶄綔宸ョ‘璁�");
+                values.put("NextAssignee", Arrays.asList(eamReportRepair.getCreateBy().split(",")));
+                request.setComment("缁翠慨宸ュ崟鏈哄姩鍔炵淮淇畬鎴愬緟鎿嶄綔宸ョ‘璁�");
+                order.setRepairStatus(ReportRepairEnum.WAIT_CONFIRM.name());
+                eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_CONFIRM.name());
+                order.setFaultReason(request.getFaultReason());
+                order.setRepairDescription(request.getRepairDescription());
+                order.setActualEndTime(new Date());
+                // 澶勭悊闄勪欢
+                if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) {
+                    List<FileUploadResult> fileUploadResultList = request.getImageFilesResult();
+                    ObjectMapper mapper = new ObjectMapper();
+                    try {
+                        String referenceFile = mapper.writeValueAsString(fileUploadResultList);
+                        order.setImageFiles(referenceFile);
+                    } catch (JsonProcessingException e) {
+                        log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
+                    }
+                }
+                //鏇存柊璁惧缁翠慨鐘舵��
+                eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_CONFIRM.name());
+                break;
+            case UNDER_OUTSIDE_REPAIR:
+                // 鏈哄姩鍔炵淮淇�
+                values.put("dataId", order.getId());
+                values.put("organization", "缁翠慨宸ュ崟濮斿缁翠慨瀹屾垚寰呮搷浣滃伐纭");
+                values.put("comment", "缁翠慨宸ュ崟濮斿缁翠慨瀹屾垚寰呮搷浣滃伐纭");
+                values.put("NextAssignee", Arrays.asList(eamReportRepair.getCreateBy().split(",")));
+                request.setComment("缁翠慨宸ュ崟濮斿缁翠慨瀹屾垚寰呮搷浣滃伐纭");
+                order.setRepairStatus(ReportRepairEnum.WAIT_CONFIRM.name());
+                order.setOutsourcedUser(user.getUsername());
+                eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_CONFIRM.name());
+                order.setFaultReason(request.getFaultReason());
+                order.setRepairDescription(request.getRepairDescription());
+                order.setActualEndTime(new Date());
+                // 澶勭悊闄勪欢
+                if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) {
+                    List<FileUploadResult> fileUploadResultList = request.getImageFilesResult();
+                    ObjectMapper mapper = new ObjectMapper();
+                    try {
+                        String referenceFile = mapper.writeValueAsString(fileUploadResultList);
+                        order.setImageFiles(referenceFile);
+                    } catch (JsonProcessingException e) {
+                        log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
+                    }
+                }
+                //鏇存柊璁惧缁翠慨鐘舵��
+                eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_CONFIRM.name());
                 break;
             case WAIT_CONFIRM:
                 // 寰呯‘璁�, 缁翠慨鍛樼淮淇畬鎴愶紝鎶ヤ慨浜虹‘璁ょ粨鏉熸祦绋�
-                values.put("dataId", eamRepairOrder.getId());
+                values.put("dataId", order.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());
+                request.setComment("缁翠慨宸ュ崟娴佺▼缁撴潫");
+                order.setRepairStatus(ReportRepairEnum.COMPLETE.name());
                 eamReportRepair.setReportStatus(ReportRepairEnum.COMPLETE.name());
-                eamRepairOrder.setActualEndTime(new Date());
+                order.setConfirmComment(request.getConfirmComment());
+                order.setConfirmTime(new Date());
+                order.setConfirmer(user.getUsername());
                 //鏇存柊璁惧缁翠慨鐘舵��
                 eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.NORMAL.name());
                 break;
@@ -326,10 +495,10 @@
             throw new JeecgBootException("瀹℃壒澶辫触锛岃鍒锋柊鏌ョ湅锛�");
         }
         //淇濆瓨宸ュ崟
-        this.baseMapper.updateById(eamRepairOrder);
+        this.baseMapper.updateById(order);
         // 鍚屾鏇存柊鎶ヤ慨琛ㄧ姸鎬�
         eamReportRepairService.updateById(eamReportRepair);
-        return eamRepairOrder;
+        return order;
     }
 
     @Override
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 f89bc51..4dfe074 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
@@ -1,5 +1,6 @@
 package org.jeecg.modules.eam.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fasterxml.jackson.core.JsonProcessingException;
@@ -8,7 +9,9 @@
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.FileUploadResult;
 import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.constant.DataBaseConstant;
 import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog;
 import org.jeecg.modules.eam.constant.*;
 import org.jeecg.modules.eam.entity.*;
@@ -38,22 +41,68 @@
      * 鍒嗛〉鍒楄〃
      *
      * @param page
-     * @param eamReportRepairQuery
+     * @param query
      * @return
      */
     @Override
-    public IPage<EamReportRepair> pageList(Page<EamReportRepair> page, EamReportRepairQuery eamReportRepairQuery) {
+    public IPage<EamReportRepair> pageList(Page<EamReportRepair> page, EamReportRepairQuery query) {
+        QueryWrapper<EamReportRepair> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("wmo.del_flag", CommonConstant.DEL_FLAG_0);
         //鐢ㄦ埛鏁版嵁鏉冮檺
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         if (sysUser == null) {
             return page;
         }
-        List<String> equipmentIds = new ArrayList<>();
         if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) {
             //閫夋嫨浜嗚澶囷紝鏍规嵁璁惧id杩囨护璁惧
-            equipmentIds = Arrays.asList(sysUser.getEquipmentIds().split(","));
+            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());
         }
-        return this.baseMapper.pageList(page, eamReportRepairQuery, sysUser.getId(), equipmentIds);
+        //鏌ヨ鏉′欢杩囨护
+        if (query != null) {
+            if (StringUtils.isNotBlank(query.getEquipmentId())) {
+                queryWrapper.eq("wmo.equipment_id", query.getEquipmentId());
+            }
+            if (StringUtils.isNotBlank(query.getEquipmentCode())) {
+                queryWrapper.like("e.equipment_code", query.getEquipmentCode());
+            }
+            if (StringUtils.isNotBlank(query.getEquipmentName())) {
+                queryWrapper.like("e.equipment_name", query.getEquipmentName());
+            }
+            if (StringUtils.isNotBlank(query.getBreakdownFlag())) {
+                queryWrapper.eq("wmo.breakdown_flag", query.getBreakdownFlag());
+            }
+            if (StringUtils.isNotBlank(query.getReportStatus())) {
+                queryWrapper.eq("wmo.report_status", query.getReportStatus());
+            }
+            if (StringUtils.isNotBlank(query.getFaultDescription())) {
+                queryWrapper.like("wmo.fault_description", query.getFaultDescription());
+            }
+            if(query.getStartTime() != null && query.getEndTime() != null) {
+                queryWrapper.between("wmo.fault_start_time", query.getStartTime(), query.getEndTime());
+            }
+            //鎺掑簭
+            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 baseMapper.queryPageList(page, queryWrapper);
     }
 
     @Override
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java
index 70be0f7..a9242cb 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java
@@ -158,7 +158,7 @@
         //鍒ゆ柇鏄惁瀛樺湪淇濆吇浜� 濡傛灉瀛樺湪鍒欏惎鍔ㄦ祦绋�
         if (StringUtils.isNotBlank(order.getOperator())) {
             //鍚姩娴佺▼
-            flowCommonService.initActBusiness("宸ュ崟鍙�:" + order.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";杩涜璁惧浜屼繚",
+            flowCommonService.initActBusiness("宸ュ崟鍙�: " + order.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";瀹夎浣嶇疆" + equipment.getInstallationPosition(),
                     order.getId(), "IEamSecondMaintenanceOrderService", "second_maintenance_process", null);
             Map<String, Object> variables = new HashMap<>();
             variables.put("dataId", order.getId());
@@ -233,7 +233,7 @@
         //鍒ゆ柇鏄惁瀛樺湪淇濆吇浜� 濡傛灉瀛樺湪鍒欏惎鍔ㄦ祦绋�
         if (StringUtils.isNotBlank(entity.getOperator())) {
             //鍚姩娴佺▼
-            flowCommonService.initActBusiness("宸ュ崟鍙�:" + entity.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";杩涜璁惧浜屼繚",
+            flowCommonService.initActBusiness("宸ュ崟鍙�: " + entity.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";瀹夎浣嶇疆" + equipment.getInstallationPosition(),
                     entity.getId(), "IEamSecondMaintenanceOrderService", "second_maintenance_process", null);
             Map<String, Object> variables = new HashMap<>();
             variables.put("dataId", entity.getId());
@@ -287,7 +287,7 @@
         eamSecondMaintenanceOrderMapper.updateById(entity);
 
         //鍚姩娴佺▼
-        flowCommonService.initActBusiness("宸ュ崟鍙�:" + entity.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";杩涜璁惧浜屼繚",
+        flowCommonService.initActBusiness("宸ュ崟鍙�: " + entity.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";瀹夎浣嶇疆" + equipment.getInstallationPosition(),
                 entity.getId(), "IEamSecondMaintenanceOrderService", "second_maintenance_process", null);
         Map<String, Object> variables = new HashMap<>();
         variables.put("dataId", entity.getId());
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java
index 383da21..6121b18 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java
@@ -172,7 +172,7 @@
         //鍒ゆ柇鏄惁瀛樺湪淇濆吇浜� 濡傛灉瀛樺湪鍒欏惎鍔ㄦ祦绋�
         if (StringUtils.isNotBlank(order.getOperator())) {
             //鍚姩娴佺▼
-            flowCommonService.initActBusiness("宸ュ崟鍙�:" + order.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";杩涜璁惧涓変繚",
+            flowCommonService.initActBusiness("宸ュ崟鍙�:" + order.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";瀹夎浣嶇疆" + equipment.getInstallationPosition(),
                     order.getId(), "IEamThirdMaintenanceOrderService", "third_maintenance_process", null);
             Map<String, Object> variables = new HashMap<>();
             variables.put("dataId", order.getId());
@@ -243,7 +243,7 @@
         //鍒ゆ柇鏄惁瀛樺湪淇濆吇浜� 濡傛灉瀛樺湪鍒欏惎鍔ㄦ祦绋�
         if (StringUtils.isNotBlank(entity.getOperator())) {
             //鍚姩娴佺▼
-            flowCommonService.initActBusiness("宸ュ崟鍙�:" + entity.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";杩涜璁惧涓変繚",
+            flowCommonService.initActBusiness("宸ュ崟鍙�:" + entity.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";瀹夎浣嶇疆" + equipment.getInstallationPosition(),
                     entity.getId(), "IEamThirdMaintenanceOrderService", "third_maintenance_process", null);
             Map<String, Object> variables = new HashMap<>();
             variables.put("dataId", entity.getId());
@@ -296,7 +296,7 @@
         eamThirdMaintenanceOrderMapper.updateById(entity);
 
         //鍚姩娴佺▼
-        flowCommonService.initActBusiness("宸ュ崟鍙�:" + entity.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";杩涜璁惧涓変繚",
+        flowCommonService.initActBusiness("宸ュ崟鍙�:" + entity.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";瀹夎浣嶇疆" + equipment.getInstallationPosition(),
                 entity.getId(), "IEamThirdMaintenanceOrderService", "third_maintenance_process", null);
         Map<String, Object> variables = new HashMap<>();
         boolean equipmentPrecisionFlag = precisionCheckDetailService.hasPrecisionCheckDetail(entity.getId());
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/OutStoreDetailController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/OutStoreDetailController.java
index 68bf76b..1871876 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/OutStoreDetailController.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/OutStoreDetailController.java
@@ -16,6 +16,7 @@
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.tms.entity.OutStoreDetail;
+import org.jeecg.modules.tms.entity.ToolLedger;
 import org.jeecg.modules.tms.entity.vo.OutStoreDetailVo;
 import org.jeecg.modules.tms.service.IOutStoreDetailService;
 
@@ -197,4 +198,23 @@
         return super.importExcel(request, response, OutStoreDetail.class);
     }
 
+	 /**
+	  * 宸ュ叿鍙拌处-鍑哄簱瀛愰〉闈㈠垪琛ㄦ煡璇�
+	  *
+	  * @param outStoreDetail
+	  * @param pageNo
+	  * @param pageSize
+	  * @param query
+	  * @return
+	  */
+	 @ApiOperation(value="宸ュ叿鍙拌处-鍑哄簱瀛愰〉闈㈠垪琛ㄦ煡璇�", notes="宸ュ叿鍙拌处-鍑哄簱瀛愰〉闈㈠垪琛ㄦ煡璇�")
+	 @GetMapping(value = "/outStoreDetailList")
+	 public Result<?> outStoreDetailList(OutStoreDetail outStoreDetail,
+									 @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+									 @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+									 @RequestParam Map<String, String> query) {
+		 IPage<Map<String, Object>> pageList = outStoreDetailService.outStoreDetailList(pageNo,pageSize, query);
+		 return Result.OK(pageList);
+	 }
+
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolLedgerController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolLedgerController.java
index 0d98d03..4a74035 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolLedgerController.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolLedgerController.java
@@ -215,4 +215,23 @@
         return super.importExcel(request, response, ToolLedger.class);
     }
 
+	 /**
+	  * 宸ュ叿鍙拌处-鍒楄〃鏌ヨ
+	  *
+	  * @param toolLedger
+	  * @param pageNo
+	  * @param pageSize
+	  * @param query
+	  * @return
+	  */
+	 @ApiOperation(value="宸ュ叿鍙拌处-鍒楄〃鏌ヨ", notes="宸ュ叿鍙拌处-鍒楄〃鏌ヨ")
+	 @GetMapping(value = "/toolLedgerList")
+	 public Result<?> toolLedgerList(ToolLedger toolLedger,
+													@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+													@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+									 				@RequestParam Map<String, String> query) {
+		 IPage<Map<String, Object>> pageList = toolLedgerService.toolLedgerList(pageNo,pageSize, query);
+		 return Result.OK(pageList);
+	 }
+
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolLedgerDetailController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolLedgerDetailController.java
index d7b84a1..45e226a 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolLedgerDetailController.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolLedgerDetailController.java
@@ -213,4 +213,23 @@
 		 return Result.OK(pageList);
 	 }
 
+	 /**
+	  * 宸ュ叿鍙拌处-鏌ヨ鎶婂彿
+	  *
+	  * @param toolLedgerDetail
+	  * @param pageNo
+	  * @param pageSize
+	  * @param query
+	  * @return
+	  */
+	 @ApiOperation(value="宸ュ叿鍙拌处-鏌ヨ鎶婂彿", notes="宸ュ叿鍙拌处-鏌ヨ鎶婂彿")
+	 @GetMapping(value = "/queryToolLedgerDetailList")
+	 public Result<?> queryToolLedgerDetailList(ToolLedgerDetail toolLedgerDetail,
+														  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+														  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+																	  @RequestParam Map<String, String> query) {
+		 IPage<Map<String, Object>> pageList = toolLedgerDetailService.queryToolLedgerDetailList(pageNo, pageSize, query);
+		 return Result.OK(pageList);
+	 }
+
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolSharpeningController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolSharpeningController.java
index bd1031a..beeaecb 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolSharpeningController.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolSharpeningController.java
@@ -6,6 +6,7 @@
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.tms.entity.OutStoreDetail;
 import org.jeecg.modules.tms.entity.ToolLedger;
 import org.jeecg.modules.tms.entity.ToolSharpening;
 import org.jeecg.modules.tms.entity.ToolsLossBoundDetail;
@@ -88,6 +89,7 @@
     @ApiOperation(value="tms_tool_sharpening-娣诲姞", notes="tms_tool_sharpening-娣诲姞")
     @PostMapping(value = "/add")
     public Result<String> add(@RequestBody ToolSharpening toolSharpening) {
+        toolSharpening.setSharpeningStatus("1");
         toolSharpeningService.save(toolSharpening);
         return Result.OK("娣诲姞鎴愬姛锛�");
     }
@@ -115,4 +117,23 @@
         toolSharpeningService.removeById(id);
         return Result.OK("鍒犻櫎鎴愬姛!");
     }
+
+    /**
+     * 宸ュ叿鍙拌处-鍒冪(瀛愰〉闈㈠垪琛ㄦ煡璇�
+     *
+     * @param toolSharpening
+     * @param pageNo
+     * @param pageSize
+     * @param query
+     * @return
+     */
+    @ApiOperation(value="宸ュ叿鍙拌处-鍒冪(瀛愰〉闈㈠垪琛ㄦ煡璇�", notes="宸ュ叿鍙拌处-鍒冪(瀛愰〉闈㈠垪琛ㄦ煡璇�")
+    @GetMapping(value = "/toolSharpeningList")
+    public Result<?> toolSharpeningList(ToolSharpening toolSharpening,
+                                        @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+                                        @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+                                        @RequestParam Map<String, String> query) {
+        IPage<Map<String, Object>> pageList = toolSharpeningService.toolSharpeningList(pageNo,pageSize, query);
+        return Result.OK(pageList);
+    }
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsLossBoundController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsLossBoundController.java
index d610f05..8641d9c 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsLossBoundController.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsLossBoundController.java
@@ -13,10 +13,7 @@
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.oConvertUtils;
-import org.jeecg.modules.tms.entity.OutboundDetail;
-import org.jeecg.modules.tms.entity.OutboundOrder;
-import org.jeecg.modules.tms.entity.ToolsLossBound;
-import org.jeecg.modules.tms.entity.ToolsLossBoundDetail;
+import org.jeecg.modules.tms.entity.*;
 import org.jeecg.modules.tms.entity.dto.LossBoundFlowDto;
 import org.jeecg.modules.tms.entity.dto.OutBoundOrderFlowDto;
 import org.jeecg.modules.tms.entity.vo.OutboundDetailVo;
@@ -324,4 +321,23 @@
 		IPage<ToolsLossBoundDetail> pageList = toolsLossBoundDetailService.queryPageList(page, parameterMap);
 		return Result.OK(pageList);
 	}
+
+	/**
+	 * 宸ュ叿鍙拌处-鎶ユ崯瀛愰〉闈㈠垪琛ㄦ煡璇�
+	 *
+	 * @param toolsLossBoundDetail
+	 * @param pageNo
+	 * @param pageSize
+	 * @param query
+	 * @return
+	 */
+	@ApiOperation(value="宸ュ叿鍙拌处-鎶ユ崯瀛愰〉闈㈠垪琛ㄦ煡璇�", notes="宸ュ叿鍙拌处-鎶ユ崯瀛愰〉闈㈠垪琛ㄦ煡璇�")
+	@GetMapping(value = "/toolLossDetailList")
+	public Result<?> toolLossDetailList(ToolsLossBoundDetail toolsLossBoundDetail,
+										@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+										@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+										@RequestParam Map<String, String> query) {
+		IPage<Map<String, Object>> pageList = toolsLossBoundDetailService.toolLossDetailList(pageNo,pageSize, query);
+		return Result.OK(pageList);
+	}
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsStocktakingBoundController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsStocktakingBoundController.java
index ffef65a..b818afc 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsStocktakingBoundController.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolsStocktakingBoundController.java
@@ -16,6 +16,7 @@
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
 import org.jeecg.modules.tms.entity.BaseTools;
+import org.jeecg.modules.tms.entity.ToolSharpening;
 import org.jeecg.modules.tms.entity.ToolsStocktakingBound;
 import org.jeecg.modules.tms.entity.ToolsStocktakingBoundDetail;
 import org.jeecg.modules.tms.entity.dto.LossBoundFlowDto;
@@ -283,4 +284,23 @@
         return Result.OK("鏂囦欢瀵煎叆澶辫触锛�");
     }
 
+    /**
+     * 宸ュ叿鍙拌处-鐩樼偣瀛愰〉闈㈠垪琛ㄦ煡璇�
+     *
+     * @param toolsStocktakingBound
+     * @param pageNo
+     * @param pageSize
+     * @param query
+     * @return
+     */
+    @ApiOperation(value="宸ュ叿鍙拌处-鐩樼偣瀛愰〉闈㈠垪琛ㄦ煡璇�", notes="宸ュ叿鍙拌处-鐩樼偣瀛愰〉闈㈠垪琛ㄦ煡璇�")
+    @GetMapping(value = "/toolsStocktakingList")
+    public Result<?> toolsStocktakingList(ToolsStocktakingBound toolsStocktakingBound,
+                                        @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+                                        @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+                                        @RequestParam Map<String, String> query) {
+        IPage<Map<String, Object>> pageList = toolsStocktakingBoundDetailService.toolsStocktakingList(pageNo,pageSize, query);
+        return Result.OK(pageList);
+    }
+
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolSharpening.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolSharpening.java
index 95378ab..bcd1eee 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolSharpening.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolSharpening.java
@@ -4,6 +4,7 @@
 import java.util.Date;
 
 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;
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsLossBoundDetail.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsLossBoundDetail.java
index 553d673..940657c 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsLossBoundDetail.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsLossBoundDetail.java
@@ -140,6 +140,9 @@
     private String toolMaterial;
 
     @TableField(exist = false)
+    private String partMaterial;
+
+    @TableField(exist = false)
     private String toolModel;
     /**
      * 搴撲綅鍙�
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/OutStoreDetailMapper.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/OutStoreDetailMapper.java
index 08a2c06..e4d25cf 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/OutStoreDetailMapper.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/OutStoreDetailMapper.java
@@ -1,6 +1,7 @@
 package org.jeecg.modules.tms.mapper;
 
 import java.util.List;
+import java.util.Map;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -22,4 +23,6 @@
 
     IPage<OutStoreDetailVo> queryPageList(Page<OutStoreDetailVo> page,
                                           @Param(Constants.WRAPPER) Wrapper<OutStoreDetailVo> queryWrapper);
+
+    public IPage<Map<String, Object>> outStoreDetailList(IPage<Map> pageData, @Param(Constants.WRAPPER) Wrapper<Map> wrapper);
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolLedgerDetailMapper.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolLedgerDetailMapper.java
index 190910a..b20e527 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolLedgerDetailMapper.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolLedgerDetailMapper.java
@@ -26,4 +26,6 @@
     IPage<Map<String, Object>> queryLendTool(IPage<Map> pageData, @Param(Constants.WRAPPER) Wrapper<Map> wrapper);
 
     IPage<Map<String, Object>> querySharpenTool(IPage<Map> pageData, @Param(Constants.WRAPPER) Wrapper<Map> wrapper);
+
+    IPage<Map<String, Object>> queryToolLedgerDetailList(IPage<Map> pageData, @Param(Constants.WRAPPER) Wrapper<Map> wrapper);
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolLedgerMapper.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolLedgerMapper.java
index e250875..e150300 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolLedgerMapper.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolLedgerMapper.java
@@ -1,7 +1,11 @@
 package org.jeecg.modules.tms.mapper;
 
 import java.util.List;
+import java.util.Map;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.tms.entity.ToolLedger;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -14,4 +18,5 @@
  */
 public interface ToolLedgerMapper extends BaseMapper<ToolLedger> {
 
+    public IPage<Map<String, Object>> toolLedgerList(IPage<Map> pageData, @Param(Constants.WRAPPER) Wrapper<Map> wrapper);
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsLossBoundDetailMapper.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsLossBoundDetailMapper.java
index 0989e79..224cf89 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsLossBoundDetailMapper.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsLossBoundDetailMapper.java
@@ -10,6 +10,7 @@
 import org.jeecg.modules.tms.entity.ToolsLossBoundDetail;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Description: 鎹熻�楀崟鏄庣粏
@@ -38,4 +39,6 @@
 
     IPage<ToolsLossBoundDetail> queryPageList(Page<ToolsLossBoundDetail> page,
                                         @Param(Constants.WRAPPER) Wrapper<ToolsLossBoundDetail> queryWrapper);
+
+    public IPage<Map<String, Object>> toolLossDetailList(IPage<Map> pageData, @Param(Constants.WRAPPER) Wrapper<Map> wrapper);
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsSharpeningMapper.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsSharpeningMapper.java
index 5a951cc..5bf23b5 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsSharpeningMapper.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsSharpeningMapper.java
@@ -12,6 +12,8 @@
 import org.jeecg.modules.tms.entity.vo.OutboundDetailVo;
 import org.jeecg.modules.tms.entity.vo.ToolSharpeningVo;
 
+import java.util.Map;
+
 /**
  * @Description: tms_tool_sharpening Mapper 鎺ュ彛
  * @Author: 渚澃
@@ -20,4 +22,6 @@
 public interface ToolsSharpeningMapper extends BaseMapper<ToolSharpening> {
     IPage<ToolSharpeningVo> queryPageList(Page<ToolSharpeningVo> page,
                                           @Param(Constants.WRAPPER) Wrapper<ToolSharpeningVo> queryWrapper);
+
+    public IPage<Map<String, Object>> toolSharpeningList(IPage<Map> pageData, @Param(Constants.WRAPPER) Wrapper<Map> wrapper);
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsStocktakingBoundDetailMapper.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsStocktakingBoundDetailMapper.java
index 06f3982..cfe725e 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsStocktakingBoundDetailMapper.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolsStocktakingBoundDetailMapper.java
@@ -10,6 +10,7 @@
 import org.jeecg.modules.tms.entity.ToolsStocktakingBoundDetail;
 
 import java.util.List;
+import java.util.Map;
 
 public interface ToolsStocktakingBoundDetailMapper extends BaseMapper<ToolsStocktakingBoundDetail> {
 
@@ -38,4 +39,6 @@
 	IPage<ToolsStocktakingBoundDetail> selectByMainId(Page<ToolsStocktakingBoundDetail> page,
 									   @Param(Constants.WRAPPER) Wrapper<ToolsStocktakingBoundDetail> queryWrapper);
 
+	public IPage<Map<String, Object>> toolsStocktakingList(IPage<Map> pageData, @Param(Constants.WRAPPER) Wrapper<Map> wrapper);
+
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml
index b629b67..5b34e8c 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml
@@ -359,21 +359,17 @@
 
     <select id="pageWithLedgerAndConfig" resultType="org.jeecg.modules.tms.entity.vo.StocktakingPoundVo">
         SELECT
-        DISTINCT
         t.id,
-        t.classify_id AS classifyId,
+        t.tool_id  AS toolId,
+        t1.classify_id AS classifyId,
         t.tool_code AS toolCode,
-        t.foreign_language_name AS foreignLanguageName,
-        t.standard_level AS standardLevel,
-        t.standard_code AS standardCode,
-        t.tool_model AS toolModel,
-        t.parama_table_name AS paramaTableName,
-        t.tool_id AS toolId,
+        t2.tool_model AS toolModel,
+        t2.parama_table_name AS paramaTableName,
         t1.total_count AS totalCount,
         t1.available_count AS availableCount,
         t3.position_code AS positionCode,
         t3.application_type AS applicationType,
-        t3.chinese_name AS chineseName,
+        t2.chinese_name AS chineseName,
         t3.supplier_id AS supplierId,
         t3.storage_location AS storageLocation,
         t3.main_unit AS mainUnit,
@@ -410,10 +406,11 @@
                 c.part_material AS partMaterial
             </otherwise>
         </choose>
-
-        FROM tms_base_tools t
-        LEFT JOIN tms_tool_ledger t1 ON t1.tool_id = t.id
-        LEFT JOIN tms_tools_config_property t3 ON t3.tool_code = t.id
+        FROM tms_tool_ledger_detail t
+        left join tms_tool_ledger t1 ON  t1.tool_id= t.tool_Code
+        left join tms_tools_classify t4 on t4.id = t1.classify_id
+        left join tms_base_tools t2 on t2.id = t.tool_code
+        left join tms_tools_config_property t3 on t3.tool_code = t.tool_code
 
 
         <!-- 鍔ㄦ�佽〃鍏宠仈锛岀‘淇濇墍鏈夋儏鍐甸兘鏈夊搴旂殑 LEFT JOIN -->
@@ -443,8 +440,8 @@
         </choose>
 
         <where>
-            <if test="ew.paramNameValuePairs.toolCode != null and ew.paramNameValuePairs.toolCode != ''">
-                AND t.tool_code LIKE CONCAT('%', #{ew.paramNameValuePairs.toolCode}, '%')
+            <if test="ew.paramNameValuePairs.toolId != null and ew.paramNameValuePairs.toolId != ''">
+                AND t.tool_id LIKE CONCAT('%', #{ew.paramNameValuePairs.toolId}, '%')
             </if>
         </where>
 
@@ -454,19 +451,12 @@
 
     <select id="pageWithSharpedAndConfig" resultType="org.jeecg.modules.tms.entity.vo.SharpeeningVo">
         SELECT
-        DISTINCT
         t.id,
         t.create_time AS createTime,
-        t.classify_id AS classifyId,
         t.tool_code AS toolCode,
-        t.foreign_language_name AS foreignLanguageName,
-        t.standard_level AS standardLevel,
-        t.standard_code AS standardCode,
-        t.tool_model AS toolModel,
-        t.parama_table_name AS paramaTableName,
+        t2.tool_model AS toolModel,
+        t2.parama_table_name AS paramaTableName,
         t.tool_id AS toolId,
-        t1.total_count AS totalCount,
-        t1.available_count AS availableCount,
         t3.position_code AS positionCode,
         t3.application_type AS applicationType,
         t3.chinese_name AS chineseName,
@@ -474,16 +464,21 @@
         t3.storage_location AS storageLocation,
         t3.main_unit AS mainUnit,
         t3.warehouse_id AS warehouseId,
+        t4.classify_id AS classifyId,
         t3.province_city AS provinceCity
-
-        FROM tms_base_tools t
-        LEFT JOIN tms_tool_ledger t1 ON t1.tool_id = t.id
-        LEFT JOIN tms_tools_config_property t3 ON t3.tool_code = t.id
+        FROM tms_tool_ledger_detail t
+        left join tms_tool_ledger t1 ON  t1.tool_id= t.tool_Code
+        left join tms_tools_classify t4 on t4.id = t1.classify_id
+        left join tms_base_tools t2 on t2.id = t.tool_code
+        left join tms_tools_config_property t3 on t3.tool_code = t.tool_code
+--         FROM tms_base_tools t
+--         LEFT JOIN tms_tool_ledger t1 ON t1.tool_id = t.id
+--         LEFT JOIN tms_tools_config_property t3 ON t3.tool_code = t.id
 
 
         <where>
-            <if test="ew.paramNameValuePairs.toolCode != null and ew.paramNameValuePairs.toolCode != ''">
-                AND t.tool_code LIKE CONCAT('%', #{ew.paramNameValuePairs.toolCode}, '%')
+            <if test="ew.paramNameValuePairs.toolId != null and ew.paramNameValuePairs.toolId != ''">
+                AND t.tool_id LIKE CONCAT('%', #{ew.paramNameValuePairs.toolId}, '%')
             </if>
         </where>
 
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InStoreDetailMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InStoreDetailMapper.xml
index 5dd036e..18e7b39 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InStoreDetailMapper.xml
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InStoreDetailMapper.xml
@@ -7,7 +7,7 @@
             t.id,
             t.tool_id onlyCode,
             t.in_storehouse_type inStorehouseType,
-            t.goods_shelves_id goodsShelvesId,
+            t10.location_code locationCode,
             t.in_number inNumber,
             t.in_storehouse_id inStorehouseId,
             t.inbound_time inboundTime,
@@ -39,6 +39,7 @@
                  LEFT JOIN (select * from v_sys_dict where dict_code='in_status') t7 on t7.item_value = t3.in_status
                  LEFT JOIN (select * from v_sys_dict where dict_code='in_bill_status') t8 on t8.item_value = t3.order_status
                  left join (select * from v_sys_dict where dict_code='in_storehouse_type') t9 on t9.item_value = t.in_storehouse_type
+                left join tms_goods_shelves t10 on t10.id = t.goods_shelves_id
             ${ew.customSqlSegment}
     </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/OutStoreDetailMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/OutStoreDetailMapper.xml
index 1233eaf..3cf8653 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/OutStoreDetailMapper.xml
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/OutStoreDetailMapper.xml
@@ -84,4 +84,42 @@
         </choose>
         ${ew.customSqlSegment}
     </select>
+
+    <select id="outStoreDetailList" resultType="map" parameterType="String">
+        SELECT
+            t1.id,
+            t1.tool_id onlyCode,
+            t1.out_storehouse_type outStorehouseType,
+            t1.out_number outNumber,
+            t1.out_storehouse_id outStorehouseId,
+            t4.outbound_time outboundTime,
+            t1.create_by createBy,
+            t1.create_time createTime,
+            t1.update_by updateBy,
+            t1.update_time updateTime,
+            t2.tool_code toolCode,
+            t2.chinese_name chineseName,
+            t2.tool_model toolModel,
+            t3.classify_id classifyNum,
+            t4.out_num outNum,
+            t4.subject_matter subjectMatter,
+            t5.realname handler,
+            t6.realname reviewer,
+            t7.item_text inStatus,
+            t8.item_text orderStatus,
+            t9.item_text outStorehouseTypeName,
+            t10.item_text operateType
+        FROM
+            tms_out_store_detail t1
+                LEFT JOIN tms_base_tools t2 ON t2.id = t1.tool_code
+                LEFT JOIN tms_tools_classify t3 ON t3.id = t2.classify_id
+                LEFT JOIN tms_outbound_order t4 ON t4.id = t1.out_storehouse_id
+                LEFT JOIN sys_user t5 ON t5.username = t4.handler
+                LEFT JOIN sys_user t6 ON t6.username = t4.reviewer
+                LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'out_status' ) t7 ON t7.item_value = t4.out_status
+                LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'out_bill_status' ) t8 ON t8.item_value = t4.order_status
+                LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'out_storehouse_type' ) t9 ON t9.item_value = t1.out_storehouse_type
+                LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'inbound_operate_type' ) t10 ON t10.item_value = t1.operate_type
+            ${ew.customSqlSegment}
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolLedgerDetailMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolLedgerDetailMapper.xml
index 9d8a3db..78cb6cf 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolLedgerDetailMapper.xml
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolLedgerDetailMapper.xml
@@ -172,4 +172,24 @@
                     )
             ) temp
     </select>
+    <select id="queryToolLedgerDetailList"  resultType="map" parameterType="String">
+        SELECT
+            t1.id,
+            t1.tool_code toolCodeId,
+            t2.tool_code toolCode,
+            t1.tool_id onlyCode,
+            t2.chinese_name chineseName,
+            t2.tool_model toolModel,
+            t1.quantity,
+            t1.warehouse_id warehouseId,
+            ISNULL(t3.warehouse_id, '') + '/' + ISNULL(t3.warehouse_name, '') warehouseName,
+            t1.position_code positionCode,
+            t5.item_text applicationType
+        FROM tms_tool_ledger_detail t1
+                 LEFT JOIN tms_base_tools t2 on t1.tool_code = t2.id
+                 LEFT JOIN tms_warehouse t3 on t1.warehouse_id = t3.id
+                 left join tms_tools_config_property t4 on t4.tool_code = t2.id
+                 left join (select * from v_sys_dict where dict_code ='application_type') t5 on t5.item_value = t4.application_type
+            ${ew.customSqlSegment}
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolLedgerMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolLedgerMapper.xml
index 93626d9..b87ca82 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolLedgerMapper.xml
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolLedgerMapper.xml
@@ -2,4 +2,33 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.tms.mapper.ToolLedgerMapper">
 
+    <select id="toolLedgerList" resultType="map" parameterType="String">
+        select
+            t1.id,
+            t1.total_count totalCount,
+            t1.available_count availableCount,
+            t1.lend_count lendCount,
+            t1.loss_count lossCount,
+            t1.repair_count repairCount,
+            t1.sharpening_count sharpeningCount,
+            t1.detection_count detectionCount,
+            t2.id toolCodeId,
+            t2.tool_code toolCode,
+            t2.chinese_name chineseName,
+            t2.tool_model toolModel,
+            t2.sign_code signCode,
+            t2.accuracy_class accuracyClass,
+            t2.standard_code standardCode,
+            t2.standard_level standardLevel,
+            t3.position_code positionCode,
+            t3.storage_location storageLocation,
+            t3.highest_inventory highestInventory,
+            t3.lower_inventory lowerInventory,
+            t4.item_text applicationType
+        from tms_tool_ledger t1
+            left join tms_base_tools t2 on t1.tool_id = t2.id
+            left join tms_tools_config_property t3 on t3.tool_code = t2.id
+            left join (select * from v_sys_dict where dict_code = 'application_type') t4 on t4.item_value = t3.application_type
+        ${ew.customSqlSegment}
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsLossBoundDetailMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsLossBoundDetailMapper.xml
index 40abda6..fd5564d 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsLossBoundDetailMapper.xml
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsLossBoundDetailMapper.xml
@@ -15,46 +15,60 @@
     </select>
     <select id="queryPageList" resultType="org.jeecg.modules.tms.entity.ToolsLossBoundDetail">
         SELECT
-        t1.*,
-        t2.chinese_name chineseName,
-        t2.tool_model toolModel,
-        t2.classify_id  classifyId,
-        t2.parama_table_name paramaTableName,
-        t3.application_type applicationType,
-        t3.supplier_id supplierId,
+        t.*,
+        t1.classify_id AS classifyId,
+        t2.tool_model AS toolModel,
+        t2.parama_table_name AS paramaTableName,
+        t3.position_code AS positionCode,
+        t3.application_type AS applicationType,
+        t2.chinese_name AS chineseName,
+        t3.supplier_id AS supplierId,
+        t3.storage_location AS storageLocation,
         <choose>
             <when test="ew.paramNameValuePairs.paramaTableName == '1'">
-                t4.tool_material toolMaterial,
-                t4.part_material partMaterial
-            </when>
-            <when test="ew.paramNameValuePairs.paramaTableName == '2'">
                 t5.tool_material toolMaterial,
                 t5.part_material partMaterial
             </when>
-            <when test="ew.paramNameValuePairs.paramaTableName == '3'">
+            <when test="ew.paramNameValuePairs.paramaTableName == '2'">
                 t6.tool_material toolMaterial,
                 t6.part_material partMaterial
             </when>
-            <when test="ew.paramNameValuePairs.paramaTableName == '4'">
+            <when test="ew.paramNameValuePairs.paramaTableName == '3'">
                 t7.tool_material toolMaterial,
                 t7.part_material partMaterial
             </when>
-            <when test="ew.paramNameValuePairs.paramaTableName == '5'">
+            <when test="ew.paramNameValuePairs.paramaTableName == '4'">
                 t8.tool_material toolMaterial,
                 t8.part_material partMaterial
             </when>
-            <when test="ew.paramNameValuePairs.paramaTableName == '6'">
+            <when test="ew.paramNameValuePairs.paramaTableName == '5'">
                 t9.tool_material toolMaterial,
                 t9.part_material partMaterial
+            </when>
+            <when test="ew.paramNameValuePairs.paramaTableName == '6'">
+                t10.tool_material toolMaterial,
+                t10.part_material partMaterial
             </when>
             <otherwise>
                 t10.tool_material toolMaterial,
                 t10.part_material partMaterial
             </otherwise>
         </choose>
-        FROM tms_loss_bound_detail t1
-        LEFT JOIN tms_base_tools t2 on t1.tool_id = t2.id
-        LEFT JOIN tms_tools_config_property t3 on t3.tool_code = t2.id
+        FROM tms_loss_bound_detail t
+        left join tms_tool_ledger t1 ON  t1.tool_id= t.tool_Code
+        left join tms_tools_classify t4 on t4.id = t1.classify_id
+        left join tms_base_tools t2 on t2.id = t.tool_code
+        left join tms_tools_config_property t3 on t3.tool_code = t.tool_code
+
+
+--         LEFT JOIN tms_base_tools t2 on t1.tool_id = t2.id
+--         LEFT JOIN tms_tools_config_property t3 on t3.tool_code = t2.id
+
+
+
+
+
+
 
         <choose>
             <when test="ew.paramNameValuePairs.paramaTableName == '1'">
@@ -81,4 +95,28 @@
         </choose>
         ${ew.customSqlSegment}
     </select>
+
+
+    <select id="toolLossDetailList" resultType="map" parameterType="String">
+        SELECT
+            t1.id,
+            t1.tool_id onlyCode,
+            t1.loss_number lossNumber,
+            t1.loss_reason lossReason,
+            t2.order_code orderCode,
+            t2.loss_time lossTime,
+            t3.id toolCodeId,
+            t3.tool_code toolCode,
+            t3.chinese_name chineseName,
+            t3.tool_model toolModel,
+            t4.classify_id classifyNum,
+            t5.item_text handler
+        FROM
+            tms_loss_bound_detail t1
+                LEFT JOIN tms_loss_bound t2 ON t2.id = t1.loss_bound_id
+                LEFT JOIN tms_base_tools t3 ON t3.id = t1.tool_code
+                LEFT JOIN tms_tools_classify t4 ON t4.id = t3.classify_id
+                LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'sys_user' ) t5 ON t5.item_value = t2.handler
+            ${ew.customSqlSegment}
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsSharpeningMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsSharpeningMapper.xml
index 34e329a..858f8cb 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsSharpeningMapper.xml
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsSharpeningMapper.xml
@@ -2,25 +2,49 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.tms.mapper.ToolsSharpeningMapper">
     <select id="queryPageList" resultType="org.jeecg.modules.tms.entity.vo.ToolSharpeningVo">
-        SELECT
-            t.*,
-            t1.classify_id AS classifyId,
-            t1.parama_table_name AS paramaTableName,
-            t2.type_name AS typeName,
-            t3.application_type AS applicationType,
-            t3.tool_model AS toolModel,
-            t3.province_city AS provinceCity,
-            t3.chinese_name AS chineseName,
-            t3.supplier_id AS supplierId,
-            t3.storage_location AS storageLocation,
-            t3.main_unit AS mainUnit,
-            t4.position_code AS positionCode,
-            t4.warehouse_id AS warehouseId
+
+
+        SELECT t.*,
+               t2.tool_model        AS toolModel,
+               t2.parama_table_name AS paramaTableName,
+               t.tool_id            AS toolId,
+               t3.position_code     AS positionCode,
+               t3.application_type  AS applicationType,
+               t3.chinese_name      AS chineseName,
+               t3.supplier_id       AS supplierId,
+               t3.storage_location  AS storageLocation,
+               t3.main_unit         AS mainUnit,
+               t3.warehouse_id      AS warehouseId,
+               t4.classify_id       AS classifyId,
+               t3.province_city     AS provinceCity
         FROM tms_tool_sharpening t
-                 LEFT JOIN tms_base_tools t1 ON t1.id = t.tool_code
-                 LEFT JOIN tms_tools_classify t2 ON t1.classify_id = t2.id
-                 LEFT JOIN tms_tools_config_property t3 ON t3.tool_code = t.tool_id
-                 LEFT JOIN tms_tool_ledger_detail t4 ON t4.tool_code = t.tool_id
-        ${ew.customSqlSegment}
+
+                 left join tms_tool_ledger t1 ON t1.tool_id = t.tool_Code
+                 left join tms_tool_ledger_detail t5 ON t5.tool_id = t.tool_Code
+                 left join tms_tools_classify t4 on t4.id = t1.classify_id
+                 left join tms_base_tools t2 on t2.id = t.tool_code
+                 left join tms_tools_config_property t3 on t3.tool_code = t.tool_code
+            ${ew.customSqlSegment}
+    </select>
+
+    <select id="toolSharpeningList" resultType="map" parameterType="String">
+        SELECT
+            t1.id,
+            t1.tool_id onlyCode,
+            t1.sharpening_time sharpeningTime,
+            t1.sharpening_result sharpeningResult,
+            t1.sharpening_status sharpeningStatus,
+            t1.responsible_person responsiblePerson,
+            t2.tool_code toolCode,
+            t2.chinese_name chineseName,
+            t2.tool_model toolModel,
+            t3.classify_id classifyNum,
+            t4.item_text sharpeningStatusName
+        FROM
+            tms_tool_sharpening t1
+                LEFT JOIN tms_base_tools t2 ON t2.id = t1.tool_code
+                LEFT JOIN tms_tools_classify t3 ON t3.id = t2.classify_id
+                LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'sharpening_status' ) t4 ON t4.item_value = t1.sharpening_status
+            ${ew.customSqlSegment}
     </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsStocktakingBoundDetailMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsStocktakingBoundDetailMapper.xml
index 214d4dd..0b5066b 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsStocktakingBoundDetailMapper.xml
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolsStocktakingBoundDetailMapper.xml
@@ -88,4 +88,30 @@
             ${ew.customSqlSegment}
 
     </select>
+
+    <select id="toolsStocktakingList" resultType="map" parameterType="String">
+        SELECT
+            t1.id,
+            t1.tool_id onlyCode,
+            t1.book_quantity bookQuantity,
+            t1.available_quantity availableQuantity,
+            t1.practical_quantity practicalQuantity,
+            t1.surplus_deficit surplusDeficit,
+            t1.stocktaking_date stocktakingDate,
+            t2.order_code orderCode,
+            t2.stocktaking_type stocktakingType,
+            t2.stocktaking_name stocktakingName,
+            t3.tool_code toolCode,
+            t3.chinese_name chineseName,
+            t3.tool_model toolModel,
+            t4.classify_id classifyNum,
+            t5.item_text handler
+        FROM
+            tms_stocktaking_bound_detail t1
+                LEFT JOIN tms_stocktaking_bound t2 ON t2.id = t1.stocktaking_bound_id
+                LEFT JOIN tms_base_tools t3 ON t3.id = t1.tool_code
+                LEFT JOIN tms_tools_classify t4 ON t4.id = t3.classify_id
+                LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'sys_user' ) t5 ON t5.item_value = t2.handler
+            ${ew.customSqlSegment}
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IOutStoreDetailService.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IOutStoreDetailService.java
index ef66d57..5c9fb1b 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IOutStoreDetailService.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IOutStoreDetailService.java
@@ -17,4 +17,6 @@
 public interface IOutStoreDetailService extends IService<OutStoreDetail> {
 
     IPage<OutStoreDetailVo> queryPageList(Page<OutStoreDetailVo> page, Map<String, String[]> parameterMap);
+
+    IPage<Map<String, Object>> outStoreDetailList(Integer pageNo, Integer pageSize, Map<String, String> query);
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolLedgerDetailService.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolLedgerDetailService.java
index fb4c435..69f3499 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolLedgerDetailService.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolLedgerDetailService.java
@@ -20,4 +20,6 @@
     IPage<Map<String, Object>> queryLendTool(Integer pageNo, Integer pageSize, Map<String, String> query);
 
     IPage<Map<String, Object>> querySharpenTool(Integer pageNo, Integer pageSize, Map<String, String> query);
+
+    IPage<Map<String, Object>> queryToolLedgerDetailList(Integer pageNo, Integer pageSize, Map<String, String> query);
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolLedgerService.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolLedgerService.java
index 0b541bf..056ab47 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolLedgerService.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolLedgerService.java
@@ -1,7 +1,10 @@
 package org.jeecg.modules.tms.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.jeecg.modules.tms.entity.ToolLedger;
 import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Map;
 
 /**
  * @Description: tms_tool_ledger
@@ -11,4 +14,5 @@
  */
 public interface IToolLedgerService extends IService<ToolLedger> {
 
+    IPage<Map<String, Object>> toolLedgerList(Integer pageNo, Integer pageSize, Map<String, String> query);
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsLossBoundDetailService.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsLossBoundDetailService.java
index 30a5be5..beb9635 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsLossBoundDetailService.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsLossBoundDetailService.java
@@ -19,4 +19,6 @@
  */
 public interface IToolsLossBoundDetailService extends IService<ToolsLossBoundDetail> {
     IPage<ToolsLossBoundDetail> queryPageList(Page<ToolsLossBoundDetail> page, Map<String, String[]> parameterMap);
+
+    IPage<Map<String, Object>> toolLossDetailList(Integer pageNo, Integer pageSize, Map<String, String> query);
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsSharpeningService.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsSharpeningService.java
index 060d369..a6f6eb9 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsSharpeningService.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsSharpeningService.java
@@ -16,4 +16,6 @@
  */
 public interface IToolsSharpeningService extends IService<ToolSharpening> {
     IPage<ToolSharpeningVo> queryPageList(Page<ToolSharpeningVo> page, Map<String, String[]> parameterMap);
+
+    IPage<Map<String, Object>> toolSharpeningList(Integer pageNo, Integer pageSize, Map<String, String> query);
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsStocktakingBoundDetailService.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsStocktakingBoundDetailService.java
index da0bde5..e28f7a4 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsStocktakingBoundDetailService.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolsStocktakingBoundDetailService.java
@@ -27,5 +27,5 @@
      */
     public   IPage<ToolsStocktakingBoundDetail> selectByMainId(Page<ToolsStocktakingBoundDetail> page, Map<String, String[]> parameterMap);
 
-
+    IPage<Map<String, Object>> toolsStocktakingList(Integer pageNo, Integer pageSize, Map<String, String> query);
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java
index 0671b37..ad52aa3 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java
@@ -68,6 +68,9 @@
 
     @Autowired
     private IInboundDetailService inboundDetailService;
+
+    @Autowired
+    private IGoodsShelvesService goodsShelvesService;
     @Override
     public boolean submit(String id) {
         InboundOrder inboundOrder = this.getById(id);
@@ -215,6 +218,7 @@
     @Override
     public void addInStorage(JSONObject jSONObject) {
         String inStorehouseType = jSONObject.getString("inStorehouseType");
+        String locationCodeId = jSONObject.getString("locationCodeId");
         String classifyId = jSONObject.getString("classifyId");
         Date inboundTime = jSONObject.getDate("inboundTime");
         //鑾峰彇鍏ュ簱鏄庣粏
@@ -266,6 +270,7 @@
                         inStoreDetail.setInStorehouseType("1");
                         inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
                         inStoreDetail.setToolId(inboundDetailVo.getToolCode()+"-"+result);
+                        inStoreDetail.setGoodsShelvesId(locationCodeId);
                         inStoreDetailService.save(inStoreDetail);
                         //澧炲姞搴撳瓨鏄庣粏
                         ToolLedgerDetail toolLedgerDetail = new ToolLedgerDetail();
@@ -287,6 +292,7 @@
                     inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity());
                     inStoreDetail.setInStorehouseType("1");
                     inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
+                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                     inStoreDetailService.save(inStoreDetail);
                     //鏌ヨ搴撳瓨鏄庣粏涓槸鍚﹀瓨鍦ㄨ宸ュ叿
                     ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one();
@@ -331,6 +337,7 @@
                     inStoreDetail.setInStorehouseType("2");
                     inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
                     inStoreDetail.setToolId(inboundDetailVo.getOnlyCode());
+                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                     inStoreDetailService.save(inStoreDetail);
                     //涓嶇鍒版妸
                 }else {
@@ -346,6 +353,7 @@
                     inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity());
                     inStoreDetail.setInStorehouseType("2");
                     inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
+                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                     inStoreDetailService.save(inStoreDetail);
                 }
 
@@ -378,6 +386,7 @@
                     inStoreDetail.setInStorehouseType("5");
                     inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
                     inStoreDetail.setToolId(inboundDetailVo.getOnlyCode());
+                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                     inStoreDetailService.save(inStoreDetail);
                     //涓嶇鍒版妸
                 }else {
@@ -393,6 +402,7 @@
                     inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity());
                     inStoreDetail.setInStorehouseType("5");
                     inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
+                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                     inStoreDetailService.save(inStoreDetail);
                 }
 
@@ -403,6 +413,7 @@
     @Override
     public void addApplyInStorage(JSONObject jSONObject) {
         String inStorehouseType = jSONObject.getString("inStorehouseType");
+        String locationCodeId = jSONObject.getString("locationCodeId");
         //鍏ュ簱鐢宠鍗昳d
         String orderId = jSONObject.getString("orderId");
         //鑾峰彇鍏ュ簱鏄庣粏
@@ -455,6 +466,7 @@
                         inStoreDetail.setInStorehouseType("1");
                         inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
                         inStoreDetail.setToolId(inboundDetailVo.getToolCode()+"-"+result);
+                        inStoreDetail.setGoodsShelvesId(locationCodeId);
                         inStoreDetailService.save(inStoreDetail);
                         //澧炲姞搴撳瓨鏄庣粏
                         ToolLedgerDetail toolLedgerDetail = new ToolLedgerDetail();
@@ -477,6 +489,7 @@
                     inStoreDetail.setInStorehouseType("1");
                     inStoreDetail.setInStorehouseId(orderId);
                     inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
+                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                     inStoreDetailService.save(inStoreDetail);
                     //鏌ヨ搴撳瓨鏄庣粏涓槸鍚﹀瓨鍦ㄨ宸ュ叿
                     ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one();
@@ -527,6 +540,7 @@
                     inStoreDetail.setInStorehouseId(orderId);
                     inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
                     inStoreDetail.setToolId(inboundDetailVo.getOnlyCode());
+                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                     inStoreDetailService.save(inStoreDetail);
                     //涓嶇鍒版妸
                 }else {
@@ -543,6 +557,7 @@
                     inStoreDetail.setInStorehouseType("2");
                     inStoreDetail.setInStorehouseId(orderId);
                     inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
+                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                     inStoreDetailService.save(inStoreDetail);
                 }
                 //鏇存敼鏄庣粏鍏ュ簱鐘舵�佸強瀹為檯鍏ュ簱鏁伴噺
@@ -580,6 +595,7 @@
                     inStoreDetail.setInStorehouseId(orderId);
                     inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
                     inStoreDetail.setToolId(inboundDetailVo.getOnlyCode());
+                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                     inStoreDetailService.save(inStoreDetail);
                     //涓嶇鍒版妸
                 }else {
@@ -596,6 +612,7 @@
                     inStoreDetail.setInStorehouseType("5");
                     inStoreDetail.setInStorehouseId(orderId);
                     inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
+                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                     inStoreDetailService.save(inStoreDetail);
                 }
                 //鏇存敼鏄庣粏鍏ュ簱鐘舵�佸強瀹為檯鍏ュ簱鏁伴噺
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/OutStoreDetailServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/OutStoreDetailServiceImpl.java
index 7a7015c..8555fea 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/OutStoreDetailServiceImpl.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/OutStoreDetailServiceImpl.java
@@ -2,8 +2,11 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.commons.lang.StringUtils;
+import org.jeecg.common.exception.ExceptionCast;
 import org.jeecg.modules.tms.entity.OutStoreDetail;
 import org.jeecg.modules.tms.entity.vo.OutStoreDetailVo;
 import org.jeecg.modules.tms.mapper.OutStoreDetailMapper;
@@ -12,6 +15,8 @@
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -41,4 +46,32 @@
         queryWrapper.orderByDesc("t1.create_time");
         return this.baseMapper.queryPageList(page, queryWrapper);
     }
+
+    @Override
+    public IPage<Map<String, Object>> outStoreDetailList(Integer pageNo, Integer pageSize, Map<String, String> query) {
+        if (pageNo == null || pageNo < 1 || pageSize == null || pageSize < 1) {
+            ExceptionCast.cast("鍙傛暟閿欒");
+        }
+        IPage<Map> pageData = new Page<Map>(pageNo, pageSize);
+        QueryWrapper<Map> queryWrapper = Wrappers.query();
+        if (null != query) {
+            String classifyId = query.get("classifyId");
+            if (StringUtils.isNotBlank(classifyId)) {
+                queryWrapper.eq("t2.classify_id", classifyId);
+            }
+            String toolCode = query.get("toolCode");
+            if (StringUtils.isNotBlank(toolCode)) {
+                queryWrapper.like("t2.tool_code", toolCode);
+            }
+            String toolModel = query.get("toolModel");
+            if (StringUtils.isNotBlank(toolModel)) {
+                queryWrapper.like("t2.tool_mode", toolModel);
+            }
+            // 鎺掑簭鍐欐硶
+            List<OrderItem> orderItems = new ArrayList<>();
+            orderItems.add(OrderItem.desc("t1.create_time"));
+            ((Page<Map>) pageData).setOrders(orderItems);
+        }
+        return super.getBaseMapper().outStoreDetailList(pageData,queryWrapper);
+    }
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolLedgerDetailServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolLedgerDetailServiceImpl.java
index 17e916c..83ef7b0 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolLedgerDetailServiceImpl.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolLedgerDetailServiceImpl.java
@@ -98,4 +98,29 @@
         }
         return this.baseMapper.querySharpenTool(pageData,queryWrapper);
     }
+
+    @Override
+    public IPage<Map<String, Object>> queryToolLedgerDetailList(Integer pageNo, Integer pageSize, Map<String, String> query) {
+
+        if (pageNo == null || pageNo < 1 || pageSize == null || pageSize < 1) {
+            ExceptionCast.cast("鍙傛暟閿欒");
+        }
+        IPage<Map> pageData = new Page<Map>(pageNo, pageSize);
+        QueryWrapper<Map> queryWrapper = Wrappers.query();
+        if (null != query) {
+            String toolCode = query.get("toolCode");
+            if (StringUtils.isNotBlank(toolCode)) {
+                queryWrapper.like("t2.tool_code", toolCode);
+            }
+            String status = query.get("status");
+            if (StringUtils.isNotBlank(status)) {
+                queryWrapper.eq("t1.status", status);
+            }
+            String classifyId = query.get("classifyId");
+            if (StringUtils.isNotBlank(classifyId)) {
+                queryWrapper.like("t2.classify_id", classifyId);
+            }
+        }
+        return this.baseMapper.queryToolLedgerDetailList(pageData,queryWrapper);
+    }
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolLedgerServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolLedgerServiceImpl.java
index 87d4e0b..eaf1988 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolLedgerServiceImpl.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolLedgerServiceImpl.java
@@ -1,11 +1,22 @@
 package org.jeecg.modules.tms.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.commons.lang.StringUtils;
+import org.jeecg.common.exception.ExceptionCast;
 import org.jeecg.modules.tms.entity.ToolLedger;
 import org.jeecg.modules.tms.mapper.ToolLedgerMapper;
 import org.jeecg.modules.tms.service.IToolLedgerService;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @Description: tms_tool_ledger
@@ -16,4 +27,31 @@
 @Service
 public class ToolLedgerServiceImpl extends ServiceImpl<ToolLedgerMapper, ToolLedger> implements IToolLedgerService {
 
+    @Override
+    public IPage<Map<String, Object>> toolLedgerList(Integer pageNo, Integer pageSize, Map<String, String> query) {
+        if (pageNo == null || pageNo < 1 || pageSize == null || pageSize < 1) {
+            ExceptionCast.cast("鍙傛暟閿欒");
+        }
+        IPage<Map> pageData = new Page<Map>(pageNo, pageSize);
+        QueryWrapper<Map> queryWrapper = Wrappers.query();
+        if (null != query) {
+            String classifyId = query.get("classifyId");
+            if (StringUtils.isNotBlank(classifyId)) {
+                queryWrapper.eq("t1.classify_id", classifyId);
+            }
+            String toolCode = query.get("toolCode");
+            if (StringUtils.isNotBlank(toolCode)) {
+                queryWrapper.like("t2.tool_code", toolCode);
+            }
+            String toolModel = query.get("toolModel");
+            if (StringUtils.isNotBlank(toolModel)) {
+                queryWrapper.like("t2.tool_mode", toolModel);
+            }
+            // 鎺掑簭鍐欐硶
+            List<OrderItem> orderItems = new ArrayList<>();
+            orderItems.add(OrderItem.desc("t1.create_time"));
+            ((Page<Map>) pageData).setOrders(orderItems);
+        }
+        return super.getBaseMapper().toolLedgerList(pageData,queryWrapper);
+    }
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsLossBoundDetailServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsLossBoundDetailServiceImpl.java
index 2d44481..91b091c 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsLossBoundDetailServiceImpl.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsLossBoundDetailServiceImpl.java
@@ -3,8 +3,11 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.commons.lang.StringUtils;
+import org.jeecg.common.exception.ExceptionCast;
 import org.jeecg.modules.tms.entity.OutboundDetail;
 import org.jeecg.modules.tms.entity.ToolsLossBound;
 import org.jeecg.modules.tms.entity.ToolsLossBoundDetail;
@@ -15,6 +18,8 @@
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -31,8 +36,36 @@
         QueryWrapper<ToolsLossBoundDetail> queryWrapper = Wrappers.query();
         String[] outStorehouseIds = parameterMap.get("lossBoundId");
         if (outStorehouseIds != null && outStorehouseIds.length > 0) {
-            queryWrapper.eq("t1.loss_bound_id", outStorehouseIds[0]);
+            queryWrapper.eq("t.loss_bound_id", outStorehouseIds[0]);
         }
         return this.baseMapper.queryPageList(page, queryWrapper);
     }
+
+    @Override
+    public IPage<Map<String, Object>> toolLossDetailList(Integer pageNo, Integer pageSize, Map<String, String> query) {
+        if (pageNo == null || pageNo < 1 || pageSize == null || pageSize < 1) {
+            ExceptionCast.cast("鍙傛暟閿欒");
+        }
+        IPage<Map> pageData = new Page<Map>(pageNo, pageSize);
+        QueryWrapper<Map> queryWrapper = Wrappers.query();
+        if (null != query) {
+            String classifyId = query.get("classifyId");
+            if (StringUtils.isNotBlank(classifyId)) {
+                queryWrapper.eq("t3.classify_id", classifyId);
+            }
+            String toolCode = query.get("toolCode");
+            if (StringUtils.isNotBlank(toolCode)) {
+                queryWrapper.like("t3.tool_code", toolCode);
+            }
+            String toolModel = query.get("toolModel");
+            if (StringUtils.isNotBlank(toolModel)) {
+                queryWrapper.like("t3.tool_mode", toolModel);
+            }
+            // 鎺掑簭鍐欐硶
+            List<OrderItem> orderItems = new ArrayList<>();
+            orderItems.add(OrderItem.desc("t1.create_time"));
+            ((Page<Map>) pageData).setOrders(orderItems);
+        }
+        return super.getBaseMapper().toolLossDetailList(pageData,queryWrapper);
+    }
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsSharpeningServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsSharpeningServiceImpl.java
index f05572d..0290d51 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsSharpeningServiceImpl.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsSharpeningServiceImpl.java
@@ -2,8 +2,11 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.commons.lang.StringUtils;
+import org.jeecg.common.exception.ExceptionCast;
 import org.jeecg.modules.tms.entity.ToolSharpening;
 import org.jeecg.modules.tms.entity.ToolsLossBoundDetail;
 import org.jeecg.modules.tms.entity.vo.ToolSharpeningVo;
@@ -12,6 +15,8 @@
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -48,5 +53,32 @@
         return this.baseMapper.queryPageList(page, queryWrapper);
     }
 
+    @Override
+    public IPage<Map<String, Object>> toolSharpeningList(Integer pageNo, Integer pageSize, Map<String, String> query) {
+        if (pageNo == null || pageNo < 1 || pageSize == null || pageSize < 1) {
+            ExceptionCast.cast("鍙傛暟閿欒");
+        }
+        IPage<Map> pageData = new Page<Map>(pageNo, pageSize);
+        QueryWrapper<Map> queryWrapper = Wrappers.query();
+        if (null != query) {
+            String classifyId = query.get("classifyId");
+            if (StringUtils.isNotBlank(classifyId)) {
+                queryWrapper.eq("t2.classify_id", classifyId);
+            }
+            String toolCode = query.get("toolCode");
+            if (StringUtils.isNotBlank(toolCode)) {
+                queryWrapper.like("t2.tool_code", toolCode);
+            }
+            String toolModel = query.get("toolModel");
+            if (StringUtils.isNotBlank(toolModel)) {
+                queryWrapper.like("t2.tool_mode", toolModel);
+            }
+            // 鎺掑簭鍐欐硶
+            List<OrderItem> orderItems = new ArrayList<>();
+            orderItems.add(OrderItem.desc("t1.create_time"));
+            ((Page<Map>) pageData).setOrders(orderItems);
+        }
+        return super.getBaseMapper().toolSharpeningList(pageData,queryWrapper);
+    }
 
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsStocktakingBoundDetailServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsStocktakingBoundDetailServiceImpl.java
index d3e4149..c8cb77a 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsStocktakingBoundDetailServiceImpl.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsStocktakingBoundDetailServiceImpl.java
@@ -2,15 +2,19 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang.StringUtils;
+import org.jeecg.common.exception.ExceptionCast;
 import org.jeecg.modules.tms.entity.ToolsStocktakingBoundDetail;
 import org.jeecg.modules.tms.mapper.ToolsStocktakingBoundDetailMapper;
 import org.jeecg.modules.tms.service.IToolsStocktakingBoundDetailService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -36,4 +40,32 @@
         return toolsStocktakingBoundDetailMapper.selectByMainId(page, queryWrapper);
     }
 
+    @Override
+    public IPage<Map<String, Object>> toolsStocktakingList(Integer pageNo, Integer pageSize, Map<String, String> query) {
+        if (pageNo == null || pageNo < 1 || pageSize == null || pageSize < 1) {
+            ExceptionCast.cast("鍙傛暟閿欒");
+        }
+        IPage<Map> pageData = new Page<Map>(pageNo, pageSize);
+        QueryWrapper<Map> queryWrapper = Wrappers.query();
+        if (null != query) {
+            String classifyId = query.get("classifyId");
+            if (StringUtils.isNotBlank(classifyId)) {
+                queryWrapper.eq("t3.classify_id", classifyId);
+            }
+            String toolCode = query.get("toolCode");
+            if (StringUtils.isNotBlank(toolCode)) {
+                queryWrapper.like("t3.tool_code", toolCode);
+            }
+            String toolModel = query.get("toolModel");
+            if (StringUtils.isNotBlank(toolModel)) {
+                queryWrapper.like("t3.tool_mode", toolModel);
+            }
+            // 鎺掑簭鍐欐硶
+            List<OrderItem> orderItems = new ArrayList<>();
+            orderItems.add(OrderItem.desc("t1.create_time"));
+            ((Page<Map>) pageData).setOrders(orderItems);
+        }
+        return super.getBaseMapper().toolsStocktakingList(pageData,queryWrapper);
+    }
+
 }

--
Gitblit v1.9.3