From 6074864314f5452fd023c34ab11118c393969bcc Mon Sep 17 00:00:00 2001 From: cuilei <ray_tsu1@163.com> Date: 星期一, 08 九月 2025 11:36:21 +0800 Subject: [PATCH] 排产工单模块工艺点检涉及接口 --- db/双林新火炬MES数据库设计.pdma.json | 730 +++++++++++++++++++++++++++ src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java | 21 src/main/java/org/jeecg/modules/eam/service/IEamProcessCheckService.java | 36 + src/main/java/org/jeecg/modules/eam/service/IEamProcessCheckDetailService.java | 22 src/main/java/org/jeecg/modules/eam/vo/ProcessParametersVo.java | 50 + src/main/java/org/jeecg/modules/eam/controller/EamEquipmentProcessParametersController.java | 38 + src/main/java/org/jeecg/modules/eam/entity/EamProcessCheck.java | 79 ++ src/main/java/org/jeecg/modules/eam/dto/EamProcessCheckAddRequest.java | 32 + src/main/java/org/jeecg/modules/eam/controller/EamProcessCheckController.java | 305 +++++++++++ src/main/java/org/jeecg/modules/eam/entity/EamProcessCheckDetail.java | 77 ++ src/main/java/org/jeecg/modules/eam/service/impl/EamProcessCheckDetailServiceImpl.java | 27 + src/main/java/org/jeecg/modules/eam/mapper/EamProcessCheckDetailMapper.java | 32 + src/main/java/org/jeecg/modules/eam/mapper/xml/EamProcessCheckMapper.xml | 5 src/main/java/org/jeecg/modules/eam/dto/EamProcessCheckDetailAddRequest.java | 40 + src/main/java/org/jeecg/modules/eam/mapper/EamProcessCheckMapper.java | 17 src/main/java/org/jeecg/modules/eam/mapper/xml/EamProcessCheckDetailMapper.xml | 18 src/main/java/org/jeecg/modules/eam/service/impl/EamProcessCheckServiceImpl.java | 74 ++ src/main/java/org/jeecg/modules/eam/vo/MaintenanceStandardVo.java | 6 18 files changed, 1,601 insertions(+), 8 deletions(-) diff --git "a/db/\345\217\214\346\236\227\346\226\260\347\201\253\347\202\254MES\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json" "b/db/\345\217\214\346\236\227\346\226\260\347\201\253\347\202\254MES\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json" index 5d0ef62..eefeec4 100644 --- "a/db/\345\217\214\346\236\227\346\226\260\347\201\253\347\202\254MES\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json" +++ "b/db/\345\217\214\346\236\227\346\226\260\347\201\253\347\202\254MES\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.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姝e父銆�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": [], diff --git a/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java b/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java index 732defb..c911f91 100644 --- a/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java +++ b/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); + } } diff --git a/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentProcessParametersController.java b/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentProcessParametersController.java index a2688aa..87fc960 100644 --- a/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentProcessParametersController.java +++ b/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); + } } diff --git a/src/main/java/org/jeecg/modules/eam/controller/EamProcessCheckController.java b/src/main/java/org/jeecg/modules/eam/controller/EamProcessCheckController.java new file mode 100644 index 0000000..2b729e0 --- /dev/null +++ b/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()); + //姝ゅ璁剧疆鐨刦ilename鏃犳晥,鍓嶇浼氶噸鏇存柊璁剧疆涓�涓� + 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----------------------------------------------*/ + + + + +} diff --git a/src/main/java/org/jeecg/modules/eam/dto/EamProcessCheckAddRequest.java b/src/main/java/org/jeecg/modules/eam/dto/EamProcessCheckAddRequest.java new file mode 100644 index 0000000..cc5cb25 --- /dev/null +++ b/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; +} diff --git a/src/main/java/org/jeecg/modules/eam/dto/EamProcessCheckDetailAddRequest.java b/src/main/java/org/jeecg/modules/eam/dto/EamProcessCheckDetailAddRequest.java new file mode 100644 index 0000000..b045097 --- /dev/null +++ b/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姝e父銆�2寮傚父*/ + @Excel(name = "鐐规缁撴灉;1姝e父銆�2寮傚父", width = 15) + @ApiModelProperty(value = "鐐规缁撴灉;1姝e父銆�2寮傚父") + private String checkResult; + /**寮傚父鎻忚堪*/ + @Excel(name = "寮傚父鎻忚堪", width = 15) + @ApiModelProperty(value = "寮傚父鎻忚堪") + private String exceptionDescription; +} diff --git a/src/main/java/org/jeecg/modules/eam/entity/EamProcessCheck.java b/src/main/java/org/jeecg/modules/eam/entity/EamProcessCheck.java new file mode 100644 index 0000000..746533d --- /dev/null +++ b/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; +} diff --git a/src/main/java/org/jeecg/modules/eam/entity/EamProcessCheckDetail.java b/src/main/java/org/jeecg/modules/eam/entity/EamProcessCheckDetail.java new file mode 100644 index 0000000..6a08788 --- /dev/null +++ b/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姝e父銆�2寮傚父*/ + @Excel(name = "鐐规缁撴灉;1姝e父銆�2寮傚父", width = 15) + @ApiModelProperty(value = "鐐规缁撴灉;1姝e父銆�2寮傚父") + private String checkResult; + /**寮傚父鎻忚堪*/ + @Excel(name = "寮傚父鎻忚堪", width = 15) + @ApiModelProperty(value = "寮傚父鎻忚堪") + private String exceptionDescription; +} diff --git a/src/main/java/org/jeecg/modules/eam/mapper/EamProcessCheckDetailMapper.java b/src/main/java/org/jeecg/modules/eam/mapper/EamProcessCheckDetailMapper.java new file mode 100644 index 0000000..cb5ee81 --- /dev/null +++ b/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); + +} diff --git a/src/main/java/org/jeecg/modules/eam/mapper/EamProcessCheckMapper.java b/src/main/java/org/jeecg/modules/eam/mapper/EamProcessCheckMapper.java new file mode 100644 index 0000000..7a7837b --- /dev/null +++ b/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> { + +} diff --git a/src/main/java/org/jeecg/modules/eam/mapper/xml/EamProcessCheckDetailMapper.xml b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamProcessCheckDetailMapper.xml new file mode 100644 index 0000000..3f95cdf --- /dev/null +++ b/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> diff --git a/src/main/java/org/jeecg/modules/eam/mapper/xml/EamProcessCheckMapper.xml b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamProcessCheckMapper.xml new file mode 100644 index 0000000..4001edb --- /dev/null +++ b/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> \ No newline at end of file diff --git a/src/main/java/org/jeecg/modules/eam/service/IEamProcessCheckDetailService.java b/src/main/java/org/jeecg/modules/eam/service/IEamProcessCheckDetailService.java new file mode 100644 index 0000000..08ea267 --- /dev/null +++ b/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); +} diff --git a/src/main/java/org/jeecg/modules/eam/service/IEamProcessCheckService.java b/src/main/java/org/jeecg/modules/eam/service/IEamProcessCheckService.java new file mode 100644 index 0000000..4e6f5c2 --- /dev/null +++ b/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); +} diff --git a/src/main/java/org/jeecg/modules/eam/service/impl/EamProcessCheckDetailServiceImpl.java b/src/main/java/org/jeecg/modules/eam/service/impl/EamProcessCheckDetailServiceImpl.java new file mode 100644 index 0000000..1b5bd29 --- /dev/null +++ b/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); + } +} diff --git a/src/main/java/org/jeecg/modules/eam/service/impl/EamProcessCheckServiceImpl.java b/src/main/java/org/jeecg/modules/eam/service/impl/EamProcessCheckServiceImpl.java new file mode 100644 index 0000000..31384de --- /dev/null +++ b/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); + } +} diff --git a/src/main/java/org/jeecg/modules/eam/vo/MaintenanceStandardVo.java b/src/main/java/org/jeecg/modules/eam/vo/MaintenanceStandardVo.java index addd8a4..97b1e4f 100644 --- a/src/main/java/org/jeecg/modules/eam/vo/MaintenanceStandardVo.java +++ b/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 { diff --git a/src/main/java/org/jeecg/modules/eam/vo/ProcessParametersVo.java b/src/main/java/org/jeecg/modules/eam/vo/ProcessParametersVo.java new file mode 100644 index 0000000..d1446d8 --- /dev/null +++ b/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(); + } +} -- Gitblit v1.9.3