已重命名29个文件
已添加6个文件
已修改26个文件
4645 ■■■■ 文件已修改
db/430设备管理数据库设计.pdma.json 2754 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-boot-base-core/src/main/java/org/jeecg/common/aspect/DictAspect.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-boot-base-core/src/main/java/org/jeecg/common/aspect/annotation/DictExt.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-boot-base-core/src/main/java/org/jeecg/common/aspect/annotation/DictList.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-boot-base-core/src/main/java/org/jeecg/common/aspect/annotation/FieldQuery.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/FillRuleConstant.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-boot-base-core/src/main/java/org/jeecg/common/system/vo/LoginUser.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EamDictAspect.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/controller/BaseFactoryController.java 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/controller/BaseFactoryUserController.java 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/controller/EamBaseRepairDepartController.java 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/entity/BaseFactory.java 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/entity/BaseFactoryUser.java 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/entity/EamBaseRepairDepart.java 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/entity/EamBaseRepairDepartUser.java 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/BaseFactoryMapper.java 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/BaseFactoryUserMapper.java 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/EamBaseRepairDepartMapper.java 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/EamBaseRepairDepartUserMapper.java 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/xml/BaseFactoryMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/xml/BaseFactoryUserMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/xml/EamBaseRepairDepartMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/xml/EamBaseRepairDepartUserMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/model/EamBaseFactoryTreeModel.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/model/EamBaseRepairDepartTreeModel.java 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/model/RepairDepartIdModel.java 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/model/WorkShopIdModel.java 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/rule/OrgCodeRepDepRule.java 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/IBaseFactoryService.java 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/IBaseFactoryUserService.java 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/IEamBaseRepairDepartService.java 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/impl/BaseFactoryServiceImpl.java 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/impl/BaseFactoryUserServiceImpl.java 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/impl/EamBaseRepairDepartImpl.java 84 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/util/FindsBaseFactorysChildrenUtil.java 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/util/FindsRepairDepartsChildrenUtil.java 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/util/WorkShopOrgCodeProRule.java 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java 547 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentExtend.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamUserSelectController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentLeanOutServiceImpl.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentScrapServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentSealUpServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentTransferServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/aspect/DicAspectService.java 311 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/aspect/FieldBatchQuery.java 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysDictMapper.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysDictMapper.xml 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysDictService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDictServiceImpl.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
db/430É豸¹ÜÀíÊý¾Ý¿âÉè¼Æ.pdma.json
@@ -4,7 +4,7 @@
  "avatar": "",
  "version": "4.9.2",
  "createdTime": "2025-3-10 16:38:19",
  "updatedTime": "2025-7-2 21:15:02",
  "updatedTime": "2025-7-3 17:41:45",
  "dbConns": [],
  "profile": {
    "default": {
@@ -476,6 +476,12 @@
        "freeze": false
      },
      {
        "refKey": "comment",
        "hideInGraph": true,
        "value": "说明",
        "freeze": false
      },
      {
        "refKey": "primaryKey",
        "hideInGraph": false,
        "value": "主键",
@@ -515,12 +521,6 @@
        "refKey": "scale",
        "hideInGraph": false,
        "value": "小数位数",
        "freeze": false
      },
      {
        "refKey": "comment",
        "hideInGraph": true,
        "value": "说明",
        "freeze": false
      },
      {
@@ -632,7 +632,7 @@
      "#DDE5FF"
    ],
    "DDLToggleCase": "L",
    "menuWidth": "436px"
    "menuWidth": "392px"
  },
  "entities": [
    {
@@ -674,6 +674,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -707,11 +712,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -1655,6 +1655,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -1688,11 +1693,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -1900,6 +1900,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -1933,11 +1938,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -2353,6 +2353,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -2386,11 +2391,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -2688,6 +2688,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -2721,11 +2726,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -2987,6 +2987,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -3020,11 +3025,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -3308,6 +3308,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -3341,11 +3346,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -3629,6 +3629,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -3662,11 +3667,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -3946,6 +3946,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -3979,11 +3984,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -4551,6 +4551,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -4584,11 +4589,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -4904,6 +4904,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -4937,11 +4942,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -5429,6 +5429,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -5462,11 +5467,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -5840,6 +5840,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -5873,11 +5878,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -6213,7 +6213,7 @@
        {
          "defKey": "maintenance_status",
          "defName": "保养状态",
          "comment": "",
          "comment": "待保养、保养中、管理员确认、检查人确认、已完成",
          "type": "",
          "len": "",
          "scale": "",
@@ -6466,6 +6466,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -6499,11 +6504,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -6953,6 +6953,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -6986,11 +6991,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -7205,7 +7205,7 @@
        {
          "defKey": "item_category",
          "defName": "保养分类",
          "comment": "",
          "comment": "操作工、维修工",
          "type": "",
          "len": "",
          "scale": "",
@@ -7358,6 +7358,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -7391,11 +7396,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -7694,8 +7694,8 @@
          "uiHint": null
        },
        {
          "defKey": "operator",
          "defName": "保养人",
          "defKey": "repairman",
          "defName": "维修人",
          "comment": "",
          "type": "",
          "len": "",
@@ -7751,8 +7751,206 @@
          "uiHint": null
        },
        {
          "defKey": "confirm_user",
          "defName": "机动办确认",
          "defKey": "fully_functional",
          "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": "DD7D47CD-910D-4B73-BD41-862157212F29"
        },
        {
          "defKey": "running_normally",
          "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": "532D82DD-50A4-46A0-B978-823A9A89A6BF"
        },
        {
          "defKey": "problem_description",
          "defName": "问题描述",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "ECF160CA-99E5-4CFC-8D79-7E242844F4E4"
        },
        {
          "defKey": "inspector",
          "defName": "检查人",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "id": "0A866402-6334-4EFB-B728-0E4DEE12BF2C"
        },
        {
          "defKey": "inspect_time",
          "defName": "检查时间",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098",
          "extProps": {},
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "id": "EFD18A08-63C9-494C-8D19-7CE84E26FB84"
        },
        {
          "defKey": "operator_signature",
          "defName": "操作人签字",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "id": "98DC72F9-A0E9-4C93-AF53-809B2680D711"
        },
        {
          "defKey": "assistant_operator",
          "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": "035B9703-AF94-4999-BE11-64DF0FB2F025"
        },
        {
          "defKey": "operator_signature_time",
          "defName": "操作人签字时间",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098",
          "extProps": {},
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "id": "B6B623C9-DB50-420F-A508-AFA444664C0F"
        },
        {
          "defKey": "repairman_signature",
          "defName": "维修人签字",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "id": "28BE06D2-6FE4-41B4-82EE-B126C6124D61"
        },
        {
          "defKey": "assistant_repairman",
          "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": "3390F320-9B4C-40A4-B5A2-7992A1FB36C7"
        },
        {
          "defKey": "repairman_signature_time",
          "defName": "维修人签字时间",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098",
          "extProps": {},
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "id": "00E06BE1-5388-47F9-9EAC-8201C4E21E69"
        },
        {
          "defKey": "repair_manager_signature",
          "defName": "维修室主任签字",
          "comment": "",
          "type": "",
          "len": "",
@@ -7779,184 +7977,8 @@
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "confirm_comment",
          "defName": "机动办意见",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "F04C2677-F1C5-4367-B9D1-1696B35DF8D6"
        },
        {
          "defKey": "confirm_time",
          "defName": "机动办确认时间",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "refDict": "",
          "extProps": {},
          "notes": {},
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "attr4": "",
          "attr5": "",
          "attr6": "",
          "attr7": "",
          "attr8": "",
          "attr9": "",
          "id": "5FEBEF15-A4EC-4FB8-89A8-AC135E86EABE",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098"
        },
        {
          "defKey": "image_files",
          "defName": "保养上传图片",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "13DE7063-440C-426F-B1DF-25EC824C6DB8",
          "refDict": "",
          "extProps": {},
          "notes": {},
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "attr4": "",
          "attr5": "",
          "attr6": "",
          "attr7": "",
          "attr8": "",
          "attr9": "",
          "id": "4D8E08DB-BB54-49DE-A079-8B5F92964F14",
          "baseType": "B17BDED3-085F-40E1-9019-3B79CF2BF075"
        },
        {
          "defKey": "confirm_leader",
          "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": "9B5BF1CF-E105-4358-8F40-C865226E06E4",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "leader_confirm_comment",
          "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": "FB639232-0531-45AD-96FC-E0A84E29E0F8",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "leader_confirm_time",
          "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": "9994DFAA-210C-4757-9B65-298C574B6D27",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "precision_checker",
          "defName": "精度检验人",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "id": "3DEB339F-F54A-4F35-8D02-53B40A9A5CFD"
        },
        {
          "defKey": "precision_check_time",
          "defName": "检验时间",
          "defKey": "repair_manager_signature_time",
          "defName": "维修室主任签字时间",
          "comment": "",
          "type": "",
          "len": "",
@@ -7970,7 +7992,63 @@
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098",
          "extProps": {},
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "id": "3BDAC273-6117-4A4D-9FD1-4D955E0AAA71"
          "id": "F04C2677-F1C5-4367-B9D1-1696B35DF8D6"
        },
        {
          "defKey": "inspector_signature",
          "defName": "设备检查人签字",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "refDict": "",
          "extProps": {},
          "notes": {},
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "attr4": "",
          "attr5": "",
          "attr6": "",
          "attr7": "",
          "attr8": "",
          "attr9": "",
          "id": "5FEBEF15-A4EC-4FB8-89A8-AC135E86EABE",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "inspector_signature_time",
          "defName": "设备检查人签字时间",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "refDict": "",
          "extProps": {},
          "notes": {},
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "attr4": "",
          "attr5": "",
          "attr6": "",
          "attr7": "",
          "attr8": "",
          "attr9": "",
          "id": "4D8E08DB-BB54-49DE-A079-8B5F92964F14",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098"
        },
        {
          "defKey": "remark",
@@ -8035,6 +8113,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -8068,11 +8151,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -8314,7 +8392,7 @@
        },
        {
          "defKey": "item_name",
          "defName": "保养项目",
          "defName": "保养内容",
          "comment": "",
          "type": "",
          "len": "",
@@ -8342,7 +8420,7 @@
        },
        {
          "defKey": "item_demand",
          "defName": "保养要求",
          "defName": "验收标准",
          "comment": "",
          "type": "",
          "len": "",
@@ -8366,34 +8444,6 @@
          "attr8": "",
          "attr9": "",
          "id": "19345E5D-63BB-4ADA-BE3C-93443CDCE5FC",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "report_flag",
          "defName": "报修标记",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
          "refDict": "",
          "extProps": {},
          "notes": {},
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "attr4": "",
          "attr5": "",
          "attr6": "",
          "attr7": "",
          "attr8": "",
          "attr9": "",
          "id": "833FA58B-3317-4A5C-9C06-355B8947E192",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
@@ -8433,6 +8483,1497 @@
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "95543684-75C8-4D5F-9D02-4AF81E67EADA",
          "uiHint": null
        },
        {
          "defKey": "first_inspect_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": "458EB767-8A78-4763-8890-87888CC296DB"
        },
        {
          "defKey": "first_inspect_time",
          "defName": "第一次检验时间",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098",
          "extProps": {},
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "id": "9B64C231-373D-40D8-8DCD-D8D98104B2D7"
        },
        {
          "defKey": "first_inspect_exception",
          "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": "5ADB00F3-0C2E-4209-9040-209809174F47"
        },
        {
          "defKey": "second_inspect_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": "05EC4350-74F0-4697-AFC2-352D18243EFC"
        },
        {
          "defKey": "second_inspect_time",
          "defName": "第二次检验时间",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098",
          "extProps": {},
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "id": "BB5C6C88-F83D-4F78-86A5-A1DE5CB0F59D"
        },
        {
          "defKey": "second_inspect_exception",
          "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": "5B3CB19E-CEF3-4959-BFBA-589BF138C158"
        }
      ],
      "correlations": [],
      "indexes": [],
      "type": "P"
    },
    {
      "id": "CD74AAA7-6D2A-42DE-A62D-D772076AFD22",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "eam_third_maintenance_furnace",
      "defName": "真空热处理炉三保",
      "comment": "",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "sysProps": {
        "nameTemplate": "{defKey}[{defName}]"
      },
      "notes": {},
      "headers": [
        {
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "refKey": "defKey",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "defName",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "notNull",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "autoIncrement",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "domain",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "type",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "len",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "refDict",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "defaultValue",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "isStandard",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "uiHint",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "extProps",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr1",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr2",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr3",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr4",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr5",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr6",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr7",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr8",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr9",
          "freeze": false,
          "hideInGraph": true
        }
      ],
      "fields": [
        {
          "defKey": "id",
          "defName": "主键",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "5717CAAF-4D78-4410-B46E-6E1D388CD6EB"
        },
        {
          "defKey": "create_by",
          "defName": "创建人",
          "comment": "",
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "863AA07B-D224-406A-AF7E-33ADAE13E5BB",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "create_time",
          "defName": "创建时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "39A6B836-3738-478C-8B30-F01CE898D132",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098"
        },
        {
          "defKey": "update_by",
          "defName": "更新人",
          "comment": "",
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "3846AB05-F89F-4239-A287-B6B283FE8FA0",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "update_time",
          "defName": "更新时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "5523E517-7E80-4445-9294-8DCE12F11EB1",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098"
        },
        {
          "defKey": "del_flag",
          "defName": "删除标记",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "1D764C4A-6F9F-421E-B11A-6F3E23B51811",
          "extProps": {},
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "id": "6BEE092E-65D4-4D44-916B-EDB48C4BFBCB"
        },
        {
          "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": "28A3511F-3503-466A-9E46-48F318C5830A"
        },
        {
          "defKey": "compressed_air_pressure_value",
          "defName": "压缩空气压力(MPa)",
          "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": "E899FD40-F02C-4310-A8FB-B09E6BAE5D41"
        },
        {
          "defKey": "ultimate_vacuum_value",
          "defName": "极限真空(Pa)",
          "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": "3EFEFDEB-A794-40C9-B403-0A6032E9CA7D"
        },
        {
          "defKey": "leak_rate",
          "defName": "泄漏率(Pa/h)",
          "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": "6B8667C6-ADC1-4D2E-AEC4-885826FC91E4"
        },
        {
          "defKey": "purification_treatment",
          "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": "E7F5A235-A3D5-42DC-9DEE-C406EAA0F965"
        },
        {
          "defKey": "furnace_temperature_uniformity_testing",
          "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": "F3F441E9-E02F-4B92-8223-AE3ABC8173EA"
        },
        {
          "defKey": "heating_power_test​",
          "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": "BC4492DE-C6A1-4230-891B-F17A183B7766"
        },
        {
          "defKey": "operator",
          "defName": "保养人",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "7AD2D993-0D21-4317-BA0B-30818A1AB7AD"
        },
        {
          "defKey": "operate_time",
          "defName": "保养日期",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098",
          "extProps": {},
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "id": "FC8FF048-C167-4B6F-B401-28D005CB9EB1"
        },
        {
          "defKey": "maintenance_status",
          "defName": "保养状态",
          "comment": "待提交、待确认、已完成",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
          "id": "7CE88D05-27D6-4D00-AD89-9FEBBA6F6BB3"
        },
        {
          "defKey": "processing_requirements_flag",
          "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": "7D0AF112-570F-4CC3-851A-952A7C851441"
        },
        {
          "defKey": "confirm_user",
          "defName": "确认人",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "id": "4C11A4C0-29C2-423B-972B-C080B6023536"
        },
        {
          "defKey": "confirm_time",
          "defName": "确认日期",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098",
          "extProps": {},
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "id": "4D2784FA-4590-44E2-AE97-68AFA3DB4540"
        }
      ],
      "correlations": [],
      "indexes": [],
      "type": "P"
    },
    {
      "id": "46D0F664-07ED-4072-8208-30E984714F52",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "eam_third_maintenance_spare",
      "defName": "备件使用明细",
      "comment": "",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "sysProps": {
        "nameTemplate": "{defKey}[{defName}]"
      },
      "notes": {},
      "headers": [
        {
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "refKey": "defKey",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "defName",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "notNull",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "autoIncrement",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "domain",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "type",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "len",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "refDict",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "defaultValue",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "isStandard",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "uiHint",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "extProps",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr1",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr2",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr3",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr4",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr5",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr6",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr7",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr8",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr9",
          "freeze": false,
          "hideInGraph": true
        }
      ],
      "fields": [
        {
          "defKey": "id",
          "defName": "主键",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "30F48AAC-16BF-4C5C-8B49-D71A09C461AB"
        },
        {
          "defKey": "create_by",
          "defName": "创建人",
          "comment": "",
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "6743F332-6343-461B-9D8F-1885409FFD51",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "create_time",
          "defName": "创建时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "C018C22F-2611-44AD-9EC4-690B90080686",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098"
        },
        {
          "defKey": "update_by",
          "defName": "更新人",
          "comment": "",
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "7ADC0A0F-3F67-4074-BCFE-CE65068AFAD5",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "update_time",
          "defName": "更新时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "86BD848F-3EB0-4FCA-BDAA-14AE678C3AF1",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098"
        },
        {
          "defKey": "spare_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": "756B0BF1-F1B0-43E7-A1C9-DFBDB8F51B88"
        },
        {
          "defKey": "spare_model",
          "defName": "备件型号",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "BE09D493-E183-402D-ACC4-EEA21EB35B8E",
          "id": "38C6C8E3-6A91-4D96-8209-D7C4DB924C77"
        },
        {
          "defKey": "spare_quantity",
          "defName": "使用数量",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E",
          "extProps": {},
          "domain": "FF4459C5-6B45-4DBF-8FC0-E06239BC05B4",
          "id": "01E44CB7-1B46-43D6-98A6-889448920851"
        },
        {
          "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": "DB19CCCD-2006-4950-86A6-B4780B4D9C34"
        }
      ],
      "correlations": [],
      "indexes": [],
      "type": "P"
    },
    {
      "id": "93D54F80-5237-4ADB-86DC-4E4F4F7261A6",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "eam_third_maintenance_change",
      "defName": "三保变更",
      "comment": "",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "sysProps": {
        "nameTemplate": "{defKey}[{defName}]"
      },
      "notes": {},
      "headers": [
        {
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "refKey": "defKey",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "defName",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "notNull",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "autoIncrement",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "domain",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "type",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "len",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "refDict",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "defaultValue",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "isStandard",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "uiHint",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "extProps",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr1",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr2",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr3",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr4",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr5",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr6",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr7",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr8",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr9",
          "freeze": false,
          "hideInGraph": true
        }
      ],
      "fields": [
        {
          "defKey": "id",
          "defName": "主键",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "7E7714A5-B442-4842-8E65-6179F3F43740"
        },
        {
          "defKey": "create_by",
          "defName": "创建人",
          "comment": "",
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "798B2007-0498-43E2-B16A-39A506CA7582",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "create_time",
          "defName": "创建时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "7E05F985-6784-4C22-B253-50985D0628BC",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098"
        },
        {
          "defKey": "update_by",
          "defName": "更新人",
          "comment": "",
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "11FD1A5C-9345-4C70-8C60-6FE02C43F622",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "update_time",
          "defName": "更新时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "A50B7296-8570-4CF7-8AA0-D4CCC2F90B63",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098"
        },
        {
          "defKey": "del_flag",
          "defName": "删除标记",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "1D764C4A-6F9F-421E-B11A-6F3E23B51811",
          "extProps": {},
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "id": "F888AE02-055A-458A-98FD-CB22C3EA539B"
        },
        {
          "defKey": "order_id",
          "defName": "三保工单ID",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "854769A0-58E7-4492-A427-683CE6235B78"
        },
        {
          "defKey": "applicant",
          "defName": "申请人",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "id": "F459DC6D-88C7-4EFD-B8A1-FF8AF72BE4F8"
        },
        {
          "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": "FC83B13D-EF09-4D73-AFFA-92B0E50F03EB"
        },
        {
          "defKey": "apply_date",
          "defName": "申请日期",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098",
          "extProps": {},
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "id": "CC55D858-C397-4074-8927-7A590ED8E003"
        },
        {
          "defKey": "apply_category",
          "defName": "申请类型",
          "comment": "报废、延保",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
          "id": "F65D9395-B94E-4B38-A5E4-D5307B1DD1A4"
        },
        {
          "defKey": "change_status",
          "defName": "变更状态",
          "comment": "待提交、待主管审核、待部门确认、待保障部确认、取消、完成",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
          "id": "D5A5D530-DA24-48BD-A8D9-61FAE13C40B2"
        },
        {
          "defKey": "apply_reason_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": "C0300ECF-AE87-416F-A7E7-3DFDE74C5B29"
        },
        {
          "defKey": "apply_reason",
          "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": "116B5D6B-A21E-4C1B-860A-3EA592E3A5BE"
        },
        {
          "defKey": "deferred_maintenance_date",
          "defName": "延迟保养日期",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098",
          "extProps": {},
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "id": "1BFF7F74-35AE-4BEE-886F-E12E9EE139B6"
        },
        {
          "defKey": "equipment_manager_signature",
          "defName": "主管领导签字",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "id": "27DC2251-F306-48BF-86F8-99DF11ACDB7E"
        },
        {
          "defKey": "equipment_manager_signature_time",
          "defName": "主管领导签字时间",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098",
          "extProps": {},
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "id": "D81F9B85-1C0C-4B24-B8F3-E12C13E62501"
        },
        {
          "defKey": "depart_manager_signature",
          "defName": "部门领导签字",
          "comment": "根据延保原因类型区分不同的人审批",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "id": "59B13587-E245-4DDA-9399-1AC3D7363989"
        },
        {
          "defKey": "depart_manager_signature_time",
          "defName": "部门领导签字时间",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098",
          "extProps": {},
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "id": "42DF30B4-04DD-4B40-98A6-C4FF34927AEA"
        },
        {
          "defKey": "depart_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": "4BB098EC-A8B8-4873-B520-F3CE975BFF0C"
        },
        {
          "defKey": "production_support_signature",
          "defName": "生产保障部领导签字",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "id": "352D39A7-FB74-4CAE-8D8E-B1AECAF19045"
        },
        {
          "defKey": "production_support_signature_time",
          "defName": "生产保障部领导签字时间",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098",
          "extProps": {},
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "id": "9FEDFFD2-B600-461D-8D7C-4F38A7621502"
        },
        {
          "defKey": "production_support_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": "16F4A88A-666C-436D-8C96-83BCB2C9E0CB"
        }
      ],
      "correlations": [],
@@ -8478,6 +10019,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -8511,11 +10057,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -8831,6 +10372,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -8864,11 +10410,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -9202,6 +10743,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -9235,11 +10781,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -9537,6 +11078,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -9570,11 +11116,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -9972,6 +11513,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -10005,11 +11551,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -10695,6 +12236,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -10728,11 +12274,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -11228,6 +12769,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -11261,11 +12807,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -11563,6 +13104,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -11596,11 +13142,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -12162,6 +13703,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -12195,11 +13741,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -12769,6 +14310,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -12802,11 +14348,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -13306,6 +14847,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -13339,11 +14885,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -13843,6 +15384,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -13876,11 +15422,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -14178,6 +15719,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -14211,11 +15757,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -14675,6 +16216,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -14708,11 +16254,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -15064,6 +16605,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -15097,11 +16643,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -15455,6 +16996,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -15488,11 +17034,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -15754,6 +17295,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -15787,11 +17333,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -16181,6 +17722,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -16214,11 +17760,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -16516,6 +18057,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -16549,11 +18095,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -16925,6 +18466,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -16958,11 +18504,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -17314,6 +18855,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -17347,11 +18893,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -17693,6 +19234,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -17726,11 +19272,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -18082,6 +19623,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -18115,11 +19661,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -18787,6 +20328,11 @@
        },
        {
          "freeze": false,
          "refKey": "comment",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "primaryKey",
          "hideInGraph": false
        },
@@ -18822,11 +20368,6 @@
        },
        {
          "freeze": false,
          "refKey": "comment",
          "hideInGraph": true
        },
        {
          "freeze": false,
          "refKey": "refDict",
          "hideInGraph": true
        },
@@ -18848,6 +20389,51 @@
        {
          "freeze": false,
          "refKey": "extProps",
          "hideInGraph": true
        },
        {
          "refKey": "attr1",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr2",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr3",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr4",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr5",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr6",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr7",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr8",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr9",
          "freeze": false,
          "hideInGraph": true
        }
      ],
@@ -18893,6 +20479,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -18926,11 +20517,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -19462,6 +21048,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -19495,11 +21086,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -19903,6 +21489,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -19936,11 +21527,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -20346,6 +21932,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -20379,11 +21970,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -20757,6 +22343,254 @@
      "type": "P"
    },
    {
      "id": "F422735F-F0B0-4DCD-979C-BBDDA704F624",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "eam_base_repair_depart_user",
      "defName": "维修班组人员关系维护",
      "comment": "",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "sysProps": {
        "nameTemplate": "{defKey}[{defName}]"
      },
      "notes": {},
      "headers": [
        {
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "refKey": "defKey",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "defName",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "notNull",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "autoIncrement",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "domain",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "type",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "len",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "refDict",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "defaultValue",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "isStandard",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "uiHint",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "extProps",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr1",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr2",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr3",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr4",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr5",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr6",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr7",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr8",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr9",
          "freeze": false,
          "hideInGraph": true
        }
      ],
      "fields": [
        {
          "defKey": "id",
          "defName": "主键",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": null,
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "31C04E3A-8C13-417C-9D26-75469DA45AE2",
          "uiHint": null
        },
        {
          "defKey": "create_by",
          "defName": "创建人",
          "comment": "",
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": null,
          "uiHint": null,
          "id": "C25B0A2E-B28C-44E5-BC69-C7F78242C726",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "create_time",
          "defName": "创建时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": null,
          "uiHint": null,
          "id": "C1E0DD5D-B2E8-42EC-A0D2-B7AB00CEB323",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098"
        },
        {
          "defKey": "user_id",
          "defName": "用户ID",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": null,
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "19AAE7DD-C7BE-4806-89F7-11409C97810D",
          "uiHint": null
        },
        {
          "defKey": "depart_id",
          "defName": "班组ID",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": null,
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "50F48673-0128-4E8F-AA60-117FF9676FB0",
          "uiHint": null
        }
      ],
      "correlations": [],
      "indexes": [],
      "type": "P"
    },
    {
      "id": "71918E5B-292A-4A4B-A72C-DDEB1F46CEC1",
      "env": {
        "base": {
@@ -20795,6 +22629,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -20828,11 +22667,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -21040,6 +22874,11 @@
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
@@ -21073,11 +22912,6 @@
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
@@ -22066,6 +23900,9 @@
        "F7FEAB47-D097-499B-9077-7D126DBBBEA8",
        "7800D6F2-BC2F-4679-96AC-EDF4E3DF15CD",
        "4B01C8F7-4302-4189-A319-58D509E6A910",
        "CD74AAA7-6D2A-42DE-A62D-D772076AFD22",
        "46D0F664-07ED-4072-8208-30E984714F52",
        "93D54F80-5237-4ADB-86DC-4E4F4F7261A6",
        "A4B854B2-A6DD-4AF8-A65F-54EEB8E5F444",
        "09140240-1EAE-4CFC-9834-0AE8DD304C98",
        "1A3E4955-3BDA-4628-A07A-37D3AD875659",
@@ -22091,6 +23928,7 @@
        "5173F017-082A-41F7-822E-E24B800C72D2",
        "71918E5B-292A-4A4B-A72C-DDEB1F46CEC1",
        "CEFAEC98-1130-408E-AF46-0F63352FAD9C",
        "F422735F-F0B0-4DCD-979C-BBDDA704F624",
        "C0FFF043-304D-445B-9668-55F97F80CB9C"
      ],
      "refViews": [],
lxzn-boot-base-core/src/main/java/org/jeecg/common/aspect/DictAspect.java
@@ -52,13 +52,13 @@
    /**
     * å®šä¹‰åˆ‡ç‚¹Pointcut
     */
    @Pointcut("execution(public * org.jeecg.modules..*.*Controller.*(..)) || @annotation(org.jeecg.common.aspect.annotation.AutoDict)")
    @Pointcut("execution(public * org.jeecg.modules.base.*Controller.*(..)) || @annotation(org.jeecg.common.aspect.annotation.AutoDict)")
    public void excudeService() {
    }
    @Around("excudeService()")
    public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
        long time1=System.currentTimeMillis();
        long time1=System.currentTimeMillis();
        Object result = pjp.proceed();
        long time2=System.currentTimeMillis();
        log.debug("获取JSON数据 è€—时:"+(time2-time1)+"ms");
lxzn-boot-base-core/src/main/java/org/jeecg/common/aspect/annotation/DictExt.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,38 @@
package org.jeecg.common.aspect.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
 * å­—典注解扩展,支持多字段匹配
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface DictExt {
    /**
     * æ•°æ®å­—典表
     * @return
     */
    String dicTable() default "";
    /**
     * æ•°æ®Text
     * @return
     */
    String dicText() default "";
    /**
     * æ•°æ®code数组
     * @return
     */
    String[] dicCode();
    /**
     * æ•°æ®å‚数数组,参数跟code数组一一对应
     * @return
     */
    String[] dicParams();
}
lxzn-boot-base-core/src/main/java/org/jeecg/common/aspect/annotation/DictList.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package org.jeecg.common.aspect.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
 * ç±»æè¿°: æ·±åº¦å­—典翻译注解
 * åªèƒ½ç”¨æ¥æ³¨è§£List类型的属性
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface DictList {
}
lxzn-boot-base-core/src/main/java/org/jeecg/common/aspect/annotation/FieldQuery.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
package org.jeecg.common.aspect.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
 * å­—典注解
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface FieldQuery{
    /**
     * å…³è”数据表
     * @return
     */
    String dicTable() default "";
    /**
     * æ•°æ®Text
     * @return
     */
    String dicText() default "";
    /**
     * æ•°æ®code数组
     * @return
     */
    String[] dicCode();
    /**
     * æ•°æ®å‚数数组,参数跟code数组一一对应
     * @return
     */
    String[] dicParams();
}
lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/FillRuleConstant.java
@@ -21,7 +21,10 @@
     * äº§çº¿ç¼–码
     */
    public static final String PRODUCTION = "org_num_rule";
    /**
     * ç»´ä¿®éƒ¨é—¨ç­ç»„编码
     */
    public static final String REPAIRDEPART = "org_repair_deport_rule";
    /**
     * è®¾å¤‡è½¦é—´ç¼–码
     */
lxzn-boot-base-core/src/main/java/org/jeecg/common/system/vo/LoginUser.java
@@ -89,7 +89,7 @@
     * çŠ¶æ€(1:正常 2:冻结 ï¼‰
     */
    private Integer status;
    private Integer delFlag;
    /**
     * åŒæ­¥å·¥ä½œæµå¼•擎1同步0不同步
@@ -143,4 +143,9 @@
    private String equipmentIds;
    /**
     * è®¾å¤‡ç®¡ç†è®¾å¤‡ç»„
     */
    private String eamEquipmentIds;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EamDictAspect.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,81 @@
package org.jeecg.modules.eam.aspect;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.system.aspect.DicAspectService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
/**
 * @Description: Dnc字典aopç±»
 * @Version: 1.0
 */
@Aspect
@Component
@Slf4j
public class EamDictAspect {
    @Autowired
    private DicAspectService dicAspectService;
    // å®šä¹‰åˆ‡ç‚¹Pointcut
    @Pointcut("execution(public * org.jeecg.modules.eam..*.*Controller.*(..))")
    public void excudeService() {
    }
    @Around("excudeService()")
    public Object  doAround(ProceedingJoinPoint pjp) throws Throwable {
        long time1=System.currentTimeMillis();
        Object result = pjp.proceed();
        long time2=System.currentTimeMillis();
        log.debug("获取JSON数据 è€—时:"+(time2-time1)+"ms");
        long start=System.currentTimeMillis();
        this.parseDictText(result);
        long end=System.currentTimeMillis();
        log.debug("解析注入JSON数据  è€—æ—¶"+(end-start)+"ms");
        return result;
    }
    /**
     * æœ¬æ–¹æ³•针对返回对象为Result çš„IPage的分页列表数据进行动态字典注入
     * å­—典注入实现 é€šè¿‡å¯¹å®žä½“类添加注解@dict æ¥æ ‡è¯†éœ€è¦çš„字典内容,字典分为单字典code即可 ï¼Œtable字典 code table text配合使用与原来jeecg的用法相同
     * ç¤ºä¾‹ä¸ºSysUser   å­—段为sex æ·»åŠ äº†æ³¨è§£@Dict(dicCode = "sex") ä¼šåœ¨å­—典服务立马查出来对应的text ç„¶åŽåœ¨è¯·æ±‚list的时候将这个字典text,已字段名称加_dictText形式返回到前端
     * ä¾‹è¾“入当前返回值的就会多出一个sex_dictText字段
     * {
     *      sex:1,
     *      sex_dictText:"男"
     * }
     * å‰ç«¯ç›´æŽ¥å–值sext_dictText在table里面无需再进行前端的字典转换了
     *  customRender:function (text) {
     *               if(text==1){
     *                 return "男";
     *               }else if(text==2){
     *                 return "女";
     *               }else{
     *                 return text;
     *               }
     *             }
     *             ç›®å‰vue是这么进行字典渲染到table上的多了就很麻烦了 è¿™ä¸ªç›´æŽ¥åœ¨æœåŠ¡ç«¯æ¸²æŸ“å®Œæˆå‰ç«¯å¯ä»¥ç›´æŽ¥ç”¨
     * @param result
     */
    private void parseDictText(Object result) {
        if (result instanceof Result) {
            if (((Result) result).getResult() instanceof IPage) {
                List<JSONObject> items = dicAspectService.detailDict(((IPage) ((Result) result).getResult()).getRecords());
                ((IPage) ((Result) result).getResult()).setRecords(items);
            }
            else if(((Result) result).getResult() instanceof List){
                List<JSONObject> items = dicAspectService.detailDict(((List) ((Result) result).getResult()));
                ((Result) result).setResult(items);
            }
        }
    }
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/controller/BaseFactoryController.java
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/controller/BaseFactoryUserController.java
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/controller/EamBaseRepairDepartController.java
ÎļþÃû´Ó lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/controller/EamBaseRepairDepartController.java ÐÞ¸Ä
@@ -43,7 +43,7 @@
public class EamBaseRepairDepartController extends JeecgController<EamBaseRepairDepart, IEamBaseRepairDepartService> {
    @Resource
    private IEamBaseRepairDepartService sysMaintainDepartService;
    private IEamBaseRepairDepartService eamBaseRepairDepartService;
    /**
     * åˆ†é¡µåˆ—表查询
@@ -63,7 +63,7 @@
                                   HttpServletRequest req) {
        QueryWrapper<EamBaseRepairDepart> queryWrapper = QueryGenerator.initQueryWrapper(eamBaseRepairDepart, req.getParameterMap());
        Page<EamBaseRepairDepart> page = new Page<EamBaseRepairDepart>(pageNo, pageSize);
        IPage<EamBaseRepairDepart> pageList = sysMaintainDepartService.page(page, queryWrapper);
        IPage<EamBaseRepairDepart> pageList = eamBaseRepairDepartService.page(page, queryWrapper);
        return Result.OK(pageList);
    }
@@ -74,10 +74,10 @@
        Result<List<EamBaseRepairDepartTreeModel>> result = new Result<>();
        try {
            if (oConvertUtils.isNotEmpty(ids)) {
                List<EamBaseRepairDepartTreeModel> maintainDepartList = sysMaintainDepartService.queryTreeList(ids);
                result.setResult(maintainDepartList);
                List<EamBaseRepairDepartTreeModel> repairDepartList = eamBaseRepairDepartService.queryTreeList(ids);
                result.setResult(repairDepartList);
            } else {
                List<EamBaseRepairDepartTreeModel> list = sysMaintainDepartService.queryTreeList();
                List<EamBaseRepairDepartTreeModel> list = eamBaseRepairDepartService.queryTreeList();
                result.setResult(list);
            }
            result.setSuccess(true);
@@ -95,7 +95,7 @@
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        String userId = user.getId();
        try {
            List<RepairDepartIdModel> list = sysMaintainDepartService.loadMaintainDepartTreeOptions(userId);
            List<RepairDepartIdModel> list = eamBaseRepairDepartService.loadMaintainDepartTreeOptions(userId);
            result.setSuccess(true);
            result.setResult(list);
        } catch (Exception e) {
@@ -110,8 +110,8 @@
    public Result<List<String>> queryTreeIdList() {
        Result<List<String>> result = new Result<>();
        try {
            List<EamBaseRepairDepart> maintainDepartList = sysMaintainDepartService.list(new LambdaQueryWrapper<EamBaseRepairDepart>().eq(EamBaseRepairDepart::getDelFlag, CommonConstant.DEL_FLAG_0).orderByAsc(EamBaseRepairDepart::getDepartOrder));
            List<String> ids = maintainDepartList.stream().map(EamBaseRepairDepart::getId).collect(Collectors.toList());
            List<EamBaseRepairDepart> repairDepartList = eamBaseRepairDepartService.list(new LambdaQueryWrapper<EamBaseRepairDepart>().eq(EamBaseRepairDepart::getDelFlag, CommonConstant.DEL_FLAG_0).orderByAsc(EamBaseRepairDepart::getDepartOrder));
            List<String> ids = repairDepartList.stream().map(EamBaseRepairDepart::getId).collect(Collectors.toList());
            result.setSuccess(true);
            result.setResult(ids);
        } catch (Exception e) {
@@ -129,11 +129,11 @@
    @AutoLog(value = "维修部门班组-添加")
    @ApiOperation(value = "维修部门班组-添加", notes = "维修部门班组-添加")
    @PostMapping(value = "/add")
    @CacheEvict(value = {"sys:cache:maintainDepart:alldata", "sys:cache:maintainDepart:allids"}, allEntries = true)
    @CacheEvict(value = {"eam:cache:repairDepart:alldata", "eam:cache:repairDepart:allids"}, allEntries = true)
    public Result<EamBaseRepairDepart> add(@RequestBody EamBaseRepairDepart eamBaseRepairDepart) {
        Result<EamBaseRepairDepart> result = new Result<>();
        try {
            sysMaintainDepartService.saveMaintainDepartData(eamBaseRepairDepart);
            eamBaseRepairDepartService.saveMaintainDepartData(eamBaseRepairDepart);
            result.success("添加成功!");
        } catch (Exception e) {
            log.error(e.getMessage(), e);
@@ -151,14 +151,14 @@
    @AutoLog(value = "维修部门班组-编辑")
    @ApiOperation(value = "维修部门班组-编辑", notes = "维修部门班组-编辑")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
    @CacheEvict(value = {"sys:cache:maintainDepart:alldata", "sys:cache:maintainDepart:allids"}, allEntries = true)
    @CacheEvict(value = {"eam:cache:repairDepart:alldata", "eam:cache:repairDepart:allids"}, allEntries = true)
    public Result<EamBaseRepairDepart> edit(@RequestBody EamBaseRepairDepart eamBaseRepairDepart) {
        Result<EamBaseRepairDepart> result = new Result<>();
        EamBaseRepairDepart eamBaseRepairDepartEntity = sysMaintainDepartService.getById(eamBaseRepairDepart.getId());
        EamBaseRepairDepart eamBaseRepairDepartEntity = eamBaseRepairDepartService.getById(eamBaseRepairDepart.getId());
        if (eamBaseRepairDepartEntity == null) {
            result.error500("未找到对应实体");
        } else {
            boolean ok = sysMaintainDepartService.updateMaintainDepartDataById(eamBaseRepairDepart);
            boolean ok = eamBaseRepairDepartService.updateMaintainDepartDataById(eamBaseRepairDepart);
            if (ok) {
                result.success("修改成功!");
            }
@@ -175,14 +175,14 @@
    @AutoLog(value = "维修部门班组-通过id删除")
    @ApiOperation(value = "维修部门班组-通过id删除", notes = "维修部门班组-通过id删除")
    @DeleteMapping(value = "/delete")
    @CacheEvict(value = {"sys:cache:maintainDepart:alldata", "sys:cache:maintainDepart:allids"}, allEntries = true)
    @CacheEvict(value = {"eam:cache:repairDepart:alldata", "eam:cache:repairDepart:allids"}, allEntries = true)
    public Result<EamBaseRepairDepart> delete(@RequestParam(name = "id", required = true) String id) {
        Result<EamBaseRepairDepart> result = new Result<>();
        EamBaseRepairDepart eamBaseRepairDepart = sysMaintainDepartService.getById(id);
        EamBaseRepairDepart eamBaseRepairDepart = eamBaseRepairDepartService.getById(id);
        if (eamBaseRepairDepart == null) {
            result.error500("未找到对应实体");
        } else {
            boolean ok = sysMaintainDepartService.delete(id);
            boolean ok = eamBaseRepairDepartService.delete(id);
            if (ok) {
                result.success("删除成功!");
            }
@@ -199,13 +199,13 @@
    @AutoLog(value = "维修部门班组-批量删除")
    @ApiOperation(value = "维修部门班组-批量删除", notes = "维修部门班组-批量删除")
    @DeleteMapping(value = "/deleteBatch")
    @CacheEvict(value = {"sys:cache:maintainDepart:alldata", "sys:cache:maintainDepart:allids"}, allEntries = true)
    @CacheEvict(value = {"eam:cache:repairDepart:alldata", "eam:cache:repairDepart:allids"}, allEntries = true)
    public Result<EamBaseRepairDepart> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
        Result<EamBaseRepairDepart> result = new Result<>();
        if (ids == null || "".equals(ids.trim())) {
            result.error500("参数不识别!");
        } else {
            this.sysMaintainDepartService.deleteBatchWithChildren(Arrays.asList(ids.split(",")));
            this.eamBaseRepairDepartService.deleteBatchWithChildren(Arrays.asList(ids.split(",")));
            result.success("删除成功!");
        }
        return result;
@@ -217,7 +217,7 @@
    public Result<List<RepairDepartIdModel>> queryIdTree() {
        Result<List<RepairDepartIdModel>> result = new Result<>();
        try {
            List<RepairDepartIdModel> list = sysMaintainDepartService.queryMaintainDepartIdTreeList();
            List<RepairDepartIdModel> list = eamBaseRepairDepartService.queryMaintainDepartIdTreeList();
            result.setResult(list);
            result.setSuccess(true);
        } catch (Exception e) {
@@ -231,7 +231,7 @@
    @GetMapping(value = "/searchBy")
    public Result<List<EamBaseRepairDepartTreeModel>> searchBy(@RequestParam(name = "keyWord", required = true) String keyWord) {
        Result<List<EamBaseRepairDepartTreeModel>> result = new Result<>();
        List<EamBaseRepairDepartTreeModel> treeList = sysMaintainDepartService.searchByKeyWord(keyWord);
        List<EamBaseRepairDepartTreeModel> treeList = eamBaseRepairDepartService.searchByKeyWord(keyWord);
        if (treeList == null || treeList.isEmpty()) {
            result.setSuccess(false);
            result.setMessage("未查询匹配数据!");
@@ -251,7 +251,7 @@
    @ApiOperation(value = "维修部门班组-通过id查询", notes = "维修部门班组-通过id查询")
    @GetMapping(value = "/queryById")
    public Result<?> queryById(@RequestParam(name = "id", required = true) String id) {
        EamBaseRepairDepart eamBaseRepairDepart = sysMaintainDepartService.getById(id);
        EamBaseRepairDepart eamBaseRepairDepart = eamBaseRepairDepartService.getById(id);
        return Result.OK(eamBaseRepairDepart);
    }
@@ -278,7 +278,7 @@
    @AutoLog(value = "维修部门班组-通过excel导入数据")
    @ApiOperation(value = "维修部门班组-通过excel导入数据", notes = "维修部门班组-通过excel导入数据")
    @PostMapping(value = "/importExcel")
    @CacheEvict(value = {"sys:cache:maintainDepart:alldata", "sys:cache:maintainDepart:allids"}, allEntries = true)
    @CacheEvict(value = {"eam:cache:repairDepart:alldata", "eam:cache:repairDepart:allids"}, allEntries = true)
    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
        return super.importExcel(request, response, EamBaseRepairDepart.class);
    }
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/entity/BaseFactory.java
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/entity/BaseFactoryUser.java
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/entity/EamBaseRepairDepart.java
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/entity/EamBaseRepairDepartUser.java
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/BaseFactoryMapper.java
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/BaseFactoryUserMapper.java
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/EamBaseRepairDepartMapper.java
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/EamBaseRepairDepartUserMapper.java
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/xml/BaseFactoryMapper.xml
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/xml/BaseFactoryUserMapper.xml
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/xml/EamBaseRepairDepartMapper.xml
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/xml/EamBaseRepairDepartUserMapper.xml
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/model/EamBaseFactoryTreeModel.java
ÎļþÃû´Ó lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/model/EamBaseFactoryTreeModel.java ÐÞ¸Ä
@@ -1,17 +1,10 @@
package org.jeecg.modules.eam.base.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
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.modules.eam.base.entity.BaseFactory;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.ArrayList;
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/model/EamBaseRepairDepartTreeModel.java
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/model/RepairDepartIdModel.java
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/model/WorkShopIdModel.java
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/rule/OrgCodeRepDepRule.java
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/IBaseFactoryService.java
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/IBaseFactoryUserService.java
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/IEamBaseRepairDepartService.java
ÎļþÃû´Ó lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/service/IEamBaseRepairDepartService.java ÐÞ¸Ä
@@ -53,41 +53,41 @@
     * æ ¹æ®äº§çº¿id批量删除并删除其可能存在的子级产线
     */
    void deleteBatchWithChildren(List<String> ids);
    /**
     * èŽ·å–ä¸‹çº§äº§çº¿
     */
    List<EamBaseRepairDepart> queryRepDepByPid(String pid);
//
//    /**
//     * èŽ·å–ä¸‹çº§äº§çº¿
//     */
//    List<EamBaseRepairDepart> queryRepDepByPid(String pid);
//
    /**
     * æ ¹æ®ç”¨æˆ·id获取产线下拉树选项
     */
    List<RepairDepartIdModel> loadMaintainDepartTreeOptions(String userId);
    /**
     * é€’归查询所有子节点
     */
    List<String> recursionChildren(String productionId);
    /**
     * æ ¹æ®ç”¨æˆ·id和车间id获取用户拥有的车间id
     *
     * @param userId
     * @param productionId
     * @return
     */
    String findFirstMaintainDepart(String userId, String productionId);
    /**
     * æ ¹æ®ç”¨æˆ·id查询用户工段权限
     */
    String findThreeMaintainDepartId(String userId);
    /**
     *
     * @param equipmentId
     * @return
     */
    EamBaseRepairDepart findMaintainDepartList(String equipmentId);
//
//    /**
//     * é€’归查询所有子节点
//     */
//    List<String> recursionChildren(String productionId);
//
//    /**
//     * æ ¹æ®ç”¨æˆ·id和车间id获取用户拥有的车间id
//     *
//     * @param userId
//     * @param productionId
//     * @return
//     */
//    String findFirstMaintainDepart(String userId, String productionId);
//
//    /**
//     * æ ¹æ®ç”¨æˆ·id查询用户工段权限
//     */
//    String findThreeMaintainDepartId(String userId);
//
//    /**
//     *
//     * @param equipmentId
//     * @return
//     */
//    EamBaseRepairDepart findMaintainDepartList(String equipmentId);
    
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/impl/BaseFactoryServiceImpl.java
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/impl/BaseFactoryUserServiceImpl.java
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/impl/EamBaseRepairDepartImpl.java
ÎļþÃû´Ó lxzn-module-eam/src/main/java/org/jeecg/modules/eam/base/service/impl/EamBaseRepairDepartImpl.java ÐÞ¸Ä
@@ -13,11 +13,11 @@
import org.jeecg.modules.eam.base.entity.EamBaseRepairDepartUser;
import org.jeecg.modules.eam.base.mapper.EamBaseRepairDepartUserMapper;
import org.jeecg.modules.eam.base.service.IEamBaseRepairDepartService;
import org.jeecg.modules.system.entity.*;
import org.jeecg.modules.eam.base.mapper.EamBaseRepairDepartMapper;
import org.jeecg.modules.eam.base.model.EamBaseRepairDepartTreeModel;
import org.jeecg.modules.eam.base.model.RepairDepartIdModel;
import org.jeecg.modules.eam.base.util.FindsRepairDepartsChildrenUtil;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.mapper.SysUserMapper;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
@@ -124,7 +124,7 @@
            String parentId = eamBaseRepairDepart.getParentId();
            JSONObject formData = new JSONObject();
            formData.put("parentId",parentId);
            String[] codeArray = (String[]) FillRuleUtil.executeRule(FillRuleConstant.PRODUCTION,formData);
            String[] codeArray = (String[]) FillRuleUtil.executeRule(FillRuleConstant.REPAIRDEPART,formData);
            eamBaseRepairDepart.setOrgCode(codeArray[0]);
            String orgType = codeArray[1];
            eamBaseRepairDepart.setOrgType(String.valueOf(orgType));
@@ -181,14 +181,14 @@
//        repairDepartEquipmentMapper.delete(new LambdaQueryWrapper<SysMaintainDepartEquipment>().in(SysMaintainDepartEquipment::getMaintainDepartId, idList));
    }
    /**
     * æ ¹æ®id查询下级维修部门班组
     */
    @Override
    public List<EamBaseRepairDepart> queryRepDepByPid(String pid) {
        return this.baseMapper.queryRepDepByPid(pid);
    }
//    /**
//     * æ ¹æ®id查询下级维修部门班组
//     */
//    @Override
//    public List<EamBaseRepairDepart> queryRepDepByPid(String pid) {
//        return this.baseMapper.queryRepDepByPid(pid);
//    }
//
    /**
     * æ ¹æ®ç”¨æˆ·id获取维修部门班组下拉树选项
     */
@@ -209,38 +209,38 @@
        List<EamBaseRepairDepart> list = repairDepartList.stream().filter((EamBaseRepairDepart eamBaseRepairDepart) -> allMaintainDepartIds.contains(eamBaseRepairDepart.getId())).collect(Collectors.toList());
        return FindsRepairDepartsChildrenUtil.wrapTreeDataToMaintainDepartIdTreeList(list);
    }
    /**
     * é€’归查询所有子节点id
     */
    @Override
    public List<String> recursionChildren(String repairDepartId) {
        return this.baseMapper.recursionChildren(repairDepartId);
    }
    /**
     * æ ¹æ®ç”¨æˆ·id和车间id获取用户拥有的车间id
     * @param userId
     * @param repairDepartId
     * @return
     */
    @Override
    public String findFirstMaintainDepart(String userId, String repairDepartId) {
        return this.baseMapper.findFirstMaintain(userId, repairDepartId);
    }
    /**
     * æ ¹æ®ç”¨æˆ·id查询用户维修部门班组权限
     */
    @Override
    public String findThreeMaintainDepartId(String userId) {
        return this.baseMapper.findThreeMaintainId(userId);
    }
    @Override
    public EamBaseRepairDepart findMaintainDepartList(String equipmentId) {
        return this.baseMapper.findMaintainList(equipmentId);
    }
//
//    /**
//     * é€’归查询所有子节点id
//     */
//    @Override
//    public List<String> recursionChildren(String repairDepartId) {
//        return this.baseMapper.recursionChildren(repairDepartId);
//    }
//
//    /**
//     * æ ¹æ®ç”¨æˆ·id和车间id获取用户拥有的车间id
//     * @param userId
//     * @param repairDepartId
//     * @return
//     */
//    @Override
//    public String findFirstMaintainDepart(String userId, String repairDepartId) {
//        return this.baseMapper.findFirstMaintain(userId, repairDepartId);
//    }
//
//    /**
//     * æ ¹æ®ç”¨æˆ·id查询用户维修部门班组权限
//     */
//    @Override
//    public String findThreeMaintainDepartId(String userId) {
//        return this.baseMapper.findThreeMaintainId(userId);
//    }
//
//    @Override
//    public EamBaseRepairDepart findMaintainDepartList(String equipmentId) {
//        return this.baseMapper.findMaintainList(equipmentId);
//    }
    /**
     * delete æ–¹æ³•调用 é€’归查找子集id
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/util/FindsBaseFactorysChildrenUtil.java
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/util/FindsRepairDepartsChildrenUtil.java
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/util/WorkShopOrgCodeProRule.java
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java
@@ -1,5 +1,6 @@
package org.jeecg.modules.eam.entity;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
@@ -14,6 +15,7 @@
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.awt.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@@ -69,287 +71,406 @@
    @ApiModelProperty(value = "删除标记")
    private Integer delFlag;
    /**
     * è®¾å¤‡ç»Ÿä¸€ç¼–号
     * å…³é”®è®¾å¤‡æ ‡è¯†
     */
    @Excel(name = "设备编号", width = 15, orderNum = "1")
    @ApiModelProperty(value = "设备编号")
    @Excel(name = "关键设备标识", width = 15, orderNum = "1")
    @ApiModelProperty(value = "关键设备标识")
    @Dict(dicCode = "equipment_importance")
    private String equipmentImportance;
    /**
     * ç»Ÿä¸€ç¼–码
     */
    @Excel(name = "统一编码", width = 15, orderNum = "2")
    @ApiModelProperty(value = "统一编码")
    private String equipmentCode;
    /**
     * è®¾å¤‡åç§°
     */
    @Excel(name = "设备名称", width = 15, orderNum = "2")
    @Excel(name = "设备名称", width = 15, orderNum = "3")
    @ApiModelProperty(value = "设备名称")
    private String equipmentName;
    /**
     * ä½¿ç”¨éƒ¨é—¨
     * å…¬å¸
     */
    @Excel(name = "使用车间", width = 25, dictTable = "mdc_production", dicText = "production_name", dicCode = "id", orderNum = "9")
    @ApiModelProperty(value = "使用部门")
    @Dict(dicCode = "mdc_production, production_name, id")
    private String orgId;
//    @Excel(name = "公司", width = 15, orderNum = "4")
    @ApiModelProperty(value = "公司")
    @Dict(dictTable = "eam_base_factory",dicText = "factory_name",dicCode = "org_code")
    private transient String gsfactoryOrgCode;
    /**
     * è®¾å¤‡ç®¡ç†å‘˜
     * ä¸­å¿ƒ
     */
    @Excel(name = "设备管理员", width = 35, dictTable = "sys_user", dicText = "realname", dicCode = "username", orderNum = "10")
    @ApiModelProperty(value = "设备管理员")
    @Dict(dicCode = "sys_user, realname, username")
    private String equipmentManager;
//    @Excel(name = "中心", width = 15, orderNum = "5")
    @ApiModelProperty(value = "中心")
    @Dict(dictTable = "eam_base_factory",dicText = "factory_name",dicCode = "org_code")
    private transient String zxfactoryOrgCode;
    /**
     * è®¾å¤‡ç±»åˆ«
     * å·¥åŒº
     */
    @Excel(name = "设备类别", width = 15, dicCode = "equipment_category", orderNum = "5")
    @ApiModelProperty(value = "设备类别")
//    @Excel(name = "工区", width = 15, orderNum = "6")
    @ApiModelProperty(value = "工区")
    @Dict(dictTable = "eam_base_factory",dicText = "factory_name",dicCode = "org_code")
    private transient String gqfactoryOrgCode;
    /**
     * å·¥æ®µ
     */
    @Excel(name = "中心/工区/工段", width = 15, orderNum = "4",dictTable = "eam_base_factory",dicText = "factory_name",dicCode = "org_code")
    @ApiModelProperty(value = "中心/工区/工段")
    @Dict(dictTable = "eam_base_factory",dicText = "factory_name",dicCode = "org_code")
    private String factoryOrgCode;
    /**
     * æ‰€å±žåˆ†ç±»
     */
    @Excel(name = "所属分类", width = 15, orderNum = "5")
    @ApiModelProperty(value = "所属分类")
    @Dict(dicCode = "equipment_category")
    private String equipmentCategory;
    /**
     * è®¾å¤‡åž‹å·
     */
    @Excel(name = "设备型号", width = 15, orderNum = "3")
    @ApiModelProperty(value = "设备型号")
    private String equipmentModel;
    /**
     * è®¾å¤‡è§„æ ¼
     */
    @Excel(name = "设备规格", width = 15, orderNum = "4")
    @ApiModelProperty(value = "设备规格")
    private String equipmentSpecification;
    /**
     * å®‰è£…位置
     */
    @Excel(name = "安装位置", width = 15, orderNum = "11")
    @ApiModelProperty(value = "安装位置")
    private String installationPosition;
    /**
     * èµ„产使用状态
     */
    @Excel(name = "资产使用状态", width = 15, dicCode = "asset_status", orderNum = "7")
    @ApiModelProperty(value = "资产状态")
    @Dict(dicCode = "asset_status")
    private String assetStatus;
    /**
     * å‡ºåŽ‚ç¼–å·
     */
    @Excel(name = "出厂编号", width = 15, orderNum = "12")
    @ApiModelProperty(value = "出厂编号")
    private String factoryNumber;
    /**
     * æœºåºŠåނ家
     */
    @Excel(name = "机床厂家", width = 15, orderNum = "13")
    @ApiModelProperty(value = "机床厂家")
    private String manufacturingEnterprise;
    /**
     * æ¥æºå›½å®¶
     */
    @Excel(name = "来源国家", width = 25, orderNum = "14")
    @ApiModelProperty(value = "来源国家")
    private String originCountry;
    /**
     * è®¾å¤‡ä¾›åº”商
     */
    @Excel(name = "设备供应商", width = 25, orderNum = "15")
    @ApiModelProperty(value = "设备供应商")
    private String supplier;
    /**
     * å‡ºåŽ‚æ—¥æœŸ
     */
    @Excel(name = "出厂日期", width = 25, format = "yyyy/MM/dd", orderNum = "16")
    @ApiModelProperty(value = "出厂日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date leaveFactoryDate;
    /**
     * éªŒæ”¶æ—¥æœŸ
     */
    @Excel(name = "投用日期", width = 25, format = "yyyy/MM/dd", orderNum = "17")
    @ApiModelProperty(value = "验收日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date acceptanceCheckDate;
    /**
     * è®¾å¤‡å›¾ç‰‡
     */
    @ApiModelProperty(value = "设备图片")
    private String equipmentImage;
    /**
     * ç”µæœºå°æ•°
     */
    @Excel(name = "电机台数", width = 15, orderNum = "18")
    @ApiModelProperty(value = "电机台数")
    private Integer motorsNumber;
    /**
     * æ€»åŠŸçŽ‡(KW)
     */
    @Excel(name = "总功率(KW)", width = 15, orderNum = "19")
    @ApiModelProperty(value = "总功率")
    private String equipmentPower;
    /**
     * é‡é‡(吨)
     */
    @Excel(name = "重量(吨)", width = 15, orderNum = "20")
    @ApiModelProperty(value = "重量(吨)")
    private String equipmentWeight;
    /**
     * æ˜¯å¦æœ‰å·¥è‰ºå‚æ•°
     */
    @Excel(name = "有无工艺参数", width = 15, dicCode = "has_no", orderNum = "21")
    @ApiModelProperty(value = "是否有工艺参数")
    private String processParametersFlag;
    /**
     * æ˜¯å¦æœ‰ç²¾åº¦å‚æ•°
     */
    @Excel(name = "有无精度参数", width = 15, dicCode = "has_no", orderNum = "22")
    @ApiModelProperty(value = "是否有精度参数")
    private String precisionParametersFlag;
    @TableField(exist = false)
    @Excel(name = "保养状态", width = 15, orderNum = "6",dicCode = "equipment_maintenance_status")
    @ApiModelProperty(value = "保养状态")
    @Dict(dicCode = "equipment_maintenance_status")
    private String maintenanceStatus;
    /**
     * å¤‡æ³¨
     */
    @Excel(name = "备注", width = 50, orderNum = "99")
    @ApiModelProperty(value = "备注")
    private String remark;
    /**
     * å¤–形尺寸
     */
    @Excel(name = "外形尺寸", width = 15, orderNum = "24")
    @ApiModelProperty(value = "外形尺寸")
    private String overallDimensions;
    /**
     * è®¾å¤‡ç§ç±»
     */
    @Excel(name = "设备种类", width = 15, orderNum = "6", dictTable = "sys_category", dicCode = "code", dicText = "name")
    @ApiModelProperty(value = "设备种类")
    @Dict(dictTable = "sys_category", dicCode = "code", dicText = "name")
    private String equipmentType;
    /**
     * åŽŸå§‹ä»·å€¼
     */
    @Excel(name = "原值(元)", width = 15, orderNum = "25")
    @ApiModelProperty(value = "原始价值")
    private BigDecimal originalValue;
    /**
     * èµ„金来源
     */
    @Excel(name = "资金来源", width = 15, orderNum = "26")
    @ApiModelProperty(value = "资金来源")
    private String fundingSource;
    @TableField(exist = false)
    @Excel(name = "维修状态", width = 15, orderNum = "7",dicCode = "equipment_repair_status")
    @ApiModelProperty(value = "维修状态")
    @Dict(dicCode = "equipment_repair_status")
    private String repairStatus;
    /**
     * åŠŸèƒ½ç”¨é€”
     */
    @Excel(name = "功能用途", width = 15, orderNum = "27")
    @ApiModelProperty(value = "功能用途")
    private String functionUse;
    /**
     * æ€§èƒ½æŒ‡æ ‡
     */
    @Excel(name = "性能指标", width = 15, orderNum = "28")
    @ApiModelProperty(value = "性能指标")
    private String performanceIndicators;
    /**
     * å…¥å¸æ—¶é—´
     */
    @Excel(name = "入帐时间", width = 15, format = "yyyy/MM/dd", orderNum = "29")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "入帐时间")
    private Date bookingTime;
    /**
     * ç®¡ç†åˆ†ç±»ï¼ˆA\B\C)
     */
    @Excel(name = "管理分类", width = 15, dicCode = "equipment_abc_flag", orderNum = "8")
    @ApiModelProperty(value = "管理分类")
    @Dict(dicCode = "equipment_abc_flag")
    private String equipmentImportance;
    /**
     * æŠ€æœ¯çŠ¶æ€
     */
    @Excel(name = "技术状态", width = 15, dicCode = "technology_status", orderNum = "7")
    /**技术状态*/
    @TableField(exist = false)
    @Excel(name = "技术状态", width = 15, orderNum = "8",dicCode = "equipment_technology_status")
    @ApiModelProperty(value = "技术状态")
    @Dict(dicCode = "technology_status")
    @Dict(dicCode = "equipment_technology_status")
    private String technologyStatus;
    /**
     * ABC标识
     */
    @Excel(name = "ABC标识", width = 15, orderNum = "9",dicCode = "abc_flag")
    @ApiModelProperty(value = "ABC标识")
    @Dict(dicCode = "abc_flag")
    private String abcFlag;
    /**
     * ç»´ä¿®ç­ç»„
     */
    @Excel(name = "维修班组", width = 15, orderNum = "10",dictTable = "eam_base_repair_depart",dicText = "depart_name",dicCode = "org_code")
    @ApiModelProperty(value = "维修班组")
    @Dict(dictTable = "eam_base_repair_depart",dicText = "depart_name",dicCode = "org_code")
    private String repairDepartOrgCode;
    /** =================== èˆªå®‡æ•‘生 æœªç”¨çš„字段  å¼€å§‹  ==========================**/
    /**
     * å®‰å…¨é…ç½®
     */
    @Excel(name = "安全配置", width = 15, orderNum = "11")
    @ApiModelProperty(value = "安全配置")
    private String securityConfiguration;
    /**
     * å†·å´ç³»ç»Ÿ
     */
    @Excel(name = "冷却系统", width = 15, orderNum = "15",dicCode = "cooling_system")
    @ApiModelProperty(value = "冷却系统")
    @Dict(dicCode = "cooling_system")
    private String coolSystem;
    /**
     * ç­ç«å™¨
     */
    @Excel(name = "灭火器", width = 15, orderNum = "16")
    @ApiModelProperty(value = "灭火器")
    private String fireExtinguisher;
    /**
     * ç­ç«å™¨æœ‰æ•ˆæœŸè‡³
     */
    @Excel(name = "灭火器有效期至", width = 15, orderNum = "17")
    @ApiModelProperty(value = "灭火器有效期至")
    private String fireExtinguisherExpirationDate;
    /**
     * æ“ä½œç³»ç»Ÿ
     */
    @Excel(name = "操作系统", width = 15, orderNum = "18",dicCode = "yn")
    @ApiModelProperty(value = "操作系统")
    @Dict(dicCode = "yn")
    private String operationSystem;
    /**
     * ä¸»è½´è¿žæŽ¥å°ºå¯¸
     */
    @ApiModelProperty(value = "主轴连接尺寸")
    private String spindleConnectDimension;
    /**
     * ç«‹é¡¹å¡å·
     */
    @ApiModelProperty(value = "立项卡号")
    private String cardNumber;
    /**
     * æ˜¯å¦å®žæ–½MDC
     */
    @ApiModelProperty(value = "是否实施MDC")
    private String mdcFlag;
    @ApiModelProperty(value = "MDC设备类型")
    private String deviceType;
    /**
     * ç³»ç»Ÿ
     */
    @Excel(name = "系统", width = 15, orderNum = "19")
    @ApiModelProperty(value = "系统")
    private String system;
    /**
     * è®¾å¤‡ç«¯å£
     */
    @Excel(name = "设备端口", width = 15, orderNum = "20")
    @ApiModelProperty(value = "设备端口")
    private String equipmentPort;
    /**
     * åæ ‡æ•°é‡
     */
    @Excel(name = "坐标数量", width = 15, orderNum = "21")
    @ApiModelProperty(value = "坐标数量")
    private Integer coordinateNum;
    /**
     * ç‰¹ç§è®¾å¤‡;是否为特种设备
     * é‡é‡(吨)
     */
    @ApiModelProperty(value = "是否特种设备")
    private String specialEquipment;
    @Excel(name = "重量(吨)", width = 15, orderNum = "22")
    @ApiModelProperty(value = "重量(吨)")
    private BigDecimal equipmentWeight;
    /**
     * é‡é‡è®¡é‡å•位
     */
    @Excel(name = "重量计量单位", width = 15, orderNum = "23")
    @ApiModelProperty(value = "重量计量单位")
    private String weightUnit;
    /**
     * åŠŸèƒ½ä½ç½®
     */
    @Excel(name = "功能位置", width = 15, orderNum = "24")
    @ApiModelProperty(value = "功能位置")
    private String functionalLocation;
    /**
     * å®‰è£…位置
     */
    @Excel(name = "安装位置", width = 15, orderNum = "25")
    @ApiModelProperty(value = "安装位置")
    private String installationPosition;
    /**
     * å‡ºåŽ‚æ—¥æœŸ
     */
    @Excel(name = "出厂日期", width = 25, format = "yyyy/MM/dd", orderNum = "26")
    @ApiModelProperty(value = "出厂日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date leaveFactoryDate;
    /**
     * ç«‹é¡¹å¡å·
     */
    @Excel(name = "立项卡号", width = 15, orderNum = "27")
    @ApiModelProperty(value = "立项卡号")
    private String cardNumber;
    /**
     * èµ„金来源
     */
    @Excel(name = "资金来源", width = 15, orderNum = "28")
    @ApiModelProperty(value = "资金来源")
    private String fundingSource;
    /**
     * éªŒæ”¶æ—¥æœŸ
     */
    @Excel(name = "投用日期", width = 25, format = "yyyy/MM/dd", orderNum = "29")
    @ApiModelProperty(value = "验收日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date acceptanceCheckDate;
    /**
     * å‡ºåŽ‚ç¼–å·
     */
    @Excel(name = "出厂编号", width = 15, orderNum = "30")
    @ApiModelProperty(value = "出厂编号")
    private String factoryNumber;
    /**
     * èµ„产制造商
     */
    @Excel(name = "资产制造商", width = 25, orderNum = "31")
    @ApiModelProperty(value = "资产制造商")
    private String manufacturingEnterprise;
    /**
     * èµ„产来源国家
     */
    @Excel(name = "资产来源国家", width = 25, orderNum = "32")
    @ApiModelProperty(value = "资产来源国家")
    private String originCountry;
    /**
     * åž‹å·
     */
    @Excel(name = "型号", width = 15, orderNum = "33")
    @ApiModelProperty(value = "型号")
    private String equipmentModel;
    /**
     * è®¾å¤‡è§„æ ¼
     */
    @Excel(name = "设备规格", width = 15, orderNum = "34")
    @ApiModelProperty(value = "设备规格")
    private String equipmentSpecification;
    /**
     * æ€»åŠŸçŽ‡(KW)
     */
    @Excel(name = "总功率(KW)", width = 15, orderNum = "35")
    @ApiModelProperty(value = "总功率")
    private String equipmentPower;
    /**
     * è´¨ä¿å¼€å§‹æ—¥æœŸ
     */
    @Excel(name = "质保开始日期", width = 15, orderNum = "36")
    @ApiModelProperty(value = "质保开始日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date warrantyStartDate;
    /**
     * è´¨ä¿ç»“束日期
     */
    @Excel(name = "质保结束日期", width = 15, orderNum = "37")
    @ApiModelProperty(value = "质保结束日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date warrantyEndDate;
    /** =================== èˆªå®‡æ•‘生 æœªç”¨çš„字段  ç»“束  ==========================**/
    /**
     * èµ„产状态
     */
    @Excel(name = "资产状态", width = 15, orderNum = "38",dicCode = "asset_status")
    @ApiModelProperty(value = "资产状态")
    @Dict(dicCode = "asset_status")
    private String assetStatus;
    /**最新二保日期*/
    @TableField(exist = false)
    @ApiModelProperty(value = "维修状态")
    @Dict(dicCode = "equipment_repair_status")
    private String repairStatus;
    @Excel(name = "最新二保日期", width = 15, orderNum = "39")
    @ApiModelProperty(value = "最新二保日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private java.util.Date latestSecondMaintenance;
    /**下次二保日期*/
    @TableField(exist = false)
    @ApiModelProperty(value = "保养状态")
    @Dict(dicCode = "equipment_maintenance_status")
    private String maintenanceStatus;
    @Excel(name = "下次二保日期", width = 15, orderNum = "40")
    @ApiModelProperty(value = "下次二保日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private java.util.Date nextSecondMaintenance;
    // è®¾åˆ«ç®¡ç† æ‰‹æŒç«¯æŽ¥å£ä½¿ç”¨
    /**本次三保日期*/
    @TableField(exist = false)
    private String value;
    @Excel(name = "本次三保日期", width = 15, orderNum = "41")
    @ApiModelProperty(value = "本次三保日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private java.util.Date latestThirdMaintenance;
    /**下次三保日期*/
    @TableField(exist = false)
    private String text;
    @Excel(name = "下次三保日期", width = 15, orderNum = "42")
    @ApiModelProperty(value = "下次三保日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private java.util.Date nextThirdMaintenance;
    /**三保周期(å¹´)*/
    @TableField(exist = false)
    @Excel(name = "三保周期(å¹´)", width = 15, orderNum = "43")
    @ApiModelProperty(value = "三保周期(å¹´)")
    private Integer thirdMaintenancePeriod;
    /**最新技术状态鉴定日期*/
    @TableField(exist = false)
    @Excel(name = "最新技术状态鉴定日期", width = 15, orderNum = "44")
    @ApiModelProperty(value = "最新技术状态鉴定日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private java.util.Date latestTechnologyCheck;
    /**技术状态下次鉴定日期*/
    @TableField(exist = false)
    @Excel(name = "技术状态下次鉴定日期", width = 15, orderNum = "45")
    @ApiModelProperty(value = "技术状态下次鉴定日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private java.util.Date nextTechnologyCheck;
    /**技术鉴定周期(å¹´)*/
    @TableField(exist = false)
    @Excel(name = "技术鉴定周期(å¹´)", width = 15, orderNum = "46")
    @ApiModelProperty(value = "技术鉴定周期(å¹´)")
    private Integer technologyCheckPeriod;
    /**
     * æ˜¯å¦ä¸»è®¾å¤‡
     */
    @Excel(name = "是否主设备", width = 15, dicCode = "yn", orderNum = "47")
    @ApiModelProperty(value = "是否主设备")
    @Dict(dicCode = "yn")
    private String masterFlag;
    /**
     * æ˜¯å¦æœ‰å·¥è‰ºå‚æ•°
     */
    @Excel(name = "有无工艺参数", width = 15, dicCode = "yn", orderNum = "48")
    @ApiModelProperty(value = "是否有工艺参数")
    @Dict(dicCode = "yn")
    private String processParametersFlag;
    /**
     * æ˜¯å¦æœ‰ç²¾åº¦å‚æ•°
     */
    @Excel(name = "有无精度参数", width = 15, dicCode = "yn", orderNum = "49")
    @ApiModelProperty(value = "是否有精度参数")
    @Dict(dicCode = "yn")
    private String precisionParametersFlag;
    /**
     * å¤‡æ³¨
     */
    @Excel(name = "备注", width = 50, orderNum = "50")
    @ApiModelProperty(value = "备注")
    private String remark;
    public void setFactoryOrgCode(String factoryOrgCode){
        this.factoryOrgCode = factoryOrgCode;
        if(StrUtil.isNotEmpty(factoryOrgCode)){
            if(factoryOrgCode.length()==12){
                this.gqfactoryOrgCode = factoryOrgCode.substring(0,9);
                this.zxfactoryOrgCode = factoryOrgCode.substring(0,6);
                this.gsfactoryOrgCode = factoryOrgCode.substring(0,3);
            }
            if(factoryOrgCode.length()==9){
                this.zxfactoryOrgCode = factoryOrgCode.substring(0,6);
                this.gsfactoryOrgCode = factoryOrgCode.substring(0,3);
            }
            if(factoryOrgCode.length()==6){
                this.gsfactoryOrgCode = factoryOrgCode.substring(0,3);
            }
        }
    }
    public void setEquipmentWeight(BigDecimal equipmentWeight){
        //去除小数点后多余的0
        if(equipmentWeight!=null) {
            this.equipmentWeight = equipmentWeight.stripTrailingZeros();
        }
    }
    public String getValue() {
        return this.id;
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentExtend.java
@@ -3,12 +3,14 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
@@ -24,7 +26,7 @@
@Accessors(chain = true)
@ApiModel(value="eam_equipment_extend对象", description="设备台账扩展表")
public class EamEquipmentExtend implements Serializable {
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
@@ -49,16 +51,44 @@
    @Excel(name = "维修状态", width = 15)
    @ApiModelProperty(value = "维修状态")
    private String repairStatus;
    /**技术状态*/
    @Excel(name = "技术状态", width = 15, orderNum = "4")
    @ApiModelProperty(value = "技术状态")
    private String technologyStatus;
    /**最新二保日期*/
    @ApiModelProperty(value = "最新二保日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private java.util.Date latestSecondMaintenance;
    /**下次二保日期*/
    @ApiModelProperty(value = "下次二保日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private java.util.Date nextSecondMaintenance;
    /**最新三保日期*/
    @ApiModelProperty(value = "最新三保日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private java.util.Date latestThirdMaintenance;
    /**下次三保日期*/
    @ApiModelProperty(value = "下次三保日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private java.util.Date nextThirdMaintenance;
    /**三保周期(å¹´)*/
    @ApiModelProperty(value = "三保周期(å¹´)")
    private Integer thirdMaintenancePeriod;
    /**最新技术状态鉴定日期*/
    @ApiModelProperty(value = "最新技术状态鉴定日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private java.util.Date latestTechnologyCheck;
    /**技术状态下次鉴定日期*/
    @ApiModelProperty(value = "技术状态下次鉴定日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private java.util.Date nextTechnologyCheck;
    /**技术鉴定周期(å¹´)*/
    @ApiModelProperty(value = "技术鉴定周期(å¹´)")
    private Integer technologyCheckPeriod;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentMapper.java
@@ -32,4 +32,11 @@
     * @return
     */
    IPage<EamEquipment> queryPageList(IPage<EamEquipment> page, @Param(Constants.WRAPPER) Wrapper<EamEquipment> queryWrapper);
    /**
     * åˆ—表查询
     * @param queryWrapper
     * @return
     */
    List<EamEquipment> queryList(@Param(Constants.WRAPPER) Wrapper<EamEquipment> queryWrapper);
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml
@@ -3,10 +3,39 @@
<mapper namespace="org.jeecg.modules.eam.mapper.EamEquipmentMapper">
    <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamEquipment">
        select e.*, ext.repair_status, ext.maintenance_status
        select e.*,
               ext.maintenance_status,
               ext.repair_status,
               ext.latest_second_maintenance,
               ext.next_second_maintenance,
               ext.latest_third_maintenance,
               ext.next_third_maintenance,
               ext.technology_status,
               ext.third_maintenance_period,
               ext.technology_check_period,
               ext.latest_technology_check,
               ext.next_technology_check
        from eam_equipment e
        left join eam_equipment_extend ext
        on e.id = ext.id
        ${ew.customSqlSegment}
    </select>
</mapper>
    <select id="queryList" resultType="org.jeecg.modules.eam.entity.EamEquipment">
        select e.*,
               ext.maintenance_status,
               ext.repair_status,
               ext.latest_second_maintenance,
               ext.next_second_maintenance,
               ext.latest_third_maintenance,
               ext.next_third_maintenance,
               ext.technology_status,
               ext.third_maintenance_period,
               ext.technology_check_period,
               ext.latest_technology_check,
               ext.next_technology_check
        from eam_equipment e
                 left join eam_equipment_extend ext
                           on e.id = ext.id
            ${ew.customSqlSegment}
    </select>
</mapper>
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java
@@ -24,6 +24,12 @@
    EamEquipment saveEquipment(EamEquipment eamEquipment);
    /**
     * å°è´¦è®¾å¤‡ç¼–辑
     * @param eamEquipment
     */
    EamEquipment updateEquipment(EamEquipment eamEquipment);
    /**
     * èŽ·å–äº§çº¿ä¸‹çš„è®¾å¤‡ä¿¡æ¯
     * @param ids äº§çº¿ids
     * @return
@@ -52,4 +58,11 @@
     * @return
     */
    EamEquipment selectByEquipmentCode(String equipmentCode);
    /**
     * è®¾å¤‡å°è´¦å¯¼å‡º
     * @param eamEquipment
     * @return
     */
    List<EamEquipment> exportList(EamEquipmentQuery eamEquipment);
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
@@ -4,8 +4,10 @@
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 io.micrometer.core.instrument.binder.BaseUnits;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.constant.CommonConstant;
@@ -13,6 +15,10 @@
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog;
import org.jeecg.modules.eam.base.entity.BaseFactory;
import org.jeecg.modules.eam.base.entity.BaseFactoryUser;
import org.jeecg.modules.eam.base.service.IBaseFactoryService;
import org.jeecg.modules.eam.base.service.IBaseFactoryUserService;
import org.jeecg.modules.eam.constant.AssetStatusEnum;
import org.jeecg.modules.eam.constant.EquipmentMaintenanceStatus;
import org.jeecg.modules.eam.constant.EquipmentOperationTagEnum;
@@ -28,6 +34,7 @@
import org.jeecg.modules.eam.vo.EquipmentSearchResult;
import org.jeecg.modules.system.entity.MdcProduction;
import org.jeecg.modules.system.service.IMdcProductionService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -54,6 +61,10 @@
    private IEamEquipmentExtendService equipmentExtendService;
    @Autowired
    private IMdcProductionService mdcProductionService;
    @Autowired
    private IBaseFactoryUserService baseFactoryUserService;
    @Autowired
    private IBaseFactoryService baseFactoryService;
    @Override
    @Transactional(rollbackFor = Exception.class)
@@ -69,13 +80,28 @@
        //扩展表数据同步添加
        EamEquipmentExtend eamEquipmentExtend = new EamEquipmentExtend();
        eamEquipmentExtend.setId(eamEquipment.getId());
        BeanUtils.copyProperties(eamEquipment, eamEquipmentExtend);
        eamEquipmentExtend.setMaintenanceStatus(EquipmentMaintenanceStatus.NORMAL.name());
        eamEquipmentExtend.setRepairStatus(EquipmentRepairStatus.NORMAL.name());
        equipmentExtendService.save(eamEquipmentExtend);
        //插入设备履历   @EquipmentHistoryLog
        return eamEquipment;
    }
    /**
     * å°è´¦è®¾å¤‡ç¼–辑
     * @param eamEquipment
     */
    @Override
    public EamEquipment updateEquipment(EamEquipment eamEquipment){
        if (eamEquipment == null) {
            return null;
        }
        eamEquipmentMapper.updateById(eamEquipment);
        EamEquipmentExtend eamEquipmentExtend = new EamEquipmentExtend();
        BeanUtils.copyProperties(eamEquipment, eamEquipmentExtend);
        equipmentExtendService.updateById(eamEquipmentExtend);
        return eamEquipment;
    }
@@ -109,13 +135,20 @@
        if (sysUser == null) {
            return page;
        }
        if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) {
        if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
            //选择了设备,根据设备id过滤设备
            List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(","));
            List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
            queryWrapper.in("e.equipment_code", equipArr);
        } else {
            //没有选择设备,根据车间过滤设备
            queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id", sysUser.getId());
            //没有选择设备,根据中心过滤设备
            List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService.
                    list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId()));
            if(!CollectionUtils.isEmpty(baseFactoryUserList)){
                List<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toList());
                List<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getFactoryCode).collect(Collectors.toList());
                queryWrapper.in("e.factory_code", factoryCode);
            }
        }
        //查询条件过滤
        if (eamEquipment != null) {
@@ -241,6 +274,90 @@
    }
    /**
     * è®¾å¤‡å°è´¦å¯¼å‡º
     * @param eamEquipment
     * @return
     */
    @Override
    public List<EamEquipment> exportList(EamEquipmentQuery eamEquipment){
        QueryWrapper<EamEquipment> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("e.del_flag", CommonConstant.DEL_FLAG_0);
        //用户数据权限
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (sysUser == null) {
            return new ArrayList<>();
        }
        if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
            //选择了设备,根据设备id过滤设备
            List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
            queryWrapper.in("e.equipment_code", equipArr);
        } else {
            //没有选择设备,根据中心过滤设备
            List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService.
                    list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId()));
            if(!CollectionUtils.isEmpty(baseFactoryUserList)){
                List<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toList());
                List<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getFactoryCode).collect(Collectors.toList());
                queryWrapper.in("e.factory_code", factoryCode);
            }
        }
        //查询条件过滤
        if (eamEquipment != null) {
            if (StringUtils.isNotBlank(eamEquipment.getEquipmentCode())) {
                queryWrapper.like("e.equipment_code", eamEquipment.getEquipmentCode());
            }
            if (StringUtils.isNotBlank(eamEquipment.getEquipmentName())) {
                queryWrapper.like("e.equipment_name", eamEquipment.getEquipmentName());
            }
            if (StringUtils.isNotBlank(eamEquipment.getEquipmentImportance())) {
                queryWrapper.eq("e.equipment_importance", eamEquipment.getEquipmentImportance());
            }
            if (StringUtils.isNotBlank(eamEquipment.getAssetStatus())) {
                queryWrapper.like("e.asset_status", eamEquipment.getAssetStatus());
            }
            if (StringUtils.isNotBlank(eamEquipment.getTechnologyStatus())) {
                queryWrapper.like("e.technology_status", eamEquipment.getTechnologyStatus());
            }
            if (StringUtils.isNotBlank(eamEquipment.getOperationSystem())) {
                queryWrapper.like("e.operation_system", eamEquipment.getOperationSystem());
            }
            if (StringUtils.isNotBlank(eamEquipment.getOrgId())) {
                //车间编码不为空
                List<String> productIds = mdcProductionService.recursionChildren(eamEquipment.getOrgId());
                if (CollectionUtil.isNotEmpty(productIds)) {
                    //不做筛选
                    queryWrapper.in("e.org_id", productIds);
                }
            }
            if (StringUtils.isNotBlank(eamEquipment.getEquipmentCategory())) {
                queryWrapper.like("e.equipment_category", eamEquipment.getEquipmentCategory());
            }
            if (StringUtils.isNotBlank(eamEquipment.getId())) {
                queryWrapper.eq("e.id", eamEquipment.getId());
            }
            //排序
            if (StringUtils.isNotBlank(eamEquipment.getColumn()) && StringUtils.isNotBlank(eamEquipment.getOrder())) {
                //queryWrapper.like("column", eamEquipment.getColumn());
                String column = eamEquipment.getColumn();
                if (column.endsWith(CommonConstant.DICT_TEXT_SUFFIX)) {
                    column = column.substring(0, column.lastIndexOf(CommonConstant.DICT_TEXT_SUFFIX));
                }
                if (DataBaseConstant.SQL_ASC.equalsIgnoreCase(eamEquipment.getOrder())) {
                    queryWrapper.orderByAsc("e." + oConvertUtils.camelToUnderline(column));
                } else {
                    queryWrapper.orderByDesc("e." + oConvertUtils.camelToUnderline(column));
                }
            } else {
                queryWrapper.orderByDesc("e.create_time");
            }
        } else {
            queryWrapper.orderByDesc("e.create_time");
        }
        return eamEquipmentMapper.queryList(queryWrapper);
    }
    /**
     * èŽ·å–æ‰€æœ‰çš„äº§çº¿id(包含所有上级)
     */
    private void getAllProductionIds(List<MdcProduction> productionList, String productionId, List<String> allProductionIds) {
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java
@@ -322,7 +322,7 @@
                    eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name());
                }else {
                    //提交机动办维修,车间管理员确认
                    userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0003);
                    userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), null, BusinessCodeConst.PCR0003);
                    if (CollectionUtil.isEmpty(userSelectors)) {
                        throw new JeecgBootException("设备未分配给班组长,无法进入下级审批!");
                    }
@@ -376,7 +376,7 @@
                }
                if(CommonConstant.STATUS_1.equals(request.getLeaderConfirm())) {
                    //通过 æäº¤æœºåŠ¨åŠžç»´ä¿®
                    userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0006);
                    userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), null, BusinessCodeConst.PCR0006);
                    if (CollectionUtil.isEmpty(userSelectors)) {
                        throw new JeecgBootException("设备未分配给公司管理员,无法进入下级审批!");
                    }
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
@@ -11,10 +11,13 @@
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.TranslateDictTextUtils;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.entity.EamEquipment;
import org.jeecg.modules.eam.entity.EamEquipmentExtend;
import org.jeecg.modules.eam.request.EamEquipmentQuery;
@@ -25,7 +28,10 @@
//import org.jeecg.modules.mdc.entity.MdcEquipment;
//import org.jeecg.modules.mdc.service.IMdcEquipmentService;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -38,6 +44,7 @@
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * @Description: è®¾å¤‡å°è´¦
@@ -99,14 +106,14 @@
            return Result.OK("添加失败!");
        }
        //调用mdcEquipment插入MDC设备
        if (CommonConstant.DEFAULT_1.equals(eamEquipment.getMdcFlag())) {
//        if (CommonConstant.DEFAULT_1.equals(eamEquipment.getMdcFlag())) {
            //插入MDC设备
//            MdcEquipment mdcEquipment = new MdcEquipment();
//            mdcEquipment.setEquipmentId(entity.getEquipmentCode());
//            mdcEquipment.setEquipmentType(entity.getDeviceType());
//            mdcEquipment.setEquipmentName(entity.getEquipmentName());
//            mdcEquipmentService.addNewEquipmentFromEam(mdcEquipment, eamEquipment.getOrgId());
        }
//        }
        return Result.OK("添加成功!");
    }
@@ -119,7 +126,7 @@
    @ApiOperation(value = "设备台账-编辑", notes = "设备台账-编辑")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
    public Result<?> edit(@RequestBody EamEquipment eamEquipment) {
        eamEquipmentService.updateById(eamEquipment);
        eamEquipmentService.updateEquipment(eamEquipment);
        return Result.OK("编辑成功!");
    }
@@ -183,9 +190,9 @@
            JSONObject item = JSONObject.parseObject(json, Feature.OrderedField);
            translateDictTextUtils.translateField("createBy", eamEquipment.getCreateBy(), item, "sys_user,realname,username");
            translateDictTextUtils.translateField("updateBy", eamEquipment.getUpdateBy(), item, "sys_user,realname,username");
            translateDictTextUtils.translateField("technologyStatus", eamEquipment.getTechnologyStatus(), item, "technology_status");
            translateDictTextUtils.translateField("orgId", eamEquipment.getOrgId(), item, "mdc_production,production_name,id");
            translateDictTextUtils.translateField("equipmentManager", eamEquipment.getEquipmentManager(), item, "sys_user,realname,username");
//            translateDictTextUtils.translateField("technologyStatus", eamEquipment.getTechnologyStatus(), item, "technology_status");
//            translateDictTextUtils.translateField("orgId", eamEquipment.getOrgId(), item, "mdc_production,production_name,id");
//            translateDictTextUtils.translateField("equipmentManager", eamEquipment.getEquipmentManager(), item, "sys_user,realname,username");
            translateDictTextUtils.translateField("equipmentCategory", eamEquipment.getEquipmentCategory(), item, "equipment_category");
            translateDictTextUtils.translateField("assetStatus", eamEquipment.getAssetStatus(), item, "asset_status");
            translateDictTextUtils.translateField("repairStatus", eamEquipment.getRepairStatus(), item, "equipment_repair_status");
@@ -198,13 +205,26 @@
    /**
     * å¯¼å‡ºexcel
     *
     * @param request
     * @param eamEquipment
     */
    @RequestMapping(value = "/exportXls")
    public ModelAndView exportXls(HttpServletRequest request, EamEquipment eamEquipment) {
        return super.exportXls(request, eamEquipment, EamEquipment.class, "设备台账");
    public ModelAndView exportXls(HttpServletRequest request,EamEquipmentQuery eamEquipment) {
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        List<EamEquipment> equipmentList=eamEquipmentService.exportList(eamEquipment);
        String selections = request.getParameter("selections");
        if (oConvertUtils.isNotEmpty(selections)) {
            List<String> selectionList = Arrays.asList(selections.split(","));
            equipmentList = equipmentList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
        }
        // Step.3 AutoPoi å¯¼å‡ºExcel
        ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
        mv.addObject(NormalExcelConstants.FILE_NAME, "设备台账"); //此处设置的filename无效 ,前端会重更新设置一下
        mv.addObject(NormalExcelConstants.CLASS, EamEquipment.class);
        mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("设备台账" + "报表", "导出人:" + sysUser.getRealname(), "设备台账"));
        mv.addObject(NormalExcelConstants.DATA_LIST, equipmentList);
        return mv;
    }
    /**
@@ -222,7 +242,7 @@
            // èŽ·å–ä¸Šä¼ æ–‡ä»¶å¯¹è±¡
            MultipartFile file = entity.getValue();
            ImportParams params = new ImportParams();
            params.setTitleRows(0);
            params.setTitleRows(2);
            params.setHeadRows(1);
            params.setNeedSave(true);
            params.setStartSheetIndex(0);
@@ -243,25 +263,10 @@
                        sb.append(String.format("设备编码[%s]设备分类为空,无法导入\n\n", eamEquipment.getEquipmentCode()));
                        continue;
                    }
                    if (StringUtils.isBlank(eamEquipment.getOrgId()) || StringUtils.isBlank(eamEquipment.getEquipmentManager())) {
                        sb.append(String.format("设备编码[%s]使用车间或设备管理员为空,无法导入\n\n", eamEquipment.getEquipmentCode()));
                        continue;
                    }
//                    if (eamEquipment.getAcceptanceCheckDate() == null) {
//                        sb.append(String.format("设备编码[%s]验收为空,无法导入\n\r", eamEquipment.getEquipmentCode()));
//                        continue;
//                    }
//                    if (StringUtils.isBlank(eamEquipment.getTechnologyStatus())) {
//                        sb.append(String.format("设备编码[%s]技术状态为空,无法导入\n\r", eamEquipment.getEquipmentCode()));
//                        continue;
//                    }
                    EamEquipment one = eamEquipmentService.getOne(new LambdaQueryWrapper<EamEquipment>().eq(EamEquipment::getEquipmentCode, eamEquipment.getEquipmentCode()).eq(EamEquipment::getDelFlag, CommonConstant.DEL_FLAG_0));
                    if (one != null) {
                        sb.append(String.format("设备编码[%s]已存在,无法重复导入\n\r", eamEquipment.getEquipmentCode()));
                        continue;
                    }
                    if (!CommonConstant.DEFAULT_1.equals(eamEquipment.getMdcFlag())) {
                        eamEquipment.setMdcFlag(CommonConstant.DEFAULT_0);
                    }
                    EamEquipment equipment = eamEquipmentService.saveEquipment(eamEquipment);
                    if (equipment == null) {
@@ -269,18 +274,7 @@
                        sb.append(String.format("设备编码[%s]保存失败,无法导入\n\r", eamEquipment.getEquipmentCode()));
                        continue;
                    }
                    //调用mdcEquipment插入MDC设备
                    if (CommonConstant.DEFAULT_1.equals(eamEquipment.getMdcFlag())) {
                        //插入MDC设备
//                        MdcEquipment mdcEquipment = new MdcEquipment();
//                        mdcEquipment.setEquipmentId(eamEquipment.getEquipmentCode());
//                        mdcEquipment.setEquipmentType(eamEquipment.getDeviceType());
//                        mdcEquipment.setEquipmentName(eamEquipment.getEquipmentName());
//                        mdcEquipmentService.addNewEquipmentFromEam(mdcEquipment, eamEquipment.getOrgId());
                    }
                }
                //400条 saveBatch消耗时间1592毫秒  å¾ªçŽ¯æ’å…¥æ¶ˆè€—æ—¶é—´1947毫秒
                //1200条  saveBatch消耗时间3687毫秒 å¾ªçŽ¯æ’å…¥æ¶ˆè€—æ—¶é—´5212毫秒
                log.info("消耗时间" + (System.currentTimeMillis() - start) + "毫秒");
                //update-end-author:taoyan date:20190528 for:批量插入数据
                if (sb.length() > 0) {
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamUserSelectController.java
@@ -43,7 +43,7 @@
        if (StringUtils.isNotBlank(equipmentId)) {
            EamEquipment equipment = eamEquipmentService.getById(equipmentId);
            if(equipment != null) {
                productionId = equipment.getOrgId();
//                productionId = equipment.getOrgId();
                equipmentCode = equipment.getEquipmentCode();
            }
        }
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentLeanOutServiceImpl.java
@@ -136,9 +136,9 @@
        if (StringUtils.isBlank(request.getLeanDepartId())) {
            throw new JeecgBootException("借入车间不允许为空!");
        }
        if (request.getLeanDepartId().equals(equipment.getOrgId())) {
            throw new JeecgBootException("当前设备属于此车间,不需要借用!");
        }
//        if (request.getLeanDepartId().equals(equipment.getOrgId())) {
//            throw new JeecgBootException("当前设备属于此车间,不需要借用!");
//        }
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (sysUser == null) {
            throw new JeecgBootException("当前用户无法添加借用记录!");
@@ -168,9 +168,9 @@
        if (StringUtils.isBlank(request.getLeanDepartId())) {
            throw new JeecgBootException("借入车间不允许为空!");
        }
        if (request.getLeanDepartId().equals(equipment.getOrgId())) {
            throw new JeecgBootException("当前设备属于此车间,不需要借用!");
        }
//        if (request.getLeanDepartId().equals(equipment.getOrgId())) {
//            throw new JeecgBootException("当前设备属于此车间,不需要借用!");
//        }
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (sysUser == null) {
            throw new JeecgBootException("当前用户无法编辑借用记录!");
@@ -230,7 +230,7 @@
        }
        variables.put("proofreading", true);
        List<String> usernames = new ArrayList<>();
        usernames.add(equipment.getEquipmentManager());
//        usernames.add(equipment.getEquipmentManager());
        variables.put("NextAssignee", usernames);
        Result result = flowDefinitionService.startProcessInstanceByKey("equipment_lean_out", variables);
        if (result != null) {
@@ -312,15 +312,15 @@
                break;
            // å½’还
            case WAIT_RETURN:
                if (StringUtils.isBlank(equipment.getEquipmentManager())) {
                    throw new JeecgBootException("设备未分配设备管理员,无法进入下级审批!");
                }
                List<String> userApprovalList = new ArrayList<>(Collections.singletonList(entity.getLeanPerson()));
                userApprovalList.add(equipment.getEquipmentManager());
//                if (StringUtils.isBlank(equipment.getEquipmentManager())) {
//                    throw new JeecgBootException("设备未分配设备管理员,无法进入下级审批!");
//                }
//                List<String> userApprovalList = new ArrayList<>(Collections.singletonList(entity.getLeanPerson()));
//                userApprovalList.add(equipment.getEquipmentManager());
                values.put("dataId", entity.getId());
                values.put("organization", request.getReturnComment());
                values.put("comment", request.getReturnComment());
                values.put("NextAssignee", userApprovalList);
//                values.put("NextAssignee", userApprovalList);
                request.setComment(request.getReturnComment());
                entity.setLeanEndTime(new Date()); //归还时间
                //设置entity
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentScrapServiceImpl.java
@@ -183,7 +183,7 @@
        variables.put("comment", entity.getScrapReason());
        variables.put("proofreading", true);
        // åˆ†é…ç»™è®¾å¤‡ç®¡ç†å‘˜
        List<UserSelector> userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0004);
        List<UserSelector> userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), null, BusinessCodeConst.PCR0004);
        if (CollectionUtil.isEmpty(userSelectors)) {
            throw new JeecgBootException("设备未分配给设备管理员,无法进入下级审批!");
        }
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentSealUpServiceImpl.java
@@ -202,7 +202,7 @@
        variables.put("comment", "新增启封默认启动流程");
        variables.put("proofreading", true);
        // åˆ†é…ç»™è®¾å¤‡ç®¡ç†å‘˜
        List<UserSelector> userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0004);
        List<UserSelector> userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), null, BusinessCodeConst.PCR0004);
        if (CollectionUtil.isEmpty(userSelectors)) {
            throw new JeecgBootException("设备未分配给设备管理员,无法进入下级审批!");
        }
@@ -261,7 +261,7 @@
        }
        variables.put("proofreading", true);
        // åˆ†é…ç»™è®¾å¤‡ç®¡ç†å‘˜
        List<UserSelector> userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0004);
        List<UserSelector> userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(),null, BusinessCodeConst.PCR0004);
        if (CollectionUtil.isEmpty(userSelectors)) {
            throw new JeecgBootException("设备未分配给设备管理员,无法进入下级审批!");
        }
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentTransferServiceImpl.java
@@ -140,10 +140,10 @@
        if (sysUser == null) {
            throw new JeecgBootException("当前用户无法添加借用记录!");
        }
        if (equipment.getOrgId().equals(request.getNewDepartId())) {
            throw new JeecgBootException("当前设备属于此车间,不需要变动!");
        }
        request.setOldDepartId(equipment.getOrgId());
//        if (equipment.getOrgId().equals(request.getNewDepartId())) {
//            throw new JeecgBootException("当前设备属于此车间,不需要变动!");
//        }
//        request.setOldDepartId(equipment.getOrgId());
        request.setReportUser(sysUser.getUsername());
        return equipmentTransferMapper.insert(request) > 0;
    }
@@ -185,7 +185,7 @@
        variables.put("comment", entity.getTransferReason());
        variables.put("proofreading", true);
        // åˆ†é…ç»™è®¾å¤‡ç®¡ç†å‘˜
        List<UserSelector> userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0004);
        List<UserSelector> userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(),null, BusinessCodeConst.PCR0004);
        if (CollectionUtil.isEmpty(userSelectors)) {
            throw new JeecgBootException("设备未分配给设备管理员,无法进入下级审批!");
        }
@@ -305,7 +305,7 @@
        updateWrapper.set("equipment_id", request.getEquipmentId());
        updateWrapper.set("remark", request.getRemark());
        updateWrapper.set("transfer_reason", request.getTransferReason());
        updateWrapper.set("old_depart_id", equipment.getOrgId());
//        updateWrapper.set("old_depart_id", equipment.getOrgId());
        updateWrapper.set("new_depart_id", request.getNewDepartId());
        updateWrapper.eq("id", request.getId());
        updateWrapper.eq("report_user", sysUser.getUsername());
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java
@@ -392,17 +392,17 @@
        Map<String, Object> values = new HashMap<>();
        if (InspectionStatus.UNDER_INSPECTION.name().equals(order.getInspectionStatus()) && user.getUsername().equals(order.getOperator())) {
            // ç‚¹æ£€äººç‚¹æ£€ç»“束
            String manager = Optional.ofNullable(iEamEquipmentService.getById(order.getEquipmentId()))
                    .map(EamEquipment::getEquipmentManager)
                    .orElse(null);
            if (manager == null) {
                throw new IllegalArgumentException("设备管理员未配置");
            }
            List<String> usernameList = Collections.singletonList(manager);
//            String manager = Optional.ofNullable(iEamEquipmentService.getById(order.getEquipmentId()))
//                    .map(EamEquipment::getEquipmentManager)
//                    .orElse(null);
//            if (manager == null) {
//                throw new IllegalArgumentException("设备管理员未配置");
//            }
//            List<String> usernameList = Collections.singletonList(manager);
            values.put("dataId", order.getId());
            values.put("organization", "点检人点检结束");
            values.put("comment", "点检人点检结束");
            values.put("NextAssignee", usernameList);
//            values.put("NextAssignee", usernameList);
            request.setComment("点检人点检结束");
        } else {
            // ç­ç»„长确认
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java
@@ -357,15 +357,15 @@
            case UNDER_MAINTENANCE:
                //执行完成
                //设备管理员确认
                String equipmentManager = equipment.getEquipmentManager();
                if(StringUtils.isBlank(equipmentManager)) {
                    throw new JeecgBootException("设备未分配设备管理员,无法进入下级审批!");
                }
                userApprovalList = Collections.singletonList(equipmentManager);
//                String equipmentManager = equipment.getEquipmentManager();
//                if(StringUtils.isBlank(equipmentManager)) {
//                    throw new JeecgBootException("设备未分配设备管理员,无法进入下级审批!");
//                }
//                userApprovalList = Collections.singletonList(equipmentManager);
                values.put("dataId", entity.getId());
                values.put("organization", "二保执行结束");
                values.put("comment", "二保执行结束");
                values.put("NextAssignee", userApprovalList);
//                values.put("NextAssignee", userApprovalList);
                request.setComment("二保执行结束");
                //设置entity
                entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_CONFIRM.name());
@@ -389,7 +389,7 @@
                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.SECOND_MAINTENANCE_WAIT_CONFIRM.name());
                break;
            case WAIT_CONFIRM:
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0003);
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(),null, BusinessCodeConst.PCR0003);
                if (CollectionUtil.isEmpty(userSelectors)) {
                    throw new JeecgBootException("设备未分配给车间班组长,无法进入下级审批!");
                }
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java
@@ -186,7 +186,7 @@
            variables.put("proofreading", true);
            //并行任务会签
            variables.put("maintenance_execution", Collections.singletonList(request.getOperator()));
            variables.put("precision_check", Collections.singletonList(equipment.getEquipmentManager()));
//            variables.put("precision_check", Collections.singletonList(equipment.getEquipmentManager()));
            Result result = flowDefinitionService.startProcessInstanceByKey("third_maintenance_process", variables);
            if (result != null) {
                //更新设备保养状态
@@ -257,7 +257,7 @@
            variables.put("proofreading", true);
            //并行任务会签
            variables.put("maintenance_execution", Collections.singletonList(request.getOperator()));
            variables.put("precision_check", Collections.singletonList(equipment.getEquipmentManager()));
//            variables.put("precision_check", Collections.singletonList(equipment.getEquipmentManager()));
            Result result = flowDefinitionService.startProcessInstanceByKey("third_maintenance_process", variables);
            if (result != null) {
                //更新设备保养状态
@@ -283,9 +283,9 @@
        if (equipment == null) {
            throw new JeecgBootException("设备不存在,添加失败!");
        }
        if (StringUtils.isBlank(equipment.getEquipmentManager())) {
            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("不是操作工,无法领取此工单!");
@@ -312,7 +312,7 @@
        variables.put("proofreading", true);
        //并行任务会签
        variables.put("maintenance_execution", Collections.singletonList(sysUser.getUsername()));
        variables.put("precision_check", Collections.singletonList(equipment.getEquipmentManager()));
//        variables.put("precision_check", Collections.singletonList(equipment.getEquipmentManager()));
        Result result = flowDefinitionService.startProcessInstanceByKey("third_maintenance_process", variables);
        if (result != null) {
            //更新设备保养状态
@@ -368,7 +368,7 @@
            case UNDER_MAINTENANCE:
                boolean parallelCompletion = flowTaskService.checkParallelCompletion(flowMyBusiness.getTaskId());
                //执行完成
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0006);
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), null, BusinessCodeConst.PCR0006);
                if (CollectionUtil.isEmpty(userSelectors)) {
                    throw new JeecgBootException("设备未分配给车间班组长,无法进入下级审批!");
                }
@@ -416,7 +416,7 @@
                }
                break;
            case WAIT_CONFIRM:
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0003);
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(),null, BusinessCodeConst.PCR0003);
                if (CollectionUtil.isEmpty(userSelectors)) {
                    throw new JeecgBootException("设备未分配给车间班组长,无法进入下级审批!");
                }
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java
@@ -361,7 +361,7 @@
        switch (status) {
            case UNDER_MAINTENANCE:
                //执行完成
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0003);
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), null, BusinessCodeConst.PCR0003);
                if (CollectionUtil.isEmpty(userSelectors)) {
                    throw new JeecgBootException("设备未分配给班组长,无法进入下级审批!");
                }
@@ -393,12 +393,12 @@
                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.WEEK_MAINTENANCE_WAIT_CONFIRM.name());
                break;
            case WAIT_CONFIRM:
                if (StringUtils.isBlank(equipment.getEquipmentManager())) {
                    throw new JeecgBootException("设备未分配设备管理员,无法进入下级审批!");
                }
//                if (StringUtils.isBlank(equipment.getEquipmentManager())) {
//                    throw new JeecgBootException("设备未分配设备管理员,无法进入下级审批!");
//                }
                //班组长确认
                userApprovalList = new ArrayList<>();
                userApprovalList.add(equipment.getEquipmentManager());
//                userApprovalList.add(equipment.getEquipmentManager());
                values.put("dataId", entity.getId());
                values.put("organization", request.getConfirmComment());
                values.put("comment", request.getConfirmComment());
@@ -425,7 +425,7 @@
                }
                break;
            case WAIT_INITIAL_ACCEPTANCE:
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0005);
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), null, BusinessCodeConst.PCR0005);
                if (CollectionUtil.isEmpty(userSelectors)) {
                    throw new JeecgBootException("设备未分配给设能部管理员,无法进入下级审批!");
                }
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/aspect/DicAspectService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,311 @@
package org.jeecg.modules.system.aspect;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ReflectUtil;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.common.aspect.annotation.DictExt;
import org.jeecg.common.aspect.annotation.DictList;
import org.jeecg.common.aspect.annotation.FieldQuery;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.system.service.ISysDictService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.lang.reflect.Field;
import java.text.SimpleDateFormat;
import java.util.*;
/**
 * å­—典字段翻译服务
 *   æ”¯æŒåµŒå¥—翻译
 * @since 2020/5/27
 */
@Service
@Slf4j
public class DicAspectService {
    @Autowired
    private ISysDictService dictService;
    /**
     * æœ¬æ–¹æ³•针对列表数据进行动态字典注入
     * å­—典注入实现 é€šè¿‡å¯¹å®žä½“类添加注解@dict æ¥æ ‡è¯†éœ€è¦çš„字典内容,字典分为单字典code即可 ï¼Œtable字典 code table text配合使用与原来jeecg的用法相同
     * ç¤ºä¾‹ä¸ºSysUser   å­—段为sex æ·»åŠ äº†æ³¨è§£@Dict(dicCode = "sex") ä¼šåœ¨å­—典服务立马查出来对应的text ç„¶åŽåœ¨è¯·æ±‚list的时候将这个字典text,已字段名称加_dictText形式返回到前端
     * ä¾‹è¾“入当前返回值的就会多出一个sex_dictText字段
     * {
     *      sex:1,
     *      sex_dictText:"男"
     * }
     * å‰ç«¯ç›´æŽ¥å–值sext_dictText在table里面无需再进行前端的字典转换了
     *  customRender:function (text) {
     *               if(text==1){
     *                 return "男";
     *               }else if(text==2){
     *                 return "女";
     *               }else{
     *                 return text;
     *               }
     *             }
     *             ç›®å‰vue是这么进行字典渲染到table上的多了就很麻烦了 è¿™ä¸ªç›´æŽ¥åœ¨æœåŠ¡ç«¯æ¸²æŸ“å®Œæˆå‰ç«¯å¯ä»¥ç›´æŽ¥ç”¨
     * @param records
     * @return
     */
    public List<JSONObject> detailDict(List<Object> records){
        List<JSONObject> items = new ArrayList<>();
        FieldBatchQuery batchQuery = new FieldBatchQuery();
        boolean hasDict = false;
        for (Object record : records) {
            JSONObject item = parseDictItem(record);
            Field[] fieldsArray = oConvertUtils.getAllFields(record);
            for (int i = 0; i < fieldsArray.length; i++) {
                Field field = fieldsArray[i];
                if (field.getAnnotation(Dict.class) != null && records.size()<=500) {
                    hasDict = true;
                    String code = field.getAnnotation(Dict.class).dicCode();
                    String text = field.getAnnotation(Dict.class).dicText();
                    String table = field.getAnnotation(Dict.class).dictTable();
                    String key = String.valueOf(item.get(field.getName()));
                    //翻译字典值对应的txt
                    String textValue = translateDictValue(code, text, table, key);
                    item.put(field.getName() + CommonConstant.DICT_TEXT_SUFFIX, textValue);
                }
                // å­—典翻译扩展功能,支持字典多字段匹配
                else if(field.getAnnotation(DictExt.class) != null && records.size() <= 500){
                    hasDict = true;
                    String[] code = field.getAnnotation(DictExt.class).dicCode();
                    String text = field.getAnnotation(DictExt.class).dicText();
                    String table = field.getAnnotation(DictExt.class).dicTable();
                    String[] params = field.getAnnotation(DictExt.class).dicParams();
                    String[] paramValues = this.getParamValues(item, params);
                    String textValue = this.translateDictValue(code, text, table, paramValues);
                    item.put(field.getName() + CommonConstant.DICT_TEXT_SUFFIX, textValue);
                    item.put(field.getName(), ArrayUtil.join(paramValues, ","));
                }
                else if(field.getAnnotation(FieldQuery.class) != null && records.size() <= 500){
                    FieldQuery ann = field.getAnnotation(FieldQuery.class);
                    batchQuery.put(ann.dicTable(), ann.dicText(), ann.dicCode(),
                            this.getParamValues(item, ann.dicParams()));
                }
                // æ·±åº¦ç¿»è¯‘list元素
                else if(field.getAnnotation(DictList.class) != null){
                    Object fieldValue = ReflectUtil.getFieldValue(record, field);
                    if(fieldValue == null){
                        // no-op
                    }
                    else if(null != fieldValue && fieldValue instanceof List){
                        try{
                            List<JSONObject> listDetail = this.detailDict((List)fieldValue);
                            item.put(field.getName(), listDetail);
                        }catch (Exception e){
                            log.error("字段翻译错误,index=" + i + ",fieldName=" + field.getName() + ",fieldValue=" + fieldValue + ",record=" + record);
                        }
                    }else{
                        log.error("深度字典翻译只支持List类型,当前类型为" + fieldValue.getClass());
                    }
                }
                //date类型默认转换string格式化日期
                if (field.getType().getName().equals("java.util.Date")&&field.getAnnotation(JsonFormat.class)==null&&item.get(field.getName())!=null){
                    SimpleDateFormat aDate=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    item.put(field.getName(), aDate.format(new Date((Long) item.get(field.getName()))));
                }
            }
            if(records.size()>500 && hasDict){
                log.error("使用 @Dict注解超过500条记录请使用分页查询");
            }
            items.add(item);
        }
        // æ‰¹é‡æŸ¥è¯¢å…³è”数据
        if(batchQuery.size() > 0){
            Map<String, List<Map>> batchResult = new HashMap<>();
            batchQuery.forEach((queryKey, queryParam) -> {
                // æ‰¹é‡æŸ¥è¯¢
                try {
                    queryParam.setQueryResult(this.batchQueryFieldValue(queryParam.getQueryTable(),
                            queryParam.getColumns(),
                            queryParam.getParamName(),
                            queryParam.getParamValues()));
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            });
            for (int i = 0; i < records.size(); i++) {
                Object record = records.get(i);
                JSONObject item = items.get(i);
                try {
                    this.fillItemValue(record, item, batchQuery);
                } catch (Exception e) {
                    e.printStackTrace();
                    log.info("批量查询数据填充出错:{}", e.getMessage());
                }
            }
        }
        return items;
    }
    /**
     * å•表批量查询
     *
     * @param queryTable
     * @param columns
     * @param paramName
     * @param paramValues
     * @return
     */
    private List<Map> batchQueryFieldValue(String queryTable, String[] columns,
                                           String paramName, String[] paramValues) throws Exception {
        try{
            return this.dictService.queryTableFieldByParams(queryTable, columns, paramName, paramValues);
        }catch (Exception e){
            log.error("FieldQuery查询错误", e);
            throw new Exception("FieldQuery查询错误");
        }
    }
    /**
     * å¡«å……item批量查询数据
     * @param record
     * @param item
     * @param batchQuery
     */
    private void fillItemValue(Object record, JSONObject item, FieldBatchQuery batchQuery) throws Exception{
        for (Field field : oConvertUtils.getAllFields(record)) {
            if(field.getAnnotation(FieldQuery.class) != null){
                FieldQuery fieldQuery = field.getAnnotation(FieldQuery.class);
                String[] paramValues = this.getParamValues(item, fieldQuery.dicParams());
                Object textValue = batchQuery.findResult(fieldQuery.dicTable(),
                        fieldQuery.dicCode(), paramValues, fieldQuery.dicText());
                item.put(field.getName() + CommonConstant.DICT_TEXT_SUFFIX, textValue);
                item.put(field.getName(), ArrayUtil.join(paramValues, ","));
            }
        }
    }
    /**
     * è§£æžå­—å…¸Item
     * @param record
     * @return
     */
    private JSONObject parseDictItem(Object record) {
        ObjectMapper mapper = new ObjectMapper();
        String json="{}";
        try {
            //解决@JsonFormat注解解析不了的问题详见SysAnnouncement类的@JsonFormat
            json = mapper.writeValueAsString(record);
        } catch (JsonProcessingException e) {
            log.error("json解析失败"+e.getMessage(),e);
        }
        return JSONObject.parseObject(json);
    }
    /**
     * èŽ·å–å‚æ•°æ•°å€¼
     * @param item
     * @param paramNames
     * @return
     */
    private String[] getParamValues(JSONObject item, String[] paramNames) {
        // èŽ·å–å®žé™…å‚æ•°
        String[] values = new String[paramNames.length];
        for (int i = 0; i < paramNames.length; i++) {
            String param = paramNames[i];
            if(param.startsWith("$")){
                values[i] = (String) item.get(param.substring(1));
            }else{
                values[i] = param;
            }
            if(values[i] == null) return null;
            if(values[i].indexOf("&&") > -1){
                log.error(">>>参数["+values[i]+"]包含非法字符','");
                return null;
            }
        }
        return values;
    }
    /**
     * ç¿»è¯‘字典文本
     *
     * @param code
     * @param text
     * @param table
     * @param paramValues
     * @return
     */
    private String translateDictValue(String[] code, String text, String table, String[] paramValues) {
        if(paramValues == null || paramValues.length <=0 || oConvertUtils.isEmpty(table)){
            return null;
        }
        try{
            return this.dictService.queryTableDictByParams(table,text,
                    ArrayUtil.join(code, "&&"),
                    ArrayUtil.join(paramValues, "&&"));
        }catch (Exception e){
            log.error("字典翻译异常table={},text={},code={},paramValues={}", table, text, ArrayUtil.join(code, "&&"),ArrayUtil.join(paramValues, "&&") );
            throw e;
        }
    }
    /**
     *  ç¿»è¯‘字典文本
     * @param code
     * @param text
     * @param table
     * @param key
     * @return
     */
    private String translateDictValue(String code, String text, String table, String key) {
        if(oConvertUtils.isEmpty(key)) {
            return null;
        }
        StringBuffer textValue=new StringBuffer();
        String[] keys = key.split(",");
        for (String k : keys) {
            String tmpValue = null;
            if (k.trim().length() == 0) {
                continue; //跳过循环
            }
            if (!StringUtils.isEmpty(table)){
                tmpValue= dictService.queryTableDictTextByKey(table,text,code,k.trim());
            }else {
                tmpValue = dictService.queryDictTextByKey(code, k.trim());
            }
            if (tmpValue != null) {
                if (!"".equals(textValue.toString())) {
                    textValue.append(",");
                }
                textValue.append(tmpValue);
            }
        }
        return textValue.toString();
    }
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/aspect/FieldBatchQuery.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,135 @@
package org.jeecg.modules.system.aspect;
import cn.hutool.core.util.ArrayUtil;
import java.util.*;
import java.util.function.BiConsumer;
/**
 * æ‰¹é‡æŸ¥è¯¢å™¨
 */
public class FieldBatchQuery {
    // key=查询要素=table+paramName, value=查询条件
    private Map<String, QueryParam> queryBatch = new HashMap<>();
    /**
     * ä¾¿åˆ©æŸ¥è¯¢è¦ç´ 
     * @param action
     */
    public void forEach(BiConsumer<? super String, ? super QueryParam> action) {
        this.queryBatch.forEach(action);
    }
    /**
     * æŸ¥è¯¢è¡¨æ•°é‡
     * @return
     */
    public int size() {
        return queryBatch.size();
    }
    /**
     * æŸ¥æ‰¾æŸ¥è¯¢ç»“æžœ
     * @param tableName
     * @param paramName
     * @param paramValue
     * @param column
     * @return
     */
    public Object findResult(String tableName, String[] paramName, String[] paramValue, String column) {
        String queryKey = tableName + "()" + ArrayUtil.join(paramName, ",");
        if(!this.queryBatch.containsKey(queryKey)) return null;
        return this.queryBatch.get(queryKey).findResult(paramValue, column);
    }
    /**
     * ä¿å­˜æŸ¥è¯¢æ¡ä»¶
     * @param tableName æŸ¥è¯¢è¡¨å
     * @param textName æŸ¥è¯¢å­—段名称
     * @param paramName æŸ¥è¯¢å‚数名称
     * @param paramValue æŸ¥è¯¢å‚数值
     */
    public void put(String tableName, String textName, String[] paramName, String[] paramValue) {
        String queryKey = tableName + "()" + ArrayUtil.join(paramName, ",");
        QueryParam queryParams;
        if(this.queryBatch.containsKey(queryKey)){
            queryParams = this.queryBatch.get(queryKey);
        }else{
            queryParams = new QueryParam(tableName, paramName);
            this.queryBatch.put(queryKey, queryParams);
        }
        // æ·»åŠ æŸ¥è¯¢ç»“æžœcolumn名称
        queryParams.addTextName(textName);
        // æ·»åŠ æŸ¥è¯¢å‚æ•°
        queryParams.addParamValue(paramValue);
    }
    public static class QueryParam {
        private String queryTable;
        private Set<String> columns = new HashSet<>();
        private Set<String> paramValueSet = new HashSet<>();
        private String[] paramName;
        private List<Map> queryResult = new ArrayList<>();
        private Map<String, Integer> resultIndex = new HashMap<>();
        public QueryParam(String tableName, String[] column) {
            this.queryTable = tableName;
            this.paramName = column;
        }
        public void addTextName(String textName) {
            this.columns.add(textName);
        }
        public void addParamValue(String[] paramValue) {
            paramValueSet.add(ArrayUtil.join(paramValue, ","));
        }
        public String getQueryTable() {
            return queryTable;
        }
        public String[] getColumns() {
            String[] ret = new String[this.columns.size()];
            this.columns.toArray(ret);
            return ret;
        }
        public String getParamName() {
            return "concat(" + ArrayUtil.join(this.paramName, ",',',") + ")";
        }
        public String[] getParamValues() {
            String[] ret = new String[this.paramValueSet.size()];
            this.paramValueSet.toArray(ret);
            return ret;
        }
        public void setQueryResult(List<Map> queryResult) {
            this.queryResult = queryResult;
        }
        public Object findResult(String[] paramValue, String column) {
            if(paramValue == null) return null;
            String value = ArrayUtil.join(paramValue, ",");
            if(this.resultIndex.containsKey(value)){
                return this.queryResult.get(this.resultIndex.get(value)).get(column);
            }
            for (int i = 0; i < this.queryResult.size(); i++) {
                Map<String, Object> map = queryResult.get(i);
                if(value.equals(map.get("paramValue"))){
                    this.resultIndex.put(value, i);
                    return map.get(column);
                }
            }
            return null;
        }
    }
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java
@@ -189,6 +189,18 @@
    private String productionIds;
    /**
     * eam中心分配
     */
    @Excel(name="eam中心分配",width = 15,dictTable ="eam_base_factory",dicText = "factory_name",dicCode = "id")
    @Dict(dictTable ="eam_base_factory",dicText = "factory_name",dicCode = "id")
    private transient String eamFactoryIds;
    /**
     * eam设备组
     */
    private String eamEquipmentIds;
    /**
     * è´Ÿè´£ç»´ä¿®éƒ¨é—¨ç­ç»„
     */
    @Excel(name="负责维修部门班组",width = 15,dictTable ="eam_base_repair_depart",dicText = "depart_name",dicCode = "id")
@@ -210,8 +222,6 @@
    private String homePath;
//    @Dict(dicCode = "id",dictTable = "mom_base_team",dicText = "name")
    private String teamId;
//    @Dict(dicCode = "id",dictTable = "mom_base_area",dicText = "name")
    private String areaId;
    /**
     * å¯†ç é¦–次使用标识 1是 0否
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysDictMapper.java
@@ -25,7 +25,7 @@
 * @since 2018-12-28
 */
public interface SysDictMapper extends BaseMapper<SysDict> {
    /**
     * é‡å¤æ£€æŸ¥SQL
     * @param duplicateCheckVo
@@ -152,13 +152,13 @@
     * @return
     */
    public List<DictModel> queryAllDepartBackDictModel();
    /**
     * æŸ¥è¯¢æ‰€æœ‰ç”¨æˆ·  ä½œä¸ºå­—典信息 username -->value,realname -->text
     * @return
     */
    public List<DictModel> queryAllUserBackDictModel();
//    /**
//     * é€šè¿‡å…³é”®å­—查询出字典表
//     * @param table
@@ -263,4 +263,25 @@
     */
    @Deprecated
    List<DictModel> queryTableDictByKeysAndFilterSql(@Param("table") String table, @Param("text") String text, @Param("code") String code, @Param("filterSql") String filterSql,  @Param("codeValues") List<String> codeValues);
    /**
     * ä½¿ç”¨å­Sql查询字典数据
     * @param table
     * @param text
     * @param subSql
     * @return
     */
    String queryTableDictTextBySubSql(@Param("table") String table, @Param("text") String text, @Param("subSql") String subSql);
    /**
     * å•表批量查询
     * @param queryTable
     * @param columns
     * @param paramName
     * @param paramValues
     * @return
     */
    List<Map> queryTableFieldByParams(@Param("table") String queryTable, @Param("columns") String columns, @Param("paramName") String paramName, @Param("paramValues") String[] paramValues);
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysDictMapper.xml
@@ -36,7 +36,7 @@
    <!-- é€šè¿‡å­—å…¸code获取字典数据 -->
    <select id="queryDictTextByKey" parameterType="String"  resultType="String">
           select s.item_text from sys_dict_item s
           select s.item_text from sys_dict_item s
           where s.dict_id = (select id from sys_dict where dict_code = #{code})
           and s.item_value = #{key}
    </select>
@@ -66,7 +66,7 @@
    <select id="queryTableDictItemsByCode" parameterType="String"  resultType="org.jeecg.common.system.vo.DictModel">
           select ${text} as "text",${code} as "value" from ${table}
    </select>
    <!--通过查询指定table的 text code èŽ·å–å­—å…¸ï¼ˆæŒ‡å®šæŸ¥è¯¢æ¡ä»¶ï¼‰-->
    <select id="queryTableDictItemsByCodeAndFilter" parameterType="String"  resultType="org.jeecg.common.system.vo.DictModel">
           select ${text} as "text",${code} as "value" from ${table}
@@ -74,7 +74,7 @@
            where ${filterSql}
        </if>
    </select>
    <!--通过查询指定table的 text code key èŽ·å–å­—å…¸å€¼-->
    <select id="queryTableDictTextByKey" parameterType="String" resultType="String">
           select ${text} as "text" from ${table} where ${code}= #{key}
@@ -101,27 +101,27 @@
    <select id="duplicateCheckCountSql" resultType="Long" parameterType="org.jeecg.modules.system.model.DuplicateCheckVo">
        SELECT COUNT(*) FROM ${tableName} WHERE ${fieldName} = #{fieldVal} and id &lt;&gt; #{dataId}
    </select>
    <!-- é‡å¤æ ¡éªŒ sql语句 -->
    <select id="duplicateCheckCountSqlNoDataId" resultType="Long" parameterType="org.jeecg.modules.system.model.DuplicateCheckVo">
        SELECT COUNT(*) FROM ${tableName} WHERE ${fieldName} = #{fieldVal}
    </select>
    <!-- æŸ¥è¯¢éƒ¨é—¨ä¿¡æ¯ ä½œä¸ºå­—典数据 -->
    <select id="queryAllDepartBackDictModel" resultType="org.jeecg.common.system.vo.DictModel">
        select id as "value",depart_name as "text" from sys_depart where del_flag = '0'
    </select>
        <!-- æŸ¥è¯¢ç”¨æˆ·ä¿¡æ¯ ä½œä¸ºå­—典数据 -->
    <select id="queryAllUserBackDictModel" resultType="org.jeecg.common.system.vo.DictModel">
        select username as "value",realname as "text" from sys_user where del_flag = '0'
    </select>
    <!--通过查询指定table的 text code èŽ·å–å­—å…¸æ•°æ®ï¼Œä¸”æ”¯æŒå…³é”®å­—æŸ¥è¯¢
    <select id="queryTableDictItems" parameterType="String"  resultType="org.jeecg.common.system.vo.DictModel">
        select ${text} as "text",${code} as "value" from ${table} where ${text} like #{keyword}
    </select> -->
    <!-- æ ¹æ®è¡¨åã€æ˜¾ç¤ºå­—段名、存储字段名、父ID查询树 -->
    <select id="queryTreeList" parameterType="Object" resultType="org.jeecg.modules.system.model.TreeSelectModel">
        select ${text} as "title",
@@ -213,7 +213,14 @@
            and ${filterSql}
        </if>
    </select>
    <select id="queryTableFieldByParams" resultType="java.util.Map">
        select ${columns},${paramName} as paramValue
        from ${table} where ${paramName} in
        <foreach item="key" collection="paramValues" open="(" separator="," close=")">
            #{key}
        </foreach>
    </select>
    <select id="queryTableDictTextBySubSql" resultType="java.lang.String">
        select ${text} as "text" from ${table} where ${subSql}
    </select>
</mapper>
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysDictService.java
@@ -255,4 +255,16 @@
     */
    List<DictModel> loadDict(String dictCode, String keyword, Integer pageSize);
    String queryTableDictByParams(String table, String text, String codes, String params);
    /**
     * å•表批量查询
     * @param queryTable
     * @param columns
     * @param paramName
     * @param paramValues
     * @return
     */
    List<Map> queryTableFieldByParams(String queryTable, String[] columns, String paramName, String[] paramValues);
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDictServiceImpl.java
@@ -1,5 +1,7 @@
package org.jeecg.modules.system.service.impl;
import cn.hutool.core.lang.Validator;
import cn.hutool.core.util.ArrayUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -153,7 +155,7 @@
        log.debug("无缓存dictTableList的时候调用这里!");
        return sysDictMapper.queryTableDictItemsByCodeAndFilter(table,text,code,filterSql);
    }
    /**
     * é€šè¿‡æŸ¥è¯¢æŒ‡å®štable的 text code èŽ·å–å­—å…¸å€¼text
     * dictTableCache采用redis缓存有效期10分钟
@@ -282,7 +284,7 @@
    public List<DictModel> queryAllUserBackDictModel() {
        return baseMapper.queryAllUserBackDictModel();
    }
//    @Override
//    public List<DictModel> queryTableDictItems(String table, String text, String code, String keyword) {
//        return baseMapper.queryTableDictItems(table, text, code, "%"+keyword+"%");
@@ -475,4 +477,37 @@
        }
    }
    @Override
    @Cacheable(value = CacheConstant.SYS_DICT_TABLE_CACHE)
    public String queryTableDictByParams(String table, String text, String codes, String params) {
        log.info("无缓存dictTable queryTableDictByKeys的时候调用这里!");
        String[] codeArr = codes.split("&&");
        String[] paramArr = params.split("&&");
        String subSql = "";
        for (int i = 0; i < codeArr.length; i++) {
            String column = codeArr[i];
            // é»˜è®¤å‚数为空字符串
            String param = paramArr.length > i ? paramArr[i] : "";
            if(column == null || ! Validator.isGeneral(column)){
                log.error("<<<非法字段:" + column);
                return null;
            }
            if(null == param || (!"-1".equals(param) && ! Validator.isGeneralWithChinese(param.replaceAll(" ", "")))){
                log.error("<<<非法参数:" + param);
                return null;
            }
            if(i != 0) subSql += " and ";
            subSql += column+" = '"+param+"'";
        }
        return sysDictMapper.queryTableDictTextBySubSql(table,text,subSql);
    }
    @Override
    public List<Map> queryTableFieldByParams(String queryTable, String[] columns, String paramName, String[] paramValues) {
        String column = ArrayUtil.join(columns, ",");
        return this.baseMapper.queryTableFieldByParams(queryTable, column, paramName, paramValues);
    }
}