7d5d6d104b0ad994b62b53683d752b4fec61b8c1..0a19d4923b0a048aee0cda91c37f25bc6e140d54
6 天以前 Lius
修改接收字段
0a19d4 对比 | 目录
6 天以前 Lius
修改接收字段
5c6ec3 对比 | 目录
6 天以前 zhaowei
三保流程修改
55dd05 对比 | 目录
6 天以前 zhaowei
三保流程修改
f7c94e 对比 | 目录
6 天以前 Lius
三保获取详细信息
04a62d 对比 | 目录
6 天以前 Lius
三保状态修改
6134c7 对比 | 目录
6 天以前 Lius
三保状态修改
8e54b9 对比 | 目录
6 天以前 zhangherong
Merge remote-tracking branch 'origin/master'
226014 对比 | 目录
6 天以前 zhangherong
art: 技术状态变更-基础代码提交
c3ae2c 对比 | 目录
6 天以前 yangbin
备注
caed99 对比 | 目录
6 天以前 zhangherong
Merge remote-tracking branch 'origin/master'
1337e6 对比 | 目录
6 天以前 zhangherong
art: 技术状态变更-数据库设计修改
76de25 对比 | 目录
6 天以前 Lius
三保状态修改
24aa3d 对比 | 目录
6 天以前 Lius
字段添加字典
370dfa 对比 | 目录
6 天以前 Lius
获取三报工单详细信息
5aafbb 对比 | 目录
6 天以前 Lius
三保流程处理
a93ad6 对比 | 目录
6 天以前 zhangherong
art: 技术状态鉴定工单变更-提交、作废,审批接口添加
387f9c 对比 | 目录
6 天以前 zhangherong
Merge remote-tracking branch 'origin/master'
801ca1 对比 | 目录
6 天以前 zhangherong
art: 技术状态鉴定工单变更-提交、作废,审批接口添加
bccaf7 对比 | 目录
6 天以前 lyh
二保流程代码
904c79 对比 | 目录
6 天以前 zhangherong
art: 岗位数据添加-SQL+常量
d516c0 对比 | 目录
6 天以前 lyh
二保流程代码
770ee9 对比 | 目录
6 天以前 lyh
二保流程代码
a0e421 对比 | 目录
6 天以前 yangbin
报修
a029bc 对比 | 目录
已添加6个文件
已修改30个文件
2573 ■■■■ 文件已修改
db/430设备管理数据库设计.pdma.json 504 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
db/LS/dict_ls.sql 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
db/ZHR/position_zhr.sql 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-boot-base-core/src/main/java/org/jeecg/common/util/TranslateDictTextUtils.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusChangeOrderStatusEnum.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusChangeReasonEnum.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ThirdMaintenanceStatusEnum.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ThridMaintenanceResultEnum.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceOrder.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeController.java 139 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeDetailController.java 151 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationOrderChangeController.java 259 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceOrderController.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChange.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChangeDetail.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationOrderChange.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamTechnicalStatusChangeDetailMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamTechnicalStatusChangeDetailMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamSecondMaintenanceQuery.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamSecondMaintenanceRequest.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusChangeQuery.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusChangeRequest.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusEvaluationOrderChangeRequest.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamThirdMaintenanceRequest.java 124 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeDetailService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeService.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationOrderChangeService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceOrderService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeDetailServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderChangeServiceImpl.java 268 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java 470 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysPosition.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
db/430É豸¹ÜÀíÊý¾Ý¿âÉè¼Æ.pdma.json
@@ -2,9 +2,9 @@
  "name": "430设备管理数据库设计",
  "describe": "描述设备管理数据库设计文档",
  "avatar": "",
  "version": "4.9.4",
  "version": "4.9.2",
  "createdTime": "2025-3-10 16:38:19",
  "updatedTime": "2025-7-15 10:15:51",
  "updatedTime": "2025-7-16 17:21:35",
  "dbConns": [],
  "profile": {
    "default": {
@@ -11608,62 +11608,8 @@
          "id": "F373BC95-E10E-411A-AE0B-71F1D5EF4F17"
        },
        {
          "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": "522BCC0E-5AE9-4473-BE36-A68202A7E1ED"
        },
        {
          "defKey": "fault_name",
          "defName": "故障简称",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "A55D711F-243B-4B6B-84E0-471527DAE875"
        },
        {
          "defKey": "fault_type",
          "defName": "故障分类",
          "comment": "",
          "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": "B924D54E-5C8E-4B90-AF11-3D5D68F034ED"
        },
        {
          "defKey": "fault_description",
          "defName": "故障描述",
          "defName": "故障现象",
          "comment": "",
          "type": "",
          "len": "",
@@ -11680,9 +11626,93 @@
          "id": "71CB6A5B-C6A4-4178-86E7-B188B4BFFB9D"
        },
        {
          "defKey": "report_status",
          "defName": "报修状态",
          "defKey": "batch_number",
          "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": "7DDAA58A-8BCD-46B2-BF50-F8751C7B0546",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "processing_part",
          "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": "A1327669-BB19-4E4F-8763-DD3BBB6993E5",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "quantity",
          "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": "D7FFA6FF-370C-4A0A-A1F1-2ECF66C8A832",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "is_accidents_register",
          "defName": "设备事故",
          "comment": "是 å¦",
          "type": "",
          "len": "",
          "scale": "",
@@ -11694,8 +11724,92 @@
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
          "id": "1229A626-1039-4386-A28C-25297478328B"
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "FF04FBBF-02C3-491C-8D95-8D3A4DE60A40"
        },
        {
          "defKey": "scrap_part_number",
          "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": "983A64CC-9752-4C10-A244-776B0DB2270F",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "scrap_part_quantity",
          "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": "D1C7745F-1717-4112-9909-DFE10EA0DAC7",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "scrap_part_value",
          "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": "F43C5442-691E-4549-BBFB-EECB47472E5D",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "remark",
@@ -11899,48 +12013,12 @@
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "hideInGraph": true,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "7A45AA5D-1A2D-484F-B564-FAE0428A59E6"
        },
        {
          "defKey": "quantity",
          "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": "B172710B-177A-4760-818A-265145802A2A"
        },
        {
          "defKey": "batch_number",
          "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": "69024643-A698-45D1-A0B7-1CBCDF639CBB"
        },
        {
          "defKey": "report_id",
@@ -11967,7 +12045,7 @@
          "attr7": "",
          "attr8": "",
          "attr9": "",
          "id": "1F583EB0-0FD8-4951-B0AE-E453CE366C7D",
          "id": "E5492721-379D-4D49-B17B-A851D047FE1B",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
@@ -11995,8 +12073,26 @@
          "attr7": "",
          "attr8": "",
          "attr9": "",
          "id": "39403769-A825-402B-A6EF-264999620528",
          "id": "E6F3DCBF-206B-43F5-B96D-C044CE796DC4",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "quantity",
          "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": "B172710B-177A-4760-818A-265145802A2A"
        },
        {
          "defKey": "confirmer",
@@ -12329,34 +12425,6 @@
          "uiHint": "",
          "id": "5393C462-62DE-45B9-8882-CC6199054B13",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098"
        },
        {
          "defKey": "fault_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": "47BD4539-2770-4537-A9EF-CC3BE1E92C01",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        }
      ],
      "correlations": [],
@@ -29066,6 +29134,42 @@
          "uiHint": null
        },
        {
          "defKey": "equipment_manager_signature_result",
          "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": "6F893E15-38C2-4B49-B9B1-8D693D0FCADE"
        },
        {
          "defKey": "equipment_manager_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": "3D0D5A7E-D831-4DCF-8EE6-4929FC02BB81"
        },
        {
          "defKey": "depart_manager_signature",
          "defName": "部门领导签字",
          "comment": "根据变更原因类型区分不同的人审批",
@@ -29102,6 +29206,24 @@
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "id": "6916268E-683D-4550-B7AB-8C89AD1A5E16",
          "uiHint": null
        },
        {
          "defKey": "depart_manager_signature_result",
          "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": "2FDCCD31-8269-4971-97A9-057021E4148D"
        },
        {
          "defKey": "depart_manager_comment",
@@ -29159,6 +29281,24 @@
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "id": "34D18DFD-4171-4BC3-8940-3BBA50A05501",
          "uiHint": null
        },
        {
          "defKey": "production_support_signature_result",
          "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": "7D3E8B25-E8CF-4FF9-9028-705E27461D72"
        },
        {
          "defKey": "production_support_comment",
@@ -29507,6 +29647,24 @@
          "id": "93F32EBA-AAA0-447E-8245-C00E57E6A2D6"
        },
        {
          "defKey": "factory_org_code",
          "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": "7C43799B-BAC6-4747-ACCB-0E5B5FE0BAB8"
        },
        {
          "defKey": "designer",
          "defName": "编制人",
          "comment": "",
@@ -29544,7 +29702,7 @@
        },
        {
          "defKey": "depart_header_signature",
          "defName": "使用单位室主管签字",
          "defName": "使用单位室级主管签字",
          "comment": "",
          "type": "",
          "len": "",
@@ -29562,7 +29720,7 @@
        },
        {
          "defKey": "depart_header_signature_time",
          "defName": "使用单位室主管签字时间",
          "defName": "使用单位室级主管签字时间",
          "comment": "",
          "type": "",
          "len": "",
@@ -29579,8 +29737,26 @@
          "id": "E0CF80C5-1DEC-497D-A921-11F8D28FDDDD"
        },
        {
          "defKey": "depart_header_signature_comment",
          "defName": "使用单位室主管意见",
          "defKey": "depart_header_signature_result",
          "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": "B2EAC775-642D-4E3C-8399-83D0D8CE851E"
        },
        {
          "defKey": "depart_header_comment",
          "defName": "使用单位室级主管意见",
          "comment": "",
          "type": "",
          "len": "",
@@ -29598,7 +29774,7 @@
        },
        {
          "defKey": "depart_leader_signature",
          "defName": "使用单位部主管签字",
          "defName": "使用单位部级主管签字",
          "comment": "",
          "type": "",
          "len": "",
@@ -29616,7 +29792,7 @@
        },
        {
          "defKey": "depart_leader_signature_time",
          "defName": "使用单位部主管签字时间",
          "defName": "使用单位部级主管签字时间",
          "comment": "",
          "type": "",
          "len": "",
@@ -29633,8 +29809,26 @@
          "id": "C77D4C1E-8FB6-4AA4-984F-98B64E7FFE5E"
        },
        {
          "defKey": "depart_leader_signature_comment",
          "defName": "使用单位部主管签字",
          "defKey": "depart_leader_signature_result",
          "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": "F39CEC10-976B-41C8-8E4E-D32AA6731BC7"
        },
        {
          "defKey": "depart_leader_comment",
          "defName": "使用单位部级主管签字",
          "comment": "",
          "type": "",
          "len": "",
@@ -29677,6 +29871,24 @@
          "attr9": "",
          "id": "C4A479A5-B9DD-4911-B26A-ABEA85EF875A",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "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": "EEFBECA7-F8B1-4667-8963-4B8E7A9C9C5D"
        }
      ],
      "correlations": [],
@@ -29922,6 +30134,24 @@
          "uiHint": "",
          "id": "AA935277-83FE-4AC6-A827-E10EFD3C8024",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098"
        },
        {
          "defKey": "change_order_id",
          "defName": "变更ID",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "F4CA33AF-7AFC-481E-BC01-0263405029BE"
        },
        {
          "defKey": "equipment_id",
@@ -30887,7 +31117,7 @@
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "autoIncrement": true,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
db/LS/dict_ls.sql
@@ -1,6 +1,6 @@
--点检工单状态
delete from [dbo].[sys_dict] where dict_code='inspection_status';
delete from [dbo].[sys_dict_item] where dict_id in (select id from [dbo].[sys_dict] where dict_code='inspection_status');
delete from [dbo].[sys_dict] where dict_code='inspection_status';
INSERT INTO [dbo].[sys_dict] ([id], [dict_name], [dict_code], [description], [del_flag], [create_by], [create_time], [update_by], [update_time], [type]) VALUES (N'1907309268858290177', N'点检状态', N'inspection_status', N'设备管理-点检状态', 0, N'admin', '2025-04-02 13:49:00.0000000', N'admin', '2025-04-02 13:49:19.6510000', NULL);
@@ -12,8 +12,8 @@
INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1919938438058639361', N'1907309268858290177', N'已过期', N'EXPIRED', '', 6, 1, N'admin', '2025-05-07 10:12:49.0210000', NULL, NULL);
--点检结果状态
delete from [dbo].[sys_dict] where dict_code='inspection_project_result';
delete from [dbo].[sys_dict_item] where dict_id in (select id from [dbo].[sys_dict] where dict_code='inspection_project_result');
delete from [dbo].[sys_dict] where dict_code='inspection_project_result';
INSERT INTO [dbo].[sys_dict] ([id], [dict_name], [dict_code], [description], [del_flag], [create_by], [create_time], [update_by], [update_time], [type]) VALUES (N'1745288324644782081', N'点检结果', N'inspection_project_result', '', 0, N'admin', '2024-01-11 11:35:37.1360000', NULL, NULL, NULL);
@@ -26,3 +26,46 @@
delete from [dbo].[sys_fill_rule] where rule_code='org_repair_deport_rule';
INSERT INTO [dbo].[sys_fill_rule] ([id], [rule_name], [rule_code], [rule_class], [rule_params], [update_by], [update_time], [create_by], [create_time]) VALUES (N'1676142178556973058', N'维修部门班组编码生成', N'org_repair_deport_rule', N'org.jeecg.modules.system.rule.OrgCodeRepDepRule', N'{"parentId":""}', N'admin', '2025-07-03 11:27:21.0000000', NULL, NULL);
--三保工单
delete from [dbo].[sys_dict_item] where dict_id in (select id from [dbo].[sys_dict] where dict_code='third_maintenance_status');
delete from [dbo].[sys_dict] where dict_code='third_maintenance_status';
INSERT INTO [dbo].[sys_dict] ([id], [dict_name], [dict_code], [description], [del_flag], [create_by], [create_time], [update_by], [update_time], [type]) VALUES (N'1922909404263276545', N'三保状态', N'third_maintenance_status', N'设备管理使用', 0, N'admin', '2025-05-15 14:58:22.0000000', N'admin', '2025-05-15 14:58:49.8990000', NULL);
INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1922910056741789698', N'1922909404263276545', N'待保养', N'WAIT_MAINTENANCE', '', 1, 1, N'admin', '2025-05-15 15:00:58.1250000', NULL, NULL);
INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1922910108998623233', N'1922909404263276545', N'保养中', N'UNDER_MAINTENANCE', '', 2, 1, N'admin', '2025-05-15 15:01:10.5850000', NULL, NULL);
INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1922910161423228930', N'1922909404263276545', N'已完成', N'COMPLETE', '', 10, 1, N'admin', '2025-05-15 15:01:23.0000000', N'admin', '2025-07-15 17:13:54.3750000');
INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1922910236320915457', N'1922909404263276545', N'已作废', N'ABOLISH', '', 16, 1, N'admin', '2025-05-15 15:01:40.0000000', N'admin', '2025-07-15 17:14:40.2330000');
INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1943958519301062657', N'1922909404263276545', N'待检查', N'WAIT_CHECK', '', 3, 1, N'admin', '2025-07-12 17:00:02.0000000', N'admin', '2025-07-12 17:01:49.4260000');
INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1943958562884075521', N'1922909404263276545', N'操作人签字', N'OPERATOR_SIGNATURE', '', 6, 1, N'admin', '2025-07-12 17:00:13.0000000', N'admin', '2025-07-15 17:12:54.6730000');
INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1943958611886129153', N'1922909404263276545', N'维修人签字', N'REPAIRMAN_SIGNATURE', '', 7, 1, N'admin', '2025-07-12 17:00:24.0000000', N'admin', '2025-07-15 17:13:01.7110000');
INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_or der], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1943958653095165954', N'1922909404263276545', N'维修室主任签字', N'REPAIR_MANAGER_SIGNATURE', '', 8, 1, N'admin', '2025-07-12 17:00:34.0000000', N'admin', '2025-07-15 17:13:42.1570000');
INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1943958696120336385', N'1922909404263276545', N'设备检查人签字', N'INSPECTOR_SIGNATURE', '', 9, 1, N'admin', '2025-07-12 17:00:44.0000000', N'admin', '2025-07-15 17:13:47.3310000');
INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1943958736733782017', N'1922909404263276545', N'已锁定', N'FREEZE', '', 11, 1, N'admin', '2025-07-12 17:00:54.0000000', N'admin', '2025-07-15 17:14:00.0630000');
INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1943958772678967297', N'1922909404263276545', N'变更中', N'CHANGE', '', 14, 1, N'admin', '2025-07-12 17:01:03.0000000', N'admin', '2025-07-15 17:14:14.6490000');
INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1943958818908585985', N'1922909404263276545', N'已取消', N'CANCEL', '', 15, 1, N'admin', '2025-07-12 17:01:14.0000000', N'admin', '2025-07-15 17:14:32.3000000');
INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1945048767556866049', N'1922909404263276545', N'第一次验收中', N'UNDER_FIRST_ACCEPTANCE', '', 4, 1, N'admin', '2025-07-15 17:12:18.1080000', NULL, NULL);
INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1945048856438362113', N'1922909404263276545', N'第二次验收中', N'UNDER_SECOND_ACCEPTANCE', '', 5, 1, N'admin', '2025-07-15 17:12:39.2920000', NULL, NULL);
delete from [dbo].[sys_dict_item] where dict_id in (select id from [dbo].[sys_dict] where dict_code='third_maintenance_result');
delete from [dbo].[sys_dict] where dict_code='third_maintenance_result';
INSERT INTO [dbo].[sys_dict] ([id], [dict_name], [dict_code], [description], [del_flag], [create_by], [create_time], [update_by], [update_time], [type]) VALUES (N'1945421792382902274', N'三保结果', N'third_maintenance_result', '', 0, N'admin', '2025-07-16 17:54:34.1430000', NULL, NULL, NULL);
INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1945421858971672578', N'1945421792382902274', N'正常', N'NORMAL', '', 1, 1, N'admin', '2025-07-16 17:54:50.0220000', NULL, NULL);
INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1945421898058391553', N'1945421792382902274', N'异常', N'ANOMALY', '', 2, 1, N'admin', '2025-07-16 17:54:59.3460000', NULL, NULL);
--设备功能是否
delete from [dbo].[sys_dict_item] where dict_id in (select id from [dbo].[sys_dict] where dict_code='equipment_function_yn');
delete from [dbo].[sys_dict] where dict_code='equipment_function_yn';
INSERT INTO [dbo].[sys_dict] ([id], [dict_name], [dict_code], [description], [del_flag], [create_by], [create_time], [update_by], [update_time], [type]) VALUES (N'1945027073496698882', N'设备功能是否', N'equipment_function_yn', N'设备管理使用', 0, N'admin', '2025-07-15 15:46:05.8310000', NULL, NULL, NULL);
INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1945027150818693122', N'1945027073496698882', N'是', N'Y', '', 1, 1, N'admin', '2025-07-15 15:46:24.2780000', NULL, NULL);
INSERT INTO [dbo].[sys_dict_item] ([id], [dict_id], [item_text], [item_value], [description], [sort_order], [status], [create_by], [create_time], [update_by], [update_time]) VALUES (N'1945027186277339138', N'1945027073496698882', N'否', N'N', '', 2, 1, N'admin', '2025-07-15 15:46:32.7290000', NULL, NULL);
db/ZHR/position_zhr.sql
@@ -1,10 +1,16 @@
INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1909079838201671681', N'PCR0001', N'操作工', NULL, NULL, N'admin', '2025-04-07 11:04:37.0720000', NULL, NULL, N'A01');
INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1909079910381449218', N'PCR0002', N'维修工', NULL, NULL, N'admin', '2025-04-07 11:04:54.2810000', NULL, NULL, N'A01');
INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1909079910381449219', N'PCR0005', N'设备能源部', NULL, NULL, N'admin', '2025-04-07 12:04:55.0000000', NULL, NULL, N'A01A01');
INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1909079939120820226', N'PCR0003', N'设备检验员', NULL, NULL, N'admin', '2025-04-07 11:05:01.0000000', N'admin', '2025-05-19 15:42:08.0230000', N'A01');
INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1909079939120820226', N'PCR0003', N'设备检验员', NULL, NULL, N'admin', '2025-04-07 11:05:01.0000000', N'admin', '2025-07-11 19:48:40.1340000', N'A01');
INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1909079969235922946', N'PCR0004', N'车间设备管理员', NULL, NULL, N'admin', '2025-04-07 11:05:08.0000000', N'admin', '2025-05-19 15:41:14.8330000', N'A01');
INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1922222199530192898', N'PCR0006', N'生产保障部', NULL, NULL, N'admin', '2025-05-13 17:27:40.0000000', N'admin', '2025-05-19 15:41:34.2050000', N'A01');
INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1927291533460058114', N'PCR0007', N'工艺员', NULL, NULL, N'admin', '2025-05-27 17:11:23.5840000', NULL, NULL, N'A01');
INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1922222199530192898', N'PCR0006', N'生产设备管理主管', NULL, NULL, N'admin', '2025-05-13 17:27:40.0000000', N'admin', '2025-07-16 12:02:09.7730000', N'A01');
INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1927291533460058114', N'PCR0007', N'工艺员', NULL, NULL, N'admin', '2025-05-27 17:11:23.0000000', N'admin', '2025-07-11 19:44:16.5370000', N'A01');
INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1942474796260507650', N'PCR0008', N'维修室主任', NULL, NULL, N'admin', '2025-07-08 14:44:15.0000000', N'admin', '2025-07-08 14:47:27.8780000', N'A01A01');
INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1942475634831900673', N'PCR0009', N'生产设备技术主管', NULL, NULL, N'admin', '2025-07-08 14:47:35.4530000', NULL, NULL, N'A01A01');
INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1943644324128256002', N'PCR0010', N'使用单位技术主管', NULL, NULL, N'admin', '2025-07-11 20:11:32.6910000', NULL, NULL, N'A01A01');
INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1942475634831900673', N'PCR0009', N'生产设备技术主管', NULL, NULL, N'admin', '2025-07-08 14:47:35.0000000', N'admin', '2025-07-11 19:49:30.1330000', N'A01A01');
INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1943637993744961537', N'PCR0010', N'使用车间技术主管', NULL, NULL, N'admin', '2025-07-11 19:46:23.4140000', NULL, NULL, N'A01A01');
INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1945331595416137730', N'PCR0011', N'使用单位主管室级领导', NULL, NULL, N'admin', '2025-07-16 11:56:09.5140000', NULL, NULL, N'A01A01');
INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1945331725208875010', N'PCR0012', N'生产指挥部室级领导', NULL, NULL, N'admin', '2025-07-16 11:56:40.4620000', NULL, NULL, N'A01A01');
INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1945331935767130113', N'PCR0013', N'维修区长', NULL, NULL, N'admin', '2025-07-16 11:57:30.6600000', NULL, NULL, N'A01A01');
INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1945332049952862210', N'PCR0014', N'资产管理部', NULL, NULL, N'admin', '2025-07-16 11:57:57.8870000', NULL, NULL, N'A01A01');
INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1945332106357862401', N'PCR0015', N'项目主管部', NULL, NULL, N'admin', '2025-07-16 11:58:11.3330000', NULL, NULL, N'A01A01');
INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1945332200423518209', N'PCR0016', N'运维商务室主任', NULL, NULL, N'admin', '2025-07-16 11:58:33.7600000', NULL, NULL, N'A01A01');
INSERT INTO [dbo].[sys_position] ([id], [code], [name], [post_rank], [company_id], [create_by], [create_time], [update_by], [update_time], [sys_org_code]) VALUES (N'1945333327185539073', N'PCR0017', N'运维管理室室主任', NULL, NULL, N'admin', '2025-07-16 12:03:02.4010000', NULL, NULL, N'A01A01');
lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java
@@ -366,6 +366,12 @@
    String YN_Y = "Y";
    String YN_N = "N";
    /**
     * 1是0否
     */
    String YN_O = "0";
    String YN_1 = "1";
    /**===============================================================================================*/
    /**
lxzn-boot-base-core/src/main/java/org/jeecg/common/util/TranslateDictTextUtils.java
@@ -26,6 +26,23 @@
    @Autowired
    private RedisTemplate redisTemplate;
    public String translateField(String field, String value, String dictCode) {
        if (StringUtils.isBlank(value)) {
            return "";
        }
        // å­—典数据列表, key = å­—å…¸code,value=数据列表
        Map<String, List<String>> dataListMap = new HashMap<>(5);
        dataListMap.put(dictCode, this.listAddAllDeduplicate(new ArrayList<>(), Arrays.asList(value.split(","))));
        //step.2 è°ƒç”¨ç¿»è¯‘方法,一次性翻译
        Map<String, List<DictModel>> translText = this.translateAllDict(dataListMap);
        //翻译
        List<DictModel> dictModels = translText.get(dictCode);
        if (CollectionUtil.isEmpty(dictModels)) {
            return "";
        }
        return this.translDictText(dictModels, value);
    }
    public void translateField(String field, String value, JSONObject item, String dictCode) {
        if (StringUtils.isBlank(value)) {
            item.put(field + CommonConstant.DICT_TEXT_SUFFIX, null);
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java
@@ -70,7 +70,7 @@
    String PCR0004 = "PCR0004";
    //设备能源部
    String PCR0005 = "PCR0005";
    //生产保障部
    //生产设备管理主管
    String PCR0006 = "PCR0006";
    //工艺员
    String PCR0007 = "PCR0007";
@@ -80,6 +80,20 @@
    String PCR0009 = "PCR0009";
    //使用车间技术主管
    String PCR0010 = "PCR0010";
    //使用单位主管室级领导
    String PCR0011 = "PCR0011";
    //生产指挥部室级领导
    String PCR0012 = "PCR0012";
    //维修区长
    String PCR0013 = "PCR0013";
    //资产管理部
    String PCR0014 = "PCR0014";
    //项目主管部
    String PCR0015 = "PCR0015";
    //运维商务室主任
    String PCR0016 = "PCR0016";
    //运维管理室室主任
    String PCR0017 = "PCR0017";
    //通过、驳回
    String APPROVED = "1";
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusChangeOrderStatusEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
package org.jeecg.modules.eam.constant;
public enum TechnicalStatusChangeOrderStatusEnum {
    WAIT_SUBMIT, //待提交
    DEPART_HEADER_SIGNING, //使用单位室级主管签字中
    DEPART_LEADER_SIGNING, //使用单位部级主管签字中
    ABOLISH, //已作废
    REJECTED, //已驳回
    COMPLETED, //已完成
    ;
    public static TechnicalStatusChangeOrderStatusEnum getInstance(String code) {
        TechnicalStatusChangeOrderStatusEnum[] values = TechnicalStatusChangeOrderStatusEnum.values();
        for (TechnicalStatusChangeOrderStatusEnum value : values) {
            if (value.name().equals(code)) {
                return value;
            }
        }
        return null;
    }
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusChangeReasonEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package org.jeecg.modules.eam.constant;
public enum TechnicalStatusChangeReasonEnum {
    EQUIPMENT_MAJOR, //设备大修
    EQUIPMENT_RELOCATION, //设备搬迁
    EQUIPMENT_RETROFITTING, //设备改造
    OTHER, //其他
    ;
    public static TechnicalStatusChangeReasonEnum getInstance(String code) {
        TechnicalStatusChangeReasonEnum[] values = TechnicalStatusChangeReasonEnum.values();
        for (TechnicalStatusChangeReasonEnum value : values) {
            if (value.name().equals(code)) {
                return value;
            }
        }
        return null;
    }
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ThirdMaintenanceStatusEnum.java
@@ -1,9 +1,14 @@
package org.jeecg.modules.eam.constant;
import lombok.Getter;
@Getter
public enum ThirdMaintenanceStatusEnum {
    WAIT_MAINTENANCE, //待保养
    UNDER_MAINTENANCE, //保养中
    WAIT_CHECK, //待检查
    UNDER_FIRST_ACCEPTANCE, //第一次验收中
    UNDER_SECOND_ACCEPTANCE, //第二次验收中
    OPERATOR_SIGNATURE, // æ“ä½œäººç­¾å­—
    REPAIRMAN_SIGNATURE, // ç»´ä¿®äººç­¾å­—
    REPAIR_MANAGER_SIGNATURE, //维修室主任签字
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ThridMaintenanceResultEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
package org.jeecg.modules.eam.constant;
public enum ThridMaintenanceResultEnum {
    NORMAL, //正常
    ANOMALY //异常
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamThirdMaintenanceOrder.java
@@ -1,6 +1,5 @@
package org.jeecg.modules.eam.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
@@ -98,7 +97,7 @@
     */
    @Excel(name = "维修人", width = 15)
    @ApiModelProperty(value = "维修人")
    @Dict(dicCode = "sys_user, realname, username")
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String repairman;
    /**
     * ä¿å…»çŠ¶æ€
@@ -119,12 +118,14 @@
     */
    @Excel(name = "设备功能是否齐备;是否", width = 15)
    @ApiModelProperty(value = "设备功能是否齐备;是否")
    @Dict(dicCode = "yn")
    private String fullyFunctional;
    /**
     * è®¾å¤‡åŠŸèƒ½æ˜¯å¦é½å¤‡;是否
     */
    @Excel(name = "设备能否正常运转;是否", width = 15)
    @ApiModelProperty(value = "设备功能是否齐备;是否")
    @Dict(dicCode = "yn")
    private String runningNormally;
    /**
     * é—®é¢˜æè¿°
@@ -159,7 +160,6 @@
     */
    @Excel(name = "协助操作人", width = 15)
    @ApiModelProperty(value = "协助操作人")
    @Dict(dicCode = "sys_user, realname, username")
    private String assistantOperator;
    /**
     * æ“ä½œäººç­¾å­—æ—¶é—´
@@ -181,7 +181,6 @@
     */
    @Excel(name = "协助维修人", width = 15)
    @ApiModelProperty(value = "协助维修人")
    @Dict(dicCode = "sys_user, realname, username")
    private String assistantRepairman;
    /**
     * ç»´ä¿®äººç­¾å­—æ—¶é—´
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeController.java
@@ -1,6 +1,6 @@
package org.jeecg.modules.eam.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
@@ -9,16 +9,16 @@
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.eam.constant.TechnicalStatusChangeOrderStatusEnum;
import org.jeecg.modules.eam.constant.TechnicalStatusEvaluationOrderChangeStatusEnum;
import org.jeecg.modules.eam.entity.EamTechnicalStatusChange;
import org.jeecg.modules.eam.request.EamTechnicalStatusChangeQuery;
import org.jeecg.modules.eam.request.EamTechnicalStatusChangeRequest;
import org.jeecg.modules.eam.service.IEamTechnicalStatusChangeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
 /**
 * @Description: æŠ€æœ¯çŠ¶æ€å˜æ›´ç”³è¯·
@@ -37,7 +37,7 @@
    /**
     * åˆ†é¡µåˆ—表查询
     *
     * @param eamTechnicalStatusChange
     * @param query
     * @param pageNo
     * @param pageSize
     * @param req
@@ -45,72 +45,100 @@
     */
    @ApiOperation(value="技术状态变更申请-分页列表查询", notes="技术状态变更申请-分页列表查询")
    @GetMapping(value = "/list")
    public Result<?> queryPageList(EamTechnicalStatusChange eamTechnicalStatusChange,
    public Result<?> queryPageList(EamTechnicalStatusChangeQuery query,
                                   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                   HttpServletRequest req) {
        QueryWrapper<EamTechnicalStatusChange> queryWrapper = QueryGenerator.initQueryWrapper(eamTechnicalStatusChange, req.getParameterMap());
        Page<EamTechnicalStatusChange> page = new Page<EamTechnicalStatusChange>(pageNo, pageSize);
        IPage<EamTechnicalStatusChange> pageList = eamTechnicalStatusChangeService.page(page, queryWrapper);
        IPage<EamTechnicalStatusChange> pageList = eamTechnicalStatusChangeService.queryPageList(page, query);
        return Result.OK(pageList);
    }
    
    /**
     * æ·»åŠ 
     *
     * @param eamTechnicalStatusChange
     * @param request
     * @return
     */
    @AutoLog(value = "技术状态变更申请-添加")
    @ApiOperation(value="技术状态变更申请-添加", notes="技术状态变更申请-添加")
    @PostMapping(value = "/add")
    public Result<?> add(@RequestBody EamTechnicalStatusChange eamTechnicalStatusChange) {
        eamTechnicalStatusChangeService.save(eamTechnicalStatusChange);
    public Result<?> add(@RequestBody EamTechnicalStatusChangeRequest request) {
        if (request == null) {
            return Result.error("添加的对象不能为空!");
        }
        boolean b = eamTechnicalStatusChangeService.addEamTechnicalStatusChange(request);
        if (!b) {
            return Result.error("添加失败!");
        }
        return Result.OK("添加成功!");
    }
    
    /**
     * ç¼–辑
     *
     * @param eamTechnicalStatusChange
     * @param request
     * @return
     */
    @AutoLog(value = "技术状态变更申请-编辑")
    @ApiOperation(value="技术状态变更申请-编辑", notes="技术状态变更申请-编辑")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
    public Result<?> edit(@RequestBody EamTechnicalStatusChange eamTechnicalStatusChange) {
        eamTechnicalStatusChangeService.updateById(eamTechnicalStatusChange);
    public Result<?> edit(@RequestBody EamTechnicalStatusChangeRequest request) {
        if (request == null) {
            return Result.error("编辑的对象不能为空!");
        }
        boolean b = eamTechnicalStatusChangeService.editEamTechnicalStatusChange(request);
        if (!b) {
            return Result.error("编辑失败!");
        }
        return Result.OK("编辑成功!");
    }
    /**
     * é€šè¿‡id删除
     *
     * @param id
     * @return
     */
    @AutoLog(value = "技术状态变更申请-通过id删除")
    @ApiOperation(value="技术状态变更申请-通过id删除", notes="技术状态变更申请-通过id删除")
    @DeleteMapping(value = "/delete")
    public Result<?> delete(@RequestParam(name="id",required=true) String id) {
        eamTechnicalStatusChangeService.removeById(id);
        return Result.OK("删除成功!");
    }
    /**
     * æ‰¹é‡åˆ é™¤
     *
     * @param ids
     * @return
     */
    @AutoLog(value = "技术状态变更申请-批量删除")
    @ApiOperation(value="技术状态变更申请-批量删除", notes="技术状态变更申请-批量删除")
    @DeleteMapping(value = "/deleteBatch")
    public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
        this.eamTechnicalStatusChangeService.removeByIds(Arrays.asList(ids.split(",")));
        return Result.OK("批量删除成功!");
    }
     @AutoLog(value = "技术状态变更申请-提交")
     @ApiOperation(value = "技术状态变更申请-提交", notes = "技术状态变更申请-提交")
     @GetMapping("/submit")
     public Result<?> submit(@RequestParam(name = "id") String id) {
         boolean b = eamTechnicalStatusChangeService.submit(id);
         if (!b) {
             return Result.error("提交失败!");
         }
         return Result.OK("提交成功!");
     }
     @AutoLog(value = "技术状态变更申请-作废")
     @ApiOperation(value = "技术状态变更申请-作废", notes = "技术状态变更申请-作废")
     @GetMapping("/abolish")
     public Result<?> abolish(@RequestParam(name = "id") String id) {
         EamTechnicalStatusChange entity = eamTechnicalStatusChangeService.getById(id);
         if (entity == null) {
             return Result.error("要作废的数据不存在,请刷新重试!");
         }
         if (!TechnicalStatusEvaluationOrderChangeStatusEnum.WAIT_SUBMIT.name().equals(entity.getChangeStatus())) {
             return Result.error("该状态的数据不允许进行作废!");
         }
         entity.setChangeStatus(TechnicalStatusChangeOrderStatusEnum.ABOLISH.name());
         eamTechnicalStatusChangeService.updateById(entity);
         return Result.OK("作废成功!");
     }
     @AutoLog(value = "技术状态变更申请-审批")
     @ApiOperation(value = "技术状态变更申请-审批", notes = "技术状态变更申请-审批")
     @PostMapping("/approval")
     public Result<?> approval(@RequestBody EamTechnicalStatusChangeRequest request) {
         if (request == null) {
             return Result.error("审批的对象不能为空!");
         }
         // æ£€æŸ¥è¯·æ±‚参数
         if (StrUtil.isBlank(request.getTaskId()) || StrUtil.isBlank(request.getDataId()) || StrUtil.isBlank(request.getInstanceId())) {
             return Result.error("审批任务错误或不存在!");
         }
         EamTechnicalStatusChange b = eamTechnicalStatusChangeService.approval(request);
         if (b == null) {
             return Result.error("操作失败!");
         }
         return Result.ok("操作成功!");
     }
    /**
     * é€šè¿‡id查询
     *
@@ -124,28 +152,5 @@
        EamTechnicalStatusChange eamTechnicalStatusChange = eamTechnicalStatusChangeService.getById(id);
        return Result.OK(eamTechnicalStatusChange);
    }
  /**
   * å¯¼å‡ºexcel
   *
   * @param request
   * @param eamTechnicalStatusChange
   */
  @RequestMapping(value = "/exportXls")
  public ModelAndView exportXls(HttpServletRequest request, EamTechnicalStatusChange eamTechnicalStatusChange) {
      return super.exportXls(request, eamTechnicalStatusChange, EamTechnicalStatusChange.class, "技术状态变更申请");
  }
  /**
   * é€šè¿‡excel导入数据
   *
   * @param request
   * @param response
   * @return
   */
  @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
  public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
      return super.importExcel(request, response, EamTechnicalStatusChange.class);
  }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeDetailController.java
@@ -1,151 +1,44 @@
package org.jeecg.modules.eam.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail;
import org.jeecg.modules.eam.service.IEamTechnicalStatusChangeDetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
 /**
/**
 * @Description: æŠ€æœ¯çŠ¶æ€å˜æ›´ç”³è¯·æ˜Žç»†
 * @Author: jeecg-boot
 * @Date:   2025-07-09
 * @Date: 2025-07-09
 * @Version: V1.0
 */
@Slf4j
@Api(tags="技术状态变更申请明细")
@Api(tags = "技术状态变更申请明细")
@RestController
@RequestMapping("/eam/eamTechnicalStatusChangeDetail")
public class EamTechnicalStatusChangeDetailController extends JeecgController<EamTechnicalStatusChangeDetail, IEamTechnicalStatusChangeDetailService> {
    @Autowired
    private IEamTechnicalStatusChangeDetailService eamTechnicalStatusChangeDetailService;
    /**
     * åˆ†é¡µåˆ—表查询
     *
     * @param eamTechnicalStatusChangeDetail
     * @param pageNo
     * @param pageSize
     * @param req
     * @return
     */
    @ApiOperation(value="技术状态变更申请明细-分页列表查询", notes="技术状态变更申请明细-分页列表查询")
    @GetMapping(value = "/list")
    public Result<?> queryPageList(EamTechnicalStatusChangeDetail eamTechnicalStatusChangeDetail,
                                   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                   HttpServletRequest req) {
        QueryWrapper<EamTechnicalStatusChangeDetail> queryWrapper = QueryGenerator.initQueryWrapper(eamTechnicalStatusChangeDetail, req.getParameterMap());
        Page<EamTechnicalStatusChangeDetail> page = new Page<EamTechnicalStatusChangeDetail>(pageNo, pageSize);
        IPage<EamTechnicalStatusChangeDetail> pageList = eamTechnicalStatusChangeDetailService.page(page, queryWrapper);
        return Result.OK(pageList);
    }
    /**
     * æ·»åŠ 
     *
     * @param eamTechnicalStatusChangeDetail
     * @return
     */
    @AutoLog(value = "技术状态变更申请明细-添加")
    @ApiOperation(value="技术状态变更申请明细-添加", notes="技术状态变更申请明细-添加")
    @PostMapping(value = "/add")
    public Result<?> add(@RequestBody EamTechnicalStatusChangeDetail eamTechnicalStatusChangeDetail) {
        eamTechnicalStatusChangeDetailService.save(eamTechnicalStatusChangeDetail);
        return Result.OK("添加成功!");
    }
    /**
     * ç¼–辑
     *
     * @param eamTechnicalStatusChangeDetail
     * @return
     */
    @AutoLog(value = "技术状态变更申请明细-编辑")
    @ApiOperation(value="技术状态变更申请明细-编辑", notes="技术状态变更申请明细-编辑")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
    public Result<?> edit(@RequestBody EamTechnicalStatusChangeDetail eamTechnicalStatusChangeDetail) {
        eamTechnicalStatusChangeDetailService.updateById(eamTechnicalStatusChangeDetail);
        return Result.OK("编辑成功!");
    }
    /**
     * é€šè¿‡id删除
     *
     * @param id
     * @return
     */
    @AutoLog(value = "技术状态变更申请明细-通过id删除")
    @ApiOperation(value="技术状态变更申请明细-通过id删除", notes="技术状态变更申请明细-通过id删除")
    @DeleteMapping(value = "/delete")
    public Result<?> delete(@RequestParam(name="id",required=true) String id) {
        eamTechnicalStatusChangeDetailService.removeById(id);
        return Result.OK("删除成功!");
    }
    /**
     * æ‰¹é‡åˆ é™¤
     *
     * @param ids
     * @return
     */
    @AutoLog(value = "技术状态变更申请明细-批量删除")
    @ApiOperation(value="技术状态变更申请明细-批量删除", notes="技术状态变更申请明细-批量删除")
    @DeleteMapping(value = "/deleteBatch")
    public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
        this.eamTechnicalStatusChangeDetailService.removeByIds(Arrays.asList(ids.split(",")));
        return Result.OK("批量删除成功!");
    }
    /**
     * é€šè¿‡id查询
     *
     * @param id
     * @return
     */
    @AutoLog(value = "技术状态变更申请明细-通过id查询")
    @ApiOperation(value="技术状态变更申请明细-通过id查询", notes="技术状态变更申请明细-通过id查询")
    @GetMapping(value = "/queryById")
    public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
        EamTechnicalStatusChangeDetail eamTechnicalStatusChangeDetail = eamTechnicalStatusChangeDetailService.getById(id);
        return Result.OK(eamTechnicalStatusChangeDetail);
    }
    @Autowired
    private IEamTechnicalStatusChangeDetailService orderDetailService;
  /**
   * å¯¼å‡ºexcel
   *
   * @param request
   * @param eamTechnicalStatusChangeDetail
   */
  @RequestMapping(value = "/exportXls")
  public ModelAndView exportXls(HttpServletRequest request, EamTechnicalStatusChangeDetail eamTechnicalStatusChangeDetail) {
      return super.exportXls(request, eamTechnicalStatusChangeDetail, EamTechnicalStatusChangeDetail.class, "技术状态变更申请明细");
  }
  /**
   * é€šè¿‡excel导入数据
   *
   * @param request
   * @param response
   * @return
   */
  @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
  public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
      return super.importExcel(request, response, EamTechnicalStatusChangeDetail.class);
  }
    /**
     * ä¸€æ¬¡åŠ è½½
     *
     * @param orderId
     * @return
     */
    @ApiOperation(value = "技术状态变更申请明细-不分页列表查询", notes = "技术状态变更申请明细-不分页列表查询")
    @GetMapping(value = "/queryList")
    public Result<?> queryList(@RequestParam("orderId") String orderId) {
        List<EamTechnicalStatusChangeDetail> list = orderDetailService.queryList(orderId);
        return Result.OK(list);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationOrderChangeController.java
@@ -1,7 +1,6 @@
package org.jeecg.modules.eam.controller;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
@@ -10,155 +9,147 @@
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.eam.constant.TechnicalStatusEvaluationOrderChangeStatusEnum;
import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationOrderChange;
import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderChangeQuery;
import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderChangeRequest;
import org.jeecg.modules.eam.service.IEamTechnicalStatusEvaluationOrderChangeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
 /**
/**
 * @Description: æŠ€æœ¯çŠ¶æ€é‰´å®šå·¥å•å˜æ›´
 * @Author: jeecg-boot
 * @Date:   2025-07-09
 * @Date: 2025-07-09
 * @Version: V1.0
 */
@Slf4j
@Api(tags="技术状态鉴定工单变更")
@Api(tags = "技术状态鉴定工单变更")
@RestController
@RequestMapping("/eam/eamTechnicalStatusEvaluationOrderChange")
public class EamTechnicalStatusEvaluationOrderChangeController extends JeecgController<EamTechnicalStatusEvaluationOrderChange, IEamTechnicalStatusEvaluationOrderChangeService> {
    @Autowired
    private IEamTechnicalStatusEvaluationOrderChangeService eamTechnicalStatusEvaluationOrderChangeService;
    /**
     * åˆ†é¡µåˆ—表查询
     *
     * @param query
     * @param pageNo
     * @param pageSize
     * @param req
     * @return
     */
    @ApiOperation(value="技术状态鉴定工单变更-分页列表查询", notes="技术状态鉴定工单变更-分页列表查询")
    @GetMapping(value = "/list")
    public Result<?> queryPageList(EamTechnicalStatusEvaluationOrderChangeQuery query,
                                   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                   HttpServletRequest req) {
        Page<EamTechnicalStatusEvaluationOrderChange> page = new Page<EamTechnicalStatusEvaluationOrderChange>(pageNo, pageSize);
        IPage<EamTechnicalStatusEvaluationOrderChange> pageList = eamTechnicalStatusEvaluationOrderChangeService.queryPageList(page, query);
        return Result.OK(pageList);
    }
    /**
     * æ·»åŠ 
     *
     * @param request
     * @return
     */
    @AutoLog(value = "技术状态鉴定工单变更-添加")
    @ApiOperation(value="技术状态鉴定工单变更-添加", notes="技术状态鉴定工单变更-添加")
    @PostMapping(value = "/add")
    public Result<?> add(@RequestBody EamTechnicalStatusEvaluationOrderChange request) {
        if (request == null) {
            return Result.error("添加的对象不能为空!");
        }
        boolean b = eamTechnicalStatusEvaluationOrderChangeService.addTechnicalStatusEvaluationOrderChange(request);
        if (!b) {
            return Result.error("添加失败!");
        }
        return Result.OK("添加成功!");
    }
    /**
     * ç¼–辑
     *
     * @param request
     * @return
     */
    @AutoLog(value = "技术状态鉴定工单变更-编辑")
    @ApiOperation(value="技术状态鉴定工单变更-编辑", notes="技术状态鉴定工单变更-编辑")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
    public Result<?> edit(@RequestBody EamTechnicalStatusEvaluationOrderChange request) {
        if (request == null) {
            return Result.error("编辑的对象不能为空!");
        }
        boolean b = eamTechnicalStatusEvaluationOrderChangeService.editTechnicalStatusEvaluationOrderChange(request);
        if (!b) {
            return Result.error("编辑失败!");
        }
        return Result.OK("编辑成功!");
    }
    /**
     * é€šè¿‡id删除
     *
     * @param id
     * @return
     */
    @AutoLog(value = "技术状态鉴定工单变更-通过id删除")
    @ApiOperation(value="技术状态鉴定工单变更-通过id删除", notes="技术状态鉴定工单变更-通过id删除")
    @DeleteMapping(value = "/delete")
    public Result<?> delete(@RequestParam(name="id",required=true) String id) {
        eamTechnicalStatusEvaluationOrderChangeService.removeById(id);
        return Result.OK("删除成功!");
    }
    /**
     * æ‰¹é‡åˆ é™¤
     *
     * @param ids
     * @return
     */
    @AutoLog(value = "技术状态鉴定工单变更-批量删除")
    @ApiOperation(value="技术状态鉴定工单变更-批量删除", notes="技术状态鉴定工单变更-批量删除")
    @DeleteMapping(value = "/deleteBatch")
    public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
        this.eamTechnicalStatusEvaluationOrderChangeService.removeByIds(Arrays.asList(ids.split(",")));
        return Result.OK("批量删除成功!");
    }
    /**
     * é€šè¿‡id查询
     *
     * @param id
     * @return
     */
    @AutoLog(value = "技术状态鉴定工单变更-通过id查询")
    @ApiOperation(value="技术状态鉴定工单变更-通过id查询", notes="技术状态鉴定工单变更-通过id查询")
    @GetMapping(value = "/queryById")
    public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
        EamTechnicalStatusEvaluationOrderChange eamTechnicalStatusEvaluationOrderChange = eamTechnicalStatusEvaluationOrderChangeService.getById(id);
        return Result.OK(eamTechnicalStatusEvaluationOrderChange);
    }
    @Autowired
    private IEamTechnicalStatusEvaluationOrderChangeService eamTechnicalStatusEvaluationOrderChangeService;
  /**
   * å¯¼å‡ºexcel
   *
   * @param request
   * @param eamTechnicalStatusEvaluationOrderChange
   */
  @RequestMapping(value = "/exportXls")
  public ModelAndView exportXls(HttpServletRequest request, EamTechnicalStatusEvaluationOrderChange eamTechnicalStatusEvaluationOrderChange) {
      return super.exportXls(request, eamTechnicalStatusEvaluationOrderChange, EamTechnicalStatusEvaluationOrderChange.class, "技术状态鉴定工单变更");
  }
    /**
     * åˆ†é¡µåˆ—表查询
     *
     * @param query
     * @param pageNo
     * @param pageSize
     * @param req
     * @return
     */
    @ApiOperation(value = "技术状态鉴定工单变更-分页列表查询", notes = "技术状态鉴定工单变更-分页列表查询")
    @GetMapping(value = "/list")
    public Result<?> queryPageList(EamTechnicalStatusEvaluationOrderChangeQuery query,
                                   @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                   @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
                                   HttpServletRequest req) {
        Page<EamTechnicalStatusEvaluationOrderChange> page = new Page<EamTechnicalStatusEvaluationOrderChange>(pageNo, pageSize);
        IPage<EamTechnicalStatusEvaluationOrderChange> pageList = eamTechnicalStatusEvaluationOrderChangeService.queryPageList(page, query);
        return Result.OK(pageList);
    }
  /**
   * é€šè¿‡excel导入数据
   *
   * @param request
   * @param response
   * @return
   */
  @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
  public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
      return super.importExcel(request, response, EamTechnicalStatusEvaluationOrderChange.class);
  }
    /**
     * æ·»åŠ 
     *
     * @param request
     * @return
     */
    @AutoLog(value = "技术状态鉴定工单变更-添加")
    @ApiOperation(value = "技术状态鉴定工单变更-添加", notes = "技术状态鉴定工单变更-添加")
    @PostMapping(value = "/add")
    public Result<?> add(@RequestBody EamTechnicalStatusEvaluationOrderChange request) {
        if (request == null) {
            return Result.error("添加的对象不能为空!");
        }
        boolean b = eamTechnicalStatusEvaluationOrderChangeService.addTechnicalStatusEvaluationOrderChange(request);
        if (!b) {
            return Result.error("添加失败!");
        }
        return Result.OK("添加成功!");
    }
    /**
     * ç¼–辑
     *
     * @param request
     * @return
     */
    @AutoLog(value = "技术状态鉴定工单变更-编辑")
    @ApiOperation(value = "技术状态鉴定工单变更-编辑", notes = "技术状态鉴定工单变更-编辑")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
    public Result<?> edit(@RequestBody EamTechnicalStatusEvaluationOrderChange request) {
        if (request == null) {
            return Result.error("编辑的对象不能为空!");
        }
        boolean b = eamTechnicalStatusEvaluationOrderChangeService.editTechnicalStatusEvaluationOrderChange(request);
        if (!b) {
            return Result.error("编辑失败!");
        }
        return Result.OK("编辑成功!");
    }
    @AutoLog(value = "技术状态鉴定工单变更-提交")
    @ApiOperation(value = "技术状态鉴定工单变更-提交", notes = "技术状态鉴定工单变更-提交")
    @GetMapping("/submit")
    public Result<?> submit(@RequestParam(name = "id") String id) {
        boolean b = eamTechnicalStatusEvaluationOrderChangeService.submit(id);
        if (!b) {
            return Result.error("提交失败!");
        }
        return Result.OK("提交成功!");
    }
    @AutoLog(value = "技术状态鉴定工单变更-作废")
    @ApiOperation(value = "技术状态鉴定工单变更-作废", notes = "技术状态鉴定工单变更-作废")
    @GetMapping("/abolish")
    public Result<?> abolish(@RequestParam(name = "id") String id) {
        EamTechnicalStatusEvaluationOrderChange entity = eamTechnicalStatusEvaluationOrderChangeService.getById(id);
        if (entity == null) {
            return Result.error("要作废的数据不存在,请刷新重试!");
        }
        if (!TechnicalStatusEvaluationOrderChangeStatusEnum.WAIT_SUBMIT.name().equals(entity.getChangeStatus())) {
            return Result.error("该状态的数据不允许进行作废!");
        }
        entity.setChangeStatus(TechnicalStatusEvaluationOrderChangeStatusEnum.ABOLISH.name());
        eamTechnicalStatusEvaluationOrderChangeService.updateById(entity);
        return Result.OK("作废成功!");
    }
    @AutoLog(value = "技术状态鉴定工单变更-审批")
    @ApiOperation(value = "技术状态鉴定工单变更-审批", notes = "技术状态鉴定工单变更-审批")
    @PostMapping("/approval")
    public Result<?> approval(@RequestBody EamTechnicalStatusEvaluationOrderChangeRequest request) {
        if (request == null) {
            return Result.error("审批的对象不能为空!");
        }
        // æ£€æŸ¥è¯·æ±‚参数
        if (StrUtil.isBlank(request.getTaskId()) || StrUtil.isBlank(request.getDataId()) || StrUtil.isBlank(request.getInstanceId())) {
            return Result.error("审批任务错误或不存在!");
        }
        EamTechnicalStatusEvaluationOrderChange b = eamTechnicalStatusEvaluationOrderChangeService.approval(request);
        if (b == null) {
            return Result.error("操作失败!");
        }
        return Result.ok("操作成功!");
    }
    /**
     * é€šè¿‡id查询
     *
     * @param id
     * @return
     */
    @AutoLog(value = "技术状态鉴定工单变更-通过id查询")
    @ApiOperation(value = "技术状态鉴定工单变更-通过id查询", notes = "技术状态鉴定工单变更-通过id查询")
    @GetMapping(value = "/queryById")
    public Result<?> queryById(@RequestParam(name = "id", required = true) String id) {
        EamTechnicalStatusEvaluationOrderChange eamTechnicalStatusEvaluationOrderChange = eamTechnicalStatusEvaluationOrderChangeService.getById(id);
        return Result.OK(eamTechnicalStatusEvaluationOrderChange);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceOrderController.java
@@ -2,14 +2,19 @@
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.Feature;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.util.TranslateDictTextUtils;
import org.jeecg.modules.eam.constant.BusinessCodeConst;
import org.jeecg.modules.eam.constant.OrderCreationMethodEnum;
import org.jeecg.modules.eam.constant.ThirdMaintenanceStatusEnum;
@@ -21,6 +26,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.List;
@@ -41,6 +47,10 @@
    private IEamThirdMaintenanceOrderService eamThirdMaintenanceOrderService;
    @Autowired
    private ISysBusinessCodeRuleService businessCodeRuleService;
    @Resource
    private ObjectMapper objectMapper;
    @Resource
    private TranslateDictTextUtils translateDictTextUtils;
    /**
@@ -62,6 +72,18 @@
        Page<EamThirdMaintenanceOrder> page = new Page<EamThirdMaintenanceOrder>(pageNo, pageSize);
        IPage<EamThirdMaintenanceOrder> pageList = eamThirdMaintenanceOrderService.queryPageList(page, query);
        return Result.OK(pageList);
    }
    /**
     * æŸ¥è¯¢ä¸‰ä¿å·¥å•基本信息
     *
     * @param id
     * @return
     */
    @ApiOperation(value = "查询三保工单基本信息", notes = "查询三保工单基本信息")
    @GetMapping(value = "/selectVoById")
    public Result<?> selectVoById(@RequestParam(name = "id") String id) {
        return eamThirdMaintenanceOrderService.selectVoById(id);
    }
    /**
@@ -113,8 +135,29 @@
    @ApiOperation(value = "设备三级保养-通过id查询", notes = "设备三级保养-通过id查询")
    @GetMapping(value = "/queryById")
    public Result<?> queryById(@RequestParam(name = "id", required = true) String id) {
        EamThirdMaintenanceOrder order = eamThirdMaintenanceOrderService.getById(id);
        return Result.OK(order);
        EamThirdMaintenanceOrder eamThirdMaintenanceOrder = eamThirdMaintenanceOrderService.getById(id);
        if (eamThirdMaintenanceOrder == null) {
            return Result.error("未找到对应数据");
        }
        try {
            String json = objectMapper.writeValueAsString(eamThirdMaintenanceOrder);
            JSONObject item = JSONObject.parseObject(json, Feature.OrderedField);
            translateDictTextUtils.translateField("createBy", eamThirdMaintenanceOrder.getCreateBy(), item, "sys_user,realname,username");
            translateDictTextUtils.translateField("standardId", eamThirdMaintenanceOrder.getStandardId(), item, "eam_maintenance_standard,standard_name,id");
            translateDictTextUtils.translateField("repairman", eamThirdMaintenanceOrder.getRepairman(), item, "sys_user,realname,username");
            translateDictTextUtils.translateField("maintenanceStatus", eamThirdMaintenanceOrder.getMaintenanceStatus(), item, "third_maintenance_status");
            translateDictTextUtils.translateField("creationMethod", eamThirdMaintenanceOrder.getCreationMethod(), item, "order_creation_method");
            translateDictTextUtils.translateField("fullyFunctional", eamThirdMaintenanceOrder.getFullyFunctional(), item, "yn");
            translateDictTextUtils.translateField("runningNormally", eamThirdMaintenanceOrder.getRunningNormally(), item, "yn");
            translateDictTextUtils.translateField("inspector", eamThirdMaintenanceOrder.getInspector(), item, "sys_user,realname,username");
            translateDictTextUtils.translateField("operatorSignature", eamThirdMaintenanceOrder.getOperatorSignature(), item, "sys_user,realname,username");
            translateDictTextUtils.translateField("repairmanSignature", eamThirdMaintenanceOrder.getRepairmanSignature(), item, "sys_user,realname,username");
            translateDictTextUtils.translateField("repairManagerSignature", eamThirdMaintenanceOrder.getRepairManagerSignature(), item, "sys_user,realname,username");
            translateDictTextUtils.translateField("inspectorSignature", eamThirdMaintenanceOrder.getInspectorSignature(), item, "sys_user,realname,username");
            return Result.OK(item);
        } catch (JsonProcessingException e) {
            return Result.error("数据转译失败!");
        }
    }
    /**
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChange.java
@@ -49,6 +49,9 @@
    /**变更单状态*/
    @ApiModelProperty(value = "变更单状态")
    private String changeStatus;
    /**申请单位*/
    @ApiModelProperty(value = "申请单位")
    private String factoryOrgCode;
    /**编制人*/
    @ApiModelProperty(value = "编制人")
    private String designer;
@@ -61,19 +64,28 @@
    /**使用单位室主管签字时间*/
    @ApiModelProperty(value = "使用单位室主管签字时间")
    private Date departHeaderSignatureTime;
    /**使用单位室主管签字结果*/
    @ApiModelProperty(value = "使用单位室主管签字结果")
    private String departHeaderSignatureResult;
    /**使用单位室主管意见*/
    @ApiModelProperty(value = "使用单位室主管意见")
    private String departHeaderSignatureComment;
    private String departHeaderComment;
    /**使用单位部主管签字*/
    @ApiModelProperty(value = "使用单位部主管签字")
    private String departLeaderSignature;
    /**使用单位部主管签字时间*/
    @ApiModelProperty(value = "使用单位部主管签字时间")
    private Date departLeaderSignatureTime;
    /**使用单位部主管签字结果*/
    @ApiModelProperty(value = "使用单位部主管签字结果")
    private String departLeaderSignatureResult;
    /**使用单位部主管签字*/
    @ApiModelProperty(value = "使用单位部主管签字")
    private String departLeaderSignatureComment;
    private String departLeaderComment;
    /**HF编码*/
    @ApiModelProperty(value = "HF编码")
    private String hfCode;
    /**备注*/
    @ApiModelProperty(value = "备注")
    private String remark;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChangeDetail.java
@@ -1,6 +1,7 @@
package org.jeecg.modules.eam.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
@@ -40,6 +41,9 @@
    /**更新时间*/
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
    /**变更单ID*/
    @ApiModelProperty(value = "变更单ID")
    private String changeOrderId;
    /**设备ID*/
    @ApiModelProperty(value = "设备ID")
    private String equipmentId;
@@ -64,4 +68,14 @@
    /**技术状态鉴定工单ID;搬迁使用*/
    @ApiModelProperty(value = "技术状态鉴定工单ID;搬迁使用")
    private String orderId;
    //列表展示
    @TableField(exist = false)
    private String equipmentCode;
    @TableField(exist = false)
    private String equipmentName;
    @TableField(exist = false)
    private String equipmentModel;
    @TableField(exist = false)
    private String factoryName;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationOrderChange.java
@@ -4,11 +4,14 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@@ -55,43 +58,75 @@
    private String changeOrderNum;
    /**申请人*/
    @ApiModelProperty(value = "申请人")
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
    private String applicant;
    /**申请部门*/
    @ApiModelProperty(value = "申请部门")
    @Dict(dictTable = "eam_base_factory", dicText = "factory_name", dicCode = "org_code")
    private String factoryOrgCode;
    /**申请日期*/
    @ApiModelProperty(value = "申请日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date applyDate;
    /**变更状态;待提交、待主管审核、待部门确认、待保障部确认、已作废、已完成*/
    @ApiModelProperty(value = "变更状态;待提交、待主管审核、待部门确认、待保障部确认、已作废、已完成")
    @Dict(dicCode = "technical_status_evaluation_order_change_status")
    private String changeStatus;
    /**变更原因;生产任务急无法停机、设备故障正处于维修状态、设备已报废、设备大修、搬迁、改造*/
    @ApiModelProperty(value = "变更原因;生产任务急无法停机、设备故障正处于维修状态、设备已报废、设备大修、搬迁、改造")
    @Dict(dicCode = "technical_status_evaluation_order_change_reason")
    private String applyReason;
    /**变更鉴定日期*/
    @ApiModelProperty(value = "变更鉴定日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date deferredEvaluationDate;
    /**主管领导签字*/
    @ApiModelProperty(value = "主管领导签字")
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
    private String equipmentManagerSignature;
    /**主管领导签字时间*/
    @ApiModelProperty(value = "主管领导签字时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date equipmentManagerSignatureTime;
    /**主管领导签字结果*/
    @ApiModelProperty(value = "主管领导签字结果")
    @Dict(dicCode = "approved_rejected")
    private String equipmentManagerSignatureResult;
    /**主管领导意见*/
    @ApiModelProperty(value = "主管领导意见")
    private String equipmentManagerComment;
    /**部门领导签字;根据变更原因类型区分不同的人审批*/
    @ApiModelProperty(value = "部门领导签字;根据变更原因类型区分不同的人审批")
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
    private String departManagerSignature;
    /**部门领导签字时间*/
    @ApiModelProperty(value = "部门领导签字时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date departManagerSignatureTime;
    /**部门领导签字结果*/
    @ApiModelProperty(value = "部门领导签字结果")
    @Dict(dicCode = "approved_rejected")
    private String departManagerSignatureResult;
    /**部门领导意见*/
    @ApiModelProperty(value = "部门领导意见")
    private String departManagerComment;
    /**生产保障部领导签字*/
    @ApiModelProperty(value = "生产保障部领导签字")
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
    private String productionSupportSignature;
    /**生产保障部领导签字时间*/
    @ApiModelProperty(value = "生产保障部领导签字时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date productionSupportSignatureTime;
    /**生产保障部领导签字结果*/
    @ApiModelProperty(value = "生产保障部领导签字结果")
    @Dict(dicCode = "approved_rejected")
    private String productionSupportSignatureResult;
    /**生产保障部领导意见*/
    @ApiModelProperty(value = "生产保障部领导意见")
    private String productionSupportComment;
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamTechnicalStatusChangeDetailMapper.java
@@ -2,6 +2,8 @@
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -14,4 +16,10 @@
 */
public interface EamTechnicalStatusChangeDetailMapper extends BaseMapper<EamTechnicalStatusChangeDetail> {
    /**
     * è®¾å¤‡æ˜Žç»†æŸ¥è¯¢
     * @param queryWrapper
     * @return
     */
    List<EamTechnicalStatusChangeDetail> queryList(@Param(Constants.WRAPPER) QueryWrapper<EamTechnicalStatusChangeDetail> queryWrapper);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamTechnicalStatusChangeDetailMapper.xml
@@ -2,4 +2,13 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.eam.mapper.EamTechnicalStatusChangeDetailMapper">
    <select id="queryList" resultType="org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail">
        select ems.*, e.equipment_code, e.equipment_name, e.equipment_model, f.factory_name
        from eam_technical_status_change_detail ems
        inner join eam_equipment e
        on ems.equipment_id = e.id
        left join eam_base_factory f
        on e.factory_org_code = f.org_code
        ${ew.customSqlSegment}
    </select>
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamSecondMaintenanceQuery.java
@@ -8,6 +8,7 @@
@Data
public class EamSecondMaintenanceQuery {
    private String id;
    private String orderNum;
    private String equipmentId;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamSecondMaintenanceRequest.java
@@ -137,11 +137,8 @@
    @ApiModelProperty(value = "备注")
    private String remark;
    /**列表 ç»´ä¿®å·¥æ˜Žç»†*/
    /**列表 æ˜Žç»†*/
    @ApiModelProperty(value = "列表 ç»´ä¿®å·¥æ˜Žç»†")
    private List<EamSecondMaintenanceOrderDetail> repairmanDetailList;;
    private List<EamSecondMaintenanceOrderDetail> tableDetailList;;
    /**列表 æ“ä½œå·¥æ˜Žç»†*/
    @ApiModelProperty(value = "列表 ç»´ä¿®å·¥æ˜Žç»†")
    private List<EamSecondMaintenanceOrderDetail> operatorDetailList;;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusChangeQuery.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package org.jeecg.modules.eam.request;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
public class EamTechnicalStatusChangeQuery {
    private String changeOrderNum;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date dateBegin;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date dateEnd;
    private String changeStatus;
    private String factoryOrgCode;
    private String column;
    private String order;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusChangeRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
package org.jeecg.modules.eam.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail;
import org.jeecg.modules.flowable.domain.vo.FlowTaskVo;
import java.io.Serializable;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="技术状态变更审批对象", description="技术状态变更审批")
public class EamTechnicalStatusChangeRequest extends FlowTaskVo implements Serializable {
    /**主键*/
    @ApiModelProperty(value = "主键")
    private String id;
    /**使用单位室主管签字结果*/
    @ApiModelProperty(value = "使用单位室主管签字结果")
    private String departHeaderSignatureResult;
    /**使用单位室主管意见*/
    @ApiModelProperty(value = "使用单位室主管意见")
    private String departHeaderComment;
    /**使用单位部主管签字结果*/
    @ApiModelProperty(value = "使用单位部主管签字结果")
    private String departLeaderSignatureResult;
    /**使用单位部主管签字*/
    @ApiModelProperty(value = "使用单位部主管签字")
    private String departLeaderComment;
    /**备注*/
    @ApiModelProperty(value = "备注")
    private String remark;
    /**列表 è®¾å¤‡æ˜Žç»†*/
    @ApiModelProperty(value = "列表 è®¾å¤‡æ˜Žç»†")
    private List<EamTechnicalStatusChangeDetail> tableDetailList;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusEvaluationOrderChangeRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,51 @@
package org.jeecg.modules.eam.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.modules.flowable.domain.vo.FlowTaskVo;
import java.io.Serializable;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="技术状态鉴定工单变更审批对象", description="技术状态鉴定工单变更审批")
public class EamTechnicalStatusEvaluationOrderChangeRequest extends FlowTaskVo implements Serializable {
    /**主键*/
    @ApiModelProperty(value = "主键")
    private String id;
    /**工单ID*/
    @ApiModelProperty(value = "工单ID")
    private String orderId;
    /**设备ID*/
    @ApiModelProperty(value = "设备ID")
    private String equipmentId;
    /**变更原因;生产任务急无法停机、设备故障正处于维修状态、设备已报废、设备大修、搬迁、改造*/
    @ApiModelProperty(value = "变更原因;生产任务急无法停机、设备故障正处于维修状态、设备已报废、设备大修、搬迁、改造")
    private String applyReason;
    /**变更鉴定日期*/
    @ApiModelProperty(value = "变更鉴定日期")
    private Date deferredEvaluationDate;
    /**主管领导签字结果*/
    @ApiModelProperty(value = "主管领导签字结果")
    private String equipmentManagerSignatureResult;
    /**主管领导意见*/
    @ApiModelProperty(value = "主管领导意见")
    private String equipmentManagerComment;
    /**部门领导意见*/
    @ApiModelProperty(value = "部门领导意见")
    private String departManagerComment;
    /**部门领导签字结果*/
    @ApiModelProperty(value = "部门领导签字结果")
    private String departManagerSignatureResult;
    /**生产保障部领导签字结果*/
    @ApiModelProperty(value = "生产保障部领导签字结果")
    private String productionSupportSignatureResult;
    /**生产保障部领导意见*/
    @ApiModelProperty(value = "生产保障部领导意见")
    private String productionSupportComment;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamThirdMaintenanceRequest.java
@@ -6,9 +6,10 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.api.vo.FileUploadResult;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.eam.entity.EamThirdMaintenanceOrderDetail;
import org.jeecg.modules.flowable.domain.vo.FlowTaskVo;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
@@ -18,55 +19,120 @@
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="三保对象", description="三保")
@ApiModel(value = "三保对象", description = "三保")
public class EamThirdMaintenanceRequest extends FlowTaskVo implements Serializable {
    /**主键*/
    private static final long serialVersionUID = -385597100123768119L;
    /**
     * ä¸»é”®
     */
    @ApiModelProperty(value = "主键")
    private String id;
    /**工单号*/
    /**
     * å·¥å•号
     */
    @ApiModelProperty(value = "工单号")
    private String orderNum;
    /**设备ID*/
    /**
     * è®¾å¤‡ID
     */
    @ApiModelProperty(value = "设备ID")
    private String equipmentId;
    /**标准ID*/
    /**
     * æ ‡å‡†ID
     */
    @ApiModelProperty(value = "标准ID")
    private String standardId;
    /**保养日期*/
    /**
     * ä¿å…»æ—¥æœŸ
     */
    @ApiModelProperty(value = "保养日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date maintenanceDate;
    /**保养人*/
    @ApiModelProperty(value = "保养人")
    private String operator;
    /**保养图片*/
    @ApiModelProperty(value = "保养图片")
    private String imageFiles;
    /**保养图片*/
    @ApiModelProperty(value = "保养图片")
    private List<FileUploadResult> imageFilesResult;
    /**备注*/
    /**
     * ç»´ä¿®äºº
     */
    @ApiModelProperty(value = "维修人")
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String repairman;
    /**
     * ä¿å…»çŠ¶æ€
     */
    @ApiModelProperty(value = "保养状态;待保养、保养中、待检查、操作人签字、维修人签字、维修室主任签字、设备检查人签字、已完成、已锁定、变更中、已取消")
    @Dict(dicCode = "third_maintenance_status")
    private String maintenanceStatus;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value = "备注")
    private String remark;
    /**创建方式*/
    /**
     * åˆ›å»ºæ–¹å¼
     */
    @ApiModelProperty(value = "创建方式")
    @Dict(dicCode = "order_creation_method")
    private String creationMethod;
    /**列表 ä¿å…»é¡¹æ˜Žç»†*/
    /**
     * è®¾å¤‡åŠŸèƒ½æ˜¯å¦é½å¤‡;是否
     */
    @ApiModelProperty(value = "设备功能是否齐备;是否")
    @Dict(dicCode = "yn")
    private String fullyFunctional;
    /**
     * è®¾å¤‡åŠŸèƒ½æ˜¯å¦é½å¤‡;是否
     */
    @ApiModelProperty(value = "设备功能是否正常运转;是否")
    @Dict(dicCode = "yn")
    private String runningNormally;
    /**
     * é—®é¢˜æè¿°
     */
    @ApiModelProperty(value = "问题描述")
    private String problemDescription;
    /**
     * åˆ—表 ä¿å…»é¡¹æ˜Žç»†
     */
    @ApiModelProperty(value = "列表 ä¿å…»é¡¹æ˜Žç»†")
    private List<EamThirdMaintenanceOrderDetail> tableDetailList;
    /**删除 ä¿å…»é¡¹æ˜Žç»†*/
    /**
     * åˆ é™¤ ä¿å…»é¡¹æ˜Žç»†
     */
    @ApiModelProperty(value = "删除 ä¿å…»é¡¹æ˜Žç»†")
    private List<EamThirdMaintenanceOrderDetail> removeDetailList;
    //确认操作
    /**确认意见*/
    @ApiModelProperty(value = "确认意见")
    private String confirmComment;
    @ApiModelProperty(value = "确认类型")
    private String confirmDealType;
    /**领导确认意见*/
    @ApiModelProperty(value = "领导确认意见")
    private String leaderConfirmComment;
    /**
     * æ“ä½œäººç­¾å­—
     */
    @ApiModelProperty(value = "操作人签字")
    private String operatorSignatureResult;
    /**
     * ååŠ©æ“ä½œäºº
     */
    @ApiModelProperty(value = "协助操作人")
    private String assistantOperator;
    /**
     * ç»´ä¿®äººç­¾å­—
     */
    @ApiModelProperty(value = "维修人签字")
    private String repairmanSignatureResult;
    /**
     * ååŠ©ç»´ä¿®äºº
     */
    @Excel(name = "协助维修人", width = 15)
    @ApiModelProperty(value = "协助维修人")
    private String assistantRepairman;
    /**
     * ç»´ä¿®å®¤ä¸»ä»»ç­¾å­—
     */
    @ApiModelProperty(value = "维修室主任签字")
    private String repairManagerSignatureResult;
    /**
     * è®¾å¤‡æ£€æŸ¥äººç­¾å­—
     */
    @ApiModelProperty(value = "设备检查人签字")
    private String inspectorSignatureResult;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeDetailService.java
@@ -3,6 +3,8 @@
import org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
 * @Description: æŠ€æœ¯çŠ¶æ€å˜æ›´ç”³è¯·æ˜Žç»†
 * @Author: jeecg-boot
@@ -11,4 +13,10 @@
 */
public interface IEamTechnicalStatusChangeDetailService extends IService<EamTechnicalStatusChangeDetail> {
    /**
     * æŸ¥è¯¢è®¾å¤‡æ˜Žç»†
     * @param orderId
     * @return
     */
    List<EamTechnicalStatusChangeDetail> queryList(String orderId);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeService.java
@@ -1,7 +1,11 @@
package org.jeecg.modules.eam.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.eam.entity.EamTechnicalStatusChange;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.request.EamTechnicalStatusChangeQuery;
import org.jeecg.modules.eam.request.EamTechnicalStatusChangeRequest;
/**
 * @Description: æŠ€æœ¯çŠ¶æ€å˜æ›´ç”³è¯·
@@ -11,4 +15,37 @@
 */
public interface IEamTechnicalStatusChangeService extends IService<EamTechnicalStatusChange> {
    /**
     * åˆ†é¡µæŸ¥è¯¢
     * @param page
     * @param query
     * @return
     */
    IPage<EamTechnicalStatusChange> queryPageList(Page<EamTechnicalStatusChange> page, EamTechnicalStatusChangeQuery query);
    /**
     * æ–°å¢ž
     * @param request
     */
    boolean addEamTechnicalStatusChange(EamTechnicalStatusChangeRequest request);
    /**
     * ç¼–辑
     * @param request
     */
    boolean editEamTechnicalStatusChange(EamTechnicalStatusChangeRequest request);
    /**
     * æäº¤
     * @param id
     * @return
     */
    boolean submit(String id);
    /**
     * å®¡æ‰¹
     * @param request
     * @return
     */
    EamTechnicalStatusChange approval(EamTechnicalStatusChangeRequest request);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationOrderChangeService.java
@@ -2,9 +2,10 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationOrderChange;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationOrderChange;
import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderChangeQuery;
import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderChangeRequest;
/**
 * @Description: æŠ€æœ¯çŠ¶æ€é‰´å®šå·¥å•å˜æ›´
@@ -35,4 +36,18 @@
     * @return
     */
    boolean editTechnicalStatusEvaluationOrderChange(EamTechnicalStatusEvaluationOrderChange request);
    /**
     * æäº¤ å¼€å¯æµç¨‹å®¡æ‰¹
     * @param id
     * @return
     */
    boolean submit(String id);
    /**
     * å®¡æ‰¹
     * @param request
     * @return
     */
    EamTechnicalStatusEvaluationOrderChange approval(EamTechnicalStatusEvaluationOrderChangeRequest request);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceOrderService.java
@@ -51,4 +51,11 @@
     * @return
     */
    EamThirdMaintenanceOrder approval(EamThirdMaintenanceRequest request);
    /**
     * æŸ¥è¯¢ä¸‰ä¿å·¥å•基本信息
     * @param id
     * @return
     */
    Result<?> selectVoById(String id);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java
@@ -114,6 +114,9 @@
        }
        //查询条件过滤
        if (query != null) {
            if (StringUtils.isNotBlank(query.getId())){
                queryWrapper.eq("wmo.id", query.getId());
            }
            if (StringUtils.isNotBlank(query.getEquipmentId())) {
                queryWrapper.eq("wmo.equipment_id", query.getEquipmentId());
            }
@@ -374,8 +377,9 @@
                    entity.setOperator(user.getUsername());
                    values.put("organization", "二保操作工执行结束");
                    values.put("comment", "二保操作工执行结束");
                    request.setComment("二保操作工执行结束");
                    //处理对应详情
                    if (CollectionUtils.isNotEmpty(request.getOperatorDetailList())){
                    if (CollectionUtils.isNotEmpty(request.getTableDetailList())){
                        //删除原有数据
                        List<EamSecondMaintenanceOrderDetail> addList = new ArrayList<>();
                        //先删除原有
@@ -383,7 +387,7 @@
                        queryWrapper.eq(EamSecondMaintenanceOrderDetail::getOrderId, entity.getId());
                        queryWrapper.eq(EamSecondMaintenanceOrderDetail::getItemCategory,EamMaintenanceStandardDetailCategory.OPERATOR_MAINTENANCE.name());
                        secondMaintenanceOrderDetailService.remove(queryWrapper);
                        request.getOperatorDetailList().forEach(tableDetail -> {
                        request.getTableDetailList().forEach(tableDetail -> {
                            EamSecondMaintenanceOrderDetail eamMaintenanceStandardDetail=new EamSecondMaintenanceOrderDetail();
                            BeanUtils.copyProperties(tableDetail, eamMaintenanceStandardDetail);
                            eamMaintenanceStandardDetail.setOrderId(entity.getId());
@@ -395,8 +399,9 @@
                    entity.setRepairman(user.getUsername());
                    values.put("organization", "二保维修工执行结束");
                    values.put("comment", "二保维修工执行结束");
                    request.setComment("二保维修工执行结束");
                    //处理对应详情
                    if (CollectionUtils.isNotEmpty(request.getRepairmanDetailList())){
                    if (CollectionUtils.isNotEmpty(request.getTableDetailList())){
                        //删除原有数据
                        List<EamSecondMaintenanceOrderDetail> addList = new ArrayList<>();
                        //先删除原有
@@ -404,7 +409,7 @@
                        queryWrapper.eq(EamSecondMaintenanceOrderDetail::getOrderId, entity.getId());
                        queryWrapper.eq(EamSecondMaintenanceOrderDetail::getItemCategory,EamMaintenanceStandardDetailCategory.REPAIRER_MAINTENANCE.name());
                        secondMaintenanceOrderDetailService.remove(queryWrapper);
                        request.getRepairmanDetailList().forEach(tableDetail -> {
                        request.getTableDetailList().forEach(tableDetail -> {
                            EamSecondMaintenanceOrderDetail eamMaintenanceStandardDetail=new EamSecondMaintenanceOrderDetail();
                            BeanUtils.copyProperties(tableDetail, eamMaintenanceStandardDetail);
                            eamMaintenanceStandardDetail.setOrderId(entity.getId());
@@ -417,35 +422,37 @@
                break;
            case WAIT_ADMIN_CONFIRM:
                //管理员确认
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0003);
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0006);
                if (CollectionUtil.isEmpty(userSelectors)) {
                    throw new JeecgBootException("设备未存在检查人,无法进入下级审批!");
                }else{
                    userApprovalList= userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                    values.put("NextAssignee", userApprovalList);
                    values.put("dataId", entity.getId());
                    values.put("organization",request.getComment());
                    values.put("comment", request.getComment());
                    values.put("organization",request.getDealDescription());
                    values.put("comment", request.getDealDescription());
                    values.put("manageUserResult",request.getManageUserResult());
                    entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_INSPECTOR_CONFIRM.name());
                    entity.setManageUser(user.getUsername());
                    entity.setProblemDescription(request.getProblemDescription());
                    entity.setManageUserResult(request.getManageUserResult());
                    entity.setDealDescription(request.getComment());
                    entity.setDealDescription(request.getDealDescription());
                    entity.setConfirmTime(new Date());
                    request.setComment(request.getDealDescription());
                }
                break;
            case WAIT_INSPECTOR_CONFIRM:
                //检查人确认
                values.put("dataId", entity.getId());
                values.put("organization",request.getComment());
                values.put("comment", request.getComment());
                values.put("organization",request.getInspectConfirmComment());
                values.put("comment", request.getInspectConfirmComment());
                values.put("inspectorResult",request.getInspectorResult());
                entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.COMPLETE.name());
                entity.setInspector(user.getUsername());
                entity.setInspectorResult(request.getInspectorResult());
                entity.setInspectConfirmComment(request.getInspectConfirmComment());
                entity.setInspectConfirmTime(new Date());
                request.setComment(request.getDealDescription());
                break;
            default:
                throw  new JeecgBootException("审批失败");
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeDetailServiceImpl.java
@@ -1,11 +1,14 @@
package org.jeecg.modules.eam.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail;
import org.jeecg.modules.eam.mapper.EamTechnicalStatusChangeDetailMapper;
import org.jeecg.modules.eam.service.IEamTechnicalStatusChangeDetailService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
/**
 * @Description: æŠ€æœ¯çŠ¶æ€å˜æ›´ç”³è¯·æ˜Žç»†
@@ -16,4 +19,11 @@
@Service
public class EamTechnicalStatusChangeDetailServiceImpl extends ServiceImpl<EamTechnicalStatusChangeDetailMapper, EamTechnicalStatusChangeDetail> implements IEamTechnicalStatusChangeDetailService {
    @Override
    public List<EamTechnicalStatusChangeDetail> queryList(String changeOrderId) {
        QueryWrapper<EamTechnicalStatusChangeDetail> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("ems.change_order_id", changeOrderId);
        queryWrapper.orderByAsc("ems.create_time");
        return this.getBaseMapper().queryList(queryWrapper);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java
@@ -1,11 +1,36 @@
package org.jeecg.modules.eam.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.constant.DataBaseConstant;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.entity.EamTechnicalStatusChange;
import org.jeecg.modules.eam.mapper.EamTechnicalStatusChangeMapper;
import org.jeecg.modules.eam.request.EamTechnicalStatusChangeQuery;
import org.jeecg.modules.eam.request.EamTechnicalStatusChangeRequest;
import org.jeecg.modules.eam.service.IEamTechnicalStatusChangeService;
import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI;
import org.jeecg.modules.system.entity.BaseFactory;
import org.jeecg.modules.system.entity.BaseFactoryUser;
import org.jeecg.modules.system.service.IBaseFactoryService;
import org.jeecg.modules.system.service.IBaseFactoryUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
 * @Description: æŠ€æœ¯çŠ¶æ€å˜æ›´ç”³è¯·
@@ -13,7 +38,113 @@
 * @Date:   2025-07-09
 * @Version: V1.0
 */
@Service
public class EamTechnicalStatusChangeServiceImpl extends ServiceImpl<EamTechnicalStatusChangeMapper, EamTechnicalStatusChange> implements IEamTechnicalStatusChangeService {
@Service("IEamTechnicalStatusChangeService")
public class EamTechnicalStatusChangeServiceImpl extends ServiceImpl<EamTechnicalStatusChangeMapper, EamTechnicalStatusChange> implements IEamTechnicalStatusChangeService, FlowCallBackServiceI {
    @Autowired
    private IBaseFactoryUserService baseFactoryUserService;
    @Autowired
    private IBaseFactoryService baseFactoryService;
    @Override
    public IPage<EamTechnicalStatusChange> queryPageList(Page<EamTechnicalStatusChange> page, EamTechnicalStatusChangeQuery query) {
        QueryWrapper<EamTechnicalStatusChange> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0);
        //用户数据权限
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (sysUser == null) {
            return page;
        }
        //根据中心过滤数据权限
        List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService.
                list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId, sysUser.getId()));
        if (!CollectionUtils.isEmpty(baseFactoryUserList)) {
            Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet());
            Set<String> factoryCodeList = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
            queryWrapper.in("factory_org_code", factoryCodeList);
        } else {
            return page;
        }
        if (query != null) {
            //编码 æ¨¡ç³ŠæŸ¥è¯¢
            if (StringUtils.isNotBlank(query.getChangeOrderNum())) {
                queryWrapper.like("change_order_num", query.getChangeOrderNum());
            }
            //保养分类
            if (StringUtils.isNotBlank(query.getChangeStatus())) {
                queryWrapper.eq("change_status", query.getChangeStatus());
            }
            if (query.getDateBegin() != null && query.getDateEnd() != null) {
                queryWrapper.between("designer_time", query.getDateBegin(), query.getDateEnd());
            }
            //申请单位
            if(StringUtils.isNotBlank(query.getFactoryOrgCode())) {
                queryWrapper.eq("factory_org_code", query.getFactoryOrgCode());
            }
            //排序
            if (StringUtils.isNotBlank(query.getColumn()) && StringUtils.isNotBlank(query.getOrder())) {
                String column = query.getColumn();
                if (column.endsWith(CommonConstant.DICT_TEXT_SUFFIX)) {
                    column = column.substring(0, column.lastIndexOf(CommonConstant.DICT_TEXT_SUFFIX));
                }
                if (DataBaseConstant.SQL_ASC.equalsIgnoreCase(query.getOrder())) {
                    queryWrapper.orderByAsc(oConvertUtils.camelToUnderline(column));
                } else {
                    queryWrapper.orderByDesc(oConvertUtils.camelToUnderline(column));
                }
            } else {
                queryWrapper.orderByDesc("create_time");
            }
        } else {
            queryWrapper.orderByDesc("create_time");
        }
        return this.getBaseMapper().selectPage(page, queryWrapper);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean addEamTechnicalStatusChange(EamTechnicalStatusChangeRequest request) {
        return false;
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean editEamTechnicalStatusChange(EamTechnicalStatusChangeRequest request) {
        return false;
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean submit(String id) {
        return false;
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public EamTechnicalStatusChange approval(EamTechnicalStatusChangeRequest request) {
        return null;
    }
    @Override
    public void afterFlowHandle(FlowMyBusiness business) {
        business.getTaskNameId();//接下来审批的节点
        business.getValues();//前端传进来的参数
        business.getActStatus();
    }
    @Override
    public Object getBusinessDataById(String dataId) {
        return this.getById(dataId);
    }
    @Override
    public Map<String, Object> flowValuesOfTask(String taskNameId, Map<String, Object> values) {
        return null;
    }
    @Override
    public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) {
        //业务是否干预流程,业务干预,流程干预,指定人员进行处理
        //获取下一步处理人
        Object object = values.get("NextAssignee");
        return (List<String>) object;
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderChangeServiceImpl.java
@@ -1,5 +1,7 @@
package org.jeecg.modules.eam.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -8,32 +10,38 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.constant.DataBaseConstant;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.TranslateDictTextUtils;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.constant.BusinessCodeConst;
import org.jeecg.modules.eam.constant.HfTemplateCategoryEnum;
import org.jeecg.modules.eam.constant.TechnicalStatusEvaluationOrderChangeStatusEnum;
import org.jeecg.modules.eam.constant.TechnicalStatusEvaluationOrderStatusEnum;
import org.jeecg.modules.eam.constant.*;
import org.jeecg.modules.eam.entity.EamBaseHFCode;
import org.jeecg.modules.eam.entity.EamEquipment;
import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationOrder;
import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationOrderChange;
import org.jeecg.modules.eam.mapper.EamTechnicalStatusEvaluationOrderChangeMapper;
import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderChangeQuery;
import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderChangeRequest;
import org.jeecg.modules.eam.service.IEamBaseHFCodeService;
import org.jeecg.modules.eam.service.IEamEquipmentService;
import org.jeecg.modules.eam.service.IEamTechnicalStatusEvaluationOrderChangeService;
import org.jeecg.modules.eam.service.IEamTechnicalStatusEvaluationOrderService;
import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService;
import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI;
import org.jeecg.modules.flowable.apithird.service.FlowCommonService;
import org.jeecg.modules.flowable.service.IFlowDefinitionService;
import org.jeecg.modules.flowable.service.IFlowTaskService;
import org.jeecg.modules.system.entity.BaseFactory;
import org.jeecg.modules.system.entity.BaseFactoryUser;
import org.jeecg.modules.system.service.IBaseFactoryService;
import org.jeecg.modules.system.service.IBaseFactoryUserService;
import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.system.vo.UserSelector;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -61,6 +69,19 @@
    private ISysBusinessCodeRuleService businessCodeRuleService;
    @Autowired
    private IEamBaseHFCodeService hfCodeService;
    @Autowired
    private FlowCommonService flowCommonService;
    @Autowired
    private IFlowDefinitionService flowDefinitionService;
    @Autowired
    private IFlowMyBusinessService flowMyBusinessService;
    @Autowired
    private IFlowTaskService flowTaskService;
    @Autowired
    private TranslateDictTextUtils translateDictTextUtils;
    @Autowired
    private ISysUserService sysUserService;
    @Override
    public IPage<EamTechnicalStatusEvaluationOrderChange> queryPageList(Page<EamTechnicalStatusEvaluationOrderChange> page, EamTechnicalStatusEvaluationOrderChangeQuery query) {
@@ -181,6 +202,245 @@
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean submit(String id) {
        EamTechnicalStatusEvaluationOrderChange entity = this.getBaseMapper().selectById(id);
        if (entity == null) {
            throw new JeecgBootException("要提交的工单不存在,请刷新重试!");
        }
        if (!TechnicalStatusEvaluationOrderChangeStatusEnum.WAIT_SUBMIT.name().equals(entity.getChangeStatus())) {
            throw new JeecgBootException("该工单已进行过提交!");
        }
        EamTechnicalStatusEvaluationOrder order = evaluationOrderService.getById(entity.getOrderId());
        if(order == null) {
            throw new JeecgBootException("要变更的技术状态鉴定工单不存在,请刷新重试!");
        }
        EamEquipment equipment = equipmentService.getById(entity.getEquipmentId());
        if (equipment == null) {
            throw new JeecgBootException("设备不存在,添加失败!");
        }
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if(sysUser == null || !sysUser.getUsername().equals(entity.getApplicant())) {
            throw new JeecgBootException("不是本人,不能提交此工单!");
        }
        entity.setChangeStatus(TechnicalStatusEvaluationOrderChangeStatusEnum.EQUIPMENT_MANAGER_SIGNING.name());
        //查询下级审批人员
        List<UserSelector> userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0011);
        if (CollectionUtil.isEmpty(userSelectors)) {
            throw new JeecgBootException("设备未分配给使用单位主管室级领导,无法提交!");
        }
        List<String> userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
        //更新实体
        this.getBaseMapper().updateById(entity);
        //启动流程
        flowCommonService.initActBusiness("工单号: " + entity.getChangeOrderNum() + ";设备编号: " + equipment.getEquipmentCode() + ";安装位置" + equipment.getInstallationPosition(),
                entity.getId(), "IEamTechnicalStatusEvaluationOrderChangeService", "evaluation_order_change_process", null);
        Map<String, Object> variables = new HashMap<>();
        variables.put("dataId", entity.getId());
        String applyReasonText = translateDictTextUtils.translateField("applyReason", entity.getApplyReason(), "technical_status_evaluation_order_change_reason");
        if (StrUtil.isEmpty(applyReasonText)) {
            variables.put("organization", "新增技术状态鉴定工单变更默认启动流程");
            variables.put("comment", "新增技术状态鉴定工单变更默认启动流程");
        } else {
            variables.put("organization", applyReasonText);
            variables.put("comment", applyReasonText);
        }
        variables.put("proofreading", true);
        variables.put("NextAssignee", userApprovalList);
        Result<?> result = flowDefinitionService.startProcessInstanceByKey("evaluation_order_change_process", variables);
        if(result == null || !result.isSuccess()) {
            throw new JeecgBootException("启动流程失败!");
        }
        //更新工单状态为变更中
        order.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.CHANGING.name());
        boolean b = evaluationOrderService.updateById(order);
        if(!b) {
            throw new JeecgBootException("技术状态鉴定工单状态更新失败!");
        }
        return true;
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public EamTechnicalStatusEvaluationOrderChange approval(EamTechnicalStatusEvaluationOrderChangeRequest request) {
        EamTechnicalStatusEvaluationOrderChange entity = this.getBaseMapper().selectById(request.getId());
        if (entity == null) {
            throw new JeecgBootException("审批的数据已删除,请刷新重试!");
        }
        EamTechnicalStatusEvaluationOrder order = evaluationOrderService.getById(entity.getOrderId());
        if(order == null) {
            throw new JeecgBootException("要变更的技术状态鉴定工单不存在,请刷新重试!");
        }
        // èŽ·å–å½“å‰ç™»å½•ç”¨æˆ·
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (user == null || StrUtil.isBlank(user.getId())) {
            throw new JeecgBootException("未获取到登录用户,请重新登录后再试!");
        }
        request.setAssignee(user.getUsername());
        // èŽ·å–æµç¨‹ä¸šåŠ¡è®°å½•
        FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(request.getInstanceId(), request.getTaskId());
        if (flowMyBusiness == null) {
            throw new JeecgBootException("流程实例不存在,请刷新后重试!");
        }
        boolean userAuthorized = flowMyBusinessService.isUserAuthorized(flowMyBusiness, user);
        if (!userAuthorized) {
            throw new JeecgBootException("用户无权操作此任务,请刷新后重试!");
        }
        // è®¤é¢†ä»»åŠ¡
        if (!flowMyBusinessService.claimTask(flowMyBusiness.getTaskId(), user)) {
            throw new JeecgBootException("任务不存在、已完成或已被他人认领!");
        }
        EamEquipment equipment = equipmentService.getById(entity.getEquipmentId());
        if (equipment == null) {
            throw new JeecgBootException("设备不存在,请检查!");
        }
        TechnicalStatusEvaluationOrderChangeStatusEnum status = TechnicalStatusEvaluationOrderChangeStatusEnum.getInstance(entity.getChangeStatus());
        if (status == null) {
            return null;
        }
        //流程变量
        Map<String, Object> values = new HashMap<>();
        List<String> userApprovalList;
        List<UserSelector> userSelectors;
        switch (status) {
            case EQUIPMENT_MANAGER_SIGNING:
                //使用单位主管室级领导审核
                if(TechnicalStatusEvaluationOrderChangeReasonEnum.PRODUCTION_WORK_ORDER_EXPEDITED.name().equals(request.getApplyReason())) {
                    //生产任务
                    userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0012);
                    if (CollectionUtil.isEmpty(userSelectors)) {
                        throw new JeecgBootException("设备未分配给生产指挥部室级领导,无法进入下级审批!");
                    }
                } else if(TechnicalStatusEvaluationOrderChangeReasonEnum.EQUIPMENT_BREAKDOWN_REPAIR.name().equals(request.getApplyReason())) {
                    //设备故障
                    userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0013);
                    if (CollectionUtil.isEmpty(userSelectors)) {
                        throw new JeecgBootException("设备未分配给维修区长,无法进入下级审批!");
                    }
                } else if(TechnicalStatusEvaluationOrderChangeReasonEnum.EQUIPMENT_SCRAPPED.name().equals(request.getApplyReason())) {
                    //设备报废
                    userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0014);
                    if (CollectionUtil.isEmpty(userSelectors)) {
                        throw new JeecgBootException("设备未分配给资产管理部,无法进入下级审批!");
                    }
                } else if(TechnicalStatusEvaluationOrderChangeReasonEnum.EQUIPMENT_MAJOR.name().equals(request.getApplyReason())) {
                    //设备大修
                    userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0016);
                    if (CollectionUtil.isEmpty(userSelectors)) {
                        throw new JeecgBootException("设备未分配给运维商务室主任,无法进入下级审批!");
                    }
                }else if(TechnicalStatusEvaluationOrderChangeReasonEnum.EQUIPMENT_RELOCATION.name().equals(request.getApplyReason()) || TechnicalStatusEvaluationOrderChangeReasonEnum.EQUIPMENT_RETROFITTING.name().equals(request.getApplyReason())) {
                    //设备搬迁、改造
                    userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0015);
                    if (CollectionUtil.isEmpty(userSelectors)) {
                        throw new JeecgBootException("设备未分配给项目主管部,无法进入下级审批!");
                    }
                } else {
                    throw new JeecgBootException("变更申请原因无法识别,审批失败!");
                }
                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                values.put("dataId", entity.getId());
                if(StringUtils.isBlank(request.getEquipmentManagerComment())) {
                    values.put("organization", "技术状态鉴定工单变更使用单位主管室级领导");
                    values.put("comment", "技术状态鉴定工单变更使用单位主管室级领导");
                    request.setComment("技术状态鉴定工单变更使用单位主管室级领导");
                } else {
                    values.put("organization", request.getEquipmentManagerComment());
                    values.put("comment", request.getEquipmentManagerComment());
                    request.setComment(request.getEquipmentManagerComment());
                }
                //设置entity
                entity.setEquipmentManagerSignature(user.getUsername());
                entity.setEquipmentManagerSignatureTime(new Date());
                entity.setEquipmentManagerComment(request.getEquipmentManagerComment());
                entity.setEquipmentManagerSignatureResult(request.getEquipmentManagerSignatureResult());
                values.put("departHeaderConfirmFlag", request.getEquipmentManagerSignatureResult());
                if(BusinessCodeConst.APPROVED.equals(request.getEquipmentManagerSignatureResult())) {
                    //通过
                    entity.setChangeStatus(TechnicalStatusEvaluationOrderChangeStatusEnum.DEPART_MANAGER_SIGNING.name());
                    values.put("NextAssignee", userApprovalList);
                }else {
                    //驳回
                    entity.setChangeStatus(TechnicalStatusEvaluationOrderChangeStatusEnum.REJECTED.name());
                }
                break;
            case DEPART_MANAGER_SIGNING:
                //部门领导审核
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0017);
                if (CollectionUtil.isEmpty(userSelectors)) {
                    throw new JeecgBootException("设备未分配给运维管理室室主任,无法进入下级审批!");
                }
                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                values.put("dataId", entity.getId());
                if(StringUtils.isBlank(request.getDepartManagerComment())) {
                    values.put("organization", "技术状态鉴定工单变更部门领导审核");
                    values.put("comment", "技术状态鉴定工单变更部门领导审核");
                    request.setComment("技术状态鉴定工单变更部门领导审核");
                } else {
                    values.put("organization", request.getDepartManagerComment());
                    values.put("comment", request.getDepartManagerComment());
                    request.setComment(request.getDepartManagerComment());
                }
                //设置entity
                entity.setDepartManagerSignature(user.getUsername());
                entity.setDepartManagerSignatureTime(new Date());
                entity.setDepartManagerSignatureResult(request.getDepartManagerSignatureResult());
                entity.setDepartManagerComment(request.getDepartManagerComment());
                if(BusinessCodeConst.APPROVED.equals(request.getDepartManagerSignatureResult())) {
                    //通过
                    entity.setChangeStatus(TechnicalStatusEvaluationOrderChangeStatusEnum.PRODUCTION_SUPPORT_SIGNING.name());
                    values.put("NextAssignee", userApprovalList);
                }else {
                    //驳回
                    entity.setChangeStatus(TechnicalStatusEvaluationOrderChangeStatusEnum.REJECTED.name());
                }
                break;
            case PRODUCTION_SUPPORT_SIGNING:
                //维修室主任签字
                values.put("dataId", entity.getId());
                if(StringUtils.isBlank(request.getProductionSupportComment())) {
                    values.put("organization", "技术状态鉴定工单变更生产保障部审核");
                    values.put("comment", "技术状态鉴定工单变更生产保障部审核");
                    request.setComment("技术状态鉴定工单变更生产保障部审核");
                } else {
                    values.put("organization", request.getProductionSupportComment());
                    values.put("comment", request.getProductionSupportComment());
                    request.setComment(request.getProductionSupportComment());
                }
                //设置entity
                entity.setProductionSupportSignature(user.getUsername());
                entity.setProductionSupportSignatureTime(new Date());
                entity.setProductionSupportSignatureResult(request.getProductionSupportSignatureResult());
                entity.setProductionSupportComment(request.getProductionSupportComment());
                if(BusinessCodeConst.APPROVED.equals(request.getProductionSupportSignatureResult())) {
                    //通过
                    entity.setChangeStatus(TechnicalStatusEvaluationOrderChangeStatusEnum.COMPLETED.name());
                    order.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name());
                    order.setEvaluationDate(entity.getDeferredEvaluationDate());
                    evaluationOrderService.updateById(order);
                }else {
                    //驳回
                    entity.setChangeStatus(TechnicalStatusEvaluationOrderChangeStatusEnum.REJECTED.name());
                }
                break;
        }
        request.setValues(values);
        // å®Œæˆæµç¨‹ä»»åŠ¡
        Result<?> result = flowTaskService.complete(request);
        if (!result.isSuccess()) {
            throw new JeecgBootException("审批失败,请刷新查看!");
        }
        //保存工单
        this.getBaseMapper().updateById(entity);
        return entity;
    }
    @Override
    public void afterFlowHandle(FlowMyBusiness business) {
        business.getTaskNameId();//接下来审批的节点
        business.getValues();//前端传进来的参数
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java
@@ -18,6 +18,7 @@
import org.jeecg.common.constant.DataBaseConstant;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.StrUtils;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog;
import org.jeecg.modules.eam.constant.*;
@@ -26,6 +27,7 @@
import org.jeecg.modules.eam.entity.EamThirdMaintenanceOrder;
import org.jeecg.modules.eam.entity.EamThirdMaintenanceOrderDetail;
import org.jeecg.modules.eam.mapper.EamThirdMaintenanceOrderMapper;
import org.jeecg.modules.eam.request.EamInspectionOrderRequest;
import org.jeecg.modules.eam.request.EamThirdMaintenanceQuery;
import org.jeecg.modules.eam.request.EamThirdMaintenanceRequest;
import org.jeecg.modules.eam.service.*;
@@ -40,6 +42,8 @@
import org.jeecg.modules.system.service.IBaseFactoryService;
import org.jeecg.modules.system.service.IBaseFactoryUserService;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.system.vo.UserSelector;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -76,8 +80,6 @@
    @Autowired
    private IEamEquipmentService eamEquipmentService;
    @Autowired
    private IEamReportRepairService eamReportRepairService;
    @Autowired
    private IEamEquipmentExtendService eamEquipmentExtendService;
    @Resource
@@ -87,6 +89,8 @@
    @Resource
    private IEamBaseHFCodeService eamBaseHFCodeService;
    @Resource
    private IEamThirdMaintenanceOrderDetailService eamThirdMaintenanceOrderDetailService;
    @Override
    public IPage<EamThirdMaintenanceOrder> queryPageList(Page<EamThirdMaintenanceOrder> page, EamThirdMaintenanceQuery query) {
@@ -108,7 +112,7 @@
                Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet());
                Set<String> factoryCode = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
                queryWrapper.in("e.factory_org_code", factoryCode);
            }else {
            } else {
                return page;
            }
        }
@@ -254,24 +258,19 @@
        if (equipment == null) {
            throw new JeecgBootException("设备不存在,添加失败!");
        }
//        if (StringUtils.isBlank(equipment.getEquipmentManager())) {
//            throw new JeecgBootException("设备未分配设备管理员,无法进入下级审批!");
//        }
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (sysUser == null || !BusinessCodeConst.PCR0001.equals(sysUser.getPost())) {
            throw new JeecgBootException("不是操作工,无法领取此工单!");
        if (sysUser == null || !BusinessCodeConst.PCR0002.equals(sysUser.getPost())) {
            throw new JeecgBootException("不是维修工,无法领取此工单!");
        }
        entity.setRepairman(sysUser.getUsername());
        entity.setMaintenanceStatus(ThirdMaintenanceStatusEnum.UNDER_MAINTENANCE.name());
        entity.setMaintenanceStatus(ThirdMaintenanceStatusEnum.WAIT_CHECK.name());
        entity.setActualStartTime(new Date());
        eamThirdMaintenanceOrderMapper.updateById(entity);
        //启动流程
        flowCommonService.initActBusiness("工单号:" + entity.getOrderNum() + ";设备编号: " + equipment.getEquipmentCode() + ";安装位置" + equipment.getInstallationPosition(),
        flowCommonService.initActBusiness("工单号:" + entity.getOrderNum() + ";设备编号: " + equipment.getEquipmentCode() + (equipment.getInstallationPosition() == null ? "" : ";安装位置: " + equipment.getInstallationPosition()),
                entity.getId(), "IEamThirdMaintenanceOrderService", "third_maintenance_process", null);
        Map<String, Object> variables = new HashMap<>();
//        boolean equipmentPrecisionFlag = precisionCheckDetailService.hasPrecisionCheckDetail(entity.getId());
//        variables.put("equipmentPrecisionFlag", equipmentPrecisionFlag);
        variables.put("dataId", entity.getId());
        if (StrUtil.isEmpty(entity.getRemark())) {
            variables.put("organization", "新增三保工单默认启动流程");
@@ -281,9 +280,10 @@
            variables.put("comment", entity.getRemark());
        }
        variables.put("proofreading", true);
        //并行任务会签
        variables.put("maintenance_execution", Collections.singletonList(sysUser.getUsername()));
//        variables.put("precision_check", Collections.singletonList(equipment.getEquipmentManager()));
        // è®¾ç½®ä¸‹ä¸€æ­¥å¤„理人
        List<String> usernames = new ArrayList<>();
        usernames.add(entity.getRepairman());
        variables.put("NextAssignee", usernames);
        Result result = flowDefinitionService.startProcessInstanceByKey("third_maintenance_process", variables);
        if (result != null) {
            //更新设备保养状态
@@ -296,144 +296,310 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.THIRD_MAINTENANCE, businessTable = "eam_third_maintenance_order")
    public EamThirdMaintenanceOrder approval(EamThirdMaintenanceRequest request) {
        EamThirdMaintenanceOrder entity = eamThirdMaintenanceOrderMapper.selectById(request.getId());
        if (entity == null) {
            throw new JeecgBootException("审批的数据已删除,请刷新重试!");
    public EamThirdMaintenanceOrder approval(EamThirdMaintenanceRequest eamThirdMaintenanceRequest) {
        EamThirdMaintenanceOrder eamThirdMaintenanceOrder = eamThirdMaintenanceOrderMapper.selectById(eamThirdMaintenanceRequest.getId());
        if (eamThirdMaintenanceOrder == null) {
            throw new JeecgBootException("待处理的数据已删除,请刷新重试!");
        }
//        // èŽ·å–å½“å‰ç™»å½•ç”¨æˆ·
//        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//        if (user == null || StrUtil.isBlank(user.getId())) {
//            throw new JeecgBootException("未获取到登录用户,请重新登录后再试!");
//        }
//        request.setAssignee(user.getUsername());
//        // èŽ·å–æµç¨‹ä¸šåŠ¡è®°å½•
//        FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(request.getInstanceId(), request.getTaskId());
//        if (flowMyBusiness == null) {
//            throw new JeecgBootException("流程实例不存在,请刷新后重试!");
//        }
//
//        boolean userAuthorized = isUserAuthorized(flowMyBusiness, user);
//        if (!userAuthorized) {
//            throw new JeecgBootException("用户无权操作此任务,请刷新后重试!");
//        }
//        // è®¤é¢†ä»»åŠ¡
//        if (!claimTask(flowMyBusiness.getTaskId(), user)) {
//            throw new JeecgBootException("任务不存在、已完成或已被他人认领!");
//        }
//
//        EamEquipment equipment = eamEquipmentService.getById(entity.getEquipmentId());
//        if (equipment == null) {
//            throw new JeecgBootException("设备不存在,请检查!");
//        }
//
//        ThirdMaintenanceStatusEnum status = ThirdMaintenanceStatusEnum.getInstance(entity.getMaintenanceStatus());
//        if (status == null) {
//            return null;
//        }
//        //流程变量
//        Map<String, Object> values = new HashMap<>();
//        List<String> userApprovalList;
//        List<UserSelector> userSelectors;
//        switch (status) {
//            case UNDER_MAINTENANCE:
//                boolean parallelCompletion = flowTaskService.checkParallelCompletion(flowMyBusiness.getTaskId());
//                //执行完成
//                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), null, BusinessCodeConst.PCR0006);
//                if (CollectionUtil.isEmpty(userSelectors)) {
//                    throw new JeecgBootException("设备未分配给车间班组长,无法进入下级审批!");
//                }
//                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
//                values.put("dataId", entity.getId());
//                values.put("organization", "三保执行结束");
//                values.put("comment", "三保执行结束");
//                if (parallelCompletion) {
//                    values.put("NextAssignee", userApprovalList);
//                }
//                request.setComment("三保执行结束");
//                //设置entity
//                if (parallelCompletion) {
//                    entity.setMaintenanceStatus(ThirdMaintenanceStatusEnum.WAIT_CONFIRM.name());
//                    entity.setActualEndTime(new Date());
//                }
//                if ("maintenance_execution".equals(flowMyBusiness.getTaskNameId())) {
//                    //执行保养
//                    //处理附件
//                    if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) {
//                        List<FileUploadResult> fileUploadResultList = request.getImageFilesResult();
//                        ObjectMapper mapper = new ObjectMapper();
//                        try {
//                            String referenceFile = mapper.writeValueAsString(fileUploadResultList);
//                            entity.setImageFiles(referenceFile);
//                        } catch (JsonProcessingException e) {
//                            log.error("JSON转换失败:" + e.getMessage(), e);
//                        }
//                    }
//                    //处理详情
//                    if (CollectionUtil.isNotEmpty(request.getTableDetailList())) {
//                        thirdMaintenanceOrderDetailService.updateBatchById(request.getTableDetailList());
//                    }
//                } else if ("precision_check".equals(flowMyBusiness.getTaskNameId())) {
//                    entity.setPrecisionChecker(user.getUsername());
//                    entity.setPrecisionCheckTime(new Date());
//                    //处理精度检验
//                    if (CollectionUtil.isNotEmpty(request.getPrecisionDetailList())) {
//                        precisionCheckDetailService.updateBatchById(request.getPrecisionDetailList());
//                    }
//                }
//                if (parallelCompletion) {
//                    //更新设备保养状态
//                    eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.THIRD_MAINTENANCE_WAIT_CONFIRM.name());
//                }
//                break;
//            case WAIT_CONFIRM:
//                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(),null, BusinessCodeConst.PCR0003);
//                if (CollectionUtil.isEmpty(userSelectors)) {
//                    throw new JeecgBootException("设备未分配给车间班组长,无法进入下级审批!");
//                }
//                //班组长确认
//                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
//                values.put("dataId", entity.getId());
//                values.put("organization", request.getConfirmComment());
//                values.put("comment", request.getConfirmComment());
//                values.put("NextAssignee", userApprovalList);
//                values.put("confirmation", request.getConfirmDealType());
//                request.setComment(request.getConfirmComment());
//                //设置entity
//                entity.setMaintenanceStatus(ThirdMaintenanceStatusEnum.WAIT_LEADER_CONFIRM.name());
//                entity.setConfirmUser(user.getUsername());
//                entity.setConfirmComment(request.getConfirmComment());
//                entity.setConfirmTime(new Date());
//                //处理报修
//                List<EamThirdMaintenanceOrderDetail> collect = request.getTableDetailList().stream().filter((detail) -> CommonConstant.DEFAULT_1.equals(detail.getReportFlag())).collect(Collectors.toList());
//                if (CollectionUtil.isNotEmpty(collect)) {
//                    eamReportRepairService.reportRepairFromThirdMaintenance(equipment.getId(), entity.getOperator(), collect);
//                }
//                break;
//            case WAIT_LEADER_CONFIRM:
//                values.put("dataId", entity.getId());
//                values.put("organization", request.getLeaderConfirmComment());
//                values.put("comment", request.getLeaderConfirmComment());
//                request.setComment(request.getLeaderConfirmComment());
//                //设置entity
//                entity.setMaintenanceStatus(ThirdMaintenanceStatusEnum.COMPLETE.name());
//                entity.setConfirmLeader(user.getUsername());
//                entity.setLeaderConfirmComment(request.getLeaderConfirmComment());
//                entity.setLeaderConfirmTime(new Date());
//                //更新设备保养状态
//                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name());
//                break;
//        }
//        request.setValues(values);
//
//        // å®Œæˆæµç¨‹ä»»åŠ¡
//        Result result = flowTaskService.complete(request);
//        if (!result.isSuccess()) {
//            throw new JeecgBootException("审批失败,请刷新查看!");
//        }
//        //保存工单
//        eamThirdMaintenanceOrderMapper.updateById(entity);
        return entity;
        // èŽ·å–å½“å‰ç™»å½•ç”¨æˆ·
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (user == null || StrUtil.isBlank(user.getId())) {
            throw new JeecgBootException("未获取到登录用户,请重新登录后再试!");
        }
        eamThirdMaintenanceRequest.setAssignee(user.getUsername());
        // èŽ·å–æµç¨‹ä¸šåŠ¡è®°å½•
        FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(eamThirdMaintenanceRequest.getInstanceId(), eamThirdMaintenanceRequest.getTaskId());
        if (flowMyBusiness == null) {
            throw new JeecgBootException("流程实例不存在,请刷新后重试!");
        }
        if (!isUserAuthorized(flowMyBusiness, user)) {
            throw new JeecgBootException("用户无权操作此任务,请刷新后重试!");
        }
        // è®¤é¢†ä»»åŠ¡
        if (!claimTask(flowMyBusiness.getTaskId(), user)) {
            throw new JeecgBootException("任务不存在、已完成或已被他人认领!");
        }
        EamEquipment equipment = eamEquipmentService.getById(eamThirdMaintenanceOrder.getEquipmentId());
        if (equipment == null) {
            throw new JeecgBootException("设备不存在,请检查!");
        }
        // è®¾ç½®æµç¨‹å˜é‡
        setupProcessVariables(eamThirdMaintenanceRequest, eamThirdMaintenanceOrder, user, equipment);
        // å®Œæˆæµç¨‹ä»»åŠ¡
        Result result = flowTaskService.complete(eamThirdMaintenanceRequest);
        // æ ¹æ®ä»»åŠ¡å®Œæˆç»“æžœæ›´æ–°å·¥å•çŠ¶æ€
        updateOrderStatus(result, eamThirdMaintenanceRequest, eamThirdMaintenanceOrder, user);
        //更新工单信息
        eamThirdMaintenanceOrderMapper.updateById(eamThirdMaintenanceOrder);
        return eamThirdMaintenanceOrder;
    }
    /**
     * æŸ¥è¯¢ä¸‰ä¿å·¥å•基本信息
     * @param id
     * @return
     */
    @Override
    public Result<?> selectVoById(String id) {
        List<EamThirdMaintenanceOrder> eamThirdMaintenanceOrders = this.list(new QueryWrapper<EamThirdMaintenanceOrder>().eq("id", id));
        List<EamThirdMaintenanceRequest> eamThirdMaintenanceRequestList = new ArrayList<>();
        eamThirdMaintenanceOrders.forEach(eamThirdMaintenanceOrder -> {
            EamThirdMaintenanceRequest eamThirdMaintenanceRequest = new EamThirdMaintenanceRequest();
            BeanUtils.copyProperties(eamThirdMaintenanceOrder, eamThirdMaintenanceRequest);
            List<EamThirdMaintenanceOrderDetail> eamThirdMaintenanceOrderDetails = eamThirdMaintenanceOrderDetailService
                    .list(new QueryWrapper<EamThirdMaintenanceOrderDetail>().eq("order_id", eamThirdMaintenanceOrder.getId()));
            eamThirdMaintenanceRequest.setTableDetailList(eamThirdMaintenanceOrderDetails);
            eamThirdMaintenanceRequestList.add(eamThirdMaintenanceRequest);
        });
        return Result.ok(eamThirdMaintenanceRequestList);
    }
    /**
     * è®¾ç½®æµç¨‹å˜é‡
     */
    private void setupProcessVariables(EamThirdMaintenanceRequest request, EamThirdMaintenanceOrder order, LoginUser user, EamEquipment equipment) {
        //流程变量
        Map<String, Object> values = new HashMap<>();
        List<String> userApprovalList;
        List<UserSelector> userSelectors;
        ThirdMaintenanceStatusEnum status = ThirdMaintenanceStatusEnum.getInstance(order.getMaintenanceStatus());
        switch (status) {
            case WAIT_CHECK:
                // æŠ€æœ¯çŠ¶æ€é‰´å®šç»“æŸ
                values.put("dataId", order.getId());
                values.put("organization", "技术状态鉴定结束");
                values.put("comment", "技术状态鉴定结束");
                if (CommonConstant.YN_1.equals(request.getFullyFunctional()) && CommonConstant.YN_1.equals(request.getRunningNormally())) {
                    values.put("confirmation", "1");
                    // èŽ·å–ä¸‹ä¸€æ­¥æ‰§è¡Œäºº
                    userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0002);
                    if (CollectionUtil.isEmpty(userSelectors)) {
                        throw new JeecgBootException("设备未分配给维修工,无法进入下级审批!");
                    }
                    userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                    values.put("NextAssignee", userApprovalList);
                    //更新设备保养状态
                    eamEquipmentExtendService.updateEquipmentMaintenanceStatus(order.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_THIRD_MAINTENANCE.name());
                } else {
                    values.put("confirmation", "2");
                }
                request.setComment("检查人检查结束");
                break;
            case UNDER_MAINTENANCE:
                // ä¿å…»ç»“束
                values.put("dataId", order.getId());
                values.put("organization", "保养人保养结束");
                values.put("comment", "保养人保养结束");
                // èŽ·å–ä¸‹ä¸€æ­¥æ‰§è¡Œäºº
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0002);
                if (CollectionUtil.isEmpty(userSelectors)) {
                    throw new JeecgBootException("设备未分配给维修工,无法进入下级审批!");
                }
                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                values.put("NextAssignee", userApprovalList);
                request.setComment("保养人保养结束");
                //更新设备保养状态
                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(order.getEquipmentId(), EquipmentMaintenanceStatus.THIRD_MAINTENANCE_WAIT_CONFIRM.name());
                break;
            case UNDER_FIRST_ACCEPTANCE:
                // ç¬¬ä¸€æ¬¡éªŒæ”¶ç»“束
                values.put("dataId", order.getId());
                values.put("organization", "第一次验收结束");
                values.put("comment", "第一次验收结束");
                boolean flag = false;
                if (!CollectionUtil.isEmpty(request.getTableDetailList())) {
                    for (EamThirdMaintenanceOrderDetail eamThirdMaintenanceOrderDetail : request.getTableDetailList()) {
                        if ("2".equals(eamThirdMaintenanceOrderDetail.getFirstInspectResult())) {
                            flag = true;
                            break;
                        }
                    }
                }
                if (flag) {
                    // å¼€å¯ç¬¬äºŒæ¬¡éªŒæ”¶
                    values.put("confirmation", "2");
                    List<String> usernames = new ArrayList<>();
                    usernames.add(user.getUsername());
                    values.put("NextAssignee", usernames);
                } else {
                    // æµç¨‹æµè½¬åˆ°æ“ä½œäººç­¾å­—
                    values.put("confirmation", "1");
                    // èŽ·å–ä¸‹ä¸€æ­¥æ‰§è¡Œäºº
                    userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0001);
                    if (CollectionUtil.isEmpty(userSelectors)) {
                        throw new JeecgBootException("设备未分配给操作工,无法进入下级审批!");
                    }
                    userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                    values.put("NextAssignee", userApprovalList);
                }
                request.setComment("第一次验收结束");
                break;
            case UNDER_SECOND_ACCEPTANCE:
                // ç¬¬äºŒæ¬¡éªŒæ”¶ç»“束
                values.put("dataId", order.getId());
                values.put("organization", "第二次验收结束");
                values.put("comment", "第二次验收结束");
                // èŽ·å–ä¸‹ä¸€æ­¥æ‰§è¡Œäºº
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0001);
                if (CollectionUtil.isEmpty(userSelectors)) {
                    throw new JeecgBootException("设备未分配给操作工,无法进入下级审批!");
                }
                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                values.put("NextAssignee", userApprovalList);
                request.setComment("第二次验收结束");
                break;
            case OPERATOR_SIGNATURE:
                // æ“ä½œäººç­¾å­—结束
                values.put("dataId", order.getId());
                values.put("organization", "操作人签字结束");
                values.put("comment", "操作人签字结束");
                // èŽ·å–ä¸‹ä¸€æ­¥æ‰§è¡Œäºº
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0002);
                if (CollectionUtil.isEmpty(userSelectors)) {
                    throw new JeecgBootException("设备未分配给维修工,无法进入下级审批!");
                }
                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                values.put("NextAssignee", userApprovalList);
                request.setComment("操作人签字结束");
                break;
            case REPAIRMAN_SIGNATURE:
                // ç»´ä¿®äººç­¾å­—结束
                values.put("dataId", order.getId());
                values.put("organization", "维修人签字结束");
                values.put("comment", "维修人签字结束");
                // èŽ·å–ä¸‹ä¸€æ­¥æ‰§è¡Œäºº
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0008);
                if (CollectionUtil.isEmpty(userSelectors)) {
                    throw new JeecgBootException("设备未分配给维修室主任,无法进入下级审批!");
                }
                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                values.put("NextAssignee", userApprovalList);
                request.setComment("维修人签字结束");
                break;
            case REPAIR_MANAGER_SIGNATURE:
                // ç»´ä¿®å®¤ä¸»ä»»ç­¾å­—结束
                values.put("dataId", order.getId());
                values.put("organization", "维修室主任签字结束");
                values.put("comment", "维修室主任签字结束");
                // èŽ·å–ä¸‹ä¸€æ­¥æ‰§è¡Œäºº
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0003);
                if (CollectionUtil.isEmpty(userSelectors)) {
                    throw new JeecgBootException("设备未分配给设备检验员,无法进入下级审批!");
                }
                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                values.put("NextAssignee", userApprovalList);
                request.setComment("维修室主任签字结束");
                break;
            case INSPECTOR_SIGNATURE:
                // è®¾å¤‡æ£€æŸ¥äººç­¾å­—结束
                values.put("dataId", order.getId());
                values.put("organization", "维修室主任签字结束");
                values.put("comment", "维修室主任签字结束");
                request.setComment("维修室主任签字结束");
                //更新设备保养状态
                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(order.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name());
                break;
        }
        request.setValues(values);
    }
    /**
     * æ›´æ–°å·¥å•状态
     */
    private void updateOrderStatus(Result result, EamThirdMaintenanceRequest request, EamThirdMaintenanceOrder order, LoginUser user) {
        if (result.isSuccess()) {
            ThirdMaintenanceStatusEnum status = ThirdMaintenanceStatusEnum.getInstance(order.getMaintenanceStatus());
            switch (status) {
                case WAIT_CHECK:
                    // æŠ€æœ¯çŠ¶æ€é‰´å®šç»“æŸ
                    order.setInspector(user.getUsername());
                    order.setFullyFunctional(request.getFullyFunctional());
                    order.setRunningNormally(request.getRunningNormally());
                    order.setInspectTime(new Date());
                    if (CommonConstant.YN_1.equals(request.getFullyFunctional()) && CommonConstant.YN_1.equals(request.getRunningNormally())) {
                        // é‰´å®šé€šè¿‡
                        order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.UNDER_MAINTENANCE.name());
                    } else {
                        // é‰´å®šæœªé€šè¿‡
                        order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.CANCEL.name());
                        order.setProblemDescription(request.getProblemDescription());
                        order.setActualEndTime(new Date());
                    }
                    break;
                case UNDER_MAINTENANCE:
                    // ä¿å…»ç»“束
                    order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.UNDER_FIRST_ACCEPTANCE.name());
                    order.setRepairman(user.getUsername());
                    order.setActualEndTime(new Date());
                    // ä¸‰ä¿æ˜Žç»†å¤„理
                    eamThirdMaintenanceOrderDetailService.remove(new LambdaQueryWrapper<EamThirdMaintenanceOrderDetail>().eq(EamThirdMaintenanceOrderDetail::getOrderId, order.getId()));
                    eamThirdMaintenanceOrderDetailService.saveBatch(request.getTableDetailList());
                    break;
                case UNDER_FIRST_ACCEPTANCE:
                    // ç¬¬ä¸€æ¬¡éªŒæ”¶ç»“束
                    boolean flag = false;
                    if (!CollectionUtil.isEmpty(request.getTableDetailList())) {
                        for (EamThirdMaintenanceOrderDetail eamThirdMaintenanceOrderDetail : request.getTableDetailList()) {
                            if ("2".equals(eamThirdMaintenanceOrderDetail.getFirstInspectResult())) {
                                flag = true;
                                break;
                            }
                        }
                    }
                    if (flag) {
                        order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.UNDER_SECOND_ACCEPTANCE.name());
                    } else {
                        order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.OPERATOR_SIGNATURE.name());
                    }
                    // ä¸‰ä¿æ˜Žç»†å¤„理
                    eamThirdMaintenanceOrderDetailService.remove(new LambdaQueryWrapper<EamThirdMaintenanceOrderDetail>().eq(EamThirdMaintenanceOrderDetail::getOrderId, order.getId()));
                    eamThirdMaintenanceOrderDetailService.saveBatch(request.getTableDetailList());
                    break;
                case UNDER_SECOND_ACCEPTANCE:
                    // ç¬¬äºŒæ¬¡éªŒæ”¶ç»“束
                    order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.OPERATOR_SIGNATURE.name());
                    // ä¸‰ä¿æ˜Žç»†å¤„理
                    eamThirdMaintenanceOrderDetailService.remove(new LambdaQueryWrapper<EamThirdMaintenanceOrderDetail>().eq(EamThirdMaintenanceOrderDetail::getOrderId, order.getId()));
                    eamThirdMaintenanceOrderDetailService.saveBatch(request.getTableDetailList());
                    break;
                case OPERATOR_SIGNATURE:
                    // æ“ä½œäººç­¾å­—结束
                    if (!StrUtils.isEmpty(request.getAssistantOperator())) {
                        order.setAssistantOperator(request.getAssistantOperator());
                    }
                    order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.REPAIRMAN_SIGNATURE.name());
                    order.setOperatorSignature(user.getUsername());
                    order.setOperatorSignatureTime(new Date());
                    break;
                case REPAIRMAN_SIGNATURE:
                    // ç»´ä¿®äººç­¾å­—结束
                    if (!StrUtils.isEmpty(request.getAssistantRepairman())) {
                        order.setAssistantRepairman(request.getAssistantRepairman());
                    }
                    order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.REPAIR_MANAGER_SIGNATURE.name());
                    order.setRepairmanSignature(user.getUsername());
                    order.setRepairmanSignatureTime(new Date());
                    break;
                case REPAIR_MANAGER_SIGNATURE:
                    // ç»´ä¿®å®¤ä¸»ä»»ç­¾å­—结束
                    order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.INSPECTOR_SIGNATURE.name());
                    order.setRepairManagerSignature(user.getUsername());
                    order.setRepairManagerSignatureTime(new Date());
                    break;
                case INSPECTOR_SIGNATURE:
                    // è®¾å¤‡æ£€æŸ¥äººç­¾å­—结束
                    order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.COMPLETE.name());
                    order.setInspectorSignature(user.getUsername());
                    order.setInspectorSignatureTime(new Date());
                    break;
            }
        }
    }
    private boolean isUserAuthorized(FlowMyBusiness flowMyBusiness, LoginUser user) {
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysPosition.java
@@ -85,4 +85,6 @@
     */
    @ApiModelProperty(value = "组织机构编码")
    private java.lang.String sysOrgCode;
    /*备注*/
    private String remark;
}