新火炬后端单体项目初始化代码
cuilei
6 小时以前 6074864314f5452fd023c34ab11118c393969bcc
排产工单模块工艺点检涉及接口
已添加14个文件
已修改4个文件
1609 ■■■■■ 文件已修改
db/双林新火炬MES数据库设计.pdma.json 730 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/eam/controller/EamEquipmentProcessParametersController.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/eam/controller/EamProcessCheckController.java 305 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/eam/dto/EamProcessCheckAddRequest.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/eam/dto/EamProcessCheckDetailAddRequest.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/eam/entity/EamProcessCheck.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/eam/entity/EamProcessCheckDetail.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/eam/mapper/EamProcessCheckDetailMapper.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/eam/mapper/EamProcessCheckMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/eam/mapper/xml/EamProcessCheckDetailMapper.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/eam/mapper/xml/EamProcessCheckMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/eam/service/IEamProcessCheckDetailService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/eam/service/IEamProcessCheckService.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/eam/service/impl/EamProcessCheckDetailServiceImpl.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/eam/service/impl/EamProcessCheckServiceImpl.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/eam/vo/MaintenanceStandardVo.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/eam/vo/ProcessParametersVo.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
db/Ë«ÁÖлð¾æMESÊý¾Ý¿âÉè¼Æ.pdma.json
@@ -4,7 +4,7 @@
  "avatar": "",
  "version": "4.9.4",
  "createdTime": "2025-3-10 16:38:19",
  "updatedTime": "2025-9-4 11:02:24",
  "updatedTime": "2025-9-5 15:27:47",
  "dbConns": [],
  "profile": {
    "default": {
@@ -69017,6 +69017,734 @@
      "correlations": [],
      "indexes": [],
      "type": "P"
    },
    {
      "id": "9F7C10B2-9B87-4E80-AF35-D054CEEF11FA",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "eam_process_check",
      "defName": "工艺点检",
      "comment": "",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "sysProps": {
        "nameTemplate": "{defKey}[{defName}]"
      },
      "notes": {},
      "headers": [
        {
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "refKey": "defKey",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "defName",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "notNull",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "autoIncrement",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "domain",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "type",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "len",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "defaultValue",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "isStandard",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "uiHint",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "extProps",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr1",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr2",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr3",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr4",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr5",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr6",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr7",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr8",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr9",
          "freeze": false,
          "hideInGraph": true
        }
      ],
      "fields": [
        {
          "defKey": "id",
          "defName": "主键",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "CD432056-A49A-4204-8715-8B5C451DF6B4"
        },
        {
          "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": "21417BC1-F7C6-4911-A88D-2E9455F32648",
          "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": "F0A8978E-BC13-4708-839B-4F95CDF8DEE2",
          "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": "0DF34205-07A1-430B-904B-3D41D07453BB",
          "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": "E9614316-D152-4E45-8811-9AC981192AD1",
          "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": "FA30D79B-C03F-424B-8E8A-19C00ACDD57B"
        },
        {
          "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": "255C5BD0-62A8-4101-9E23-8829ED3B2B23"
        },
        {
          "defKey": "work_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": "06688900-81DB-4CFF-BA62-AAEE8509DBEA"
        },
        {
          "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": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "id": "E136FACD-12A7-4AE9-BD40-CFB045AAD105"
        },
        {
          "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": "7B7BDDB0-B00F-4B34-8409-57E1E9FA95AD"
        }
      ],
      "correlations": [],
      "indexes": [],
      "type": "P"
    },
    {
      "id": "C4D7D8D8-A80F-4A15-B253-50CF701ADF78",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "eam_process_check_detail",
      "defName": "工艺点检明细",
      "comment": "",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "sysProps": {
        "nameTemplate": "{defKey}[{defName}]"
      },
      "notes": {},
      "headers": [
        {
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "refKey": "defKey",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "defName",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "notNull",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "autoIncrement",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "domain",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "type",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "len",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "defaultValue",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "isStandard",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "uiHint",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "extProps",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr1",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr2",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr3",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr4",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr5",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr6",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr7",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr8",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr9",
          "freeze": false,
          "hideInGraph": true
        }
      ],
      "fields": [
        {
          "defKey": "id",
          "defName": "主键",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "737C5344-8CAB-4D4A-8E01-075EC976F8BD"
        },
        {
          "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": "45C56BA0-3E1E-4008-8A71-39F5C3253167",
          "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": "D24299F0-9222-4005-ADF8-0C8BE0CE7795",
          "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": "954F1724-F137-4444-A652-9A9C930F1625",
          "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": "E5A993D9-A5E7-4FC2-9DDF-CBCB009866E4",
          "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": "F4049BF2-5C06-4B1E-ADE1-E229B4CDAFDA"
        },
        {
          "defKey": "check_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": "8B8B670C-F8D1-40AA-B129-9F278B2817CD"
        },
        {
          "defKey": "parameter_id",
          "defName": "参数id",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "refDict": "",
          "extProps": {},
          "notes": {},
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "attr4": "",
          "attr5": "",
          "attr6": "",
          "attr7": "",
          "attr8": "",
          "attr9": "",
          "id": "8F159F7F-9D95-4C23-B23B-244DC6E1983F",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "parameter_period",
          "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": "650B9DFD-7DB3-4051-9E2D-3A2EA37CEA8C",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "check_result",
          "defName": "点检结果",
          "comment": "1正常、2异常",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
          "refDict": "",
          "extProps": {},
          "notes": {},
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "attr4": "",
          "attr5": "",
          "attr6": "",
          "attr7": "",
          "attr8": "",
          "attr9": "",
          "id": "608798AB-F789-4333-AAFC-8580264441B9",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "exception_description",
          "defName": "异常描述",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "refDict": "",
          "extProps": {},
          "notes": {},
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "attr4": "",
          "attr5": "",
          "attr6": "",
          "attr7": "",
          "attr8": "",
          "attr9": "",
          "id": "F6665893-2CFA-4552-8F6D-376C099E0E31",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        }
      ],
      "correlations": [],
      "indexes": [],
      "type": "P"
    }
  ],
  "views": [],
src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
@@ -367,4 +367,25 @@
                }}).collect(Collectors.toList());
        return Result.ok(equipmentMapList);
    }
    @AutoLog(value = "查询排产工单所属产线下需要工艺点检的设备列表")
    @ApiOperation(value = "查询排产工单所属产线下需要工艺点检的设备列表", notes = "查询排产工单所属产线下需要工艺点检的设备列表")
    @GetMapping(value = "/listProductionLineProcessCheckEquipment")
    public Result<?> listProductionLineProcessCheckEquipment(@RequestParam("orderId") String orderId) {
        MesProductionWorkOrder workOrder = mesProductionWorkOrderService.getById(orderId);
        if (workOrder == null) {
            return Result.error("工单不存在!");
        }
        List<Map<String, Object>> equipmentMapList = eamEquipmentService.list(new LambdaQueryWrapper<EamEquipment>()
                        .eq(EamEquipment::getOrgId, workOrder.getFactoryId())
                        .eq(EamEquipment::getDelFlag, CommonConstant.DEL_FLAG_0)
                        .apply("EXISTS (SELECT 1 FROM eam_equipment_process_parameters t WHERE t.equipment_id = eam_equipment.id)")
                        .apply("NOT EXISTS (SELECT 1 FROM eam_process_check t WHERE t.equipment_id = eam_equipment.id AND t.work_order_id = {0})", orderId))
                .stream().map(e -> (Map<String, Object>) new HashMap<String, Object>() {{
                    put("value", e.getId());
                    put("label", e.getEquipmentCode() + "[" + e.getEquipmentName() + "]");
                    put("text", e.getEquipmentCode() + "[" + e.getEquipmentName() + "]");
                }}).collect(Collectors.toList());
        return Result.ok(equipmentMapList);
    }
}
src/main/java/org/jeecg/modules/eam/controller/EamEquipmentProcessParametersController.java
@@ -1,22 +1,32 @@
package org.jeecg.modules.eam.controller;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.modules.eam.entity.EamEquipmentProcessParameters;
import org.jeecg.modules.eam.entity.EamProcessParameters;
import org.jeecg.modules.eam.service.IEamEquipmentProcessParametersService;
import org.jeecg.modules.eam.service.IEamProcessParametersService;
import org.jeecg.modules.eam.vo.ProcessParametersVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
 /**
/**
 * @Description: è®¾å¤‡å·¥è‰ºå‚æ•°
 * @Author: jeecg-boot
 * @Date:   2025-04-27
@@ -29,6 +39,10 @@
public class EamEquipmentProcessParametersController extends JeecgController<EamEquipmentProcessParameters, IEamEquipmentProcessParametersService> {
    @Autowired
    private IEamEquipmentProcessParametersService eamEquipmentProcessParametersService;
    @Autowired
    private IEamProcessParametersService eamProcessParametersService;
    @Autowired
    private ObjectMapper objectMapper;
    
    /**
     * åˆ†é¡µåˆ—表查询
@@ -115,4 +129,26 @@
        return Result.OK("批量删除成功!");
    }
    @AutoLog(value = "设备工艺参数-通过设备id查询工艺参数")
    @ApiOperation(value="设备工艺参数-通过设备id查询工艺参数", notes="设备工艺参数-通过设备id查询工艺参数")
    @GetMapping(value = "/queryByEquipmentId")
    public Result<?> queryByEquipmentId(@RequestParam("equipmentId") String equipmentId) {
        List<EamEquipmentProcessParameters> eamEquipmentProcessParameters = eamEquipmentProcessParametersService.list(new LambdaQueryWrapper<EamEquipmentProcessParameters>()
                .eq(EamEquipmentProcessParameters::getEquipmentId, equipmentId));
        if (eamEquipmentProcessParameters.isEmpty()) {
            return Result.error("未查询到该设备的工艺参数!");
        }
        Map<String, String> processIdPeriodMap = eamEquipmentProcessParameters.stream()
                .collect(Collectors.toMap(EamEquipmentProcessParameters::getParameterId, EamEquipmentProcessParameters::getParameterPeriod));
        List<EamProcessParameters> processParameters = eamProcessParametersService.list(new LambdaQueryWrapper<EamProcessParameters>()
                .in(EamProcessParameters::getId, processIdPeriodMap.keySet())
                .eq(EamProcessParameters::getDelFlag, CommonConstant.DEL_FLAG_0));
        List<ProcessParametersVo> processParametersVoList = CollectionUtil.newArrayList();
        processParameters.forEach(processParameter -> {
            ProcessParametersVo processParametersVo = new ProcessParametersVo(processParameter);
            processParametersVo.setParameterPeriod(processIdPeriodMap.get(processParameter.getId()));
            processParametersVoList.add(processParametersVo);
        });
        return Result.OK(processParametersVoList);
    }
}
src/main/java/org/jeecg/modules/eam/controller/EamProcessCheckController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,305 @@
package org.jeecg.modules.eam.controller;
import org.jeecg.common.system.query.QueryGenerator;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.eam.dto.EamProcessCheckAddRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import java.util.Arrays;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.entity.EamProcessCheckDetail;
import org.jeecg.modules.eam.entity.EamProcessCheck;
import org.jeecg.modules.eam.service.IEamProcessCheckService;
import org.jeecg.modules.eam.service.IEamProcessCheckDetailService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.system.vo.LoginUser;
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.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
 /**
 * @Description: å·¥è‰ºç‚¹æ£€
 * @Author: jeecg-boot
 * @Date:   2025-09-04
 * @Version: V1.0
 */
@Api(tags="工艺点检")
@RestController
@RequestMapping("/eam/eamProcessCheck")
@Slf4j
public class EamProcessCheckController extends JeecgController<EamProcessCheck, IEamProcessCheckService> {
    @Autowired
    private IEamProcessCheckService eamProcessCheckService;
    @Autowired
    private IEamProcessCheckDetailService eamProcessCheckDetailService;
    /*---------------------------------主表处理-begin-------------------------------------*/
    /**
     * åˆ†é¡µåˆ—表查询
     * @param eamProcessCheck
     * @param pageNo
     * @param pageSize
     * @param req
     * @return
     */
    //@AutoLog(value = "工艺点检-分页列表查询")
    @ApiOperation(value="工艺点检-分页列表查询", notes="工艺点检-分页列表查询")
    @GetMapping(value = "/list")
    public Result<IPage<EamProcessCheck>> queryPageList(EamProcessCheck eamProcessCheck,
                                   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                   HttpServletRequest req) {
        QueryWrapper<EamProcessCheck> queryWrapper = QueryGenerator.initQueryWrapper(eamProcessCheck, req.getParameterMap());
        Page<EamProcessCheck> page = new Page<EamProcessCheck>(pageNo, pageSize);
        IPage<EamProcessCheck> pageList = eamProcessCheckService.page(page, queryWrapper);
        return Result.OK(pageList);
    }
    /**
     *   æ·»åŠ 
     * @param eamProcessCheck
     * @return
     */
    @AutoLog(value = "工艺点检-添加")
    @ApiOperation(value="工艺点检-添加", notes="工艺点检-添加")
    //@RequiresPermissions("org.jeecg.modules:eam_process_check:add")
    @PostMapping(value = "/add")
    public Result<String> add(@RequestBody EamProcessCheckAddRequest eamProcessCheck) {
        eamProcessCheckService.add(eamProcessCheck);
        return Result.OK("添加成功!");
    }
    /**
     *  ç¼–辑
     * @param eamProcessCheck
     * @return
     */
    @AutoLog(value = "工艺点检-编辑")
    @ApiOperation(value="工艺点检-编辑", notes="工艺点检-编辑")
    //@RequiresPermissions("org.jeecg.modules:eam_process_check:edit")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
    public Result<String> edit(@RequestBody EamProcessCheck eamProcessCheck) {
        eamProcessCheckService.updateById(eamProcessCheck);
        return Result.OK("编辑成功!");
    }
    /**
     * é€šè¿‡id删除
     * @param id
     * @return
     */
    @AutoLog(value = "工艺点检-通过id删除")
    @ApiOperation(value="工艺点检-通过id删除", notes="工艺点检-通过id删除")
    //@RequiresPermissions("org.jeecg.modules:eam_process_check:delete")
    @DeleteMapping(value = "/delete")
    public Result<String> delete(@RequestParam(name="id",required=true) String id) {
        eamProcessCheckService.delMain(id);
        return Result.OK("删除成功!");
    }
    /**
     * æ‰¹é‡åˆ é™¤
     * @param ids
     * @return
     */
    @AutoLog(value = "工艺点检-批量删除")
    @ApiOperation(value="工艺点检-批量删除", notes="工艺点检-批量删除")
    //@RequiresPermissions("org.jeecg.modules:eam_process_check:deleteBatch")
    @DeleteMapping(value = "/deleteBatch")
    public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
        this.eamProcessCheckService.delBatchMain(Arrays.asList(ids.split(",")));
        return Result.OK("批量删除成功!");
    }
    /**
     * å¯¼å‡º
     * @return
     */
    //@RequiresPermissions("org.jeecg.modules:eam_process_check:exportXls")
    @RequestMapping(value = "/exportXls")
    public ModelAndView exportXls(HttpServletRequest request, EamProcessCheck eamProcessCheck) {
        return super.exportXls(request, eamProcessCheck, EamProcessCheck.class, "工艺点检");
    }
    /**
     * å¯¼å…¥
     * @return
     */
    //@RequiresPermissions("org.jeecg.modules:eam_process_check:importExcel")
    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
        return super.importExcel(request, response, EamProcessCheck.class);
    }
    /*---------------------------------主表处理-end-------------------------------------*/
    /*--------------------------------子表处理-工艺点检明细-begin----------------------------------------------*/
    /**
     * é€šè¿‡ä¸»è¡¨ID查询
     * @return
     */
    //@AutoLog(value = "工艺点检明细-通过主表ID查询")
    @ApiOperation(value="工艺点检明细-通过主表ID查询", notes="工艺点检明细-通过主表ID查询")
    @GetMapping(value = "/listEamProcessCheckDetailByMainId")
    public Result<IPage<EamProcessCheckDetail>> listEamProcessCheckDetailByMainId(EamProcessCheckDetail eamProcessCheckDetail,
                                                    @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                                    @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
                                                    HttpServletRequest req) {
        QueryWrapper<EamProcessCheckDetail> queryWrapper = QueryGenerator.initQueryWrapper(eamProcessCheckDetail, req.getParameterMap());
        Page<EamProcessCheckDetail> page = new Page<EamProcessCheckDetail>(pageNo, pageSize);
        IPage<EamProcessCheckDetail> pageList = eamProcessCheckDetailService.page(page, queryWrapper);
        return Result.OK(pageList);
    }
    /**
     * æ·»åŠ 
     * @param eamProcessCheckDetail
     * @return
     */
    @AutoLog(value = "工艺点检明细-添加")
    @ApiOperation(value="工艺点检明细-添加", notes="工艺点检明细-添加")
    @PostMapping(value = "/addEamProcessCheckDetail")
    public Result<String> addEamProcessCheckDetail(@RequestBody EamProcessCheckDetail eamProcessCheckDetail) {
        eamProcessCheckDetailService.save(eamProcessCheckDetail);
        return Result.OK("添加成功!");
    }
    /**
     * ç¼–辑
     * @param eamProcessCheckDetail
     * @return
     */
    @AutoLog(value = "工艺点检明细-编辑")
    @ApiOperation(value="工艺点检明细-编辑", notes="工艺点检明细-编辑")
    @RequestMapping(value = "/editEamProcessCheckDetail", method = {RequestMethod.PUT,RequestMethod.POST})
    public Result<String> editEamProcessCheckDetail(@RequestBody EamProcessCheckDetail eamProcessCheckDetail) {
        eamProcessCheckDetailService.updateById(eamProcessCheckDetail);
        return Result.OK("编辑成功!");
    }
    /**
     * é€šè¿‡id删除
     * @param id
     * @return
     */
    @AutoLog(value = "工艺点检明细-通过id删除")
    @ApiOperation(value="工艺点检明细-通过id删除", notes="工艺点检明细-通过id删除")
    @DeleteMapping(value = "/deleteEamProcessCheckDetail")
    public Result<String> deleteEamProcessCheckDetail(@RequestParam(name="id",required=true) String id) {
        eamProcessCheckDetailService.removeById(id);
        return Result.OK("删除成功!");
    }
    /**
     * æ‰¹é‡åˆ é™¤
     * @param ids
     * @return
     */
    @AutoLog(value = "工艺点检明细-批量删除")
    @ApiOperation(value="工艺点检明细-批量删除", notes="工艺点检明细-批量删除")
    @DeleteMapping(value = "/deleteBatchEamProcessCheckDetail")
    public Result<String> deleteBatchEamProcessCheckDetail(@RequestParam(name="ids",required=true) String ids) {
        this.eamProcessCheckDetailService.removeByIds(Arrays.asList(ids.split(",")));
        return Result.OK("批量删除成功!");
    }
    /**
     * å¯¼å‡º
     * @return
     */
    @RequestMapping(value = "/exportEamProcessCheckDetail")
    public ModelAndView exportEamProcessCheckDetail(HttpServletRequest request, EamProcessCheckDetail eamProcessCheckDetail) {
         // Step.1 ç»„装查询条件
         QueryWrapper<EamProcessCheckDetail> queryWrapper = QueryGenerator.initQueryWrapper(eamProcessCheckDetail, request.getParameterMap());
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         // Step.2 èŽ·å–å¯¼å‡ºæ•°æ®
         List<EamProcessCheckDetail> pageList = eamProcessCheckDetailService.list(queryWrapper);
         List<EamProcessCheckDetail> exportList = null;
         // è¿‡æ»¤é€‰ä¸­æ•°æ®
         String selections = request.getParameter("selections");
         if (oConvertUtils.isNotEmpty(selections)) {
             List<String> selectionList = Arrays.asList(selections.split(","));
             exportList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
         } else {
             exportList = pageList;
         }
         // Step.3 AutoPoi å¯¼å‡ºExcel
         ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
         //此处设置的filename无效,前端会重更新设置一下
         mv.addObject(NormalExcelConstants.FILE_NAME, "工艺点检明细");
         mv.addObject(NormalExcelConstants.CLASS, EamProcessCheckDetail.class);
         mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("工艺点检明细报表", "导出人:" + sysUser.getRealname(), "工艺点检明细"));
         mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
         return mv;
    }
    /**
     * å¯¼å…¥
     * @return
     */
    @RequestMapping(value = "/importEamProcessCheckDetail/{mainId}")
    public Result<?> importEamProcessCheckDetail(HttpServletRequest request, HttpServletResponse response, @PathVariable("mainId") String mainId) {
         MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
         Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
         for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
       // èŽ·å–ä¸Šä¼ æ–‡ä»¶å¯¹è±¡
             MultipartFile file = entity.getValue();
             ImportParams params = new ImportParams();
             params.setTitleRows(2);
             params.setHeadRows(1);
             params.setNeedSave(true);
             try {
                 List<EamProcessCheckDetail> list = ExcelImportUtil.importExcel(file.getInputStream(), EamProcessCheckDetail.class, params);
                 for (EamProcessCheckDetail temp : list) {
                    temp.setCheckId(mainId);
                 }
                 long start = System.currentTimeMillis();
                 eamProcessCheckDetailService.saveBatch(list);
                 log.info("消耗时间" + (System.currentTimeMillis() - start) + "毫秒");
                 return Result.OK("文件导入成功!数据行数:" + list.size());
             } catch (Exception e) {
                 log.error(e.getMessage(), e);
                 return Result.error("文件导入失败:" + e.getMessage());
             } finally {
                 try {
                     file.getInputStream().close();
                 } catch (IOException e) {
                     e.printStackTrace();
                 }
             }
         }
         return Result.error("文件导入失败!");
    }
    /*--------------------------------子表处理-工艺点检明细-end----------------------------------------------*/
}
src/main/java/org/jeecg/modules/eam/dto/EamProcessCheckAddRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
package org.jeecg.modules.eam.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Data
public class EamProcessCheckAddRequest implements Serializable {
    private static final long serialVersionUID = 1L;
    /**设备id*/
    @ApiModelProperty(value = "设备id")
    private String equipmentId;
    /**排产工单id*/
    @ApiModelProperty(value = "排产工单id")
    private String workOrderId;
    /**点检人*/
    @ApiModelProperty(value = "点检人")
    private String operator;
    /**点检时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "点检时间")
    private Date operateTime;
    /**点检明细*/
    @ApiModelProperty(value = "点检明细")
    private List<EamProcessCheckDetailAddRequest> checkDetailList;
}
src/main/java/org/jeecg/modules/eam/dto/EamProcessCheckDetailAddRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
package org.jeecg.modules.eam.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@Data
public class EamProcessCheckDetailAddRequest implements Serializable {
    private static final long serialVersionUID = 1L;
    /**点检id*/
    @ApiModelProperty(value = "点检id")
    private String checkId;
    /**参数id*/
    @Excel(name = "参数id", width = 15)
    @ApiModelProperty(value = "参数id")
    private String parameterId;
    /**参数范围*/
    @Excel(name = "参数范围", width = 15)
    @ApiModelProperty(value = "参数范围")
    private String parameterPeriod;
    /**点检结果;1正常、2异常*/
    @Excel(name = "点检结果;1正常、2异常", width = 15)
    @ApiModelProperty(value = "点检结果;1正常、2异常")
    private String checkResult;
    /**异常描述*/
    @Excel(name = "异常描述", width = 15)
    @ApiModelProperty(value = "异常描述")
    private String exceptionDescription;
}
src/main/java/org/jeecg/modules/eam/entity/EamProcessCheck.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,79 @@
package org.jeecg.modules.eam.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.experimental.Accessors;
import org.jeecg.common.constant.CommonConstant;
import org.jeecgframework.poi.excel.annotation.Excel;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
 * @Description: å·¥è‰ºç‚¹æ£€
 * @Author: jeecg-boot
 * @Date:   2025-09-04
 * @Version: V1.0
 */
@Data
@TableName("eam_process_check")
@Accessors(chain = true)
@ApiModel(value="eam_process_check对象", description="工艺点检")
public class EamProcessCheck implements Serializable {
    private static final long serialVersionUID = 1L;
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "更新时间 HH:mm:ss")
    private Date updateTime;
    /**删除标记*/
    @Excel(name = "删除标记", width = 15)
    @ApiModelProperty(value = "删除标记")
    @TableLogic
    private Integer delFlag = CommonConstant.DEL_FLAG_0;
    /**设备id*/
    @Excel(name = "设备id", width = 15)
    @ApiModelProperty(value = "设备id")
    @Dict(dictTable ="eam_equipment",dicText = "equipment_code",dicCode = "id")
    private String equipmentId;
    /**排产工单id*/
    @Excel(name = "排产工单id", width = 15)
    @ApiModelProperty(value = "排产工单id")
    @Dict(dictTable ="mes_production_work_order",dicText = "work_order_code",dicCode = "id")
    private String workOrderId;
    /**点检人*/
    @Excel(name = "点检人", width = 15)
    @ApiModelProperty(value = "点检人")
    @Dict(dictTable ="sys_user",dicText = "realname",dicCode = "username")
    private String operator;
    /**点检时间*/
    @Excel(name = "点检时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "点检时间")
    private Date operateTime;
}
src/main/java/org/jeecg/modules/eam/entity/EamProcessCheckDetail.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,77 @@
package org.jeecg.modules.eam.entity;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.jeecg.common.constant.CommonConstant;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.UnsupportedEncodingException;
/**
 * @Description: å·¥è‰ºç‚¹æ£€æ˜Žç»†
 * @Author: jeecg-boot
 * @Date:   2025-09-04
 * @Version: V1.0
 */
@Data
@Accessors(chain = true)
@TableName("eam_process_check_detail")
@ApiModel(value="eam_process_check_detail对象", description="工艺点检明细")
public class EamProcessCheckDetail implements Serializable {
    private static final long serialVersionUID = 1L;
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
    /**删除标记*/
    @Excel(name = "删除标记", width = 15)
    @ApiModelProperty(value = "删除标记")
    @TableLogic
    private Integer delFlag = CommonConstant.DEL_FLAG_0;
    /**点检id*/
    @ApiModelProperty(value = "点检id")
    private String checkId;
    /**参数id*/
    @Excel(name = "参数id", width = 15)
    @ApiModelProperty(value = "参数id")
    private String parameterId;
    /**参数范围*/
    @Excel(name = "参数范围", width = 15)
    @ApiModelProperty(value = "参数范围")
    private String parameterPeriod;
    /**点检结果;1正常、2异常*/
    @Excel(name = "点检结果;1正常、2异常", width = 15)
    @ApiModelProperty(value = "点检结果;1正常、2异常")
    private String checkResult;
    /**异常描述*/
    @Excel(name = "异常描述", width = 15)
    @ApiModelProperty(value = "异常描述")
    private String exceptionDescription;
}
src/main/java/org/jeecg/modules/eam/mapper/EamProcessCheckDetailMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
package org.jeecg.modules.eam.mapper;
import java.util.List;
import org.jeecg.modules.eam.entity.EamProcessCheckDetail;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
 * @Description: å·¥è‰ºç‚¹æ£€æ˜Žç»†
 * @Author: jeecg-boot
 * @Date:   2025-09-04
 * @Version: V1.0
 */
public interface EamProcessCheckDetailMapper extends BaseMapper<EamProcessCheckDetail> {
    /**
     * é€šè¿‡ä¸»è¡¨id删除子表数据
     *
     * @param mainId ä¸»è¡¨id
     * @return boolean
     */
    public boolean deleteByMainId(@Param("mainId") String mainId);
   /**
    * é€šè¿‡ä¸»è¡¨id查询子表数据
    *
    * @param mainId ä¸»è¡¨id
    * @return List<EamProcessCheckDetail>
    */
    public List<EamProcessCheckDetail> selectByMainId(@Param("mainId") String mainId);
}
src/main/java/org/jeecg/modules/eam/mapper/EamProcessCheckMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package org.jeecg.modules.eam.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.eam.entity.EamProcessCheck;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * @Description: å·¥è‰ºç‚¹æ£€
 * @Author: jeecg-boot
 * @Date:   2025-09-04
 * @Version: V1.0
 */
public interface EamProcessCheckMapper extends BaseMapper<EamProcessCheck> {
}
src/main/java/org/jeecg/modules/eam/mapper/xml/EamProcessCheckDetailMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.eam.mapper.EamProcessCheckDetailMapper">
    <delete id="deleteByMainId" parameterType="java.lang.String">
        DELETE
        FROM  eam_process_check_detail
        WHERE
             check_id = #{mainId}
    </delete>
    <select id="selectByMainId" parameterType="java.lang.String" resultType="org.jeecg.modules.eam.entity.EamProcessCheckDetail">
        SELECT *
        FROM  eam_process_check_detail
        WHERE
             check_id = #{mainId}
    </select>
</mapper>
src/main/java/org/jeecg/modules/eam/mapper/xml/EamProcessCheckMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.eam.mapper.EamProcessCheckMapper">
</mapper>
src/main/java/org/jeecg/modules/eam/service/IEamProcessCheckDetailService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package org.jeecg.modules.eam.service;
import org.jeecg.modules.eam.entity.EamProcessCheckDetail;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
 * @Description: å·¥è‰ºç‚¹æ£€æ˜Žç»†
 * @Author: jeecg-boot
 * @Date:   2025-09-04
 * @Version: V1.0
 */
public interface IEamProcessCheckDetailService extends IService<EamProcessCheckDetail> {
  /**
   * é€šè¿‡ä¸»è¡¨id查询子表数据
   *
   * @param mainId
   * @return List<EamProcessCheckDetail>
   */
    public List<EamProcessCheckDetail> selectByMainId(String mainId);
}
src/main/java/org/jeecg/modules/eam/service/IEamProcessCheckService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
package org.jeecg.modules.eam.service;
import org.jeecg.modules.eam.dto.EamProcessCheckAddRequest;
import org.jeecg.modules.eam.entity.EamProcessCheckDetail;
import org.jeecg.modules.eam.entity.EamProcessCheck;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.beans.factory.annotation.Autowired;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
/**
 * @Description: å·¥è‰ºç‚¹æ£€
 * @Author: jeecg-boot
 * @Date:   2025-09-04
 * @Version: V1.0
 */
public interface IEamProcessCheckService extends IService<EamProcessCheck> {
    /**
     * åˆ é™¤ä¸€å¯¹å¤š
     *
     * @param id
     */
    public void delMain (String id);
    /**
     * æ‰¹é‡åˆ é™¤ä¸€å¯¹å¤š
     *
     * @param idList
     */
    public void delBatchMain (Collection<? extends Serializable> idList);
    void add(EamProcessCheckAddRequest eamProcessCheck);
}
src/main/java/org/jeecg/modules/eam/service/impl/EamProcessCheckDetailServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
package org.jeecg.modules.eam.service.impl;
import org.jeecg.modules.eam.entity.EamProcessCheckDetail;
import org.jeecg.modules.eam.mapper.EamProcessCheckDetailMapper;
import org.jeecg.modules.eam.service.IEamProcessCheckDetailService;
import org.springframework.stereotype.Service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
/**
 * @Description: å·¥è‰ºç‚¹æ£€æ˜Žç»†
 * @Author: jeecg-boot
 * @Date:   2025-09-04
 * @Version: V1.0
 */
@Service
public class EamProcessCheckDetailServiceImpl extends ServiceImpl<EamProcessCheckDetailMapper, EamProcessCheckDetail> implements IEamProcessCheckDetailService {
    @Autowired
    private EamProcessCheckDetailMapper eamProcessCheckDetailMapper;
    @Override
    public List<EamProcessCheckDetail> selectByMainId(String mainId) {
        return eamProcessCheckDetailMapper.selectByMainId(mainId);
    }
}
src/main/java/org/jeecg/modules/eam/service/impl/EamProcessCheckServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,74 @@
package org.jeecg.modules.eam.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import org.jeecg.modules.eam.dto.EamProcessCheckAddRequest;
import org.jeecg.modules.eam.entity.EamProcessCheck;
import org.jeecg.modules.eam.entity.EamProcessCheckDetail;
import org.jeecg.modules.eam.mapper.EamProcessCheckDetailMapper;
import org.jeecg.modules.eam.mapper.EamProcessCheckMapper;
import org.jeecg.modules.eam.service.IEamProcessCheckDetailService;
import org.jeecg.modules.eam.service.IEamProcessCheckService;
import org.jeecg.modules.mes.utils.CommonUtils;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Collection;
import java.util.Objects;
/**
 * @Description: å·¥è‰ºç‚¹æ£€
 * @Author: jeecg-boot
 * @Date:   2025-09-04
 * @Version: V1.0
 */
@Service
public class EamProcessCheckServiceImpl extends ServiceImpl<EamProcessCheckMapper, EamProcessCheck> implements IEamProcessCheckService {
    @Autowired
    private EamProcessCheckMapper eamProcessCheckMapper;
    @Autowired
    private IEamProcessCheckDetailService eamProcessCheckDetailService;
    @Autowired
    private EamProcessCheckDetailMapper eamProcessCheckDetailMapper;
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void delMain(String id) {
        eamProcessCheckDetailMapper.deleteByMainId(id);
        eamProcessCheckMapper.deleteById(id);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void delBatchMain(Collection<? extends Serializable> idList) {
        for(Serializable id:idList) {
            eamProcessCheckDetailMapper.deleteByMainId(id.toString());
            eamProcessCheckMapper.deleteById(id);
        }
    }
    @Override
    public void add(EamProcessCheckAddRequest eamProcessCheck) {
        EamProcessCheck processCheck = new EamProcessCheck()
                .setEquipmentId(eamProcessCheck.getEquipmentId())
                .setWorkOrderId(eamProcessCheck.getWorkOrderId())
                .setOperateTime(new Date())
                .setOperator(Objects.requireNonNull(CommonUtils.getCurrentUser()).getUsername());
        save(processCheck);
        List<EamProcessCheckDetail> details = CollectionUtil.newArrayList();
        eamProcessCheck.getCheckDetailList().forEach(detail -> {
            EamProcessCheckDetail processCheckDetail = new EamProcessCheckDetail()
                    .setCheckId(processCheck.getId())
                    .setParameterId(detail.getParameterId())
                    .setParameterPeriod(detail.getParameterPeriod())
                    .setCheckResult(detail.getCheckResult())
                    .setExceptionDescription(detail.getExceptionDescription());
            details.add(processCheckDetail);
        });
        eamProcessCheckDetailService.saveBatch(details);
    }
}
src/main/java/org/jeecg/modules/eam/vo/MaintenanceStandardVo.java
@@ -12,12 +12,6 @@
import java.util.Date;
import java.util.List;
/**
 * @Description: ä¿å…»æ ‡å‡†
 * @Author: jeecg-boot
 * @Date: 2025-03-26
 * @Version: V1.0
 */
@Data
@Accessors(chain = true)
public class MaintenanceStandardVo implements Serializable {
src/main/java/org/jeecg/modules/eam/vo/ProcessParametersVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
package org.jeecg.modules.eam.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.eam.entity.EamProcessParameters;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
@Data
@Accessors(chain = true)
public class ProcessParametersVo implements Serializable {
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**参数编码*/
    @Excel(name = "参数编码", width = 25)
    @ApiModelProperty(value = "参数编码")
    private String parameterCode;
    /**参数名称*/
    @Excel(name = "参数名称", width = 25)
    @ApiModelProperty(value = "参数名称")
    private String parameterName;
    /**参数分类*/
    @Excel(name = "参数分类", width = 15, dicCode = "process_parameters_category")
    @ApiModelProperty(value = "参数分类")
    @Dict(dicCode = "process_parameters_category")
    private String parameterCategory;
    /**计量单位*/
    @Excel(name = "计量单位", width = 15)
    @ApiModelProperty(value = "计量单位")
    private String parameterUnit;
    /**参数范围*/
    @Excel(name = "参数范围", width = 15)
    @ApiModelProperty(value = "参数范围")
    private String parameterPeriod;
    public ProcessParametersVo(EamProcessParameters eamProcessParameters) {
        this.id = eamProcessParameters.getId();
        this.parameterCode = eamProcessParameters.getParameterCode();
        this.parameterName = eamProcessParameters.getParameterName();
        this.parameterCategory = eamProcessParameters.getParameterCategory();
        this.parameterUnit = eamProcessParameters.getParameterUnit();
    }
}