From 1007e0b552accd3288e7da6b47d8cc49a03bdf62 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期日, 27 四月 2025 11:06:35 +0800 Subject: [PATCH] art: 从沃克项目迁移设备管理代码到航宇 --- lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentExtendServiceImpl.java | 31 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java | 36 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderRequest.java | 29 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java | 18 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamWeekMaintenanceRequest.java | 38 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentAttachmentServiceImpl.java | 65 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java | 112 + lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceStandardMapper.java | 15 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java | 11 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentExtendService.java | 14 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/EquipmentOperationTagEnum.java | 1 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java | 386 ++- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentHistoryLogController.java | 28 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/IFlowMyBusinessService.java | 12 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/WeekMaintenanceStatusEnum.java | 11 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentFaultReasonController.java | 8 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderResponse.java | 80 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java | 53 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java | 71 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentFaultReason.java | 6 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java | 274 +++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderQuery.java | 23 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java | 262 ++- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSysFilesController.java | 48 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderService.java | 16 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/controller/AssignStreamFlowController.java | 31 db/数据库产品化设计.pdma.json | 592 ++++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderDetailService.java | 10 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentHistoryLog.java | 7 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderQuery.java | 2 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/WorkTaskVoMapper.xml | 3 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/InspectionStatus.java | 26 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairOrderController.java | 111 + lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamReportRepair.java | 8 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java | 53 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrder.java | 6 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentAttachmentService.java | 30 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderDetailServiceImpl.java | 11 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrder.java | 30 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamWeekMaintenanceBatchApprovalRequest.java | 41 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java | 11 lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/util/ThrowableUtil.java | 0 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentAttachmentMapper.java | 14 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamEquipmentAttachmentRequest.java | 33 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java | 470 +++-- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamInspectionOrderMapper.java | 13 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderDetailService.java | 9 lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml | 4 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamWeekMaintenanceOrderController.java | 171 + lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java | 11 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java | 1 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java | 149 + lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java | 2 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportRepairController.java | 55 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamSysFilesService.java | 7 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamReportRepairQuery.java | 4 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderExpiredJob.java | 86 + lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentAttachment.java | 67 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java | 9 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionBatchApprovalRequest.java | 26 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java | 14 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderDetailServiceImpl.java | 11 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml | 35 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardDetailService.java | 9 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java | 4 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentAttachmentMapper.xml | 5 lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java | 21 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java | 18 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSysFilesServiceImpl.java | 31 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/FlowTaskServiceImpl.java | 3 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java | 304 +++ lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java | 4 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml | 5 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml | 7 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderExpiredJob.java | 86 + lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderService.java | 21 lxzn-boot-base-core/src/main/java/org/jeecg/common/util/TranslateDictTextUtils.java | 197 ++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java | 57 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java | 128 + lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml | 4 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrderDetail.java | 8 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/domain/vo/FlowMy.java | 5 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentAttachmentController.java | 158 + lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderGenerateJob.java | 129 + lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardDetailServiceImpl.java | 15 85 files changed, 4,281 insertions(+), 749 deletions(-) diff --git "a/db/\346\225\260\346\215\256\345\272\223\344\272\247\345\223\201\345\214\226\350\256\276\350\256\241.pdma.json" "b/db/\346\225\260\346\215\256\345\272\223\344\272\247\345\223\201\345\214\226\350\256\276\350\256\241.pdma.json" index 8cdd149..e63f2cc 100644 --- "a/db/\346\225\260\346\215\256\345\272\223\344\272\247\345\223\201\345\214\226\350\256\276\350\256\241.pdma.json" +++ "b/db/\346\225\260\346\215\256\345\272\223\344\272\247\345\223\201\345\214\226\350\256\276\350\256\241.pdma.json" @@ -4,7 +4,7 @@ "avatar": "", "version": "4.9.2", "createdTime": "2025-3-10 16:38:19", - "updatedTime": "2025-4-8 16:18:02", + "updatedTime": "2025-4-23 10:36:36", "dbConns": [], "profile": { "default": { @@ -3923,28 +3923,10 @@ "defaultValue": "", "hideInGraph": false, "refDict": "", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "baseType": "B17BDED3-085F-40E1-9019-3B79CF2BF075", "extProps": {}, - "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "domain": "13DE7063-440C-426F-B1DF-25EC824C6DB8", "id": "5576D652-16B0-4098-A22E-0B2F5EF98107" - }, - { - "defKey": "last_generate_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": "47B81CB8-00B3-4A0A-A0D6-6A34D33A9354" } ], "correlations": [], @@ -4190,6 +4172,24 @@ "uiHint": "", "id": "85FA4C4B-F18B-409F-BE32-E79EE3D8640A", "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": "2DCD0BA1-6667-4437-BCFF-435A35241D87" }, { "defKey": "standard_id", @@ -4717,8 +4717,44 @@ "id": "9E1E21C7-514F-491B-AFD8-BB810BB8D06C" }, { + "defKey": "confirm_deal_type", + "defName": "纭绫诲瀷", + "comment": "", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792", + "id": "0C006924-8415-4148-919E-3EF09EB76D5D" + }, + { + "defKey": "confirm_comment", + "defName": "纭鎰忚", + "comment": "", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "id": "98BA313C-F5DE-438E-9F58-133F1EE63002" + }, + { "defKey": "confirm_user", - "defName": "璁惧绠$悊鍛樼‘璁�", + "defName": "鐝粍闀跨‘璁�", "comment": "", "type": "", "len": "", @@ -4773,7 +4809,7 @@ { "defKey": "image_files", "defName": "鐓х墖鏂囦欢ids", - "comment": "id浠ラ�楀彿鍒嗛殧", + "comment": "", "type": "", "len": "", "scale": "", @@ -4783,9 +4819,9 @@ "defaultValue": "", "hideInGraph": false, "refDict": "", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "baseType": "B17BDED3-085F-40E1-9019-3B79CF2BF075", "extProps": {}, - "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "domain": "13DE7063-440C-426F-B1DF-25EC824C6DB8", "id": "F42A4411-75B9-4486-8B8D-98A86DB0F861" } ], @@ -5709,8 +5745,8 @@ { "defKey": "image_files", "defName": "鐓х墖鏂囦欢ids", - "comment": "id浠ラ�楀彿鍒嗛殧", - "type": "NVARCHAR(MAX)", + "comment": "", + "type": "", "len": "", "scale": "", "primaryKey": false, @@ -5718,7 +5754,7 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": false, - "domain": "", + "domain": "13DE7063-440C-426F-B1DF-25EC824C6DB8", "refDict": "", "extProps": {}, "notes": {}, @@ -6173,8 +6209,8 @@ { "defKey": "image_files", "defName": "淇濆吇鎵ц鍥剧墖", - "comment": "id浠ラ�楀彿鍒嗛殧", - "type": "NVARCHAR(MAX)", + "comment": "", + "type": "", "len": "", "scale": "", "primaryKey": false, @@ -6182,7 +6218,7 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": false, - "domain": "", + "domain": "13DE7063-440C-426F-B1DF-25EC824C6DB8", "refDict": null, "extProps": {}, "notes": {}, @@ -6275,6 +6311,24 @@ "id": "E7835F76-6169-4E42-8DA0-542BE1AFC448", "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", "uiHint": null + }, + { + "defKey": "confirm_deal_type", + "defName": "纭绫诲瀷", + "comment": "", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792", + "id": "EF6D9EAA-0BD3-462A-84A8-093D70D919EB" }, { "defKey": "confirm_comment", @@ -7905,7 +7959,7 @@ { "defKey": "image_files", "defName": "鐓х墖鏂囦欢ids", - "comment": "id浠ラ�楀彿鍒嗛殧", + "comment": "", "type": "", "len": "", "scale": "", @@ -7914,7 +7968,7 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": false, - "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "domain": "13DE7063-440C-426F-B1DF-25EC824C6DB8", "refDict": "", "extProps": {}, "notes": {}, @@ -7928,7 +7982,7 @@ "attr8": "", "attr9": "", "id": "4D8E08DB-BB54-49DE-A079-8B5F92964F14", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" + "baseType": "B17BDED3-085F-40E1-9019-3B79CF2BF075" }, { "defKey": "remark", @@ -9734,6 +9788,24 @@ "id": "522BCC0E-5AE9-4473-BE36-A68202A7E1ED" }, { + "defKey": "fault_name", + "defName": "鏁呴殰绠�绉�", + "comment": "", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "id": "A55D711F-243B-4B6B-84E0-471527DAE875" + }, + { "defKey": "fault_type", "defName": "鏁呴殰鍒嗙被", "comment": "", @@ -9790,7 +9862,7 @@ { "defKey": "image_files", "defName": "鐓х墖鏂囦欢ids", - "comment": "id浠ラ�楀彿鍒嗛殧", + "comment": "", "type": "", "len": "", "scale": "", @@ -9799,7 +9871,7 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": false, - "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "domain": "13DE7063-440C-426F-B1DF-25EC824C6DB8", "refDict": "", "extProps": {}, "notes": {}, @@ -9813,7 +9885,7 @@ "attr8": "", "attr9": "", "id": "0552EC0A-4846-49B3-BA5A-6049CD295D13", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" + "baseType": "B17BDED3-085F-40E1-9019-3B79CF2BF075" }, { "defKey": "remark", @@ -10351,7 +10423,7 @@ { "defKey": "image_files", "defName": "鐓х墖鏂囦欢ids", - "comment": "id浠ラ�楀彿鍒嗛殧", + "comment": "", "type": "", "len": "", "scale": "", @@ -10360,7 +10432,7 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": false, - "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "domain": "13DE7063-440C-426F-B1DF-25EC824C6DB8", "refDict": "", "extProps": {}, "notes": {}, @@ -10374,7 +10446,43 @@ "attr8": "", "attr9": "", "id": "F12C512D-9550-40EA-8583-C6476F69C135", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" + "baseType": "B17BDED3-085F-40E1-9019-3B79CF2BF075" + }, + { + "defKey": "is_use_spare", + "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": "36816184-4B15-4AC7-A460-4E8EC004871D" + }, + { + "defKey": "spare_part_description", + "defName": "澶囦欢鎻忚堪", + "comment": "", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": "", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "id": "3945E6D0-A58E-4B40-AFDA-6D8D477DE78F" } ], "correlations": [], @@ -16145,8 +16253,8 @@ "codeRoot": "" } }, - "defKey": "eam_sys_files", - "defName": "璁惧绠$悊闄勪欢琛�", + "defKey": "eam_equipment_attachment", + "defName": "璁惧鏂囨。", "comment": "", "properties": { "partitioned by": "(date string)", @@ -16396,6 +16504,24 @@ "id": "AE037CD2-F1D7-43A9-8AA7-0B6556CABB47" }, { + "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": "F0AA43F9-BB17-41C9-B5A3-9946067055FC" + }, + { "defKey": "file_encode_name", "defName": "鏂囦欢鍔犲瘑鍚�", "comment": "", @@ -16460,7 +16586,7 @@ "notNull": false, "autoIncrement": false, "defaultValue": "", - "hideInGraph": false, + "hideInGraph": true, "refDict": "", "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", "extProps": {}, @@ -16502,6 +16628,385 @@ "extProps": {}, "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", "id": "5B36A3AD-359D-446C-87AD-338A4C6C0069" + } + ], + "correlations": [], + "indexes": [], + "type": "P" + }, + { + "id": "9D0C5472-CECA-4676-8F92-5AD1D03EE367", + "env": { + "base": { + "nameSpace": "", + "codeRoot": "" + } + }, + "defKey": "eam_sys_files", + "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": null, + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "domain": "16120F75-6AA7-4483-868D-F07F511BB081", + "id": "3699A3C0-B0E2-4461-BD22-F00D9CCDF981", + "uiHint": null + }, + { + "defKey": "create_by", + "defName": "鍒涘缓浜�", + "comment": "", + "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": true, + "refDict": null, + "uiHint": null, + "id": "66AAE852-A01A-45C5-86FD-CBDAC090207B", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" + }, + { + "defKey": "create_time", + "defName": "鍒涘缓鏃堕棿", + "comment": "", + "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": true, + "refDict": null, + "uiHint": null, + "id": "E5DF786B-CDF8-4C7C-9000-F9DF66EB0B61", + "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": null, + "uiHint": null, + "id": "71FE4281-BBF4-498D-9575-B86D7FBFE279", + "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": null, + "uiHint": null, + "id": "52F980A8-0036-4FA4-AC68-3B207A828060", + "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098" + }, + { + "defKey": "del_flag", + "defName": "鍒犻櫎鏍囪", + "comment": "", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": null, + "baseType": "1D764C4A-6F9F-421E-B11A-6F3E23B51811", + "extProps": {}, + "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E", + "id": "E05B0E7B-556F-47E0-912A-074924FE90EF", + "uiHint": null + }, + { + "defKey": "file_encode_name", + "defName": "鏂囦欢鍔犲瘑鍚�", + "comment": "", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": null, + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "domain": "BE09D493-E183-402D-ACC4-EEA21EB35B8E", + "id": "01499664-437B-40BF-A2D1-9D931D731984", + "uiHint": null + }, + { + "defKey": "file_name", + "defName": "鏂囦欢鍚嶇О", + "comment": "", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": null, + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "domain": "BE09D493-E183-402D-ACC4-EEA21EB35B8E", + "id": "A3FD9D88-56A8-43D4-94EF-12E2F73DA4E1", + "uiHint": null + }, + { + "defKey": "file_path", + "defName": "鏂囦欢淇濆瓨璺緞", + "comment": "", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": null, + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "id": "D3320083-11F8-4A4C-B03D-24E7EB18A527", + "uiHint": null + }, + { + "defKey": "file_suffix", + "defName": "鏂囦欢鍚庣紑鍚�", + "comment": "", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": null, + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6", + "id": "2232DE73-B928-4576-A3F7-99DAC095ABD2", + "uiHint": null + }, + { + "defKey": "file_size", + "defName": "鏂囦欢澶у皬", + "comment": "", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": null, + "baseType": "A48A12F5-2E10-4F0A-8449-60887F0D30E0", + "extProps": {}, + "domain": "2E60DFAE-915E-4328-AEE2-6ED5FB43BAF5", + "id": "07C7567D-6B96-432A-BE2C-54AFA4293E9F", + "uiHint": null + }, + { + "defKey": "description", + "defName": "鎻忚堪", + "comment": "", + "type": "", + "len": "", + "scale": "", + "primaryKey": false, + "notNull": false, + "autoIncrement": false, + "defaultValue": "", + "hideInGraph": false, + "refDict": null, + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", + "extProps": {}, + "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", + "id": "D9B55620-8B6D-48E0-A284-0BD9BF4B062F", + "uiHint": null } ], "correlations": [], @@ -17956,6 +18461,7 @@ "refEntities": [ "74D17B8E-6DA8-477B-810C-EC8B3FBF53F2", "B2E5D0C4-4FF7-4221-8366-FC7B31B7411A", + "9D0C5472-CECA-4676-8F92-5AD1D03EE367", "257DC169-B593-4D03-8FE4-6AF75C335A93", "B9F80758-3E0D-4350-9DA0-C2D82DC2912A", "759CE3A5-4823-4215-B14F-5D26B6FA0B58", diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java index f1f4f8f..92f023e 100644 --- a/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java +++ b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java @@ -5,6 +5,8 @@ import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.ZoneId; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; @@ -764,8 +766,21 @@ return dateFormat.format(date); } + /** + * Date 杞� LocalDate + * @param date + * @return + */ + public static LocalDate dateToLocalDate(Date date) { + return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + } - - - + /** + * LocalDate 杞� Date + * @param localDate + * @return + */ + public static Date localDateToDate(LocalDate localDate) { + return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); + } } \ No newline at end of file diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/TranslateDictTextUtils.java b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/TranslateDictTextUtils.java new file mode 100644 index 0000000..4252216 --- /dev/null +++ b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/TranslateDictTextUtils.java @@ -0,0 +1,197 @@ +package org.jeecg.common.util; + +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.jeecg.common.api.CommonAPI; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.system.vo.DictModel; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import java.util.*; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +@Component +@Slf4j +public class TranslateDictTextUtils { + + @Lazy + @Autowired + private CommonAPI commonApi; + @Autowired + private RedisTemplate redisTemplate; + + public void translateField(String field, String value, JSONObject item, String dictCode) { + if (StringUtils.isBlank(value)) { + item.put(field + CommonConstant.DICT_TEXT_SUFFIX, null); + return; + } + // 瀛楀吀鏁版嵁鍒楄〃锛� key = 瀛楀吀code锛寁alue=鏁版嵁鍒楄〃 + Map<String, List<String>> dataListMap = new HashMap<>(5); + dataListMap.put(dictCode, this.listAddAllDeduplicate(new ArrayList<>(), Arrays.asList(value.split(",")))); + //step.2 璋冪敤缈昏瘧鏂规硶锛屼竴娆℃�х炕璇� + Map<String, List<DictModel>> translText = this.translateAllDict(dataListMap); + //缈昏瘧 + List<DictModel> dictModels = translText.get(dictCode); + if (CollectionUtil.isEmpty(dictModels)) { + item.put(field + CommonConstant.DICT_TEXT_SUFFIX, null); + return; + } + String textValue = this.translDictText(dictModels, value); + item.put(field + CommonConstant.DICT_TEXT_SUFFIX, textValue); + } + + /** + * 瀛楀吀鍊兼浛鎹㈡枃鏈� + * + * @param dictModels + * @param values + * @return + */ + private String translDictText(List<DictModel> dictModels, String values) { + List<String> result = new ArrayList<>(); + + // 鍏佽澶氫釜閫楀彿鍒嗛殧锛屽厑璁镐紶鏁扮粍瀵硅薄 + String[] splitVal = values.split(","); + for (String val : splitVal) { + String dictText = val; + for (DictModel dict : dictModels) { + if (val.equals(dict.getValue())) { + dictText = dict.getText(); + break; + } + } + result.add(dictText); + } + return String.join(",", result); + } + + /** + * list 鍘婚噸娣诲姞 + */ + private List<String> listAddAllDeduplicate(List<String> dataList, List<String> addList) { + // 绛涢�夊嚭dataList涓病鏈夌殑鏁版嵁 + List<String> filterList = addList.stream().filter(i -> !dataList.contains(i)).collect(Collectors.toList()); + dataList.addAll(filterList); + return dataList; + } + + /** + * 涓�娆℃�ф妸鎵�鏈夌殑瀛楀吀閮界炕璇戜簡 + * 1. 鎵�鏈夌殑鏅�氭暟鎹瓧鍏哥殑鎵�鏈夋暟鎹彧鎵ц涓�娆QL + * 2. 琛ㄥ瓧鍏哥浉鍚岀殑鎵�鏈夋暟鎹彧鎵ц涓�娆QL + * + * @param dataListMap + * @return + */ + private Map<String, List<DictModel>> translateAllDict(Map<String, List<String>> dataListMap) { + // 缈昏瘧鍚庣殑瀛楀吀鏂囨湰锛宬ey=dictCode + Map<String, List<DictModel>> translText = new HashMap<>(5); + // 闇�瑕佺炕璇戠殑鏁版嵁锛堟湁浜涘彲浠ヤ粠redis缂撳瓨涓幏鍙栵紝灏变笉璧版暟鎹簱鏌ヨ锛� + List<String> needTranslData = new ArrayList<>(); + //step.1 鍏堥�氳繃redis涓幏鍙栫紦瀛樺瓧鍏告暟鎹� + for (String dictCode : dataListMap.keySet()) { + List<String> dataList = dataListMap.get(dictCode); + if (dataList.size() == 0) { + continue; + } + // 琛ㄥ瓧鍏搁渶瑕佺炕璇戠殑鏁版嵁 + List<String> needTranslDataTable = new ArrayList<>(); + for (String s : dataList) { + String data = s.trim(); + if (data.length() == 0) { + continue; //璺宠繃寰幆 + } + if (dictCode.contains(",")) { + String keyString = String.format("sys:cache:dictTable::SimpleKey [%s,%s]", dictCode, data); + if (redisTemplate.hasKey(keyString)) { + try { + String text = oConvertUtils.getString(redisTemplate.opsForValue().get(keyString)); + List<DictModel> list = translText.computeIfAbsent(dictCode, k -> new ArrayList<>()); + list.add(new DictModel(data, text)); + } catch (Exception e) { + log.warn(e.getMessage()); + } + } else if (!needTranslDataTable.contains(data)) { + // 鍘婚噸娣诲姞 + needTranslDataTable.add(data); + } + } else { + String keyString = String.format("sys:cache:dict::%s:%s", dictCode, data); + if (redisTemplate.hasKey(keyString)) { + try { + String text = oConvertUtils.getString(redisTemplate.opsForValue().get(keyString)); + List<DictModel> list = translText.computeIfAbsent(dictCode, k -> new ArrayList<>()); + list.add(new DictModel(data, text)); + } catch (Exception e) { + log.warn(e.getMessage()); + } + } else if (!needTranslData.contains(data)) { + // 鍘婚噸娣诲姞 + needTranslData.add(data); + } + } + + } + //step.2 璋冪敤鏁版嵁搴撶炕璇戣〃瀛楀吀 + if (needTranslDataTable.size() > 0) { + String[] arr = dictCode.split(","); + String table = arr[0], text = arr[1], code = arr[2]; + String values = String.join(",", needTranslDataTable); + log.debug("translateDictFromTableByKeys.dictCode:" + dictCode); + log.debug("translateDictFromTableByKeys.values:" + values); + List<DictModel> texts = commonApi.translateDictFromTableByKeys(table, text, code, values); + log.debug("translateDictFromTableByKeys.result:" + texts); + List<DictModel> list = translText.computeIfAbsent(dictCode, k -> new ArrayList<>()); + list.addAll(texts); + + // 鍋� redis 缂撳瓨 + for (DictModel dict : texts) { + String redisKey = String.format("sys:cache:dictTable::SimpleKey [%s,%s]", dictCode, dict.getValue()); + try { + // update-begin-author:taoyan date:20211012 for: 瀛楀吀琛ㄧ炕璇戞敞瑙g紦瀛樻湭鏇存柊 issues/3061 + // 淇濈暀5鍒嗛挓 + redisTemplate.opsForValue().set(redisKey, dict.getText(), 300, TimeUnit.SECONDS); + // update-end-author:taoyan date:20211012 for: 瀛楀吀琛ㄧ炕璇戞敞瑙g紦瀛樻湭鏇存柊 issues/3061 + } catch (Exception e) { + log.warn(e.getMessage(), e); + } + } + } + } + + //step.3 璋冪敤鏁版嵁搴撹繘琛岀炕璇戞櫘閫氬瓧鍏� + if (needTranslData.size() > 0) { + List<String> dictCodeList = Arrays.asList(dataListMap.keySet().toArray(new String[]{})); + // 灏嗕笉鍖呭惈閫楀彿鐨勫瓧鍏竎ode绛涢�夊嚭鏉ワ紝鍥犱负甯﹂�楀彿鐨勬槸琛ㄥ瓧鍏革紝鑰屼笉鏄櫘閫氱殑鏁版嵁瀛楀吀 + List<String> filterDictCodes = dictCodeList.stream().filter(key -> !key.contains(",")).collect(Collectors.toList()); + String dictCodes = String.join(",", filterDictCodes); + String values = String.join(",", needTranslData); + log.debug("translateManyDict.dictCodes:" + dictCodes); + log.debug("translateManyDict.values:" + values); + Map<String, List<DictModel>> manyDict = commonApi.translateManyDict(dictCodes, values); + log.debug("translateManyDict.result:" + manyDict); + for (String dictCode : manyDict.keySet()) { + List<DictModel> list = translText.computeIfAbsent(dictCode, k -> new ArrayList<>()); + List<DictModel> newList = manyDict.get(dictCode); + list.addAll(newList); + + // 鍋� redis 缂撳瓨 + for (DictModel dict : newList) { + String redisKey = String.format("sys:cache:dict::%s:%s", dictCode, dict.getValue()); + try { + redisTemplate.opsForValue().set(redisKey, dict.getText()); + } catch (Exception e) { + log.warn(e.getMessage(), e); + } + } + } + } + return translText; + } +} diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java index 1bde718..3175021 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java @@ -1,14 +1,17 @@ package org.jeecg.modules.eam.aspect; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.*; import org.aspectj.lang.reflect.MethodSignature; import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog; import org.jeecg.modules.eam.constant.EquipmentOperationTagEnum; -import org.jeecg.modules.eam.entity.EamEquipment; -import org.jeecg.modules.eam.entity.EamEquipmentHistoryLog; +import org.jeecg.modules.eam.constant.InspectionStatus; +import org.jeecg.modules.eam.constant.ReportRepairEnum; +import org.jeecg.modules.eam.constant.WeekMaintenanceStatusEnum; +import org.jeecg.modules.eam.entity.*; import org.jeecg.modules.eam.service.IEamEquipmentHistoryLogService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -54,7 +57,9 @@ log.setBusinessTable(syslog.businessTable()); log.setOperationTag(syslog.operationTag().name()); convertResult(log, syslog.operationTag(), result); - equipmentHistoryLogService.save(log); + if (StringUtils.isNotBlank(log.getEquipmentId())) { + equipmentHistoryLogService.save(log); + } } } @@ -62,7 +67,7 @@ private void convertResult(EamEquipmentHistoryLog log, EquipmentOperationTagEnum operationTag, Object result) { switch (operationTag) { case ACCEPTANCE: - if(result instanceof EamEquipment) { + if (result instanceof EamEquipment) { EamEquipment equipment = (EamEquipment) result; log.setEquipmentId(equipment.getId()); log.setBusinessId(equipment.getId()); @@ -72,14 +77,54 @@ } break; case POINT_INSPECTION: + if (result instanceof EamInspectionOrder) { + EamInspectionOrder order = (EamInspectionOrder) result; + if (InspectionStatus.COMPLETE.name().equals(order.getInspectionStatus())) { + log.setEquipmentId(order.getEquipmentId()); + log.setBusinessId(order.getId()); + log.setOperator(order.getOperator()); + log.setDescription(order.getConfirmComment()); + log.setCreateTime(order.getOperateTime()); + } + } + break; + case WEEK_MAINTENANCE: + if (result instanceof EamWeekMaintenanceOrder) { + EamWeekMaintenanceOrder order = (EamWeekMaintenanceOrder) result; + if (WeekMaintenanceStatusEnum.COMPLETE.name().equals(order.getMaintenanceStatus())) { + log.setEquipmentId(order.getEquipmentId()); + log.setBusinessId(order.getId()); + log.setOperator(order.getOperator()); + log.setDescription(order.getFinalAcceptanceComment()); + log.setCreateTime(order.getActualEndTime()); + } + } break; case SECOND_MAINTENANCE: break; case THIRD_MAINTENANCE: break; case REPORT_REPAIR: + if (result instanceof EamReportRepair) { + EamReportRepair repair = (EamReportRepair) result; + log.setEquipmentId(repair.getEquipmentId()); + log.setBusinessId(repair.getId()); + log.setOperator(repair.getCreateBy()); + log.setDescription(repair.getFaultDescription()); + log.setCreateTime(repair.getFaultStartTime()); + } break; case REPAIRED: + if (result instanceof EamRepairOrder) { + EamRepairOrder order = (EamRepairOrder) result; + if (ReportRepairEnum.COMPLETE.name().equals(order.getRepairStatus())) { + log.setEquipmentId(order.getEquipmentId()); + log.setBusinessId(order.getId()); + log.setOperator(order.getRepairer()); + log.setDescription(order.getRepairDescription()); + log.setCreateTime(order.getActualEndTime()); + } + } break; case MAJOR_REPAIR: break; diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java index 98764d0..f33a01e 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java @@ -24,4 +24,18 @@ String SPARE_REQUISITION_STATUS_4 = "4"; String SPARE_REQUISITION_STATUS_5 = "5"; + /** + * 宀椾綅缂栫爜 + */ + //鎿嶄綔宸� + String PCR0001 = "PCR0001"; + //缁翠慨宸� + String PCR0002 = "PCR0002"; + //鐝粍闀� + String PCR0003 = "PCR0003"; + //璁惧绠$悊鍛� + String PCR0004 = "PCR0004"; + //璁惧鑳芥簮閮� + String PCR0005 = "PCR0005"; + } diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/EquipmentOperationTagEnum.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/EquipmentOperationTagEnum.java index d68826d..abc88f2 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/EquipmentOperationTagEnum.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/EquipmentOperationTagEnum.java @@ -6,6 +6,7 @@ public enum EquipmentOperationTagEnum { ACCEPTANCE, //楠屾敹 POINT_INSPECTION, //鐐规 + WEEK_MAINTENANCE, //鍛ㄤ繚 SECOND_MAINTENANCE, //浜屼繚 THIRD_MAINTENANCE, //涓変繚 REPORT_REPAIR, //鎶ヤ慨 diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/InspectionStatus.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/InspectionStatus.java index b90a87c..5c8be10 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/InspectionStatus.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/InspectionStatus.java @@ -1,21 +1,13 @@ package org.jeecg.modules.eam.constant; +import lombok.Getter; + +@Getter public enum InspectionStatus { - INIT("1", "寰呯偣妫�"), - IN_PROGRESS("2", "鐐规涓�"), - COMPLETED("3", "鐐规瀹屾垚" ), - CONFIRMED("4", "宸茬‘璁�" ); - - private final String code; - private final String desc; - - InspectionStatus(String code, String desc) { - - this.code = code; - this.desc = desc; - } - - // Getters - public String getCode() { return code; } - public String getDesc() { return desc; } + WAIT_INSPECTION, //寰呯偣妫� + UNDER_INSPECTION, //鐐规涓� + WAIT_CONFIRM, //寰呯‘璁� + COMPLETE, //宸插畬鎴� + ABOLISH, //宸蹭綔搴� + EXPIRED; //宸茶繃鏈� } diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java index 1d770de..91ff967 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java @@ -7,4 +7,15 @@ WAIT_CONFIRM, // 寰呯‘璁� COMPLETE, // 宸插畬鎴� ABOLISH, // 宸蹭綔搴� + ; + + public static ReportRepairEnum getInstance(String code) { + ReportRepairEnum[] values = ReportRepairEnum.values(); + for (ReportRepairEnum value : values) { + if (value.name().equals(code)) { + return value; + } + } + return null; + } } diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/WeekMaintenanceStatusEnum.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/WeekMaintenanceStatusEnum.java index 0956b7e..a7800d9 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/WeekMaintenanceStatusEnum.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/WeekMaintenanceStatusEnum.java @@ -8,5 +8,16 @@ WAIT_FINAL_ACCEPTANCE, //寰呯粓楠� COMPLETE, //宸插畬鎴� ABOLISH, //宸蹭綔搴� + EXPIRED, //宸茶繃鏈� ; + + public static WeekMaintenanceStatusEnum getInstance(String code) { + WeekMaintenanceStatusEnum[] values = WeekMaintenanceStatusEnum.values(); + for (WeekMaintenanceStatusEnum value : values) { + if (value.name().equals(code)) { + return value; + } + } + return null; + } } diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java index 7f5a5d0..0756a99 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java @@ -15,184 +15,272 @@ import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; + /** * @Description: 璁惧鍙拌处 * @Author: jeecg-boot - * @Date: 2025-03-19 + * @Date: 2025-03-19 * @Version: V1.0 */ @Data @TableName("eam_equipment") @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) -@ApiModel(value="eam_equipment瀵硅薄", description="璁惧鍙拌处") +@ApiModel(value = "eam_equipment瀵硅薄", description = "璁惧鍙拌处") public class EamEquipment implements Serializable { - - /**涓婚敭*/ - @TableId(type = IdType.ASSIGN_ID) + + /** + * 涓婚敭 + */ + @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "涓婚敭") - private java.lang.String id; - /**鍒涘缓浜�*/ + private java.lang.String id; + /** + * 鍒涘缓浜� + */ @ApiModelProperty(value = "鍒涘缓浜�") - @Dict(dicCode = "sys_user, realname, username") - private java.lang.String createBy; - /**鍒涘缓鏃堕棿*/ + @Dict(dicCode = "sys_user, realname, username") + private java.lang.String createBy; + /** + * 鍒涘缓鏃堕棿 + */ @ApiModelProperty(value = "鍒涘缓鏃堕棿") - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss ") - private java.util.Date createTime; - /**鏇存柊浜�*/ + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss ") + private java.util.Date createTime; + /** + * 鏇存柊浜� + */ @ApiModelProperty(value = "鏇存柊浜�") - @Dict(dicCode = "sys_user, realname, username") - private java.lang.String updateBy; - /**鏇存柊鏃堕棿*/ + @Dict(dicCode = "sys_user, realname, username") + private java.lang.String updateBy; + /** + * 鏇存柊鏃堕棿 + */ @ApiModelProperty(value = "鏇存柊鏃堕棿") - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss ") - private java.util.Date updateTime; - /**鍒犻櫎鏍囪*/ + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss ") + private java.util.Date updateTime; + /** + * 鍒犻櫎鏍囪 + */ @ApiModelProperty(value = "鍒犻櫎鏍囪") - private java.lang.Integer delFlag; - /**璁惧缁熶竴缂栧彿*/ - @Excel(name = "璁惧缂栧彿", width = 15) + private java.lang.Integer delFlag; + /** + * 璁惧缁熶竴缂栧彿 + */ + @Excel(name = "璁惧缂栧彿", width = 15) @ApiModelProperty(value = "璁惧缂栧彿") - private java.lang.String equipmentCode; - /**璁惧鍚嶇О*/ - @Excel(name = "璁惧鍚嶇О", width = 15) + private java.lang.String equipmentCode; + /** + * 璁惧鍚嶇О + */ + @Excel(name = "璁惧鍚嶇О", width = 15) @ApiModelProperty(value = "璁惧鍚嶇О") - private java.lang.String equipmentName; - /**鍏抽敭璁惧鏍囪瘑*/ - @Excel(name = "鍏抽敭璁惧鏍囪瘑", width = 15, dicCode = "yn") - @ApiModelProperty(value = "鍏抽敭璁惧鏍囪瘑") - private java.lang.String equipmentImportance; - /**鎶�鏈姸鎬�*/ - @Excel(name = "鎶�鏈姸鎬�", width = 15, dicCode = "technology_status") - @ApiModelProperty(value = "鎶�鏈姸鎬�") - @Dict(dicCode = "technology_status") - private java.lang.String technologyStatus; - /**鎿嶄綔绯荤粺*/ - @Excel(name = "鎿嶄綔绯荤粺", width = 15) - @ApiModelProperty(value = "鎿嶄綔绯荤粺") - private java.lang.String operationSystem; - /**浣跨敤閮ㄩ棬*/ - @Excel(name = "浣跨敤杞﹂棿", width = 25, dictTable = "mdc_production", dicText = "production_name", dicCode = "id") - @ApiModelProperty(value = "浣跨敤閮ㄩ棬") - @Dict(dicCode = "mdc_production, production_name, id") - private java.lang.String orgId; - /**璁惧绠$悊鍛�*/ - @Excel(name = "璁惧绠$悊鍛�", width = 35, dictTable = "sys_user", dicText = "realname", dicCode = "username") - @ApiModelProperty(value = "璁惧绠$悊鍛�") - @Dict(dicCode = "sys_user, realname, username") - private java.lang.String equipmentManager; - /**璁惧鍒嗙被*/ - @Excel(name = "璁惧鎵�灞炲垎绫�", width = 15, dicCode = "equipment_category") - @ApiModelProperty(value = "璁惧鍒嗙被") - @Dict(dicCode = "equipment_category") - private java.lang.String equipmentCategory; - /**璁惧鍨嬪彿*/ - @Excel(name = "璁惧鍨嬪彿", width = 15) + private java.lang.String equipmentName; + /** + * 鍏抽敭璁惧鏍囪瘑 + */ + @Excel(name = "鍏抽敭璁惧鏍囪瘑", width = 15, dicCode = "yn") + @ApiModelProperty(value = "鍏抽敭璁惧鏍囪瘑") + private java.lang.String equipmentImportance; + /** + * 鎶�鏈姸鎬� + */ + @Excel(name = "鎶�鏈姸鎬�", width = 15, dicCode = "technology_status") + @ApiModelProperty(value = "鎶�鏈姸鎬�") + @Dict(dicCode = "technology_status") + private java.lang.String technologyStatus; + /** + * 鎿嶄綔绯荤粺 + */ + @Excel(name = "鎿嶄綔绯荤粺", width = 15) + @ApiModelProperty(value = "鎿嶄綔绯荤粺") + private java.lang.String operationSystem; + /** + * 浣跨敤閮ㄩ棬 + */ + @Excel(name = "浣跨敤杞﹂棿", width = 25, dictTable = "mdc_production", dicText = "production_name", dicCode = "id") + @ApiModelProperty(value = "浣跨敤閮ㄩ棬") + @Dict(dicCode = "mdc_production, production_name, id") + private java.lang.String orgId; + /** + * 璁惧绠$悊鍛� + */ + @Excel(name = "璁惧绠$悊鍛�", width = 35, dictTable = "sys_user", dicText = "realname", dicCode = "username") + @ApiModelProperty(value = "璁惧绠$悊鍛�") + @Dict(dicCode = "sys_user, realname, username") + private java.lang.String equipmentManager; + /** + * 璁惧鍒嗙被 + */ + @Excel(name = "璁惧鎵�灞炲垎绫�", width = 15, dicCode = "equipment_category") + @ApiModelProperty(value = "璁惧鍒嗙被") + @Dict(dicCode = "equipment_category") + private java.lang.String equipmentCategory; + /** + * 璁惧鍨嬪彿 + */ + @Excel(name = "璁惧鍨嬪彿", width = 15) @ApiModelProperty(value = "璁惧鍨嬪彿") - private java.lang.String equipmentModel; - /**璁惧瑙勬牸*/ - @Excel(name = "璁惧瑙勬牸", width = 15) + private java.lang.String equipmentModel; + /** + * 璁惧瑙勬牸 + */ + @Excel(name = "璁惧瑙勬牸", width = 15) @ApiModelProperty(value = "璁惧瑙勬牸") - private java.lang.String equipmentSpecification; - /**涓昏酱杩炴帴灏哄*/ - @Excel(name = "涓昏酱杩炴帴灏哄", width = 25) - @ApiModelProperty(value = "涓昏酱杩炴帴灏哄") - private java.lang.String spindleConnectDimension; - /**鎬诲姛鐜�*/ - @Excel(name = "鎬诲姛鐜�", width = 15) - @ApiModelProperty(value = "鎬诲姛鐜�") - private java.lang.String equipmentPower; - /**瀹夎浣嶇疆*/ - @Excel(name = "瀹夎浣嶇疆", width = 15) - @ApiModelProperty(value = "瀹夎浣嶇疆") - private java.lang.String installationPosition; - /**璧勪骇鐘舵��*/ - @Excel(name = "璧勪骇鐘舵��", width = 15, dicCode = "asset_status") + private java.lang.String equipmentSpecification; + /** + * 涓昏酱杩炴帴灏哄 + */ + @Excel(name = "涓昏酱杩炴帴灏哄", width = 25) + @ApiModelProperty(value = "涓昏酱杩炴帴灏哄") + private java.lang.String spindleConnectDimension; + /** + * 鎬诲姛鐜� + */ + @Excel(name = "鎬诲姛鐜�", width = 15) + @ApiModelProperty(value = "鎬诲姛鐜�") + private java.lang.String equipmentPower; + /** + * 瀹夎浣嶇疆 + */ + @Excel(name = "瀹夎浣嶇疆", width = 15) + @ApiModelProperty(value = "瀹夎浣嶇疆") + private java.lang.String installationPosition; + /** + * 璧勪骇鐘舵�� + */ + @Excel(name = "璧勪骇鐘舵��", width = 15, dicCode = "asset_status") @ApiModelProperty(value = "璧勪骇鐘舵��") - @Dict(dicCode = "asset_status") - private java.lang.String assetStatus; - /**绔嬮」鍗″彿*/ - @Excel(name = "绔嬮」鍗″彿", width = 15) - @ApiModelProperty(value = "绔嬮」鍗″彿") - private java.lang.String cardNumber; - /**鍑哄巶缂栧彿*/ - @Excel(name = "鍑哄巶缂栧彿", width = 15) - @ApiModelProperty(value = "鍑哄巶缂栧彿") - private java.lang.String factoryNumber; - /**鏈哄簥鍘傚*/ - @Excel(name = "鏈哄簥鍘傚", width = 15) - @ApiModelProperty(value = "鏈哄簥鍘傚") - private java.lang.String manufacturingEnterprise; - /**鏉ユ簮鍥藉*/ - @Excel(name = "鏈哄簥鏉ユ簮鍥藉", width = 25) - @ApiModelProperty(value = "鏉ユ簮鍥藉") - private java.lang.String originCountry; - /**鍑哄巶鏃ユ湡*/ - @Excel(name = "鍑哄巶鏃ユ湡", width = 25, format = "yyyy-MM-dd") - @ApiModelProperty(value = "鍑哄巶鏃ユ湡") - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") - @DateTimeFormat(pattern = "yyyy-MM-dd") - private java.util.Date leaveFactoryDate; - /**楠屾敹鏃ユ湡*/ - @Excel(name = "楠屾敹鏃ユ湡", width = 25, format = "yyyy-MM-dd") - @ApiModelProperty(value = "楠屾敹鏃ユ湡") - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") - @DateTimeFormat(pattern = "yyyy-MM-dd") - private java.util.Date acceptanceCheckDate; - /**璐ㄤ繚寮�濮嬫棩鏈�*/ - @Excel(name = "璐ㄤ繚寮�濮嬫棩鏈�", width = 25, format = "yyyy-MM-dd") - @ApiModelProperty(value = "璐ㄤ繚寮�濮嬫棩鏈�") - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") - @DateTimeFormat(pattern = "yyyy-MM-dd") - private java.util.Date warrantyStartDate; - /**璐ㄤ繚缁撴潫鏃ユ湡*/ - @Excel(name = "璐ㄤ繚缁撴潫鏃ユ湡", width = 25, format = "yyyy-MM-dd") - @ApiModelProperty(value = "璐ㄤ繚缁撴潫鏃ユ湡") - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") - @DateTimeFormat(pattern = "yyyy-MM-dd") - private java.util.Date warrantyEndDate; - /**鏄惁瀹炴柦MDC*/ - @Excel(name = "鏄惁瀹炴柦MDC", width = 15, dicCode = "yn") - @ApiModelProperty(value = "鏄惁瀹炴柦MDC") - private java.lang.String mdcFlag; - /*=====================涓婇潰鏄矁鍏嬫ā鏉垮瓧娈�======================*/ - /**鐗圭璁惧;鏄惁涓虹壒绉嶈澶�*/ + @Dict(dicCode = "asset_status") + private java.lang.String assetStatus; + /** + * 绔嬮」鍗″彿 + */ + @Excel(name = "绔嬮」鍗″彿", width = 15) + @ApiModelProperty(value = "绔嬮」鍗″彿") + private java.lang.String cardNumber; + /** + * 鍑哄巶缂栧彿 + */ + @Excel(name = "鍑哄巶缂栧彿", width = 15) + @ApiModelProperty(value = "鍑哄巶缂栧彿") + private java.lang.String factoryNumber; + /** + * 鏈哄簥鍘傚 + */ + @Excel(name = "鏈哄簥鍘傚", width = 15) + @ApiModelProperty(value = "鏈哄簥鍘傚") + private java.lang.String manufacturingEnterprise; + /** + * 鏉ユ簮鍥藉 + */ + @Excel(name = "鏈哄簥鏉ユ簮鍥藉", width = 25) + @ApiModelProperty(value = "鏉ユ簮鍥藉") + private java.lang.String originCountry; + /** + * 鍑哄巶鏃ユ湡 + */ + @Excel(name = "鍑哄巶鏃ユ湡", width = 25, format = "yyyy-MM-dd") + @ApiModelProperty(value = "鍑哄巶鏃ユ湡") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private java.util.Date leaveFactoryDate; + /** + * 楠屾敹鏃ユ湡 + */ + @Excel(name = "楠屾敹鏃ユ湡", width = 25, format = "yyyy-MM-dd") + @ApiModelProperty(value = "楠屾敹鏃ユ湡") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private java.util.Date acceptanceCheckDate; + /** + * 璐ㄤ繚寮�濮嬫棩鏈� + */ + @Excel(name = "璐ㄤ繚寮�濮嬫棩鏈�", width = 25, format = "yyyy-MM-dd") + @ApiModelProperty(value = "璐ㄤ繚寮�濮嬫棩鏈�") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private java.util.Date warrantyStartDate; + /** + * 璐ㄤ繚缁撴潫鏃ユ湡 + */ + @Excel(name = "璐ㄤ繚缁撴潫鏃ユ湡", width = 25, format = "yyyy-MM-dd") + @ApiModelProperty(value = "璐ㄤ繚缁撴潫鏃ユ湡") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private java.util.Date warrantyEndDate; + /** + * 鏄惁瀹炴柦MDC + */ + @Excel(name = "鏄惁瀹炴柦MDC", width = 15, dicCode = "yn") + @ApiModelProperty(value = "鏄惁瀹炴柦MDC") + private java.lang.String mdcFlag; + /*=====================涓婇潰鏄矁鍏嬫ā鏉垮瓧娈�======================*/ + /** + * 鐗圭璁惧;鏄惁涓虹壒绉嶈澶� + */ @ApiModelProperty(value = "鏄惁鐗圭璁惧") - private java.lang.String specialEquipment; - /**璁惧鍥剧墖*/ + private java.lang.String specialEquipment; + /** + * 璁惧鍥剧墖 + */ @ApiModelProperty(value = "璁惧鍥剧墖") - private java.lang.String equipmentImage; - /**閲嶉噺*/ + private java.lang.String equipmentImage; + /** + * 閲嶉噺 + */ @ApiModelProperty(value = "閲嶉噺") - private java.lang.String equipmentWeight; - /**鏄惁鏈夊伐鑹哄弬鏁�*/ + private java.lang.String equipmentWeight; + /** + * 鏄惁鏈夊伐鑹哄弬鏁� + */ @ApiModelProperty(value = "鏄惁鏈夊伐鑹哄弬鏁�") - private java.lang.String processParametersFlag; - /**鏄惁鏈夌簿搴﹀弬鏁�*/ + private java.lang.String processParametersFlag; + /** + * 鏄惁鏈夌簿搴﹀弬鏁� + */ @ApiModelProperty(value = "鏄惁鏈夌簿搴﹀弬鏁�") - private java.lang.String precisionParametersFlag; - /**璁惧绔彛*/ + private java.lang.String precisionParametersFlag; + /** + * 璁惧绔彛 + */ @ApiModelProperty(value = "璁惧绔彛") - private java.lang.String equipmentPort; - /**鍧愭爣鏁伴噺*/ + private java.lang.String equipmentPort; + /** + * 鍧愭爣鏁伴噺 + */ @ApiModelProperty(value = "鍧愭爣鏁伴噺") - private java.lang.Integer coordinateNum; - /**澶囨敞*/ + private java.lang.Integer coordinateNum; + /** + * 澶囨敞 + */ @ApiModelProperty(value = "澶囨敞") - private java.lang.String remark; - @ApiModelProperty(value = "MDC璁惧绫诲瀷") - private String deviceType; + private java.lang.String remark; + @ApiModelProperty(value = "MDC璁惧绫诲瀷") + private String deviceType; - @TableField(exist = false) - @ApiModelProperty(value = "缁翠慨鐘舵��") - @Dict(dicCode = "equipment_repair_status") - private String repairStatus; + @TableField(exist = false) + @ApiModelProperty(value = "缁翠慨鐘舵��") + @Dict(dicCode = "equipment_repair_status") + private String repairStatus; - @TableField(exist = false) - @ApiModelProperty(value = "淇濆吇鐘舵��") - @Dict(dicCode = "equipment_maintenance_status") - private String maintenanceStatus; + @TableField(exist = false) + @ApiModelProperty(value = "淇濆吇鐘舵��") + @Dict(dicCode = "equipment_maintenance_status") + private String maintenanceStatus; + + @TableField(exist = false) + private String value; + @TableField(exist = false) + private String text; + + public String getValue() { + return this.id; + } + + public String getText() { + return this.equipmentCode + "[" + this.equipmentName + "]"; + } } diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentFaultReason.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentFaultReason.java index c4ebc41..dabe79a 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentFaultReason.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentFaultReason.java @@ -1,6 +1,7 @@ package org.jeecg.modules.eam.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; @@ -63,4 +64,9 @@ @ApiModelProperty(value = "鏁呴殰鍒嗙被") @Dict(dicCode = "fault_reason_category") private String faultCategory; + + @TableField(exist = false) + private String text; + @TableField(exist = false) + private String value; } diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentHistoryLog.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentHistoryLog.java index 917b058..6008547 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentHistoryLog.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentHistoryLog.java @@ -3,12 +3,15 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import org.jeecg.common.aspect.annotation.Dict; import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; @@ -35,6 +38,8 @@ private java.lang.String createBy; /**鍒涘缓鏃堕棿*/ @ApiModelProperty(value = "鍒涘缓鏃堕棿") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private java.util.Date createTime; /**璁惧ID*/ @Excel(name = "璁惧ID", width = 15) @@ -43,10 +48,12 @@ /**鎿嶄綔鏍囩*/ @Excel(name = "鎿嶄綔鏍囩", width = 15) @ApiModelProperty(value = "鎿嶄綔鏍囩") + @Dict(dicCode = "equipment_operation_tag") private java.lang.String operationTag; /**鎿嶄綔浜�*/ @Excel(name = "鎿嶄綔浜�", width = 15) @ApiModelProperty(value = "鎿嶄綔浜�") + @Dict(dicCode = "sys_user, realname, username") private java.lang.String operator; /**鎿嶄綔鎻忚堪*/ @Excel(name = "鎿嶄綔鎻忚堪", width = 15) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrder.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrder.java similarity index 87% rename from lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrder.java rename to lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrder.java index bb2358a..863aa72 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrder.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrder.java @@ -1,9 +1,6 @@ package org.jeecg.modules.eam.entity; -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.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -16,7 +13,6 @@ import java.io.Serializable; import java.util.Date; -import java.util.List; /** * @Description: 鐐规宸ュ崟 @@ -65,12 +61,11 @@ /**璁惧ID*/ @Excel(name = "璁惧ID", width = 15) @ApiModelProperty(value = "璁惧ID") - @Dict(dictTable = "eam_equipment", dicCode = "id", dicText = "equipment_code") private String equipmentId; /**鏍囧噯ID*/ @Excel(name = "淇濆吇鏍囧噯ID", width = 15) @ApiModelProperty(value = "淇濆吇鏍囧噯ID") - @Dict(dictTable = "eam_maintenance_standard", dicCode = "id", dicText = "standard_code") + @Dict(dictTable = "eam_maintenance_standard", dicCode = "id", dicText = "standard_name") private String standardId; /**鐐规鏃ユ湡*/ @Excel(name = "鐐规鏃ユ湡锛堣鍒掞級", width = 15, format = "yyyy-MM-dd") @@ -116,6 +111,13 @@ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "纭鏃堕棿") private Date confirmTime; + /**纭鎰忚*/ + @ApiModelProperty(value = "纭鎰忚") + private String confirmComment; + /** 纭绫诲瀷 1 閫氳繃 2 椹冲洖 */ + @ApiModelProperty(value = "纭绫诲瀷") + @Dict(dicCode = "approved_rejected") + private String confirmDealType; /**澶囨敞*/ @Excel(name = "澶囨敞", width = 15) @ApiModelProperty(value = "澶囨敞-鐐规宸ュ崟鍒涘缓澶囨敞") @@ -135,15 +137,7 @@ @ApiModelProperty(value = "璁惧缂栧彿") private transient String equipmentCode; - /**鍒楄〃 淇濆吇椤规槑缁�*/ - @ApiModelProperty(value = "鍒楄〃 淇濆吇椤规槑缁�") - private transient List<EamInspectionOrderDetail> tableDetailList; - - /**澶勭悊绫诲瀷*/ - @ApiModelProperty(value = "澶勭悊绫诲瀷") - private transient String dealType; - - /**澶勭悊鎰忚*/ - @ApiModelProperty(value = "澶勭悊鎰忚") - private transient String dealSuggestion; + @ApiModelProperty(value = "璁惧鍚嶇О") + @TableField(exist = false) + private String equipmentName; } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java similarity index 91% rename from lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java rename to lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java index 9d50b04..8d2c264 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java @@ -71,6 +71,16 @@ @ApiModelProperty(value = "缁翠慨缁撴潫鏃堕棿") private Date actualEndTime; /** + * 鏄惁棰嗙敤澶囦欢 1锛氭槸 0锛氬惁 + */ + @ApiModelProperty(value = "鏄惁棰嗙敤澶囦欢") + private Integer isUseSpare; + /** + * 澶囦欢鎻忚堪 + */ + @ApiModelProperty(value = "澶囦欢鎻忚堪") + private String sparePartDescription; + /** * 鏁呴殰鍘熷洜 */ @Excel(name = "鏁呴殰鍘熷洜", width = 15) @@ -87,6 +97,7 @@ */ @Excel(name = "缁翠慨璐熻矗浜�", width = 15) @ApiModelProperty(value = "缁翠慨璐熻矗浜�") + @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname") private String repairer; /** * 鏄惁濮斿 diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamReportRepair.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamReportRepair.java similarity index 93% rename from lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamReportRepair.java rename to lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamReportRepair.java index 1cdc36e..714cf42 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamReportRepair.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamReportRepair.java @@ -8,6 +8,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import org.jeecg.common.api.vo.FileUploadResult; import org.jeecg.common.aspect.annotation.Dict; import org.jeecg.common.system.base.entity.JeecgEntity; import org.jeecgframework.poi.excel.annotation.Excel; @@ -15,6 +16,7 @@ import java.io.Serializable; import java.util.Date; +import java.util.List; /** * @Description: 鏁呴殰鎶ヤ慨 @@ -97,6 +99,12 @@ @Excel(name = "鐓х墖", width = 15, type = 2) @ApiModelProperty(value = "鐓х墖") private String imageFiles; + + /**鐓х墖*/ + @ApiModelProperty(value = "鐓х墖") + @TableField(exist = false) + private List<FileUploadResult> imageFilesResult; + /** * 澶囨敞 */ diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrder.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrder.java similarity index 94% rename from lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrder.java rename to lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrder.java index 6c4d814..260f414 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrder.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrder.java @@ -96,6 +96,10 @@ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date confirmTime; + /** 纭绫诲瀷 1 閫氳繃 2 椹冲洖 */ + @ApiModelProperty(value = "纭绫诲瀷") + @Dict(dicCode = "approved_rejected") + private String confirmDealType; /**淇濆吇鎵ц鍥剧墖;id浠ラ�楀彿鍒嗛殧*/ @ApiModelProperty(value = "淇濆吇鎵ц鍥剧墖;id浠ラ�楀彿鍒嗛殧") private String imageFiles; @@ -107,6 +111,7 @@ private String confirmComment; /**鍒濋獙鏀朵汉*/ @ApiModelProperty(value = "鍒濋獙鏀朵汉") + @Dict(dicCode = "sys_user, realname, username") private String initialAcceptanceUser; /**鍒濋獙鏀舵椂闂�*/ @ApiModelProperty(value = "鍒濋獙鏀舵椂闂�") @@ -121,6 +126,7 @@ private String initialAcceptanceFiles; /**缁堥獙鏀朵汉*/ @ApiModelProperty(value = "缁堥獙鏀朵汉") + @Dict(dicCode = "sys_user, realname, username") private String finalAcceptanceUser; /**缁堥獙鏀舵椂闂�*/ @ApiModelProperty(value = "缁堥獙鏀舵椂闂�") diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java index bede1d1..40293d6 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java @@ -4,6 +4,7 @@ @Data public class EamEquipmentQuery { + private String id; private String equipmentCode; private String equipmentName; private String equipmentImportance; diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentExtendService.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentExtendService.java index f24e398..c886331 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentExtendService.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentExtendService.java @@ -10,5 +10,19 @@ * @Version: V1.0 */ public interface IEamEquipmentExtendService extends IService<EamEquipmentExtend> { + /** + * 鏇存柊璁惧淇濆吇鐘舵�� + * @param equipmentId 璁惧id + * @param status 鐘舵�� + * @return + */ + boolean updateEquipmentMaintenanceStatus(String equipmentId, String status); + /** + * 鏇存柊璁惧缁翠慨鐘舵�� + * @param equipmentId 璁惧id + * @param status 鐘舵�� + * @return + */ + boolean updateEquipmentRepairStatus(String equipmentId, String status); } diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentExtendServiceImpl.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentExtendServiceImpl.java index eceed0f..b7c322d 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentExtendServiceImpl.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentExtendServiceImpl.java @@ -6,14 +6,43 @@ import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; /** * @Description: 璁惧鍙拌处鎵╁睍琛� * @Author: jeecg-boot - * @Date: 2025-03-19 + * @Date: 2025-03-19 * @Version: V1.0 */ @Service public class EamEquipmentExtendServiceImpl extends ServiceImpl<EamEquipmentExtendMapper, EamEquipmentExtend> implements IEamEquipmentExtendService { + @Resource + private EamEquipmentExtendMapper eamEquipmentExtendMapper; + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean updateEquipmentMaintenanceStatus(String equipmentId, String status) { + EamEquipmentExtend entity = eamEquipmentExtendMapper.selectById(equipmentId); + if (entity == null) { + return false; + } + entity.setMaintenanceStatus(status); + eamEquipmentExtendMapper.updateById(entity); + return true; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean updateEquipmentRepairStatus(String equipmentId, String status) { + EamEquipmentExtend entity = eamEquipmentExtendMapper.selectById(equipmentId); + if (entity == null) { + return false; + } + entity.setRepairStatus(status); + eamEquipmentExtendMapper.updateById(entity); + return true; + } } diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java index f4fcd30..b508ae8 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java @@ -103,6 +103,7 @@ @Override public IPage<EamEquipment> queryPageList(IPage<EamEquipment> page, EamEquipmentQuery eamEquipment) { QueryWrapper<EamEquipment> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("e.del_flag", CommonConstant.DEL_FLAG_0); //鐢ㄦ埛鏁版嵁鏉冮檺 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { @@ -142,6 +143,9 @@ if (StringUtils.isNotBlank(eamEquipment.getEquipmentCategory())) { queryWrapper.like("e.equipment_category", eamEquipment.getEquipmentCategory()); } + if (StringUtils.isNotBlank(eamEquipment.getId())) { + queryWrapper.eq("e.id", eamEquipment.getId()); + } //鎺掑簭 if (StringUtils.isNotBlank(eamEquipment.getColumn()) && StringUtils.isNotBlank(eamEquipment.getOrder())) { //queryWrapper.like("column", eamEquipment.getColumn()); diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentAttachmentController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentAttachmentController.java new file mode 100644 index 0000000..5ec3396 --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentAttachmentController.java @@ -0,0 +1,158 @@ +package org.jeecg.modules.eam.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +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.common.system.query.QueryGenerator; +import org.jeecg.modules.eam.entity.EamEquipmentAttachment; +import org.jeecg.modules.eam.request.EamEquipmentAttachmentRequest; +import org.jeecg.modules.eam.service.IEamEquipmentAttachmentService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +/** + * @Description: 璁惧鏂囨。鍙拌处浣跨敤 + * @Author: jeecg-boot + * @Date: 2025-04-16 + * @Version: V1.0 + */ +@Slf4j +@Api(tags="璁惧鏂囨。鍙拌处浣跨敤") +@RestController +@RequestMapping("/eam/equipmentAttachment") +public class EamEquipmentAttachmentController extends JeecgController<EamEquipmentAttachment, IEamEquipmentAttachmentService> { + @Autowired + private IEamEquipmentAttachmentService eamEquipmentAttachmentService; + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param eamEquipmentAttachment + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @AutoLog(value = "璁惧鏂囨。鍙拌处浣跨敤-鍒嗛〉鍒楄〃鏌ヨ") + @ApiOperation(value="璁惧鏂囨。鍙拌处浣跨敤-鍒嗛〉鍒楄〃鏌ヨ", notes="璁惧鏂囨。鍙拌处浣跨敤-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<?> queryPageList(EamEquipmentAttachment eamEquipmentAttachment, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + Page<EamEquipmentAttachment> page = new Page<>(pageNo, pageSize); + if(StringUtils.isBlank(eamEquipmentAttachment.getEquipmentId())) { + return Result.OK(page); + } + //鍙繚鐣欒澶噄d + EamEquipmentAttachment query = new EamEquipmentAttachment(); + query.setEquipmentId(eamEquipmentAttachment.getEquipmentId()); + QueryWrapper<EamEquipmentAttachment> queryWrapper = QueryGenerator.initQueryWrapper(eamEquipmentAttachment, req.getParameterMap()); + queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0); + IPage<EamEquipmentAttachment> pageList = eamEquipmentAttachmentService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 娣诲姞 + * + * @param request + * @return + */ + @AutoLog(value = "璁惧鏂囨。鍙拌处浣跨敤-娣诲姞") + @ApiOperation(value="璁惧鏂囨。鍙拌处浣跨敤-娣诲姞", notes="璁惧鏂囨。鍙拌处浣跨敤-娣诲姞") + @PostMapping(value = "/add") + public Result<?> add(@RequestBody EamEquipmentAttachmentRequest request) { + boolean b = eamEquipmentAttachmentService.saveEntity(request); + if(!b) { + return Result.OK("鎿嶄綔澶辫触锛�"); + } + return Result.OK("娣诲姞鎴愬姛锛�"); + } + + /** + * 缂栬緫 + * + * @param eamEquipmentAttachment + * @return + */ + @AutoLog(value = "璁惧鏂囨。鍙拌处浣跨敤-缂栬緫") + @ApiOperation(value="璁惧鏂囨。鍙拌处浣跨敤-缂栬緫", notes="璁惧鏂囨。鍙拌处浣跨敤-缂栬緫") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result<?> edit(@RequestBody EamEquipmentAttachment eamEquipmentAttachment) { + eamEquipmentAttachmentService.updateById(eamEquipmentAttachment); + return Result.OK("缂栬緫鎴愬姛!"); + } + + /** + * 閫氳繃id鍒犻櫎 + * + * @param id + * @return + */ + @AutoLog(value = "璁惧鏂囨。鍙拌处浣跨敤-閫氳繃id鍒犻櫎") + @ApiOperation(value="璁惧鏂囨。鍙拌处浣跨敤-閫氳繃id鍒犻櫎", notes="璁惧鏂囨。鍙拌处浣跨敤-閫氳繃id鍒犻櫎") + @DeleteMapping(value = "/delete") + public Result<?> delete(@RequestParam(name="id",required=true) String id) { + EamEquipmentAttachment entity = eamEquipmentAttachmentService.getById(id); + if(entity != null) { + entity.setDelFlag(CommonConstant.DEL_FLAG_1); + eamEquipmentAttachmentService.updateById(entity); + } + return Result.OK("鍒犻櫎鎴愬姛!"); + } + + /** + * 鎵归噺鍒犻櫎 + * + * @param ids + * @return + */ + @AutoLog(value = "璁惧鏂囨。鍙拌处浣跨敤-鎵归噺鍒犻櫎") + @ApiOperation(value="璁惧鏂囨。鍙拌处浣跨敤-鎵归噺鍒犻櫎", notes="璁惧鏂囨。鍙拌处浣跨敤-鎵归噺鍒犻櫎") + @DeleteMapping(value = "/deleteBatch") + public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) { + List<String> list = Arrays.asList(ids.split(",")); + list.forEach(id -> { + EamEquipmentAttachment entity = eamEquipmentAttachmentService.getById(id); + if(entity != null) { + entity.setDelFlag(CommonConstant.DEL_FLAG_1); + eamEquipmentAttachmentService.updateById(entity); + } + }); + return Result.OK("鎵归噺鍒犻櫎鎴愬姛锛�"); + } + + /** + * 閫氳繃id鏌ヨ + * + * @param id + * @return + */ + @AutoLog(value = "璁惧鏂囨。鍙拌处浣跨敤-閫氳繃id鏌ヨ") + @ApiOperation(value="璁惧鏂囨。鍙拌处浣跨敤-閫氳繃id鏌ヨ", notes="璁惧鏂囨。鍙拌处浣跨敤-閫氳繃id鏌ヨ") + @GetMapping(value = "/queryById") + public Result<?> queryById(@RequestParam(name="id",required=true) String id) { + EamEquipmentAttachment eamEquipmentAttachment = eamEquipmentAttachmentService.getById(id); + return Result.OK(eamEquipmentAttachment); + } + + @GetMapping("/downloadFile") + public void downloadFile(@RequestParam("id") String id, HttpServletResponse response) { + eamEquipmentAttachmentService.downloadFile(response, eamEquipmentAttachmentService.getById(id)); + } +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java index e5a735d..b704de3 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java @@ -1,8 +1,12 @@ package org.jeecg.modules.eam.controller; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.parser.Feature; 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.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -10,8 +14,11 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.common.util.TranslateDictTextUtils; import org.jeecg.modules.eam.entity.EamEquipment; +import org.jeecg.modules.eam.entity.EamEquipmentExtend; import org.jeecg.modules.eam.request.EamEquipmentQuery; +import org.jeecg.modules.eam.service.IEamEquipmentExtendService; import org.jeecg.modules.eam.service.IEamEquipmentService; import org.jeecg.modules.eam.vo.EamEquipmentTree; import org.jeecg.modules.eam.vo.EquipmentSearchResult; @@ -47,7 +54,15 @@ private IEamEquipmentService eamEquipmentService; @Autowired + private IEamEquipmentExtendService eamEquipmentExtendService; + + @Autowired private IMdcEquipmentService mdcEquipmentService; + + @Autowired + private ObjectMapper objectMapper; + @Autowired + private TranslateDictTextUtils translateDictTextUtils; /** * 鍒嗛〉鍒楄〃鏌ヨ @@ -155,7 +170,30 @@ @GetMapping(value = "/queryById") public Result<?> queryById(@RequestParam(name = "id", required = true) String id) { EamEquipment eamEquipment = eamEquipmentService.getById(id); - return Result.OK(eamEquipment); + if (eamEquipment == null) { + return Result.error("鏈壘鍒板搴旀暟鎹�"); + } + EamEquipmentExtend extend = eamEquipmentExtendService.getById(id); + if(extend != null){ + eamEquipment.setRepairStatus(extend.getRepairStatus()); + eamEquipment.setMaintenanceStatus(extend.getMaintenanceStatus()); + } + try { + String json = objectMapper.writeValueAsString(eamEquipment); + JSONObject item = JSONObject.parseObject(json, Feature.OrderedField); + translateDictTextUtils.translateField("createBy", eamEquipment.getCreateBy(), item, "sys_user,realname,username"); + translateDictTextUtils.translateField("updateBy", eamEquipment.getUpdateBy(), item, "sys_user,realname,username"); + translateDictTextUtils.translateField("technologyStatus", eamEquipment.getTechnologyStatus(), item, "technology_status"); + translateDictTextUtils.translateField("orgId", eamEquipment.getOrgId(), item, "mdc_production,production_name,id"); + translateDictTextUtils.translateField("equipmentManager", eamEquipment.getEquipmentManager(), item, "sys_user,realname,username"); + translateDictTextUtils.translateField("equipmentCategory", eamEquipment.getEquipmentCategory(), item, "equipment_category"); + translateDictTextUtils.translateField("assetStatus", eamEquipment.getAssetStatus(), item, "asset_status"); + translateDictTextUtils.translateField("repairStatus", eamEquipment.getRepairStatus(), item, "equipment_repair_status"); + translateDictTextUtils.translateField("maintenanceStatus", eamEquipment.getMaintenanceStatus(), item, "equipment_maintenance_status"); + return Result.OK(item); + } catch (JsonProcessingException e) { + return Result.error("鏁版嵁杞瘧澶辫触锛�"); + } } /** @@ -187,6 +225,8 @@ params.setTitleRows(0); params.setHeadRows(1); params.setNeedSave(true); + params.setStartSheetIndex(0); + params.setSheetNum(1); try { List<EamEquipment> list = ExcelImportUtil.importExcel(file.getInputStream(), EamEquipment.class, params); //update-begin-author:taoyan date:20190528 for:鎵归噺鎻掑叆鏁版嵁 @@ -207,10 +247,10 @@ sb.append(String.format("璁惧缂栫爜[%s]浣跨敤杞﹂棿鎴栬澶囩鐞嗗憳涓虹┖锛屾棤娉曞鍏n\n", eamEquipment.getEquipmentCode())); continue; } - if (eamEquipment.getAcceptanceCheckDate() == null) { - sb.append(String.format("璁惧缂栫爜[%s]楠屾敹涓虹┖锛屾棤娉曞鍏n\r", eamEquipment.getEquipmentCode())); - continue; - } +// if (eamEquipment.getAcceptanceCheckDate() == null) { +// sb.append(String.format("璁惧缂栫爜[%s]楠屾敹涓虹┖锛屾棤娉曞鍏n\r", eamEquipment.getEquipmentCode())); +// continue; +// } if (StringUtils.isBlank(eamEquipment.getTechnologyStatus())) { sb.append(String.format("璁惧缂栫爜[%s]鎶�鏈姸鎬佷负绌猴紝鏃犳硶瀵煎叆\n\r", eamEquipment.getEquipmentCode())); continue; @@ -220,6 +260,9 @@ sb.append(String.format("璁惧缂栫爜[%s]宸插瓨鍦紝鏃犳硶閲嶅瀵煎叆\n\r", eamEquipment.getEquipmentCode())); continue; } + if (!CommonConstant.DEFAULT_1.equals(eamEquipment.getMdcFlag())) { + eamEquipment.setMdcFlag(CommonConstant.DEFAULT_0); + } EamEquipment equipment = eamEquipmentService.saveEquipment(eamEquipment); if (equipment == null) { //淇濆瓨澶辫触锛岃烦杩囨湰娆″惊鐜� diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentFaultReasonController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentFaultReasonController.java index 6680dbb..6b23d3d 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentFaultReasonController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentFaultReasonController.java @@ -22,8 +22,9 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Arrays; +import java.util.List; - /** +/** * @Description: 璁惧鏁呴殰鍘熷洜缁存姢 * @Author: jeecg-boot * @Date: 2025-03-19 @@ -58,6 +59,11 @@ queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0); Page<EamEquipmentFaultReason> page = new Page<EamEquipmentFaultReason>(pageNo, pageSize); IPage<EamEquipmentFaultReason> pageList = eamEquipmentFaultReasonService.page(page, queryWrapper); + List<EamEquipmentFaultReason> records = pageList.getRecords(); + records.forEach(r ->{ + r.setText(r.getFaultName()); + r.setValue(r.getId()); + }); return Result.OK(pageList); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentHistoryLogController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentHistoryLogController.java index 1298c93..6b1f782 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentHistoryLogController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentHistoryLogController.java @@ -1,26 +1,44 @@ package org.jeecg.modules.eam.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.modules.eam.entity.EamEquipmentHistoryLog; +import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrder; import org.jeecg.modules.eam.service.IEamEquipmentHistoryLogService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; - /** +/** * @Description: 璁惧灞ュ巻 * @Author: jeecg-boot - * @Date: 2025-03-19 + * @Date: 2025-03-19 * @Version: V1.0 */ @Slf4j -@Api(tags="璁惧灞ュ巻") +@Api(tags = "璁惧灞ュ巻") @RestController @RequestMapping("/eam/equipmentHistoryLog") public class EamEquipmentHistoryLogController extends JeecgController<EamEquipmentHistoryLog, IEamEquipmentHistoryLogService> { - @Autowired - private IEamEquipmentHistoryLogService eamEquipmentHistoryLogService; + @Autowired + private IEamEquipmentHistoryLogService eamEquipmentHistoryLogService; + + @ApiOperation(value = "璁惧灞ュ巻-鑾峰彇璁惧鏈�鏂板饱鍘嗕俊鎭�", notes = "璁惧灞ュ巻-鑾峰彇璁惧鏈�鏂板饱鍘嗕俊鎭�") + @GetMapping(value = "/list") + public Result<?> selectEquipmentHistoryLog(@RequestParam("equipmentId") String equipmentId, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { + Page<EamEquipmentHistoryLog> page = new Page<>(pageNo, pageSize); + LambdaQueryWrapper<EamEquipmentHistoryLog> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamEquipmentHistoryLog::getEquipmentId, equipmentId); + queryWrapper.orderByDesc(EamEquipmentHistoryLog::getCreateTime); + Page<EamEquipmentHistoryLog> resultPage = eamEquipmentHistoryLogService.page(page, queryWrapper); + return Result.ok(resultPage); + } } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java index 428905e..ea4d9df 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java @@ -1,21 +1,30 @@ package org.jeecg.modules.eam.controller; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.parser.Feature; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; -import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.util.TranslateDictTextUtils; import org.jeecg.modules.eam.constant.BusinessCodeConst; +import org.jeecg.modules.eam.constant.InspectionStatus; import org.jeecg.modules.eam.constant.OrderCreationMethodEnum; import org.jeecg.modules.eam.entity.EamInspectionOrder; +import org.jeecg.modules.eam.entity.EamInspectionOrderDetail; +import org.jeecg.modules.eam.request.EamInspectionBatchApprovalRequest; +import org.jeecg.modules.eam.request.EamInspectionOrderQuery; import org.jeecg.modules.eam.request.EamInspectionOrderRequest; +import org.jeecg.modules.eam.service.IEamInspectionOrderDetailService; import org.jeecg.modules.eam.service.IEamInspectionOrderService; -import org.jeecg.modules.eam.service.IEamMaintenanceStandardService; +import org.jeecg.modules.flowable.domain.vo.WorkTaskDataVo; import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -24,195 +33,282 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Arrays; +import java.util.List; - /** +/** * @Description: 鐐规宸ュ崟 * @Author: jeecg-boot - * @Date: 2025-04-02 + * @Date: 2025-04-02 * @Version: V1.0 */ -@Api(tags="鐐规宸ュ崟") +@Api(tags = "鐐规宸ュ崟") @RestController @RequestMapping("/eam/eamInspectionOrder") @Slf4j public class EamInspectionOrderController extends JeecgController<EamInspectionOrder, IEamInspectionOrderService> { - @Autowired - private IEamInspectionOrderService eamInspectionOrderService; - @Autowired - private ISysBusinessCodeRuleService businessCodeRuleService; - @Autowired - private IEamMaintenanceStandardService eamMaintenanceStandardService; - /** - * 鍒嗛〉鍒楄〃鏌ヨ - * - * @param eamInspectionOrder - * @param pageNo - * @param pageSize - * @param req - * @return - */ - //@AutoLog(value = "鐐规宸ュ崟-鍒嗛〉鍒楄〃鏌ヨ") - @ApiOperation(value="鐐规宸ュ崟-鍒嗛〉鍒楄〃鏌ヨ", notes="鐐规宸ュ崟-鍒嗛〉鍒楄〃鏌ヨ") - @GetMapping(value = "/list") - public Result<IPage<EamInspectionOrder>> queryPageList(EamInspectionOrder eamInspectionOrder, - @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, - @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, - HttpServletRequest req) { - QueryWrapper<EamInspectionOrder> queryWrapper = QueryGenerator.initQueryWrapper(eamInspectionOrder, req.getParameterMap()); - Page<EamInspectionOrder> page = new Page<EamInspectionOrder>(pageNo, pageSize); - IPage<EamInspectionOrder> pageList = eamInspectionOrderService.page(page, queryWrapper); - return Result.OK(pageList); - } - - /** - * 鏌ヨ鐐规宸ュ崟鍩烘湰淇℃伅 - * @param id - * @return - */ - @ApiOperation(value = "鏌ヨ鐐规宸ュ崟鍩烘湰淇℃伅", notes = "鏌ヨ鐐规宸ュ崟鍩烘湰淇℃伅") - @GetMapping(value = "/selectVoById") - public Result<?> selectVoById(@RequestParam(name="id") String id){ - return eamInspectionOrderService.selectVoById(id); - } - - - /** - * 娣诲姞 - * - * @param eamInspectionOrderRequest - * @return - */ - @AutoLog(value = "鐐规宸ュ崟-娣诲姞") - @ApiOperation(value="鐐规宸ュ崟-娣诲姞", notes="鐐规宸ュ崟-娣诲姞") - //@RequiresPermissions("org.jeecg.modules:鐐规宸ュ崟:add") - @PostMapping(value = "/add") - public Result<String> add(@RequestBody EamInspectionOrderRequest eamInspectionOrderRequest) { - String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.INSPECTION_ORDER_CODE_RULE); - eamInspectionOrderRequest.setOrderNum(codeSeq); - eamInspectionOrderRequest.setCreationMethod(String.valueOf(OrderCreationMethodEnum.AUTO)); - eamInspectionOrderService.addInspectionOrder(eamInspectionOrderRequest); - return Result.OK("娣诲姞鎴愬姛锛�"); - } - - /** - * 缂栬緫 - * - * @param eamInspectionOrderRequest - * @return - */ - @AutoLog(value = "鐐规宸ュ崟-缂栬緫") - @ApiOperation(value="鐐规宸ュ崟-缂栬緫", notes="鐐规宸ュ崟-缂栬緫") - //@RequiresPermissions("org.jeecg.modules:鐐规宸ュ崟:edit") - @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) - public Result<String> edit(@RequestBody EamInspectionOrderRequest eamInspectionOrderRequest) { - eamInspectionOrderService.editInspectionOrder(eamInspectionOrderRequest); - return Result.OK("缂栬緫鎴愬姛!"); - } - - /** - * 棰嗗彇鐐规宸ュ崟 - * @param id - * @return - */ - @AutoLog(value = "鐐规宸ュ崟-棰嗗彇鐐规宸ュ崟") - @ApiOperation(value="鐐规宸ュ崟-棰嗗彇鐐规宸ュ崟", notes="鐐规宸ュ崟-棰嗗彇鐐规宸ュ崟") - @GetMapping(value = "/receiveInspectionOrder") - public Result<String> receiveInspectionOrder(@RequestParam(name="id") String id) { - eamInspectionOrderService.takeInspectionOrder(id); - return Result.OK("棰嗗彇鎴愬姛"); - } - - /** - * 浣滃簾鐐规宸ュ崟 - * @param id - * @return - */ - @AutoLog(value = "鐐规宸ュ崟-浣滃簾鐐规宸ュ崟") - @ApiOperation(value="鐐规宸ュ崟-浣滃簾鐐规宸ュ崟", notes="鐐规宸ュ崟-浣滃簾鐐规宸ュ崟") - @GetMapping(value = "/cancelInspectionOrder") - public Result<String> cancelInspectionOrder(@RequestParam(name="id") String id) { - eamInspectionOrderService.cancelInspectionOrder(id); - return Result.OK("浣滃簾鎴愬姛"); - } - - /** - * 鎵归噺浣滃簾涓庨鍙� - * @param ids - * @param type - * @return - */ - @AutoLog(value = "鐐规宸ュ崟-鎵归噺浣滃簾涓庨鍙�") - @ApiOperation(value="鐐规宸ュ崟-鎵归噺浣滃簾涓庨鍙�", notes="鐐规宸ュ崟-鎵归噺浣滃簾涓庨鍙�") - @GetMapping(value = "/cancelOrReceive") - public Result<?> cancelOrReceive(@RequestParam(name="ids") String ids, @RequestParam(name="type") String type) { - return eamInspectionOrderService.batchCancelOrTakeInspectionOrder(ids, type); - } - - /** - * 鐐规娴佺▼ - * @param eamInspectionOrderRequest - * @return - */ - @AutoLog(value = "鐐规娴佺▼") - @ApiOperation(value="鐐规宸ュ崟-鐐规娴佺▼", notes="鐐规宸ュ崟-鐐规娴佺▼") - @PostMapping("/approval") - public Result<?> approval(@RequestBody EamInspectionOrderRequest eamInspectionOrderRequest) { - return eamInspectionOrderService.inspectionProcess(eamInspectionOrderRequest); - } - - /** - * 閫氳繃id鍒犻櫎 - * - * @param id - * @return - */ - @AutoLog(value = "鐐规宸ュ崟-閫氳繃id鍒犻櫎") - @ApiOperation(value="鐐规宸ュ崟-閫氳繃id鍒犻櫎", notes="鐐规宸ュ崟-閫氳繃id鍒犻櫎") - //@RequiresPermissions("org.jeecg.modules:鐐规宸ュ崟:delete") - @DeleteMapping(value = "/delete") - public Result<String> delete(@RequestParam(name="id",required=true) String id) { - eamInspectionOrderService.removeById(id); - return Result.OK("鍒犻櫎鎴愬姛!"); - } - - /** - * 鎵归噺鍒犻櫎 - * - * @param ids - * @return - */ - @AutoLog(value = "鐐规宸ュ崟-鎵归噺鍒犻櫎") - @ApiOperation(value="鐐规宸ュ崟-鎵归噺鍒犻櫎", notes="鐐规宸ュ崟-鎵归噺鍒犻櫎") - //@RequiresPermissions("org.jeecg.modules:鐐规宸ュ崟:deleteBatch") - @DeleteMapping(value = "/deleteBatch") - public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) { - this.eamInspectionOrderService.removeByIds(Arrays.asList(ids.split(","))); - return Result.OK("鎵归噺鍒犻櫎鎴愬姛!"); - } - - /** - * 閫氳繃id鏌ヨ - * - * @param id - * @return - */ - //@AutoLog(value = "鐐规宸ュ崟-閫氳繃id鏌ヨ") - @ApiOperation(value="鐐规宸ュ崟-閫氳繃id鏌ヨ", notes="鐐规宸ュ崟-閫氳繃id鏌ヨ") - @GetMapping(value = "/queryById") - public Result<EamInspectionOrder> queryById(@RequestParam(name="id",required=true) String id) { - EamInspectionOrder eamInspectionOrder = eamInspectionOrderService.getById(id); - if(eamInspectionOrder==null) { - return Result.error("鏈壘鍒板搴旀暟鎹�"); - } - return Result.OK(eamInspectionOrder); - } + @Autowired + private IEamInspectionOrderService eamInspectionOrderService; + @Autowired + private ISysBusinessCodeRuleService businessCodeRuleService; + @Autowired + private ObjectMapper objectMapper; + @Autowired + private TranslateDictTextUtils translateDictTextUtils; + @Autowired + private IEamInspectionOrderDetailService eamInspectionOrderDetailService; /** - * 瀵煎嚭excel - * - * @param request - * @param eamInspectionOrder - */ + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param query + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "鐐规宸ュ崟-鍒嗛〉鍒楄〃鏌ヨ") + @ApiOperation(value = "鐐规宸ュ崟-鍒嗛〉鍒楄〃鏌ヨ", notes = "鐐规宸ュ崟-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<IPage<EamInspectionOrder>> queryPageList(EamInspectionOrderQuery query, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { +// QueryWrapper<EamInspectionOrder> queryWrapper = QueryGenerator.initQueryWrapper(eamInspectionOrder, req.getParameterMap()); + Page<EamInspectionOrder> page = new Page<EamInspectionOrder>(pageNo, pageSize); + IPage<EamInspectionOrder> pageList = eamInspectionOrderService.queryPageList(page, query); + return Result.OK(pageList); + } + + /** + * 鏌ヨ鐐规宸ュ崟鍩烘湰淇℃伅 + * + * @param id + * @return + */ + @ApiOperation(value = "鏌ヨ鐐规宸ュ崟鍩烘湰淇℃伅", notes = "鏌ヨ鐐规宸ュ崟鍩烘湰淇℃伅") + @GetMapping(value = "/selectVoById") + public Result<?> selectVoById(@RequestParam(name = "id") String id) { + return eamInspectionOrderService.selectVoById(id); + } + + + /** + * 娣诲姞 + * + * @param eamInspectionOrderRequest + * @return + */ + @AutoLog(value = "鐐规宸ュ崟-娣诲姞") + @ApiOperation(value = "鐐规宸ュ崟-娣诲姞", notes = "鐐规宸ュ崟-娣诲姞") + //@RequiresPermissions("org.jeecg.modules:鐐规宸ュ崟:add") + @PostMapping(value = "/add") + public Result<String> add(@RequestBody EamInspectionOrderRequest eamInspectionOrderRequest) { + String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.INSPECTION_ORDER_CODE_RULE); + eamInspectionOrderRequest.setOrderNum(codeSeq); + eamInspectionOrderRequest.setCreationMethod(String.valueOf(OrderCreationMethodEnum.MANUAL)); + eamInspectionOrderService.addInspectionOrder(eamInspectionOrderRequest); + return Result.OK("娣诲姞鎴愬姛锛�"); + } + + /** + * 缂栬緫 + * + * @param eamInspectionOrderRequest + * @return + */ + @AutoLog(value = "鐐规宸ュ崟-缂栬緫") + @ApiOperation(value = "鐐规宸ュ崟-缂栬緫", notes = "鐐规宸ュ崟-缂栬緫") + //@RequiresPermissions("org.jeecg.modules:鐐规宸ュ崟:edit") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result<String> edit(@RequestBody EamInspectionOrderRequest eamInspectionOrderRequest) { + eamInspectionOrderService.editInspectionOrder(eamInspectionOrderRequest); + return Result.OK("缂栬緫鎴愬姛!"); + } + + /** + * 棰嗗彇鐐规宸ュ崟 + * + * @param id + * @return + */ + @AutoLog(value = "鐐规宸ュ崟-棰嗗彇鐐规宸ュ崟") + @ApiOperation(value = "鐐规宸ュ崟-棰嗗彇鐐规宸ュ崟", notes = "鐐规宸ュ崟-棰嗗彇鐐规宸ュ崟") + @GetMapping(value = "/receiveInspectionOrder") + public Result<String> receiveInspectionOrder(@RequestParam(name = "id") String id) { + eamInspectionOrderService.takeInspectionOrder(id); + return Result.OK("棰嗗彇鎴愬姛"); + } + + /** + * 浣滃簾鐐规宸ュ崟 + * + * @param id + * @return + */ + @AutoLog(value = "鐐规宸ュ崟-浣滃簾鐐规宸ュ崟") + @ApiOperation(value = "鐐规宸ュ崟-浣滃簾鐐规宸ュ崟", notes = "鐐规宸ュ崟-浣滃簾鐐规宸ュ崟") + @GetMapping(value = "/cancelInspectionOrder") + public Result<String> cancelInspectionOrder(@RequestParam(name = "id") String id) { + eamInspectionOrderService.cancelInspectionOrder(id); + return Result.OK("浣滃簾鎴愬姛"); + } + + /** + * 鎵归噺浣滃簾涓庨鍙� + * + * @param ids + * @param type + * @return + */ + @AutoLog(value = "鐐规宸ュ崟-鎵归噺浣滃簾涓庨鍙�") + @ApiOperation(value = "鐐规宸ュ崟-鎵归噺浣滃簾涓庨鍙�", notes = "鐐规宸ュ崟-鎵归噺浣滃簾涓庨鍙�") + @GetMapping(value = "/cancelOrReceive") + public Result<?> cancelOrReceive(@RequestParam(name = "ids") String ids, @RequestParam(name = "type") String type) { + return eamInspectionOrderService.batchCancelOrTakeInspectionOrder(ids, type); + } + + /** + * 鐐规娴佺▼ + * + * @param eamInspectionOrderRequest + * @return + */ + @AutoLog(value = "鐐规娴佺▼") + @ApiOperation(value = "鐐规宸ュ崟-鐐规娴佺▼", notes = "鐐规宸ュ崟-鐐规娴佺▼") + @PostMapping("/approval") + public Result<?> approval(@RequestBody EamInspectionOrderRequest eamInspectionOrderRequest) { + eamInspectionOrderService.inspectionProcess(eamInspectionOrderRequest); + return Result.OK("鎿嶄綔鎴愬姛"); + } + + @ApiOperation(value = "鐐规宸ュ崟-鎵归噺瀹℃壒娴佺▼", notes = "鐐规宸ュ崟-鎵归噺瀹℃壒娴佺▼") + @PostMapping("/batchApproval") + public Result<?> batchApproval(@RequestBody EamInspectionBatchApprovalRequest request) { + if(request == null || CollectionUtil.isEmpty(request.getTaskList())) { + return Result.error("娌℃湁闇�瑕佸鎵圭殑鏁版嵁锛�"); + } + int n = 0; + StringBuilder errorMsg = new StringBuilder(); + List<WorkTaskDataVo> tastList = request.getTaskList(); + for(WorkTaskDataVo workTaskDataVo : tastList) { + EamInspectionOrderRequest orderRequest = new EamInspectionOrderRequest(); + EamInspectionOrder order = eamInspectionOrderService.getById(workTaskDataVo.getDataId()); + if(order == null) { + errorMsg.append("宸ュ崟ID锛�"); + errorMsg.append(workTaskDataVo.getDataId()); + errorMsg.append(",涓嶅瓨鍦ㄦ垨宸茶鍒犻櫎!\n"); + continue; + } + if(!InspectionStatus.WAIT_CONFIRM.name().equals(order.getInspectionStatus())) { + errorMsg.append("宸ュ崟鍙凤細"); + errorMsg.append(order.getOrderNum()); + errorMsg.append(",鐘舵�佹棤娉曟壒閲忓鎵�!\n"); + continue; + } + List<EamInspectionOrderDetail> tableDetailList = eamInspectionOrderDetailService.queryListByOrderId(order.getId()); + try { + orderRequest.setId(order.getId()); + orderRequest.setEquipmentId(order.getEquipmentId()); + //瀹℃壒淇℃伅 + orderRequest.setConfirmComment(request.getConfirmComment()); + orderRequest.setConfirmDealType(request.getConfirmDealType()); + //浠诲姟淇℃伅 + orderRequest.setDataId(workTaskDataVo.getDataId()); + orderRequest.setTaskId(workTaskDataVo.getId()); + orderRequest.setUserId(workTaskDataVo.getAssignee()); + orderRequest.setInstanceId(workTaskDataVo.getProcInstId()); + orderRequest.setValues(workTaskDataVo.getVariables()); + orderRequest.setTableDetailList(tableDetailList); + EamInspectionOrder result = eamInspectionOrderService.inspectionProcess(orderRequest); + if(result == null) { + errorMsg.append("宸ュ崟鍙凤細"); + errorMsg.append(order.getOrderNum()); + errorMsg.append(",瀹℃壒澶辫触!\n"); + continue; + } + n++; + + } catch (Exception e) { + errorMsg.append("宸ュ崟鍙凤細"); + errorMsg.append(order.getOrderNum()); + errorMsg.append(",瀹℃壒澶辫触,閿欒鍘熷洜:"); + errorMsg.append(e.getMessage() + "\n"); + } + + } + if(n > 0) { + String message = "鎴愬姛瀹℃壒閫氳繃" + n + "鏉¤褰曪紒\n" + errorMsg; + return Result.OK(message); + } + return Result.error(errorMsg.toString()); + } + + /** + * 閫氳繃id鍒犻櫎 + * + * @param id + * @return + */ + @AutoLog(value = "鐐规宸ュ崟-閫氳繃id鍒犻櫎") + @ApiOperation(value = "鐐规宸ュ崟-閫氳繃id鍒犻櫎", notes = "鐐规宸ュ崟-閫氳繃id鍒犻櫎") + //@RequiresPermissions("org.jeecg.modules:鐐规宸ュ崟:delete") + @DeleteMapping(value = "/delete") + public Result<String> delete(@RequestParam(name = "id", required = true) String id) { + eamInspectionOrderService.removeById(id); + return Result.OK("鍒犻櫎鎴愬姛!"); + } + + /** + * 鎵归噺鍒犻櫎 + * + * @param ids + * @return + */ + @AutoLog(value = "鐐规宸ュ崟-鎵归噺鍒犻櫎") + @ApiOperation(value = "鐐规宸ュ崟-鎵归噺鍒犻櫎", notes = "鐐规宸ュ崟-鎵归噺鍒犻櫎") + //@RequiresPermissions("org.jeecg.modules:鐐规宸ュ崟:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { + this.eamInspectionOrderService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("鎵归噺鍒犻櫎鎴愬姛!"); + } + + /** + * 閫氳繃id鏌ヨ + * + * @param id + * @return + */ + //@AutoLog(value = "鐐规宸ュ崟-閫氳繃id鏌ヨ") + @ApiOperation(value = "鐐规宸ュ崟-閫氳繃id鏌ヨ", notes = "鐐规宸ュ崟-閫氳繃id鏌ヨ") + @GetMapping(value = "/queryById") + public Result<?> queryById(@RequestParam(name = "id", required = true) String id) { + EamInspectionOrder eamInspectionOrder = eamInspectionOrderService.getById(id); + if (eamInspectionOrder == null) { + return Result.error("鏈壘鍒板搴旀暟鎹�"); + } + try { + String json = objectMapper.writeValueAsString(eamInspectionOrder); + JSONObject item = JSONObject.parseObject(json, Feature.OrderedField); + translateDictTextUtils.translateField("createBy", eamInspectionOrder.getCreateBy(), item, "sys_user,realname,username"); + translateDictTextUtils.translateField("standardId", eamInspectionOrder.getStandardId(), item, "eam_maintenance_standard,standard_name,id"); + translateDictTextUtils.translateField("operator", eamInspectionOrder.getOperator(), item, "sys_user,realname,username"); + translateDictTextUtils.translateField("creationMethod", eamInspectionOrder.getCreationMethod(), item, "order_creation_method"); + translateDictTextUtils.translateField("inspectionStatus", eamInspectionOrder.getInspectionStatus(), item, "inspection_status"); + translateDictTextUtils.translateField("confirmUser", eamInspectionOrder.getConfirmUser(), item, "sys_user,realname,username"); + translateDictTextUtils.translateField("confirmDealType", eamInspectionOrder.getConfirmDealType(), item, "approved_rejected"); + return Result.OK(item); + } catch (JsonProcessingException e) { + return Result.error("鏁版嵁杞瘧澶辫触锛�"); + } + } + + /** + * 瀵煎嚭excel + * + * @param request + * @param eamInspectionOrder + */ //@RequiresPermissions("org.jeecg.modules:鐐规宸ュ崟:exportXls") @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, EamInspectionOrder eamInspectionOrder) { @@ -220,12 +316,12 @@ } /** - * 閫氳繃excel瀵煎叆鏁版嵁 - * - * @param request - * @param response - * @return - */ + * 閫氳繃excel瀵煎叆鏁版嵁 + * + * @param request + * @param response + * @return + */ //@RequiresPermissions("鐐规宸ュ崟:importExcel") @RequestMapping(value = "/importExcel", method = RequestMethod.POST) public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java index 4623e8a..35b2997 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java @@ -168,8 +168,10 @@ @ApiOperation(value = "淇濆吇鏍囧噯-鏌ヨ鏍囧噯鍒楄〃-鍓嶇灞曠ず璇ョ敤鎴锋嫢鏈夌殑鏍囧噯", notes = "淇濆吇鏍囧噯-鏌ヨ鏍囧噯鍒楄〃-鍓嶇灞曠ず璇ョ敤鎴锋嫢鏈夌殑鏍囧噯") @GetMapping(value = "/listByUser") public Result<?> listByUser(@RequestParam(name = "keyword", required = false) String keyword, + @RequestParam(name = "equipmentId", required = false) String equipmentId, + @RequestParam(value = "pageSize", required = false, defaultValue = "20") Integer pageSize, @RequestParam(name = "maintenanceCategory", required = false) String maintenanceCategory) { - List<EamMaintenanceStandard> list = eamMaintenanceStandardService.queryListBykeywordAndCategory(keyword, maintenanceCategory); + List<EamMaintenanceStandard> list = eamMaintenanceStandardService.queryListByKeywordAndCategory(keyword, equipmentId, pageSize, maintenanceCategory); return Result.OK(list); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairOrderController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairOrderController.java index 51e38a0..b45298b 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairOrderController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairOrderController.java @@ -1,32 +1,31 @@ package org.jeecg.modules.eam.controller; -import java.util.Arrays; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.parser.Feature; +import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; -import org.jeecg.common.constant.CommonConstant; -import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.TranslateDictTextUtils; import org.jeecg.modules.eam.constant.BusinessCodeConst; -import org.jeecg.modules.eam.constant.ReportRepairEnum; import org.jeecg.modules.eam.entity.EamRepairOrder; -import org.jeecg.modules.eam.entity.EamReportRepair; import org.jeecg.modules.eam.request.EamRepairOrderQuery; +import org.jeecg.modules.eam.request.EamRepairOrderRequest; +import org.jeecg.modules.eam.request.EamRepairOrderResponse; +import org.jeecg.modules.eam.request.EamReportRepairQuery; import org.jeecg.modules.eam.service.IEamRepairOrderService; -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.modules.eam.service.IEamReportRepairService; -import org.jeecg.modules.flowable.apithird.service.FlowCommonService; -import org.jeecg.modules.mdc.util.DateUtils; -import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; -import org.springframework.beans.factory.annotation.Autowired; +import org.jeecg.modules.system.entity.SysUser; +import org.jeecg.modules.system.service.ISysUserService; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import io.swagger.annotations.Api; @@ -45,6 +44,15 @@ @Resource private IEamRepairOrderService eamRepairOrderService; + + @Resource + private ObjectMapper objectMapper; + + @Resource + private TranslateDictTextUtils translateDictTextUtils; + + @Resource + private ISysUserService sysUserService; /** * 鍒嗛〉鍒楄〃鏌ヨ @@ -77,23 +85,68 @@ if (StringUtils.isBlank(eamRepairOrder.getReportId())) { return Result.error("棰嗗彇澶辫触,璇烽�夋嫨缁翠慨璁板綍锛�"); } + // 鏍¢獙棰嗗彇鏉冮檺 + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (!BusinessCodeConst.PCR0002.equals(user.getPost())) { + return Result.error("棰嗗彇澶辫触,娌℃湁棰嗗彇鏉冮檺锛�"); + } eamRepairOrderService.saveRepairOrder(eamRepairOrder); return Result.OK("娣诲姞鎴愬姛锛�"); } /** - * 鎵ц缁翠慨 + * 鎸囨淳 * - * @param eamRepairOrder + * @param * @return */ - @AutoLog(value = "缁翠慨宸ュ崟-鎵ц") - @ApiOperation(value = "缁翠慨宸ュ崟-鎵ц", notes = "缁翠慨宸ュ崟-鎵ц") - @PostMapping(value = "/perform") - public Result<?> perform(@RequestBody EamRepairOrder eamRepairOrder) { + @AutoLog(value = "鏁呴殰鎶ヤ慨-鎸囨淳") + @ApiOperation(value = "鏁呴殰鎶ヤ慨-鎸囨淳", notes = "鏁呴殰鎶ヤ慨-鎸囨淳") + @GetMapping(value = "/assign") + public Result<?> assign(@RequestBody EamReportRepairQuery eamReportRepairQuery) { + if (StringUtils.isBlank(eamReportRepairQuery.getRepairer())) { + return Result.error("鎸囨淳澶辫触,璇烽�夋嫨缁翠慨宸ワ紒"); + } + // 鏍¢獙鎸囨淳鏉冮檺 + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (!BusinessCodeConst.PCR0004.equals(user.getPost())) { + return Result.error("鎸囨淳澶辫触,娌℃湁鎸囨淳鏉冮檺锛�"); + } + // 鏍¢獙缁翠慨宸ユ潈闄� + SysUser sysUser = sysUserService.getUserByName(eamReportRepairQuery.getRepairer()); + if (sysUser == null) { + return Result.error("鎸囨淳澶辫触,鏈壘鍒版缁翠慨宸ョ敤鎴凤紒"); + } + if (!BusinessCodeConst.PCR0002.equals(sysUser.getPost())) { + return Result.error("鎸囨淳澶辫触,姝ょ敤鎴蜂笉鏄淮淇伐锛�"); + } + eamRepairOrderService.assign(eamReportRepairQuery); -// eamRepairOrderService.updateById(eamRepairOrder); - return Result.OK("鎵ц鎴愬姛!"); + return Result.OK("鎸囨淳鎴愬姛锛�"); + } + + /** + * 鎴戠殑寰呭姙 鎵ц/瀹℃壒 + * + * @param request + * @return + */ + @AutoLog(value = "缁翠慨宸ュ崟-鎵ц/瀹℃壒") + @ApiOperation(value = "缁翠慨宸ュ崟-鎵ц/瀹℃壒", notes = "缁翠慨宸ュ崟-鎵ц/瀹℃壒") + @PostMapping(value = "/perform") + public Result<?> perform(@RequestBody EamRepairOrderRequest request) { + if (request == null) { + return Result.error("瀹℃壒鐨勫璞′笉鑳戒负绌猴紒"); + } + // 妫�鏌ヨ姹傚弬鏁� + if (StrUtil.isBlank(request.getTaskId()) || StrUtil.isBlank(request.getDataId()) || StrUtil.isBlank(request.getInstanceId())) { + return Result.error("瀹℃壒浠诲姟閿欒鎴栦笉瀛樺湪锛�"); + } + EamRepairOrder b = eamRepairOrderService.perform(request); + if(b == null) { + return Result.error("鎿嶄綔澶辫触锛�"); + } + return Result.OK("鎿嶄綔鎴愬姛!"); } /** @@ -106,8 +159,24 @@ @ApiOperation(value = "缁翠慨宸ュ崟-閫氳繃id鏌ヨ", notes = "缁翠慨宸ュ崟-閫氳繃id鏌ヨ") @GetMapping(value = "/queryById") public Result<?> queryById(@RequestParam(name = "id", required = true) String id) { - EamRepairOrder eamRepairOrder = eamRepairOrderService.getById(id); - return Result.OK(eamRepairOrder); + EamRepairOrderResponse eamRepairOrder = eamRepairOrderService.findById(id); + if (eamRepairOrder == null) { + return Result.error("鏈壘鍒板搴旀暟鎹紒"); + } + try { + String json = objectMapper.writeValueAsString(eamRepairOrder); + JSONObject item = JSONObject.parseObject(json, Feature.OrderedField); + translateDictTextUtils.translateField("createBy", eamRepairOrder.getCreateBy(), item, "sys_user,realname,username"); + translateDictTextUtils.translateField("breakdownFlag", eamRepairOrder.getBreakdownFlag(), item, "breakdown_flag"); + translateDictTextUtils.translateField("faultType", eamRepairOrder.getFaultType(), item, "fault_reason_category"); + translateDictTextUtils.translateField("reportStatus", eamRepairOrder.getReportStatus(), item, "report_repair_status"); + translateDictTextUtils.translateField("equipmentId", eamRepairOrder.getEquipmentId(), item, "eam_equipment,id,equipment_code"); + translateDictTextUtils.translateField("repairStatus", eamRepairOrder.getRepairStatus(), item, "report_repair_status"); + translateDictTextUtils.translateField("repairer", eamRepairOrder.getRepairer(), item, "sys_user,username,realname"); + return Result.OK(item); + } catch (Exception e) { + return Result.error("鏁版嵁杞瘧澶辫触锛�"); + } } /** diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportRepairController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportRepairController.java index ffdb07d..02044ac 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportRepairController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportRepairController.java @@ -4,13 +4,22 @@ import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.parser.Feature; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.api.vo.FileUploadResult; import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.TranslateDictTextUtils; +import org.jeecg.modules.eam.constant.BusinessCodeConst; import org.jeecg.modules.eam.constant.ReportRepairEnum; import org.jeecg.modules.eam.entity.EamReportRepair; import org.jeecg.modules.eam.request.EamReportRepairQuery; @@ -21,6 +30,8 @@ import lombok.extern.slf4j.Slf4j; import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.modules.system.entity.SysUser; +import org.jeecg.modules.system.service.ISysUserService; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import io.swagger.annotations.Api; @@ -39,6 +50,12 @@ @Resource private IEamReportRepairService eamReportRepairService; + + @Resource + private ObjectMapper objectMapper; + + @Resource + private TranslateDictTextUtils translateDictTextUtils; /** * 鍒嗛〉鍒楄〃鏌ヨ @@ -69,9 +86,10 @@ @ApiOperation(value = "鏁呴殰鎶ヤ慨-娣诲姞", notes = "鏁呴殰鎶ヤ慨-娣诲姞") @PostMapping(value = "/add") public Result<?> add(@RequestBody EamReportRepair eamReportRepair) { - eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_REPAIR.name()); - eamReportRepair.setDelFlag(CommonConstant.DEL_FLAG_0); - eamReportRepairService.save(eamReportRepair); + EamReportRepair b = eamReportRepairService.add(eamReportRepair); + if(b == null) { + return Result.error("娣诲姞澶辫触锛�"); + } return Result.OK("娣诲姞鎴愬姛锛�"); } @@ -85,7 +103,10 @@ @ApiOperation(value = "鏁呴殰鎶ヤ慨-缂栬緫", notes = "鏁呴殰鎶ヤ慨-缂栬緫") @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) public Result<?> edit(@RequestBody EamReportRepair eamReportRepair) { - eamReportRepairService.updateById(eamReportRepair); + boolean b = eamReportRepairService.edit(eamReportRepair); + if(!b) { + return Result.error("缂栬緫澶辫触锛�"); + } return Result.OK("缂栬緫鎴愬姛!"); } @@ -99,7 +120,7 @@ @ApiOperation(value = "鏁呴殰鎶ヤ慨-浣滃簾", notes = "鏁呴殰鎶ヤ慨-浣滃簾") @DeleteMapping(value = "/abolish") public Result<?> abolish(@RequestParam(name = "id", required = true) String id) { - eamReportRepairService.update(new LambdaUpdateWrapper<EamReportRepair>().set(EamReportRepair::getReportStatus, ReportRepairEnum.ABOLISH.name()).eq(EamReportRepair::getId, id)); + eamReportRepairService.update(new LambdaUpdateWrapper<EamReportRepair>().set(EamReportRepair::getReportStatus, ReportRepairEnum.ABOLISH.name()).eq(EamReportRepair::getId, id).eq(EamReportRepair::getReportStatus, ReportRepairEnum.WAIT_REPAIR.name())); return Result.OK("浣滃簾鎴愬姛!"); } @@ -114,7 +135,11 @@ @DeleteMapping(value = "/abolishBatch") public Result<?> abolishBatch(@RequestParam(name = "ids", required = true) String ids) { List<EamReportRepair> eamReportRepairs = eamReportRepairService.listByIds(Arrays.asList(ids.split(","))); - eamReportRepairs.forEach(eamReportRepair -> eamReportRepair.setReportStatus(ReportRepairEnum.ABOLISH.name())); + eamReportRepairs.forEach(eamReportRepair -> { + if(ReportRepairEnum.ABOLISH.name().equals(eamReportRepair.getReportStatus())) { + eamReportRepair.setReportStatus(ReportRepairEnum.ABOLISH.name()); + } + }); this.eamReportRepairService.updateBatchById(eamReportRepairs); return Result.OK("鎵归噺浣滃簾鎴愬姛锛�"); } @@ -130,7 +155,21 @@ @GetMapping(value = "/queryById") public Result<?> queryById(@RequestParam(name = "id", required = true) String id) { EamReportRepair eamReportRepair = eamReportRepairService.getById(id); - return Result.OK(eamReportRepair); + if (eamReportRepair == null) { + return Result.error("鏈壘鍒板搴旀暟鎹紒"); + } + try { + String json = objectMapper.writeValueAsString(eamReportRepair); + JSONObject item = JSONObject.parseObject(json, Feature.OrderedField); + translateDictTextUtils.translateField("createBy", eamReportRepair.getCreateBy(), item, "sys_user,realname,username"); + translateDictTextUtils.translateField("breakdownFlag", eamReportRepair.getBreakdownFlag(), item, "breakdown_flag"); + translateDictTextUtils.translateField("faultType", eamReportRepair.getFaultType(), item, "fault_reason_category"); + translateDictTextUtils.translateField("reportStatus", eamReportRepair.getReportStatus(), item, "report_repair_status"); + translateDictTextUtils.translateField("equipmentId", eamReportRepair.getEquipmentId(), item, "eam_equipment,id,equipment_code"); + return Result.OK(item); + } catch (Exception e) { + return Result.error("鏁版嵁杞瘧澶辫触锛�"); + } } /** diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSysFilesController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSysFilesController.java index d4c046a..f05ee26 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSysFilesController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSysFilesController.java @@ -22,8 +22,10 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Map; /** * @Description: 璁惧闄勪欢绠$悊 @@ -140,6 +142,13 @@ return Result.OK(eamSysFiles); } + /** + * 鍗曚釜鏂囦欢涓婁紶 + * @param request + * @param response + * @return + */ + @ApiOperation(value = "璁惧闄勪欢绠$悊-鍗曚釜鏂囦欢涓婁紶", notes = "璁惧闄勪欢绠$悊-鍗曚釜鏂囦欢涓婁紶") @PostMapping("/upload") public Result<?> uploadFile(HttpServletRequest request, HttpServletResponse response) { // 杞崲鎴愬閮ㄥ垎request @@ -150,6 +159,14 @@ if(sysUpload == null) { return Result.error("鎿嶄綔澶辫触: 涓婁紶缁撴灉涓虹┖锛�"); } + EamSysFiles sysFiles = new EamSysFiles(); + sysFiles.setFileEncodeName(sysUpload.getFileEncodeName()); + sysFiles.setFileName(sysUpload.getFileName()); + sysFiles.setFileSize(sysUpload.getFileSize()); + sysFiles.setFilePath(sysUpload.getFilePath()); + sysFiles.setFileSuffix(sysUpload.getFileSuffix()); + sysFiles.setDelFlag(CommonConstant.DEL_FLAG_0); + eamSysFilesService.save(sysFiles); return Result.ok(sysUpload); } catch (Exception e) { log.error(e.getMessage(), e); @@ -158,6 +175,37 @@ } + /** + * 鎵归噺涓婁紶鎺ュ彛 + * @param request + * @param response + * @return + */ + @ApiOperation(value = "璁惧闄勪欢绠$悊-澶氫釜鏂囦欢涓婁紶", notes = "璁惧闄勪欢绠$悊-澶氫釜鏂囦欢涓婁紶") + @PostMapping("/batch_upload") + public Result<?> batchUploadFile(HttpServletRequest request, HttpServletResponse response) { + // 杞崲鎴愬閮ㄥ垎request + MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; + Map<String, MultipartFile> fileMap = multiRequest.getFileMap(); + List<FileUploadResult> resultList = new ArrayList<>(); + for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { + FileUploadResult sysUpload = eamSysFilesService.uploadFile(entity.getValue()); + if(sysUpload == null) { + continue; + } + EamSysFiles sysFiles = new EamSysFiles(); + sysFiles.setFileEncodeName(sysUpload.getFileEncodeName()); + sysFiles.setFileName(sysUpload.getFileName()); + sysFiles.setFileSize(sysUpload.getFileSize()); + sysFiles.setFilePath(sysUpload.getFilePath()); + sysFiles.setFileSuffix(sysUpload.getFileSuffix()); + sysFiles.setDelFlag(CommonConstant.DEL_FLAG_0); + eamSysFilesService.save(sysFiles); + resultList.add(sysUpload); + } + return Result.ok(resultList); + } + @GetMapping("/downloadFile") public void downloadFile(@RequestParam("id") String id, HttpServletResponse response) { eamSysFilesService.downloadFile(response, eamSysFilesService.getById(id)); diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamWeekMaintenanceOrderController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamWeekMaintenanceOrderController.java index 13b404e..5ead1e6 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamWeekMaintenanceOrderController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamWeekMaintenanceOrderController.java @@ -1,20 +1,31 @@ package org.jeecg.modules.eam.controller; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.parser.Feature; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.common.util.TranslateDictTextUtils; import org.jeecg.modules.eam.constant.BusinessCodeConst; +import org.jeecg.modules.eam.constant.OrderCreationMethodEnum; import org.jeecg.modules.eam.constant.WeekMaintenanceStatusEnum; import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrder; +import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail; +import org.jeecg.modules.eam.request.EamWeekMaintenanceBatchApprovalRequest; import org.jeecg.modules.eam.request.EamWeekMaintenanceQuery; import org.jeecg.modules.eam.request.EamWeekMaintenanceRequest; +import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderDetailService; import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderService; +import org.jeecg.modules.flowable.domain.vo.WorkTaskDataVo; import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -22,6 +33,7 @@ import javax.servlet.http.HttpServletRequest; import java.util.Arrays; import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; /** * @Description: 鍛ㄤ繚宸ュ崟 @@ -38,6 +50,12 @@ private IEamWeekMaintenanceOrderService eamWeekMaintenanceOrderService; @Autowired private ISysBusinessCodeRuleService businessCodeRuleService; + @Autowired + private ObjectMapper objectMapper; + @Autowired + private TranslateDictTextUtils translateDictTextUtils; + @Autowired + private IEamWeekMaintenanceOrderDetailService weekMaintenanceOrderDetailService; /** * 鍒嗛〉鍒楄〃鏌ヨ @@ -78,6 +96,7 @@ } String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.WEEK_MAINTENANCE_CODE_RULE); request.setOrderNum(codeSeq); + request.setCreationMethod(OrderCreationMethodEnum.MANUAL.name()); boolean b = eamWeekMaintenanceOrderService.addWeekMaintenance(request); if (!b) { return Result.error("娣诲姞澶辫触锛�"); @@ -133,10 +152,10 @@ @DeleteMapping(value = "/abolish") public Result<?> abolish(@RequestParam(name = "id", required = true) String id) { EamWeekMaintenanceOrder entity = eamWeekMaintenanceOrderService.getById(id); - if(entity == null) { + if (entity == null) { return Result.error("瑕佷綔搴熺殑鏁版嵁涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒"); } - if(!WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) { + if (!WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) { return Result.error("璇ョ姸鎬佺殑鏁版嵁涓嶅厑璁歌繘琛屼綔搴燂紒"); } entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.ABOLISH.name()); @@ -155,7 +174,7 @@ @GetMapping(value = "/collect") public Result<?> collect(@RequestParam(name = "id", required = true) String id) { boolean b = eamWeekMaintenanceOrderService.collect(id); - if(!b) { + if (!b) { Result.OK("棰嗗彇澶辫触!"); } return Result.OK("棰嗗彇鎴愬姛!"); @@ -186,14 +205,40 @@ @DeleteMapping(value = "/abolishBatch") public Result<?> abolishBatch(@RequestParam(name = "ids", required = true) String ids) { List<String> list = Arrays.asList(ids.split(",")); + AtomicInteger i = new AtomicInteger(); list.forEach(id -> { EamWeekMaintenanceOrder entity = eamWeekMaintenanceOrderService.getById(id); if (entity != null && WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) { entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.ABOLISH.name()); eamWeekMaintenanceOrderService.updateById(entity); + i.getAndIncrement(); } }); - return Result.OK("鎵归噺浣滃簾鎴愬姛锛�"); + return Result.OK("鎵归噺浣滃簾鎴愬姛 " + i.get() + " 鏉″伐鍗曪紒"); + } + + /** + * 閫氳繃id鎵归噺棰嗗彇 + * + * @param ids + * @return + */ + @AutoLog(value = "鍛ㄤ繚宸ュ崟-鎵归噺棰嗗彇") + @ApiOperation(value = "鍛ㄤ繚宸ュ崟-鎵归噺棰嗗彇", notes = "鍛ㄤ繚宸ュ崟-鎵归噺棰嗗彇") + @DeleteMapping(value = "/collectBatch") + public Result<?> collectBatch(@RequestParam(name = "ids", required = true) String ids) { + List<String> list = Arrays.asList(ids.split(",")); + AtomicInteger i = new AtomicInteger(); + list.forEach(id -> { + EamWeekMaintenanceOrder entity = eamWeekMaintenanceOrderService.getById(id); + if (entity != null && WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) { + boolean b = eamWeekMaintenanceOrderService.collect(id); + if (b) { + i.getAndIncrement(); + } + } + }); + return Result.OK("鎵归噺棰嗗彇鎴愬姛 " + i.get() + " 鏉″伐鍗曪紒"); } /** @@ -206,6 +251,122 @@ @GetMapping(value = "/queryById") public Result<?> queryById(@RequestParam(name = "id", required = true) String id) { EamWeekMaintenanceOrder eamWeekMaintenanceOrder = eamWeekMaintenanceOrderService.getById(id); - return Result.OK(eamWeekMaintenanceOrder); + if (eamWeekMaintenanceOrder == null) { + return Result.error("鏈壘鍒板搴旀暟鎹�"); + } + try { + String json = objectMapper.writeValueAsString(eamWeekMaintenanceOrder); + JSONObject item = JSONObject.parseObject(json, Feature.OrderedField); + translateDictTextUtils.translateField("equipmentId", eamWeekMaintenanceOrder.getEquipmentId(), item, "eam_equipment,equipment_code,id"); + translateDictTextUtils.translateField("standardId", eamWeekMaintenanceOrder.getStandardId(), item, "eam_maintenance_standard,standard_name,id"); + translateDictTextUtils.translateField("operator", eamWeekMaintenanceOrder.getOperator(), item, "sys_user,realname,username"); + translateDictTextUtils.translateField("creationMethod", eamWeekMaintenanceOrder.getCreationMethod(), item, "order_creation_method"); + translateDictTextUtils.translateField("maintenanceStatus", eamWeekMaintenanceOrder.getMaintenanceStatus(), item, "week_maintenance_status"); + translateDictTextUtils.translateField("confirmUser", eamWeekMaintenanceOrder.getConfirmUser(), item, "sys_user,realname,username"); + translateDictTextUtils.translateField("confirmDealType", eamWeekMaintenanceOrder.getConfirmDealType(), item, "approved_rejected"); + translateDictTextUtils.translateField("initialAcceptanceUser", eamWeekMaintenanceOrder.getInitialAcceptanceUser(), item, "sys_user,realname,username"); + translateDictTextUtils.translateField("finalAcceptanceUser", eamWeekMaintenanceOrder.getFinalAcceptanceUser(), item, "sys_user,realname,username"); + return Result.OK(item); + } catch (JsonProcessingException e) { + return Result.error("鏁版嵁杞瘧澶辫触锛�"); + } + } + + /** + * 鎴戠殑寰呭姙锛屽鎵瑰姩浣� + * + * @param request + * @return + */ + @ApiOperation(value = "鍛ㄤ繚宸ュ崟-鎵ц鎿嶄綔", notes = "鍛ㄤ繚宸ュ崟-鎵ц鎿嶄綔") + @PutMapping(value = "/approval") + public Result<?> approval(@RequestBody EamWeekMaintenanceRequest request) { + if (request == null) { + return Result.error("瀹℃壒鐨勫璞′笉鑳戒负绌猴紒"); + } + if (CollectionUtil.isEmpty(request.getTableDetailList())) { + return Result.error("淇濆吇椤逛笉鑳戒负绌猴紒"); + } + // 妫�鏌ヨ姹傚弬鏁� + if (StrUtil.isBlank(request.getTaskId()) || StrUtil.isBlank(request.getDataId()) || StrUtil.isBlank(request.getInstanceId())) { + return Result.error("瀹℃壒浠诲姟閿欒鎴栦笉瀛樺湪锛�"); + } + EamWeekMaintenanceOrder b = eamWeekMaintenanceOrderService.approval(request); + if (b == null) { + return Result.error("鎿嶄綔澶辫触锛�"); + } + return Result.ok("鎿嶄綔鎴愬姛锛�"); + } + + @ApiOperation(value = "鍛ㄤ繚宸ュ崟-鎵归噺瀹℃壒娴佺▼", notes = "鍛ㄤ繚宸ュ崟-鎵归噺瀹℃壒娴佺▼") + @PostMapping("/batchApproval") + public Result<?> batchApproval(@RequestBody EamWeekMaintenanceBatchApprovalRequest request) { + if (request == null || CollectionUtil.isEmpty(request.getTaskList())) { + return Result.error("娌℃湁闇�瑕佸鎵圭殑鏁版嵁锛�"); + } + int n = 0; + StringBuilder errorMsg = new StringBuilder(); + List<WorkTaskDataVo> tastList = request.getTaskList(); + for (WorkTaskDataVo workTaskDataVo : tastList) { + EamWeekMaintenanceRequest orderRequest = new EamWeekMaintenanceRequest(); + EamWeekMaintenanceOrder order = eamWeekMaintenanceOrderService.getById(workTaskDataVo.getDataId()); + if (order == null) { + errorMsg.append("宸ュ崟ID锛�"); + errorMsg.append(workTaskDataVo.getDataId()); + errorMsg.append(",涓嶅瓨鍦ㄦ垨宸茶鍒犻櫎!\n"); + continue; + } + if (!(WeekMaintenanceStatusEnum.WAIT_CONFIRM.name().equals(order.getMaintenanceStatus()) + || WeekMaintenanceStatusEnum.WAIT_INITIAL_ACCEPTANCE.name().equals(order.getMaintenanceStatus()) + || WeekMaintenanceStatusEnum.WAIT_FINAL_ACCEPTANCE.name().equals(order.getMaintenanceStatus()))) { + errorMsg.append("宸ュ崟鍙凤細"); + errorMsg.append(order.getOrderNum()); + errorMsg.append(",鐘舵�佹棤娉曟壒閲忓鎵�!\n"); + continue; + } + List<EamWeekMaintenanceOrderDetail> tableDetailList = weekMaintenanceOrderDetailService.queryListByOrderId(order.getId()); + try { + orderRequest.setId(order.getId()); + orderRequest.setEquipmentId(order.getEquipmentId()); + //瀹℃壒淇℃伅 + if (WeekMaintenanceStatusEnum.WAIT_CONFIRM.name().equals(order.getMaintenanceStatus())) { + orderRequest.setConfirmComment(request.getConfirmComment()); + orderRequest.setConfirmDealType(request.getConfirmDealType()); + } else if (WeekMaintenanceStatusEnum.WAIT_INITIAL_ACCEPTANCE.name().equals(order.getMaintenanceStatus())) { + orderRequest.setInitialAcceptanceComment(request.getInitialAcceptanceComment()); + orderRequest.setInitialAcceptanceFilesResult(request.getInitialAcceptanceFilesResult()); + } else if (WeekMaintenanceStatusEnum.WAIT_FINAL_ACCEPTANCE.name().equals(order.getMaintenanceStatus())) { + orderRequest.setFinalAcceptanceComment(request.getFinalAcceptanceComment()); + orderRequest.setFinalAcceptanceFilesResult(request.getFinalAcceptanceFilesResult()); + } + //浠诲姟淇℃伅 + orderRequest.setDataId(workTaskDataVo.getDataId()); + orderRequest.setTaskId(workTaskDataVo.getId()); + orderRequest.setUserId(workTaskDataVo.getAssignee()); + orderRequest.setInstanceId(workTaskDataVo.getProcInstId()); + orderRequest.setValues(workTaskDataVo.getVariables()); + orderRequest.setTableDetailList(tableDetailList); + EamWeekMaintenanceOrder result = eamWeekMaintenanceOrderService.approval(orderRequest); + if (result == null) { + errorMsg.append("宸ュ崟鍙凤細"); + errorMsg.append(order.getOrderNum()); + errorMsg.append(",瀹℃壒澶辫触!\n"); + continue; + } + n++; + + } catch (Exception e) { + errorMsg.append("宸ュ崟鍙凤細"); + errorMsg.append(order.getOrderNum()); + errorMsg.append(",瀹℃壒澶辫触,閿欒鍘熷洜:"); + errorMsg.append(e.getMessage() + "\n"); + } + + } + if (n > 0) { + String message = "鎴愬姛瀹℃壒閫氳繃" + n + "鏉¤褰曪紒\n" + errorMsg; + return Result.OK(message); + } + return Result.error(errorMsg.toString()); } } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentAttachment.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentAttachment.java new file mode 100644 index 0000000..7135feb --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentAttachment.java @@ -0,0 +1,67 @@ +package org.jeecg.modules.eam.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; +/** + * @Description: 璁惧鏂囨。鍙拌处浣跨敤 + * @Author: jeecg-boot + * @Date: 2025-04-16 + * @Version: V1.0 + */ +@Data +@TableName("eam_equipment_attachment") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="eam_equipment_attachment瀵硅薄", description="璁惧鏂囨。鍙拌处浣跨敤") +public class EamEquipmentAttachment implements Serializable { + + /**涓婚敭*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "涓婚敭") + private String id; + /**鍒涘缓浜�*/ + @ApiModelProperty(value = "鍒涘缓浜�") + private String createBy; + /**鍒涘缓鏃堕棿*/ + @ApiModelProperty(value = "鍒涘缓鏃堕棿") + private Date createTime; + /**鏇存柊浜�*/ + @ApiModelProperty(value = "鏇存柊浜�") + private String updateBy; + /**鏇存柊鏃堕棿*/ + @ApiModelProperty(value = "鏇存柊鏃堕棿") + private Date updateTime; + /**鍒犻櫎鏍囪*/ + @ApiModelProperty(value = "鍒犻櫎鏍囪") + private Integer delFlag; + /**鏂囦欢鍔犲瘑鍚�*/ + @ApiModelProperty(value = "璁惧ID") + private String equipmentId; + /**鏂囦欢鍔犲瘑鍚�*/ + @ApiModelProperty(value = "鏂囦欢鍔犲瘑鍚�") + private String fileEncodeName; + /**鏂囦欢鍚嶇О*/ + @ApiModelProperty(value = "鏂囦欢鍚嶇О") + private String fileName; + /**鏂囦欢淇濆瓨璺緞*/ + @ApiModelProperty(value = "鏂囦欢淇濆瓨璺緞") + private String filePath; + /**鏂囦欢鍚庣紑鍚�*/ + @ApiModelProperty(value = "鏂囦欢鍚庣紑鍚�") + private String fileSuffix; + /**鏂囦欢澶у皬*/ + @ApiModelProperty(value = "鏂囦欢澶у皬") + private Long fileSize; + /**鎻忚堪*/ + @ApiModelProperty(value = "鎻忚堪") + private String description; +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrderDetail.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrderDetail.java index 1759b3a..00962c2 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrderDetail.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrderDetail.java @@ -75,4 +75,12 @@ @ApiModelProperty(value = "淇濆吇瑕佹眰") private String itemDemand; + public EamInspectionOrderDetail(){} + + public EamInspectionOrderDetail(EamMaintenanceStandardDetail detail) { + this.itemCode = detail.getItemCode(); + this.itemName = detail.getItemName(); + this.itemDemand = detail.getItemDemand(); + } + } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java index 37502c6..5dabd18 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java @@ -1,6 +1,7 @@ package org.jeecg.modules.eam.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; @@ -14,81 +15,127 @@ import java.io.Serializable; import java.util.Date; + /** * @Description: 淇濆吇鏍囧噯 * @Author: jeecg-boot - * @Date: 2025-03-26 + * @Date: 2025-03-26 * @Version: V1.0 */ @Data @TableName("eam_maintenance_standard") @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) -@ApiModel(value="eam_maintenance_standard瀵硅薄", description="淇濆吇鏍囧噯") +@ApiModel(value = "eam_maintenance_standard瀵硅薄", description = "淇濆吇鏍囧噯") public class EamMaintenanceStandard implements Serializable { - /**涓婚敭*/ - @TableId(type = IdType.ASSIGN_ID) + /** + * 涓婚敭 + */ + @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "涓婚敭") - private String id; - /**鍒涘缓浜�*/ + private String id; + /** + * 鍒涘缓浜� + */ @ApiModelProperty(value = "鍒涘缓浜�") - private String createBy; - /**鍒涘缓鏃堕棿*/ + private String createBy; + /** + * 鍒涘缓鏃堕棿 + */ @ApiModelProperty(value = "鍒涘缓鏃堕棿") - private Date createTime; - /**鏇存柊浜�*/ + private Date createTime; + /** + * 鏇存柊浜� + */ @ApiModelProperty(value = "鏇存柊浜�") - private String updateBy; - /**鏇存柊鏃堕棿*/ + private String updateBy; + /** + * 鏇存柊鏃堕棿 + */ @ApiModelProperty(value = "鏇存柊鏃堕棿") - private Date updateTime; - /**鍒犻櫎鏍囪*/ + private Date updateTime; + /** + * 鍒犻櫎鏍囪 + */ @ApiModelProperty(value = "鍒犻櫎鏍囪") - private Integer delFlag; - /**鏍囧噯缂栫爜*/ + private Integer delFlag; + /** + * 鏍囧噯缂栫爜 + */ @ApiModelProperty(value = "鏍囧噯缂栫爜") - private String standardCode; - /**鏍囧噯鍚嶇О*/ + private String standardCode; + /** + * 鏍囧噯鍚嶇О + */ @ApiModelProperty(value = "鏍囧噯鍚嶇О") - private String standardName; - /**淇濆吇鍛ㄦ湡;鍗曚綅:澶�*/ + private String standardName; + /** + * 淇濆吇鍛ㄦ湡;鍗曚綅:澶� + */ @ApiModelProperty(value = "淇濆吇鍛ㄦ湡;鍗曚綅:澶�") - private Integer maintenancePeriod; - /**鍒濆鏃ユ湡 浠庡摢涓�澶╁紑濮嬭绠椾笅娆′繚鍏绘棩鏈�*/ - @ApiModelProperty(value = "鍒濆鏃ユ湡") - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") - @DateTimeFormat(pattern = "yyyy-MM-dd") - private Date initialDate; - /**淇濆吇鍒嗙被*/ + private Integer maintenancePeriod; + /** + * 鍒濆鏃ユ湡 浠庡摢涓�澶╁紑濮嬭绠椾笅娆′繚鍏绘棩鏈� + */ + @ApiModelProperty(value = "鍒濆鏃ユ湡") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date initialDate; + /** + * 淇濆吇鍒嗙被 + */ @ApiModelProperty(value = "淇濆吇鍒嗙被") - @Dict(dicCode = "maintenance_category") - private String maintenanceCategory; - /**璁惧缂栧彿*/ + @Dict(dicCode = "maintenance_category") + private String maintenanceCategory; + /** + * 璁惧缂栧彿 + */ @ApiModelProperty(value = "璁惧缂栧彿") - @Dict(dicCode = "eam_equipment, equipment_code, id") - private String equipmentId; - /**鏍囧噯鐘舵��*/ + @Dict(dicCode = "eam_equipment, equipment_code, id") + private String equipmentId; + /** + * 鏍囧噯鐘舵�� + */ @ApiModelProperty(value = "鏍囧噯鐘舵��") - @Dict(dicCode = "maintenance_standard_status") - private String standardStatus; - /**鏍囧噯鐗堟湰*/ + @Dict(dicCode = "maintenance_standard_status") + private String standardStatus; + /** + * 鏍囧噯鐗堟湰 + */ @ApiModelProperty(value = "鏍囧噯鐗堟湰") - private Integer standardVersion; - /**鏂囦欢缂栧彿*/ - @ApiModelProperty(value = "鏂囦欢缂栧彿") - private String fileCode; - /**鍙傝�冩枃浠�*/ - @ApiModelProperty(value = "鍙傝�冩枃浠�") - private String referenceFile; - /** - * 鏈�鏂扮敓鎴愬伐鍗曟椂闂� - * 涓嬩竴娆$敓鎴愭椂闂翠负姝ゆ椂闂� + 淇濆吇鍛ㄦ湡 - */ - @ApiModelProperty(value = "鏈�鏂扮敓鎴愬伐鍗曟椂闂�") - private Date lastGenerateTime; + private Integer standardVersion; + /** + * 鏂囦欢缂栧彿 + */ + @ApiModelProperty(value = "鏂囦欢缂栧彿") + private String fileCode; + /** + * 鍙傝�冩枃浠� + */ + @ApiModelProperty(value = "鍙傝�冩枃浠�") + private String referenceFile; + /** + * 鏈�鏂扮敓鎴愬伐鍗曟椂闂� + * 涓嬩竴娆$敓鎴愭椂闂翠负姝ゆ椂闂� + 淇濆吇鍛ㄦ湡 + */ + @ApiModelProperty(value = "鏈�鏂扮敓鎴愬伐鍗曟椂闂�") + private Date lastGenerateTime; - /**璁惧缂栧彿*/ - private transient String equipmentText; + //鍒楄〃灞曠ず + @TableField(exist = false) + private String equipmentCode; + @TableField(exist = false) + private String equipmentName; + @TableField(exist = false) + private String keyword; + /** + * 璁惧缂栧彿鎷兼帴 + */ + @TableField(exist = false) + private String equipmentText; + public String getEquipmentText() { + return equipmentCode + "[" + equipmentName + "]"; + } } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java index 4372cde..0d010bb 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java @@ -64,4 +64,13 @@ /**鎶ヤ慨鏍囪*/ @ApiModelProperty(value = "鎶ヤ慨鏍囪") private String reportFlag; + + public EamWeekMaintenanceOrderDetail(){} + + public EamWeekMaintenanceOrderDetail(EamMaintenanceStandardDetail detail) { + this.itemCode = detail.getItemCode(); + this.itemName = detail.getItemName(); + this.subItemName = detail.getSubItemName(); + this.itemDemand = detail.getItemDemand(); + } } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderExpiredJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderExpiredJob.java new file mode 100644 index 0000000..ffc9040 --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderExpiredJob.java @@ -0,0 +1,86 @@ +package org.jeecg.modules.eam.job; + +import cn.hutool.core.collection.CollectionUtil; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.modules.eam.constant.InspectionStatus; +import org.jeecg.modules.eam.entity.EamInspectionOrder; +import org.jeecg.modules.eam.service.IEamInspectionOrderService; +import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness; +import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService; +import org.jeecg.modules.flowable.service.IFlowTaskService; +import org.jeecg.modules.mdc.util.ThrowableUtil; +import org.jeecg.modules.quartz.entity.QuartzJob; +import org.jeecg.modules.quartz.entity.SysQuartzLog; +import org.jeecg.modules.quartz.service.IQuartzJobService; +import org.jeecg.modules.quartz.service.ISysQuartzLogService; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDate; +import java.util.Date; +import java.util.List; + +@Component +@Slf4j +public class InspectionOrderExpiredJob implements Job { + + @Autowired + private IEamInspectionOrderService eamInspectionOrderService; + + @Autowired + private IFlowMyBusinessService flowMyBusinessService; + @Autowired + private IFlowTaskService flowTaskService; + @Autowired + private ISysQuartzLogService sysQuartzLogService; + @Autowired + private IQuartzJobService quartzJobService; + + @Override + @Transactional(rollbackFor = Exception.class) + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + //浠诲姟鏃ュ織 + SysQuartzLog quartzLog = new SysQuartzLog(); + quartzLog.setCreateTime(new Date()); + List<QuartzJob> byJobClassName = quartzJobService.findByJobClassName(this.getClass().getName()); + if (byJobClassName != null && !byJobClassName.isEmpty()) { + quartzLog.setJobId(byJobClassName.get(0).getId()); + } + long startTime = System.currentTimeMillis(); + LocalDate now = LocalDate.now(); + try { + List<EamInspectionOrder> unCompleteOrderList = eamInspectionOrderService.selectUnCompleteOrder(now.toString()); + if (CollectionUtil.isEmpty(unCompleteOrderList)) { + //娌℃湁闇�瑕佸鐞嗙殑鏁版嵁 + return; + } + for (EamInspectionOrder order : unCompleteOrderList) { + if (InspectionStatus.WAIT_INSPECTION.name().equals(order.getInspectionStatus())) { + order.setInspectionStatus(InspectionStatus.EXPIRED.name()); + } else if (InspectionStatus.UNDER_INSPECTION.name().equals(order.getInspectionStatus())) { + //宸茬粡琚帴鍗� 浣嗘湭鎵ц瀹屾垚 + order.setInspectionStatus(InspectionStatus.EXPIRED.name()); + //寮哄埗缁撴潫娴佺▼ 鍒犻櫎鐢ㄦ埛鐨勬寰呭姙浠诲姟 + FlowMyBusiness flowMyBusiness = flowMyBusinessService.selectByDataId(order.getId()); + if (flowMyBusiness != null) { + flowTaskService.end(flowMyBusiness.getProcessInstanceId(), "杩囨湡鍒犻櫎"); + } + } + } + eamInspectionOrderService.updateBatchById(unCompleteOrderList); + quartzLog.setIsSuccess(0); + } catch (Exception e) { + log.error("鐐规杩囨湡鎵ц瀹氭椂浠诲姟澶辫触锛寋}", e.getMessage(), e); + quartzLog.setIsSuccess(-1); + quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e)); + } + long endTime = System.currentTimeMillis(); + quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime))); + sysQuartzLogService.save(quartzLog); + } + +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderGenerateJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderGenerateJob.java new file mode 100644 index 0000000..00faa7e --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderGenerateJob.java @@ -0,0 +1,129 @@ +package org.jeecg.modules.eam.job; + +import cn.hutool.core.collection.CollectionUtil; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.util.DateUtils; +import org.jeecg.modules.eam.constant.BusinessCodeConst; +import org.jeecg.modules.eam.constant.MaintenanceCategoryEnum; +import org.jeecg.modules.eam.constant.OrderCreationMethodEnum; +import org.jeecg.modules.eam.entity.EamInspectionOrderDetail; +import org.jeecg.modules.eam.entity.EamMaintenanceStandard; +import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail; +import org.jeecg.modules.eam.request.EamInspectionOrderRequest; +import org.jeecg.modules.eam.service.IEamInspectionOrderService; +import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService; +import org.jeecg.modules.eam.service.IEamMaintenanceStandardService; +import org.jeecg.modules.mdc.util.ThrowableUtil; +import org.jeecg.modules.quartz.entity.QuartzJob; +import org.jeecg.modules.quartz.entity.SysQuartzLog; +import org.jeecg.modules.quartz.service.IQuartzJobService; +import org.jeecg.modules.quartz.service.ISysQuartzLogService; +import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDate; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +@Component +@Slf4j +public class InspectionOrderGenerateJob implements Job { + @Autowired + private IEamMaintenanceStandardService eamMaintenanceStandardService; + @Autowired + private IEamMaintenanceStandardDetailService eamMaintenanceStandardDetailService; + @Autowired + private IEamInspectionOrderService eamInspectionOrderService; + @Autowired + private ISysBusinessCodeRuleService businessCodeRuleService; + @Autowired + private ISysQuartzLogService sysQuartzLogService; + @Autowired + private IQuartzJobService quartzJobService; + + /** + * 宸ュ崟鐢熸垚 + * + * @param jobExecutionContext + * @throws JobExecutionException + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + //浠诲姟鏃ュ織 + SysQuartzLog quartzLog = new SysQuartzLog(); + quartzLog.setCreateTime(new Date()); + List<QuartzJob> byJobClassName = quartzJobService.findByJobClassName(this.getClass().getName()); + if (byJobClassName != null && !byJobClassName.isEmpty()) { + quartzLog.setJobId(byJobClassName.get(0).getId()); + } + long startTime = System.currentTimeMillis(); + /** + * 鑾峰彇 閰嶇疆浜� 鍛ㄤ繚鏍囧噯鐨� 淇℃伅 + */ + List<EamMaintenanceStandard> standardList = eamMaintenanceStandardService.queryListByCategory(MaintenanceCategoryEnum.POINT_INSPECTION.name()); + if (CollectionUtil.isEmpty(standardList)) { + log.warn("娌℃湁閰嶇疆浠讳綍鍛ㄤ繚鏍囧噯锛屼换鍔$粨鏉�"); + return; + } + //褰撳墠鏃ユ湡 + LocalDate now = LocalDate.now(); + try { + for (EamMaintenanceStandard standard : standardList) { + if (standard.getMaintenancePeriod() == null || standard.getMaintenancePeriod() < 1) { + log.error("鐐规鏍囧噯鍛ㄦ湡璁剧疆閿欒锛岃鍏堥厤缃爣鍑嗗懆鏈�, standard:{}", standard); + continue; + } + if (standard.getInitialDate() == null) { + //璁剧疆鍒濆鏃ユ湡涓哄墠涓�澶� + standard.setInitialDate(DateUtils.localDateToDate(now.minusDays(1))); + } + LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate()); + if (standard.getLastGenerateTime() != null) { + generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime()); + } + //鍔犲懆鏈� + do { + //鍒濆鏃ユ湡璁剧疆鐨勬瘮杈冩棭锛屾垨浠诲姟闀挎椂闂存病鎵ц锛屽繀椤诲懆鏈熷埌浠婂ぉ鎵嶄細鐢熸垚宸ュ崟 + generateDate = generateDate.plusDays(standard.getMaintenancePeriod()); + } while (now.isAfter(generateDate)); + if(!now.isEqual(generateDate)) { + //杩樻湭鍒扮敓鎴愭棩鏈燂紝璺宠繃鎵ц + continue; + } + //鑾峰彇淇濆吇椤规槑缁� + List<EamMaintenanceStandardDetail> standardDetailList = eamMaintenanceStandardDetailService.selectByStandardId(standard.getId()); + if(CollectionUtil.isEmpty(standardDetailList)) { + log.error("鐐规鏍囧噯娌℃湁淇濆吇鏄庣粏锛岃鍏堥厤缃繚鍏绘槑缁�, standard:{}", standard); + continue; + } + //寮�濮嬬敓鎴� + EamInspectionOrderRequest request = new EamInspectionOrderRequest(); + request.setEquipmentId(standard.getEquipmentId()); + request.setStandardId(standard.getId()); + request.setInspectionDate(DateUtils.localDateToDate(generateDate)); + request.setExpirationTime(DateUtils.localDateToDate(generateDate.plusDays(standard.getMaintenancePeriod()))); + request.setCreationMethod(OrderCreationMethodEnum.AUTO.name()); + String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.INSPECTION_ORDER_CODE_RULE); + request.setOrderNum(codeSeq); + List<EamInspectionOrderDetail> collect = standardDetailList.stream().map(EamInspectionOrderDetail::new).collect(Collectors.toList()); + request.setTableDetailList(collect); + eamInspectionOrderService.addInspectionOrder(request); + } + quartzLog.setIsSuccess(0); + } catch (Exception e) { + log.error("鍛ㄤ繚杩囩敓鎴愭墽琛屽畾鏃朵换鍔″け璐ワ紝{}", e.getMessage(), e); + quartzLog.setIsSuccess(-1); + quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e)); + } + long endTime = System.currentTimeMillis(); + quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime))); + sysQuartzLogService.save(quartzLog); + } +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderExpiredJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderExpiredJob.java new file mode 100644 index 0000000..227c0e8 --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderExpiredJob.java @@ -0,0 +1,86 @@ +package org.jeecg.modules.eam.job; + +import cn.hutool.core.collection.CollectionUtil; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.modules.eam.constant.WeekMaintenanceStatusEnum; +import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrder; +import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderService; +import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness; +import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService; +import org.jeecg.modules.flowable.service.IFlowTaskService; +import org.jeecg.modules.mdc.util.ThrowableUtil; +import org.jeecg.modules.quartz.entity.QuartzJob; +import org.jeecg.modules.quartz.entity.SysQuartzLog; +import org.jeecg.modules.quartz.service.IQuartzJobService; +import org.jeecg.modules.quartz.service.ISysQuartzLogService; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDate; +import java.util.Date; +import java.util.List; + +@Component +@Slf4j +public class WeekMaintenanceOrderExpiredJob implements Job { + + @Autowired + private IEamWeekMaintenanceOrderService eamWeekMaintenanceOrderService; + + @Autowired + private IFlowMyBusinessService flowMyBusinessService; + @Autowired + private IFlowTaskService flowTaskService; + @Autowired + private ISysQuartzLogService sysQuartzLogService; + @Autowired + private IQuartzJobService quartzJobService; + + @Override + @Transactional(rollbackFor = Exception.class) + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + //浠诲姟鏃ュ織 + SysQuartzLog quartzLog = new SysQuartzLog(); + quartzLog.setCreateTime(new Date()); + List<QuartzJob> byJobClassName = quartzJobService.findByJobClassName(this.getClass().getName()); + if (byJobClassName != null && !byJobClassName.isEmpty()) { + quartzLog.setJobId(byJobClassName.get(0).getId()); + } + long startTime = System.currentTimeMillis(); + LocalDate now = LocalDate.now(); + try { + List<EamWeekMaintenanceOrder> unCompleteOrderList = eamWeekMaintenanceOrderService.selectUnCompleteOrder(now.toString()); + if (CollectionUtil.isEmpty(unCompleteOrderList)) { + //娌℃湁闇�瑕佸鐞嗙殑鏁版嵁 + return; + } + for (EamWeekMaintenanceOrder order : unCompleteOrderList) { + if (WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(order.getMaintenanceStatus())) { + order.setMaintenanceStatus(WeekMaintenanceStatusEnum.EXPIRED.name()); + } else if (WeekMaintenanceStatusEnum.UNDER_MAINTENANCE.name().equals(order.getMaintenanceStatus())) { + //宸茬粡琚帴鍗� 浣嗘湭鎵ц瀹屾垚 + order.setMaintenanceStatus(WeekMaintenanceStatusEnum.EXPIRED.name()); + //寮哄埗缁撴潫娴佺▼ 鍒犻櫎鐢ㄦ埛鐨勬寰呭姙浠诲姟 + FlowMyBusiness flowMyBusiness = flowMyBusinessService.selectByDataId(order.getId()); + if (flowMyBusiness != null) { + flowTaskService.end(flowMyBusiness.getProcessInstanceId(), "杩囨湡鍒犻櫎"); + } + } + } + eamWeekMaintenanceOrderService.updateBatchById(unCompleteOrderList); + quartzLog.setIsSuccess(0); + } catch (Exception e) { + log.error("鍛ㄤ繚杩囨湡鎵ц瀹氭椂浠诲姟澶辫触锛寋}", e.getMessage(), e); + quartzLog.setIsSuccess(-1); + quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e)); + } + long endTime = System.currentTimeMillis(); + quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime))); + sysQuartzLogService.save(quartzLog); + } + +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java new file mode 100644 index 0000000..61e3a92 --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java @@ -0,0 +1,128 @@ +package org.jeecg.modules.eam.job; + +import cn.hutool.core.collection.CollectionUtil; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.util.DateUtils; +import org.jeecg.modules.eam.constant.BusinessCodeConst; +import org.jeecg.modules.eam.constant.MaintenanceCategoryEnum; +import org.jeecg.modules.eam.constant.OrderCreationMethodEnum; +import org.jeecg.modules.eam.entity.EamMaintenanceStandard; +import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail; +import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail; +import org.jeecg.modules.eam.request.EamWeekMaintenanceRequest; +import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService; +import org.jeecg.modules.eam.service.IEamMaintenanceStandardService; +import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderService; +import org.jeecg.modules.mdc.util.ThrowableUtil; +import org.jeecg.modules.quartz.entity.QuartzJob; +import org.jeecg.modules.quartz.entity.SysQuartzLog; +import org.jeecg.modules.quartz.service.IQuartzJobService; +import org.jeecg.modules.quartz.service.ISysQuartzLogService; +import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDate; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +@Component +@Slf4j +public class WeekMaintenanceOrderGenerateJob implements Job { + @Autowired + private IEamMaintenanceStandardService eamMaintenanceStandardService; + @Autowired + private IEamMaintenanceStandardDetailService eamMaintenanceStandardDetailService; + @Autowired + private IEamWeekMaintenanceOrderService eamWeekMaintenanceOrderService; + @Autowired + private ISysBusinessCodeRuleService businessCodeRuleService; + @Autowired + private ISysQuartzLogService sysQuartzLogService; + @Autowired + private IQuartzJobService quartzJobService; + + /** + * 宸ュ崟鐢熸垚 + * + * @param jobExecutionContext + * @throws JobExecutionException + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + //浠诲姟鏃ュ織 + SysQuartzLog quartzLog = new SysQuartzLog(); + quartzLog.setCreateTime(new Date()); + List<QuartzJob> byJobClassName = quartzJobService.findByJobClassName(this.getClass().getName()); + if (byJobClassName != null && !byJobClassName.isEmpty()) { + quartzLog.setJobId(byJobClassName.get(0).getId()); + } + long startTime = System.currentTimeMillis(); + /** + * 鑾峰彇 閰嶇疆浜� 鍛ㄤ繚鏍囧噯鐨� 淇℃伅 + */ + List<EamMaintenanceStandard> standardList = eamMaintenanceStandardService.queryListByCategory(MaintenanceCategoryEnum.WEEK_MAINTENANCE.name()); + if (CollectionUtil.isEmpty(standardList)) { + log.warn("娌℃湁閰嶇疆浠讳綍鍛ㄤ繚鏍囧噯锛屼换鍔$粨鏉�"); + return; + } + //褰撳墠鏃ユ湡 + LocalDate now = LocalDate.now(); + try { + for (EamMaintenanceStandard standard : standardList) { + if (standard.getMaintenancePeriod() == null || standard.getMaintenancePeriod() < 1) { + log.error("鍛ㄤ繚鏍囧噯鍛ㄦ湡璁剧疆閿欒锛岃鍏堥厤缃爣鍑嗗懆鏈�, standard:{}", standard); + continue; + } + if (standard.getInitialDate() == null) { + //璁剧疆鍒濆鏃ユ湡涓哄墠涓�澶� + standard.setInitialDate(DateUtils.localDateToDate(now.minusDays(1))); + } + LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate()); + if (standard.getLastGenerateTime() != null) { + generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime()); + } + //鍔犲懆鏈� + do { + //鍒濆鏃ユ湡璁剧疆鐨勬瘮杈冩棭锛屾垨浠诲姟闀挎椂闂存病鎵ц锛屽繀椤诲懆鏈熷埌浠婂ぉ鎵嶄細鐢熸垚宸ュ崟 + generateDate = generateDate.plusDays(standard.getMaintenancePeriod()); + } while (now.isAfter(generateDate)); + if(!now.isEqual(generateDate)) { + //杩樻湭鍒扮敓鎴愭棩鏈燂紝璺宠繃鎵ц + continue; + } + //鑾峰彇淇濆吇椤规槑缁� + List<EamMaintenanceStandardDetail> standardDetailList = eamMaintenanceStandardDetailService.selectByStandardId(standard.getId()); + if(CollectionUtil.isEmpty(standardDetailList)) { + log.error("鍛ㄤ繚鏍囧噯娌℃湁淇濆吇鏄庣粏锛岃鍏堥厤缃繚鍏绘槑缁�, standard:{}", standard); + continue; + } + //寮�濮嬬敓鎴� + EamWeekMaintenanceRequest request = new EamWeekMaintenanceRequest(); + request.setEquipmentId(standard.getEquipmentId()); + request.setStandardId(standard.getId()); + request.setMaintenanceDate(DateUtils.localDateToDate(generateDate)); + String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.WEEK_MAINTENANCE_CODE_RULE); + request.setOrderNum(codeSeq); + request.setCreationMethod(OrderCreationMethodEnum.AUTO.name()); + List<EamWeekMaintenanceOrderDetail> collect = standardDetailList.stream().map(EamWeekMaintenanceOrderDetail::new).collect(Collectors.toList()); + request.setTableDetailList(collect); + eamWeekMaintenanceOrderService.addWeekMaintenance(request); + } + quartzLog.setIsSuccess(0); + } catch (Exception e) { + log.error("鍛ㄤ繚杩囩敓鎴愭墽琛屽畾鏃朵换鍔″け璐ワ紝{}", e.getMessage(), e); + quartzLog.setIsSuccess(-1); + quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e)); + } + long endTime = System.currentTimeMillis(); + quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime))); + sysQuartzLogService.save(quartzLog); + } +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentAttachmentMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentAttachmentMapper.java new file mode 100644 index 0000000..ca99a69 --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentAttachmentMapper.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.eam.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.eam.entity.EamEquipmentAttachment; + +/** + * @Description: 璁惧鏂囨。鍙拌处浣跨敤 + * @Author: jeecg-boot + * @Date: 2025-04-16 + * @Version: V1.0 + */ +public interface EamEquipmentAttachmentMapper extends BaseMapper<EamEquipmentAttachment> { + +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamInspectionOrderMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamInspectionOrderMapper.java index f62c2a4..0851910 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamInspectionOrderMapper.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamInspectionOrderMapper.java @@ -1,7 +1,13 @@ package org.jeecg.modules.eam.mapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; import org.jeecg.modules.eam.entity.EamInspectionOrder; +import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrder; /** * @Description: 鐐规宸ュ崟 @@ -11,4 +17,11 @@ */ public interface EamInspectionOrderMapper extends BaseMapper<EamInspectionOrder> { + /** + * 鍒嗛〉鏌ヨ + * @param page + * @param queryWrapper + * @return + */ + IPage<EamInspectionOrder> queryPageList(Page<EamInspectionOrder> page, @Param(Constants.WRAPPER) QueryWrapper<EamInspectionOrder> queryWrapper); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceStandardMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceStandardMapper.java index 5a0d83c..2c0fd59 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceStandardMapper.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceStandardMapper.java @@ -1,6 +1,9 @@ package org.jeecg.modules.eam.mapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.eam.entity.EamMaintenanceStandard; @@ -9,18 +12,16 @@ /** * @Description: 淇濆吇鏍囧噯 * @Author: jeecg-boot - * @Date: 2025-03-26 + * @Date: 2025-03-26 * @Version: V1.0 */ public interface EamMaintenanceStandardMapper extends BaseMapper<EamMaintenanceStandard> { /** - * 鏌ヨ鏍囧噯鍒楄〃-鍓嶇灞曠ず璇ョ敤鎴锋嫢鏈夌殑鏍囧噯 - * @param userId 鐢ㄦ埛 - * @param keyword 璁惧缂栧彿 - * @param maintenanceCategory 淇濆吇绫诲瀷 + * 鍒嗛〉鏌ヨ + * @param page + * @param queryWrapper * @return */ - List<EamMaintenanceStandard> queryListBykeywordAndCategory(@Param("userId")String userId ,@Param("keyword") String keyword, @Param("maintenanceCategory") String maintenanceCategory); - + IPage<EamMaintenanceStandard> queryPageList(IPage<EamMaintenanceStandard> page, @Param(Constants.WRAPPER) Wrapper<EamMaintenanceStandard> queryWrapper); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java index 979ae9b..90b1277 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java @@ -25,5 +25,5 @@ * @param equipmentIds * @return */ - IPage<EamRepairOrder> pageList(Page<EamRepairOrder> page, @Param("eamRepairOrder") EamRepairOrderQuery eamRepairOrderQuery, @Param("userId") String userId, @Param("equipmentIds") List<String> equipmentIds); + IPage<EamRepairOrder> pageList(Page<EamRepairOrder> page, @Param("eamRepairOrder") EamRepairOrderQuery eamRepairOrder, @Param("userId") String userId, @Param("equipmentIds") List<String> equipmentIds); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentAttachmentMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentAttachmentMapper.xml new file mode 100644 index 0000000..ec5ca50 --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentAttachmentMapper.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.EamEquipmentAttachmentMapper"> + +</mapper> \ No newline at end of file diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml index a69ec96..b596292 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml @@ -2,4 +2,11 @@ <!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.EamInspectionOrderMapper"> + <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamInspectionOrder"> + select wmo.*, e.equipment_code, e.equipment_name + from eam_inspection_order wmo + inner join eam_equipment e + on wmo.equipment_id = e.id + ${ew.customSqlSegment} + </select> </mapper> diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml index d1e8ff0..68f0ef2 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml @@ -1,34 +1,11 @@ <?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.EamMaintenanceStandardMapper"> - - <select id="queryListBykeywordAndCategory" resultType="org.jeecg.modules.eam.entity.EamMaintenanceStandard"> - SELECT - e.equipment_code+ '[' + e.equipment_name+ ']' AS 'equipmentText', - m.id, - m.standard_code, - m.standard_name, - m.maintenance_period, - m.equipment_id - FROM - eam_maintenance_standard m -- 鍏堣繃婊よ澶囪〃锛屽噺灏� JOIN 閲� - INNER JOIN ( - SELECT - id, - eam_equipment.equipment_code as equipment_code, - eam_equipment.equipment_name as equipment_name, - org_id - FROM - eam_equipment - WHERE - del_flag = 0 - AND ( equipment_code LIKE CONCAT ( #{ keyword }, '%' ) -- 鍙虫ā绯婂埄鐢ㄧ储寮� - OR equipment_name LIKE CONCAT ( #{ keyword }, '%' ) ) - ) e ON m.equipment_id = e.id - WHERE - m.del_flag = 0 - AND m.standard_status= 'NORMAL' - AND m.maintenance_category = #{maintenanceCategory} - AND EXISTS ( SELECT 1 FROM mdc_user_production t WHERE t.user_id = #{ userId } AND t.pro_id = e.org_id ); + <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamMaintenanceStandard"> + select ems.*, e.equipment_code, e.equipment_name + from eam_maintenance_standard ems + inner join eam_equipment e + on ems.equipment_id = e.id + ${ew.customSqlSegment} </select> </mapper> diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml index d76beae..b7136f3 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml @@ -39,7 +39,10 @@ <if test="eamRepairOrder.repairCode != null and eamRepairOrder.repairCode != ''"> AND t1.repair_code LIKE CONCAT(CONCAT('%',#{ eamRepairOrder.repairCode }),'%') </if> + <if test="eamRepairOrder.sparePartDescription != null and eamRepairOrder.sparePartDescription != ''"> + AND t1.spare_part_description LIKE CONCAT(CONCAT('%',#{ eamRepairOrder.sparePartDescription }),'%') + </if> </where> - ORDER BY t1.create_time + ORDER BY t1.create_time DESC </select> </mapper> \ No newline at end of file diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml index fb16bd6..e95236a 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml @@ -14,7 +14,7 @@ <when test="equipmentIds != null and equipmentIds.size() > 0 "> AND t2.equipment_code IN <foreach collection="equipmentIds" item="equipmentId" index="index" open="(" close=")" separator=","> - {equipmentId} + #{equipmentId} </foreach> </when> <otherwise> @@ -46,6 +46,6 @@ AND t1.fault_start_time BETWEEN #{ eamReportRepair.startTime } AND #{ eamReportRepair.endTime } </if> </where> - ORDER BY t1.fault_start_time DESC + ORDER BY t1.create_time DESC </select> </mapper> \ No newline at end of file diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamEquipmentAttachmentRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamEquipmentAttachmentRequest.java new file mode 100644 index 0000000..e1552f3 --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamEquipmentAttachmentRequest.java @@ -0,0 +1,33 @@ +package org.jeecg.modules.eam.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecg.common.api.vo.FileUploadResult; + +import java.io.Serializable; +import java.util.List; + +/** + * @Description: 璁惧闄勪欢绠$悊 + * @Author: jeecg-boot + * @Date: 2025-03-17 + * @Version: V1.0 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="璇锋眰瀵硅薄", description="璁惧闄勪欢绠$悊") +public class EamEquipmentAttachmentRequest implements Serializable { + /**鎻忚堪*/ + @ApiModelProperty(value = "鎻忚堪") + private String description; + /**鎻忚堪*/ + @ApiModelProperty(value = "璁惧ID") + private String equipmentId; + /**涓婁紶鏂囦欢瀵圭郴*/ + @ApiModelProperty(value = "涓婁紶鏂囦欢瀵圭郴") + private List<FileUploadResult> fileList; +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionBatchApprovalRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionBatchApprovalRequest.java new file mode 100644 index 0000000..36a84e2 --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionBatchApprovalRequest.java @@ -0,0 +1,26 @@ +package org.jeecg.modules.eam.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecg.modules.flowable.domain.vo.WorkTaskDataVo; + +import java.io.Serializable; +import java.util.List; + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +public class EamInspectionBatchApprovalRequest implements Serializable { + + /** 纭绫诲瀷 1 閫氳繃 2 椹冲洖 */ + @ApiModelProperty(value = "纭绫诲瀷") + private String confirmDealType; + /**纭鎰忚*/ + @ApiModelProperty(value = "纭鎰忚") + private String confirmComment; + /**浠诲姟鍒楄〃*/ + @ApiModelProperty(value = "浠诲姟鍒楄〃") + private List<WorkTaskDataVo> taskList; +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderQuery.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderQuery.java new file mode 100644 index 0000000..b53d8d5 --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderQuery.java @@ -0,0 +1,23 @@ +package org.jeecg.modules.eam.request; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Data +public class EamInspectionOrderQuery { + private String orderNum; + private String equipmentId; + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date inspectionDateBegin; + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date inspectionDateEnd; + private String inspectionStatus; + + private String column; + private String order; +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderRequest.java index 691f2b2..fcaa20b 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderRequest.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderRequest.java @@ -26,7 +26,6 @@ private static final long serialVersionUID = 1L; /**涓婚敭*/ - @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "涓婚敭") private String id; /**鍒涘缓浜�*/ @@ -47,72 +46,58 @@ @ApiModelProperty(value = "鏇存柊鏃堕棿") private Date updateTime; /**鍒犻櫎鏍囪*/ - @Excel(name = "鍒犻櫎鏍囪", width = 15) @ApiModelProperty(value = "鍒犻櫎鏍囪") @TableLogic private Integer delFlag; /**宸ュ崟鍙�*/ - @Excel(name = "宸ュ崟鍙�", width = 15) @ApiModelProperty(value = "宸ュ崟鍙�") private String orderNum; /**璁惧ID*/ - @Excel(name = "璁惧ID", width = 15) @ApiModelProperty(value = "璁惧ID") @Dict(dictTable = "eam_equipment", dicCode = "equipment_code", dicText = "id") private String equipmentId; /**鏍囧噯ID*/ - @Excel(name = "淇濆吇鏍囧噯ID", width = 15) @ApiModelProperty(value = "淇濆吇鏍囧噯ID") @Dict(dictTable = "eam_maintenance_standard", dicCode = "standard_code", dicText = "id") private String standardId; /**鐐规鏃ユ湡*/ - @Excel(name = "鐐规鏃ユ湡锛堣鍒掞級", width = 15, format = "yyyy-MM-dd") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") @ApiModelProperty(value = "鐐规鏃ユ湡") private Date inspectionDate; /**鐐规杩囨湡鏃堕棿*/ - @Excel(name = "鐐规杩囨湡鏃堕棿", width = 15, format = "yyyy-MM-dd") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") @ApiModelProperty(value = "鐐规杩囨湡鏃堕棿") private Date expirationTime; /**鐐规鏃堕棿*/ - @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; /**鐐规浜�*/ - @Excel(name = "鐐规浜�", width = 15) @ApiModelProperty(value = "鐐规浜�-鏄鍙栦汉") @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname") private String operator; /**鍒涘缓鏂瑰紡*/ - @Excel(name = "鍒涘缓鏂瑰紡", width = 15) @ApiModelProperty(value = "鍒涘缓鏂瑰紡") private String creationMethod; /**鐐规鐘舵��*/ - @Excel(name = "鐐规鐘舵��", width = 15) @ApiModelProperty(value = "鐐规鐘舵�� 寰呯偣妫�-寰呯‘璁�-宸插畬鎴�") private String inspectionStatus; /**鐝粍闀跨‘璁�*/ - @Excel(name = "鐝粍闀跨‘璁�", width = 15) @ApiModelProperty(value = "鐝粍闀跨‘璁�--棰嗗彇鍚庝骇鐢�") @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname") private String confirmUser; /**纭鏃堕棿*/ - @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 confirmTime; /**澶囨敞*/ - @Excel(name = "澶囨敞", width = 15) @ApiModelProperty(value = "澶囨敞-鐐规宸ュ崟鍒涘缓澶囨敞") private String remark; /**鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧*/ - @Excel(name = "鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧-鎵ц鏃�", width = 15) @ApiModelProperty(value = "鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧") private String imageFiles; @@ -124,11 +109,11 @@ @ApiModelProperty(value = "鍒楄〃 淇濆吇椤规槑缁�") private List<EamInspectionOrderDetail> tableDetailList; - /**澶勭悊绫诲瀷*/ - @ApiModelProperty(value = "澶勭悊绫诲瀷") - private String dealType; - - /**澶勭悊鎰忚*/ - @ApiModelProperty(value = "澶勭悊鎰忚") - private String dealSuggestion; + /**纭鎰忚*/ + @ApiModelProperty(value = "纭鎰忚") + private String confirmComment; + /** 纭绫诲瀷 1 閫氳繃 2 椹冲洖 */ + @ApiModelProperty(value = "纭绫诲瀷") + @Dict(dicCode = "approved_rejected") + private String confirmDealType; } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderQuery.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderQuery.java index 9726bcc..45a6ad2 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderQuery.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderQuery.java @@ -1,6 +1,7 @@ package org.jeecg.modules.eam.request; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -24,5 +25,6 @@ /** * 璁惧缂栫爜 */ + @ApiModelProperty(value = "璁惧缂栫爜") private String equipmentCode; } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java new file mode 100644 index 0000000..0ae9b1d --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java @@ -0,0 +1,71 @@ +package org.jeecg.modules.eam.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecg.common.api.vo.FileUploadResult; +import org.jeecg.common.aspect.annotation.Dict; +import org.jeecg.modules.flowable.domain.vo.FlowTaskVo; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; +import java.util.List; + +/** + * @Author: Lius + * @CreateTime: 2025-04-21 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +public class EamRepairOrderRequest extends FlowTaskVo implements Serializable { + + private static final long serialVersionUID = 3844096033304425984L; + + /**涓婚敭*/ + @ApiModelProperty(value = "涓婚敭") + private String id; + + /**璁惧ID*/ + @ApiModelProperty(value = "璁惧ID") + private String equipmentId; + + /** + * 缁翠慨鐘舵�� + */ + @ApiModelProperty(value = "缁翠慨鐘舵��") + private String repairStatus; + + /** + * 鏄惁闇�瑕侀鐢ㄥ浠� 1:鏄� 0:鍚� + */ + @ApiModelProperty(value = "鏄惁闇�瑕侀鐢ㄥ浠�") + private Integer isUseSpare; + + /** + * 鏁呴殰鍘熷洜 + */ + @ApiModelProperty(value = "鏁呴殰鍘熷洜") + private String faultReason; + /** + * 缁翠慨缁撴灉鎻忚堪 + */ + @ApiModelProperty(value = "缁翠慨缁撴灉鎻忚堪") + private String repairDescription; + + /** + * 鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧 + */ + @ApiModelProperty(value = "鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧") + private String imageFiles; + + /**缁翠慨鍥剧墖*/ + @ApiModelProperty(value = "缁翠慨鍥剧墖闆嗗悎") + private List<FileUploadResult> imageFilesResult; + + /**澶囦欢鎻忚堪*/ + @ApiModelProperty(value = "澶囦欢鎻忚堪") + private String sparePartDescription; +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderResponse.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderResponse.java new file mode 100644 index 0000000..15b0dd3 --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderResponse.java @@ -0,0 +1,80 @@ +package org.jeecg.modules.eam.request; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecg.common.aspect.annotation.Dict; +import org.jeecg.modules.eam.entity.EamRepairOrder; +import org.jeecg.modules.eam.entity.EamReportRepair; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.beans.BeanUtils; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Author: Lius + * @CreateTime: 2025-04-21 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="杩斿洖瀵硅薄", description="缁翠慨宸ュ崟璇︾粏") +public class EamRepairOrderResponse extends EamRepairOrder implements Serializable { + + private static final long serialVersionUID = 367152649525625307L; + + /** + * 鏁呴殰寮�濮嬫椂闂� + */ + @ApiModelProperty(value = "鏁呴殰寮�濮嬫椂闂�") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date faultStartTime; + /** + * 鏄惁鍋滄満 + */ + @ApiModelProperty(value = "鏄惁鍋滄満") + @Dict(dicCode = "breakdown_flag") + private String breakdownFlag; + /** + * 鏁呴殰绠�绉� + */ + @ApiModelProperty(value = "鏁呴殰绠�绉�") + private String faultName; + /** + * 鏁呴殰鍒嗙被 + */ + @ApiModelProperty(value = "鏁呴殰鍒嗙被") + @Dict(dicCode = "fault_reason_category") + private String faultType; + /** + * 鏁呴殰鎻忚堪 + */ + @ApiModelProperty(value = "鏁呴殰鎻忚堪") + private String faultDescription; + /** + * 鎶ヤ慨鐘舵�� + */ + @ApiModelProperty(value = "鎶ヤ慨鐘舵��") + @Dict(dicCode = "report_repair_status") + private String reportStatus; + /** + * 鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧 + */ + @ApiModelProperty(value = "鎶ヤ慨鐓х墖") + private String reportImageFiles; + + /** + * 澶囨敞 + */ + @Excel(name = "澶囨敞", width = 15) + @ApiModelProperty(value = "澶囨敞") + private String remark; + +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamReportRepairQuery.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamReportRepairQuery.java index b468492..57396eb 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamReportRepairQuery.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamReportRepairQuery.java @@ -34,4 +34,8 @@ * 缁撴潫鏃堕棿 */ private String endTime; + /** + * 鎸囨淳浜猴紙缁翠慨璐熻矗浜猴級 + */ + private String repairer; } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamWeekMaintenanceBatchApprovalRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamWeekMaintenanceBatchApprovalRequest.java new file mode 100644 index 0000000..cd62fe2 --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamWeekMaintenanceBatchApprovalRequest.java @@ -0,0 +1,41 @@ +package org.jeecg.modules.eam.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecg.common.api.vo.FileUploadResult; +import org.jeecg.modules.flowable.domain.vo.WorkTaskDataVo; + +import java.io.Serializable; +import java.util.List; + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +public class EamWeekMaintenanceBatchApprovalRequest implements Serializable { + //纭鎿嶄綔 + /**纭鎰忚*/ + @ApiModelProperty(value = "纭鎰忚") + private String confirmComment; + @ApiModelProperty(value = "纭绫诲瀷") + private String confirmDealType; + //鍒濋獙鏀舵搷浣� + /**鍒濋獙鏀舵剰瑙�*/ + @ApiModelProperty(value = "鍒濋獙鏀舵剰瑙�") + private String initialAcceptanceComment; + /**鍒濋獙鏀堕檮浠�*/ + @ApiModelProperty(value = "鍒濋獙鏀堕檮浠�") + private List<FileUploadResult> initialAcceptanceFilesResult; + //缁堥獙鏀舵搷浣� + /**缁堥獙鏀舵剰瑙�*/ + @ApiModelProperty(value = "缁堥獙鏀舵剰瑙�") + private String finalAcceptanceComment; + /**缁堥獙鏀堕檮浠�*/ + @ApiModelProperty(value = "缁堥獙鏀堕檮浠�") + private List<FileUploadResult> finalAcceptanceFilesResult; + + /**浠诲姟鍒楄〃*/ + @ApiModelProperty(value = "浠诲姟鍒楄〃") + private List<WorkTaskDataVo> taskList; +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamWeekMaintenanceRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamWeekMaintenanceRequest.java index df69050..c2f7ecf 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamWeekMaintenanceRequest.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamWeekMaintenanceRequest.java @@ -6,7 +6,10 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import org.jeecg.common.api.vo.FileUploadResult; +import org.jeecg.common.aspect.annotation.Dict; import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail; +import org.jeecg.modules.flowable.domain.vo.FlowTaskVo; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; @@ -17,7 +20,7 @@ @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @ApiModel(value="eam_maintenance_standard瀵硅薄", description="淇濆吇鏍囧噯") -public class EamWeekMaintenanceRequest implements Serializable { +public class EamWeekMaintenanceRequest extends FlowTaskVo implements Serializable { /**涓婚敭*/ @ApiModelProperty(value = "涓婚敭") @@ -42,13 +45,46 @@ /**淇濆吇鍥剧墖*/ @ApiModelProperty(value = "淇濆吇鍥剧墖") private String imageFiles; + /**淇濆吇鍥剧墖*/ + @ApiModelProperty(value = "淇濆吇鍥剧墖") + private List<FileUploadResult> imageFilesResult; /**澶囨敞*/ @ApiModelProperty(value = "澶囨敞") private String remark; + /**鍒涘缓鏂瑰紡*/ + @ApiModelProperty(value = "鍒涘缓鏂瑰紡") + private String creationMethod; /**鍒楄〃 淇濆吇椤规槑缁�*/ @ApiModelProperty(value = "鍒楄〃 淇濆吇椤规槑缁�") private List<EamWeekMaintenanceOrderDetail> tableDetailList; /**鍒犻櫎 淇濆吇椤规槑缁�*/ @ApiModelProperty(value = "鍒犻櫎 淇濆吇椤规槑缁�") private List<EamWeekMaintenanceOrderDetail> removeDetailList; + + //纭鎿嶄綔 + /**纭鎰忚*/ + @ApiModelProperty(value = "纭鎰忚") + private String confirmComment; + @ApiModelProperty(value = "纭绫诲瀷") + private String confirmDealType; + //鍒濋獙鏀舵搷浣� + /**鍒濋獙鏀舵剰瑙�*/ + @ApiModelProperty(value = "鍒濋獙鏀舵剰瑙�") + private String initialAcceptanceComment; + /**鍒濋獙鏀堕檮浠�*/ + @ApiModelProperty(value = "鍒濋獙鏀堕檮浠�") + private String initialAcceptanceFiles; + /**鍒濋獙鏀堕檮浠�*/ + @ApiModelProperty(value = "鍒濋獙鏀堕檮浠�") + private List<FileUploadResult> initialAcceptanceFilesResult; + //缁堥獙鏀舵搷浣� + /**缁堥獙鏀舵剰瑙�*/ + @ApiModelProperty(value = "缁堥獙鏀舵剰瑙�") + private String finalAcceptanceComment; + /**缁堥獙鏀堕檮浠�*/ + @ApiModelProperty(value = "缁堥獙鏀堕檮浠�") + private String finalAcceptanceFiles; + /**缁堥獙鏀堕檮浠�*/ + @ApiModelProperty(value = "缁堥獙鏀堕檮浠�") + private List<FileUploadResult> finalAcceptanceFilesResult; } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentAttachmentService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentAttachmentService.java new file mode 100644 index 0000000..fc4c18f --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentAttachmentService.java @@ -0,0 +1,30 @@ +package org.jeecg.modules.eam.service; + +import org.jeecg.modules.eam.entity.EamEquipmentAttachment; +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.eam.request.EamEquipmentAttachmentRequest; + +import javax.servlet.http.HttpServletResponse; + +/** + * @Description: 璁惧鏂囨。鍙拌处浣跨敤 + * @Author: jeecg-boot + * @Date: 2025-04-16 + * @Version: V1.0 + */ +public interface IEamEquipmentAttachmentService extends IService<EamEquipmentAttachment> { + + /** + * + * @param response + * @param byId + */ + void downloadFile(HttpServletResponse response, EamEquipmentAttachment byId); + + /** + * 淇濆瓨瀵硅薄 + * @param request + * @return + */ + boolean saveEntity(EamEquipmentAttachmentRequest request); +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderDetailService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderDetailService.java index 07b2697..0fd64c7 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderDetailService.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderDetailService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.eam.entity.EamInspectionOrderDetail; +import java.util.List; + /** * @Description: 鐐规宸ュ崟鏄庣粏 * @Author: jeecg-boot @@ -10,5 +12,10 @@ * @Version: V1.0 */ public interface IEamInspectionOrderDetailService extends IService<EamInspectionOrderDetail> { - + /** + * 鑾峰彇宸ュ崟淇濆吇椤瑰唴瀹� + * @param orderId 宸ュ崟ID + * @return + */ + List<EamInspectionOrderDetail> queryListByOrderId(String orderId); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderService.java index fdeee05..7999fa1 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderService.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderService.java @@ -1,9 +1,14 @@ package org.jeecg.modules.eam.service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.eam.entity.EamInspectionOrder; +import org.jeecg.modules.eam.request.EamInspectionOrderQuery; import org.jeecg.modules.eam.request.EamInspectionOrderRequest; + +import java.util.List; /** * @Description: 鐐规宸ュ崟 @@ -61,6 +66,20 @@ * @param eamInspectionOrderRequest * @return */ - Result<?> inspectionProcess(EamInspectionOrderRequest eamInspectionOrderRequest); + EamInspectionOrder inspectionProcess(EamInspectionOrderRequest eamInspectionOrderRequest); + /** + * 鍒嗛〉鏌ヨ + * @param page + * @param query + * @return + */ + IPage<EamInspectionOrder> queryPageList(Page<EamInspectionOrder> page, EamInspectionOrderQuery query); + + /** + * 鑾峰彇鏈偣妫�鐨勫伐鍗� + * @param expiredDate 杩囨湡鏃ユ湡 + * @return + */ + List<EamInspectionOrder> selectUnCompleteOrder(String expiredDate); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardDetailService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardDetailService.java index 676cfbe..eff776a 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardDetailService.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardDetailService.java @@ -3,6 +3,8 @@ import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** * @Description: 淇濆吇鏍囧噯鏄庣粏 * @Author: jeecg-boot @@ -10,5 +12,10 @@ * @Version: V1.0 */ public interface IEamMaintenanceStandardDetailService extends IService<EamMaintenanceStandardDetail> { - + /** + * 鑾峰彇鏍囧噯涓嬫槑缁嗛」淇℃伅 + * @param standardId + * @return + */ + List<EamMaintenanceStandardDetail> selectByStandardId(String standardId); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java index 8890114..c136e81 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java @@ -52,9 +52,16 @@ /** * 鏌ヨ鏍囧噯鍒楄〃-鍓嶇灞曠ず璇ョ敤鎴锋嫢鏈夌殑鏍囧噯 - * @param keyword 璁惧缂栧彿 + * @param keyword 鍏抽敭璇� * @param maintenanceCategory 淇濆吇绫诲瀷 * @return */ - List<EamMaintenanceStandard> queryListBykeywordAndCategory( String keyword, String maintenanceCategory); + List<EamMaintenanceStandard> queryListByKeywordAndCategory(String keyword, String equipmentId, Integer pageSize, String maintenanceCategory); + + /** + * 鏌ヨ淇濆吇绫诲瀷涓嬫甯哥殑淇濆吇鏍囧噯 + * @param maintenanceCategory 淇濆吇绫诲瀷 + * @return + */ + List<EamMaintenanceStandard> queryListByCategory(String maintenanceCategory); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java index 6af321b..4faae6e 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java @@ -5,6 +5,9 @@ import org.jeecg.modules.eam.entity.EamRepairOrder; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.eam.request.EamRepairOrderQuery; +import org.jeecg.modules.eam.request.EamRepairOrderRequest; +import org.jeecg.modules.eam.request.EamRepairOrderResponse; +import org.jeecg.modules.eam.request.EamReportRepairQuery; /** * @Description: 缁翠慨宸ュ崟 @@ -26,4 +29,19 @@ * @param eamRepairOrder */ void saveRepairOrder(EamRepairOrder eamRepairOrder); + + /** + * 娴佺▼鎿嶄綔 + * @param request + * @return + */ + EamRepairOrder perform(EamRepairOrderRequest request); + + EamRepairOrderResponse findById(String id); + + /** + * 鎸囨淳 + * @param eamReportRepairQuery + */ + void assign(EamReportRepairQuery eamReportRepairQuery); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java index dbaedda..059a9f6 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java @@ -2,9 +2,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import org.jeecg.modules.eam.entity.EamReportRepair; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.eam.entity.EamInspectionOrderDetail; +import org.jeecg.modules.eam.entity.EamReportRepair; +import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail; import org.jeecg.modules.eam.request.EamReportRepairQuery; + +import java.util.List; /** * @Description: 鏁呴殰鎶ヤ慨 @@ -20,4 +24,34 @@ * @return */ IPage<EamReportRepair> pageList(Page<EamReportRepair> page, EamReportRepairQuery eamReportRepairQuery); + + /** + * 浠庡懆淇濅腑鐢熸垚鎶ヤ慨 + * @param detailList + * @return + */ + EamReportRepair reportRepairFromMaintenance(String equipmentId, String reportUser, List<EamWeekMaintenanceOrderDetail> detailList); + + + /** + * 浠庡懆淇濅腑鐢熸垚鎶ヤ慨 + * @param detailList + * @return + */ + EamReportRepair reportRepairFromInspection(String equipmentId, String reportUser, List<EamInspectionOrderDetail> detailList); + + /** + * 鏁呴殰淇濅慨 + * @param eamReportRepair + * @return + */ + EamReportRepair add(EamReportRepair eamReportRepair); + + /** + * 缂栬緫 + * @param eamReportRepair + * @return + */ + boolean edit(EamReportRepair eamReportRepair); + } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamSysFilesService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamSysFilesService.java index 9e3a27a..293ecb1 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamSysFilesService.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamSysFilesService.java @@ -37,4 +37,11 @@ * @param request */ boolean saveEamSysFiles(EamSysFilesRequest request); + + /** + * 鏍规嵁璺緞鑾峰彇鏂囦欢 + * @param path + * @return + */ + EamSysFiles getByPath(String path); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderDetailService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderDetailService.java index e536fa7..6a78ac0 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderDetailService.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderDetailService.java @@ -1,7 +1,9 @@ package org.jeecg.modules.eam.service; -import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail; + +import java.util.List; /** * @Description: 鍛ㄤ繚宸ュ崟鏄庣粏 @@ -11,4 +13,10 @@ */ public interface IEamWeekMaintenanceOrderDetailService extends IService<EamWeekMaintenanceOrderDetail> { + /** + * 鏍规嵁宸ュ崟ID 鏌ヨ淇濆吇鏄庣粏 + * @param orderId + * @return + */ + List<EamWeekMaintenanceOrderDetail> queryListByOrderId(String orderId); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderService.java index 8679fcd..2a69318 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderService.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderService.java @@ -7,6 +7,8 @@ import org.jeecg.modules.eam.request.EamWeekMaintenanceQuery; import org.jeecg.modules.eam.request.EamWeekMaintenanceRequest; +import java.util.List; + /** * @Description: 鍛ㄤ繚宸ュ崟 * @Author: jeecg-boot @@ -43,4 +45,18 @@ * @return */ boolean collect(String id); + + /** + * 鎴戠殑寰呭姙锛屽鎵瑰姩浣� + * @param request + * @return + */ + EamWeekMaintenanceOrder approval(EamWeekMaintenanceRequest request); + + /** + * 鑾峰彇浠婂ぉ涔嬪墠鏈繚鍏诲畬鎴愮殑宸ュ崟 + * @param expiredDate 杩囨湡鏃ユ湡 + * @return + */ + List<EamWeekMaintenanceOrder> selectUnCompleteOrder(String expiredDate); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentAttachmentServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentAttachmentServiceImpl.java new file mode 100644 index 0000000..2dbbe82 --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentAttachmentServiceImpl.java @@ -0,0 +1,65 @@ +package org.jeecg.modules.eam.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.common.api.vo.FileUploadResult; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.exception.JeecgBootException; +import org.jeecg.common.util.FileUtil; +import org.jeecg.modules.eam.entity.EamEquipment; +import org.jeecg.modules.eam.entity.EamEquipmentAttachment; +import org.jeecg.modules.eam.mapper.EamEquipmentAttachmentMapper; +import org.jeecg.modules.eam.request.EamEquipmentAttachmentRequest; +import org.jeecg.modules.eam.service.IEamEquipmentAttachmentService; +import org.jeecg.modules.eam.service.IEamEquipmentService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; + +/** + * @Description: 璁惧鏂囨。鍙拌处浣跨敤 + * @Author: jeecg-boot + * @Date: 2025-04-16 + * @Version: V1.0 + */ +@Service +public class EamEquipmentAttachmentServiceImpl extends ServiceImpl<EamEquipmentAttachmentMapper, EamEquipmentAttachment> implements IEamEquipmentAttachmentService { + + @Autowired + private IEamEquipmentService eamEquipmentService; + + @Override + public void downloadFile(HttpServletResponse response, EamEquipmentAttachment entity) { + FileUtil.downLoadFile(response, entity.getFilePath(), entity.getFileName()); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean saveEntity(EamEquipmentAttachmentRequest request) { + if(request == null || CollectionUtil.isEmpty(request.getFileList())){ + return false; + } + EamEquipment equipment = eamEquipmentService.getById(request.getEquipmentId()); + if(equipment == null){ + throw new JeecgBootException("璇峰厛閫夋嫨璁惧鍐嶄笂浼犳枃妗�"); + } + List<EamEquipmentAttachment> resultList = new ArrayList<>(); + for (FileUploadResult fileUploadResult : request.getFileList()) { + EamEquipmentAttachment entity = new EamEquipmentAttachment(); + entity.setFilePath(fileUploadResult.getFilePath()); + entity.setFileName(fileUploadResult.getFileName()); + entity.setFileEncodeName(fileUploadResult.getFileEncodeName()); + entity.setFileSize(fileUploadResult.getFileSize()); + entity.setFileSuffix(fileUploadResult.getFileSuffix()); + entity.setDescription(request.getDescription()); + entity.setDelFlag(CommonConstant.DEL_FLAG_0); + entity.setEquipmentId(request.getEquipmentId()); + resultList.add(entity); + } + return this.saveBatch(resultList); + } +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderDetailServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderDetailServiceImpl.java index ae09fde..6ca87cb 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderDetailServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderDetailServiceImpl.java @@ -1,10 +1,14 @@ package org.jeecg.modules.eam.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.modules.eam.entity.EamInspectionOrderDetail; import org.jeecg.modules.eam.mapper.EamInspectionOrderDetailMapper; import org.jeecg.modules.eam.service.IEamInspectionOrderDetailService; import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; /** * @Description: 鐐规宸ュ崟鏄庣粏 @@ -15,4 +19,11 @@ @Service public class EamInspectionOrderDetailServiceImpl extends ServiceImpl<EamInspectionOrderDetailMapper, EamInspectionOrderDetail> implements IEamInspectionOrderDetailService { + @Override + public List<EamInspectionOrderDetail> queryListByOrderId(String orderId) { + LambdaQueryWrapper<EamInspectionOrderDetail> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamInspectionOrderDetail::getOrderId, orderId); + queryWrapper.orderByAsc(EamInspectionOrderDetail::getItemCode); + return super.list(queryWrapper); + } } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java index 3642513..fbcf6a5 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java @@ -3,23 +3,38 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.flowable.engine.TaskService; import org.flowable.task.api.Task; import org.jeecg.common.api.vo.FileUploadResult; import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.constant.DataBaseConstant; +import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog; +import org.jeecg.modules.eam.constant.BusinessCodeConst; +import org.jeecg.modules.eam.constant.EquipmentOperationTagEnum; import org.jeecg.modules.eam.constant.InspectionStatus; -import org.jeecg.modules.eam.constant.ReportRepairEnum; -import org.jeecg.modules.eam.entity.*; +import org.jeecg.modules.eam.entity.EamEquipment; +import org.jeecg.modules.eam.entity.EamInspectionOrder; +import org.jeecg.modules.eam.entity.EamInspectionOrderDetail; import org.jeecg.modules.eam.mapper.EamInspectionOrderMapper; +import org.jeecg.modules.eam.request.EamInspectionOrderQuery; import org.jeecg.modules.eam.request.EamInspectionOrderRequest; -import org.jeecg.modules.eam.service.*; +import org.jeecg.modules.eam.service.IEamEquipmentService; +import org.jeecg.modules.eam.service.IEamInspectionOrderDetailService; +import org.jeecg.modules.eam.service.IEamInspectionOrderService; +import org.jeecg.modules.eam.service.IEamReportRepairService; import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness; import org.jeecg.modules.flowable.apithird.business.service.impl.FlowMyBusinessServiceImpl; import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI; @@ -40,11 +55,14 @@ /** * @Description: 鐐规宸ュ崟 * @Author: jeecg-boot - * @Date: 2025-04-02 + * @Date: 2025-04-02 * @Version: V1.0 */ @Service("IEamInspectionOrderService") public class EamInspectionOrderServiceImpl extends ServiceImpl<EamInspectionOrderMapper, EamInspectionOrder> implements IEamInspectionOrderService, FlowCallBackServiceI { + + @Resource + private EamInspectionOrderMapper eamInspectionOrderMapper; @Autowired private IEamInspectionOrderDetailService eamInspectionOrderDetailService; @Resource @@ -65,23 +83,84 @@ private IMdcUserProductionService mdcUserProductionService; @Autowired private IEamReportRepairService eamReportRepairService; - @Autowired - private IEamEquipmentFaultReasonService eamEquipmentFaultReasonService; + + @Override + public IPage<EamInspectionOrder> queryPageList(Page<EamInspectionOrder> page, EamInspectionOrderQuery query) { + QueryWrapper<EamInspectionOrder> queryWrapper = new QueryWrapper<>(); + //鐢ㄦ埛鏁版嵁鏉冮檺 + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (sysUser == null) { + return page; + } + if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) { + //閫夋嫨浜嗚澶囷紝鏍规嵁璁惧id杩囨护璁惧 + List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(",")); + queryWrapper.in("e.equipment_code", equipArr); + } else { + //娌℃湁閫夋嫨璁惧锛屾牴鎹溅闂磋繃婊よ澶� + queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id ", sysUser.getId()); + } + //鏌ヨ鏉′欢杩囨护 + if (query != null) { + if (StringUtils.isNotBlank(query.getEquipmentId())) { + queryWrapper.eq("wmo.equipment_id", query.getEquipmentId()); + } + if (StringUtils.isNotBlank(query.getOrderNum())) { + queryWrapper.like("wmo.order_num", query.getOrderNum()); + } + if (StringUtils.isNotBlank(query.getInspectionStatus())) { + queryWrapper.eq("wmo.inspection_status", query.getInspectionStatus()); + } + if (query.getInspectionDateBegin() != null && query.getInspectionDateEnd() != null) { + queryWrapper.between("wmo.inspection_date", query.getInspectionDateBegin(), query.getInspectionDateEnd()); + } + //鎺掑簭 + if (StringUtils.isNotBlank(query.getColumn()) && StringUtils.isNotBlank(query.getOrder())) { + String column = query.getColumn(); + if (column.endsWith(CommonConstant.DICT_TEXT_SUFFIX)) { + column = column.substring(0, column.lastIndexOf(CommonConstant.DICT_TEXT_SUFFIX)); + } + if (DataBaseConstant.SQL_ASC.equalsIgnoreCase(query.getOrder())) { + queryWrapper.orderByAsc("wmo." + oConvertUtils.camelToUnderline(column)); + } else { + queryWrapper.orderByDesc("wmo." + oConvertUtils.camelToUnderline(column)); + } + } else { + queryWrapper.orderByDesc("wmo.create_time"); + } + } else { + queryWrapper.orderByDesc("wmo.create_time"); + } + + return eamInspectionOrderMapper.queryPageList(page, queryWrapper); + } + + @Override + public List<EamInspectionOrder> selectUnCompleteOrder(String expiredDate) { + LambdaQueryWrapper<EamInspectionOrder> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.lt(EamInspectionOrder::getInspectionDate, expiredDate); + List<String> unCompleteStatus = new ArrayList<>(); + unCompleteStatus.add(InspectionStatus.WAIT_INSPECTION.name()); + unCompleteStatus.add(InspectionStatus.UNDER_INSPECTION.name()); + queryWrapper.in(EamInspectionOrder::getInspectionStatus, unCompleteStatus); + queryWrapper.orderByAsc(EamInspectionOrder::getInspectionDate); + return eamInspectionOrderMapper.selectList(queryWrapper); + } @Override @Transactional(rollbackFor = Exception.class) public boolean addInspectionOrder(EamInspectionOrderRequest eamInspectionOrderRequest) { EamInspectionOrder eamInspectionOrder = new EamInspectionOrder(); - BeanUtils.copyProperties(eamInspectionOrderRequest,eamInspectionOrder); + BeanUtils.copyProperties(eamInspectionOrderRequest, eamInspectionOrder); //淇敼鐘舵�� - if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())){ - eamInspectionOrder.setInspectionStatus(InspectionStatus.IN_PROGRESS.getCode()); - }else { - eamInspectionOrder.setInspectionStatus(InspectionStatus.INIT.getCode()); + if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())) { + eamInspectionOrder.setInspectionStatus(InspectionStatus.UNDER_INSPECTION.name()); + } else { + eamInspectionOrder.setInspectionStatus(InspectionStatus.WAIT_INSPECTION.name()); } save(eamInspectionOrder); //澶勭悊鏄庣粏鏁版嵁 - if(CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getTableDetailList())) { + if (CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getTableDetailList())) { eamInspectionOrderRequest.getTableDetailList().forEach(tableDetail -> { tableDetail.setOrderId(eamInspectionOrder.getId()); tableDetail.setId(null); @@ -89,7 +168,7 @@ eamInspectionOrderDetailService.saveBatch(eamInspectionOrderRequest.getTableDetailList()); } //澶勭悊闄勪欢 - if(CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getFileList())) { + if (CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getFileList())) { FileUploadResult fileUploadResult = eamInspectionOrderRequest.getFileList().get(0); ObjectMapper mapper = new ObjectMapper(); try { @@ -99,7 +178,7 @@ log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e); } } - if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())){ + if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())) { triggerProcess(eamInspectionOrder); } return true; @@ -107,6 +186,7 @@ /** * 瑙﹀彂娴佺▼ + * * @param eamInspectionOrder * @return */ @@ -114,26 +194,26 @@ EamEquipment equipment = eamEquipmentService.getById(eamInspectionOrder.getEquipmentId()); if (equipment == null) { return false; - }else { + } else { eamInspectionOrder.setEquipmentCode(equipment.getEquipmentCode()); } System.out.println("璁惧鐐规锛�" + eamInspectionOrder.getId()); - flowCommonService.initActBusiness("宸ュ崟鍙凤細"+eamInspectionOrder.getOrderNum()+"璁惧缂栧彿"+eamInspectionOrder.getEquipmentCode()+"杩涜璁惧鐐规", + flowCommonService.initActBusiness("宸ュ崟鍙凤細" + eamInspectionOrder.getOrderNum() + "璁惧缂栧彿" + eamInspectionOrder.getEquipmentCode() + "杩涜璁惧鐐规", eamInspectionOrder.getId(), "IEamInspectionOrderService", "eam_inspection", null); Map<String, Object> variables = new HashMap<>(); variables.put("dataId", eamInspectionOrder.getId()); - if (StrUtil.isEmpty(eamInspectionOrder.getRemark())){ + if (StrUtil.isEmpty(eamInspectionOrder.getRemark())) { variables.put("organization", "鏂板鐐规宸ュ崟榛樿鍚姩娴佺▼"); variables.put("comment", "鏂板鐐规宸ュ崟榛樿鍚姩娴佺▼"); - }else { + } else { variables.put("organization", eamInspectionOrder.getRemark()); variables.put("comment", eamInspectionOrder.getRemark()); } - variables.put("proofreading",true); - List<String> usernames=new ArrayList<>(); + variables.put("proofreading", true); + List<String> usernames = new ArrayList<>(); usernames.add(eamInspectionOrder.getOperator()); variables.put("NextAssignee", usernames); - Result result= flowDefinitionService.startProcessInstanceByKey("eam_inspection", variables); + Result result = flowDefinitionService.startProcessInstanceByKey("eam_inspection", variables); return result.isSuccess(); } @@ -142,10 +222,10 @@ public boolean editInspectionOrder(EamInspectionOrderRequest eamInspectionOrderRequest) { EamInspectionOrder eamInspectionOrder = new EamInspectionOrder(); BeanUtils.copyProperties(eamInspectionOrderRequest, eamInspectionOrder); - if (StrUtil.isNotEmpty(eamInspectionOrder.getOperator())){ - eamInspectionOrder.setInspectionStatus(InspectionStatus.IN_PROGRESS.getCode()); + if (StrUtil.isNotEmpty(eamInspectionOrder.getOperator())) { + eamInspectionOrder.setInspectionStatus(InspectionStatus.UNDER_INSPECTION.name()); } - updateById(eamInspectionOrder); + super.updateById(eamInspectionOrder); //澶勭悊鏄庣粏鏁版嵁 if (CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getTableDetailList())) { eamInspectionOrderRequest.getTableDetailList().forEach(tableDetail -> { @@ -161,19 +241,24 @@ /** * 棰嗗彇鐐规宸ュ崟 + * * @param id * @return */ @Override - public boolean takeInspectionOrder(String id){ + @Transactional(rollbackFor = Exception.class) + public boolean takeInspectionOrder(String id) { LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - EamInspectionOrder eamInspectionOrder=this.getById(id); - if (eamInspectionOrder==null) { + if(user == null || !BusinessCodeConst.PCR0001.equals(user.getPost())) { + throw new JeecgBootException("涓嶆槸鎿嶄綔宸ワ紝鏃犳硶棰嗗彇姝ゅ伐鍗曪紒"); + } + EamInspectionOrder eamInspectionOrder = this.getById(id); + if (eamInspectionOrder == null) { return false; - }else { + } else { eamInspectionOrder.setOperator(user.getUsername()); //淇敼鐘舵�� - eamInspectionOrder.setInspectionStatus(InspectionStatus.IN_PROGRESS.getCode()); + eamInspectionOrder.setInspectionStatus(InspectionStatus.UNDER_INSPECTION.name()); this.triggerProcess(eamInspectionOrder); this.updateById(eamInspectionOrder); return true; @@ -182,60 +267,64 @@ /** * 浣滃簾鐐规宸ュ崟 + * * @param id * @return */ @Override - public boolean cancelInspectionOrder(String id){ + public boolean cancelInspectionOrder(String id) { EamInspectionOrder eamInspectionOrder = this.getById(id); if (eamInspectionOrder == null) { return false; - }else { - eamInspectionOrder.setInspectionStatus("5"); + } else { + eamInspectionOrder.setInspectionStatus(InspectionStatus.ABOLISH.name()); return updateById(eamInspectionOrder); } } /** * 鐐规娴佺▼ + * * @param eamInspectionOrderRequest * @return */ @Override - public Result<?> inspectionProcess(EamInspectionOrderRequest eamInspectionOrderRequest) { + @Transactional(rollbackFor = Exception.class) + @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.POINT_INSPECTION, businessTable = "eam_inspection_order") + public EamInspectionOrder inspectionProcess(EamInspectionOrderRequest eamInspectionOrderRequest) { try { // 妫�鏌ヨ姹傚弬鏁� if (!isValidRequest(eamInspectionOrderRequest)) { - return Result.error("闈炴硶鍙傛暟"); + throw new JeecgBootException("闈炴硶鍙傛暟"); } // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛 LoginUser user = getCurrentUser(); if (user == null || StrUtil.isBlank(user.getId())) { - return Result.error("璐﹀彿涓嶅瓨鍦�"); + throw new JeecgBootException("璐﹀彿涓嶅瓨鍦�"); } eamInspectionOrderRequest.setAssignee(user.getUsername()); // 鑾峰彇鐐规宸ュ崟淇℃伅 EamInspectionOrder eamInspectionOrder = getEamInspectionOrder(eamInspectionOrderRequest.getDataId()); if (eamInspectionOrder == null) { - return Result.error("鏈壘鍒板搴旀暟鎹�"); + throw new JeecgBootException("鏈壘鍒板搴旀暟鎹�"); } // 鑾峰彇娴佺▼涓氬姟璁板綍 FlowMyBusiness flowMyBusiness = getFlowMyBusiness(eamInspectionOrderRequest.getInstanceId()); if (flowMyBusiness == null) { - return Result.error("娴佺▼璁板綍涓嶅瓨鍦�"); + throw new JeecgBootException("娴佺▼璁板綍涓嶅瓨鍦�"); } // 妫�鏌ョ敤鎴锋槸鍚︽湁鏉冮檺鎿嶄綔浠诲姟 if (!isUserAuthorized(flowMyBusiness, user)) { - return Result.error("鐢ㄦ埛鏃犳潈鎿嶄綔姝や换鍔�"); + throw new JeecgBootException("鐢ㄦ埛鏃犳潈鎿嶄綔姝や换鍔�"); } // 璁ら浠诲姟 if (!claimTask(flowMyBusiness.getTaskId(), user)) { - return Result.error("浠诲姟涓嶅瓨鍦ㄣ�佸凡瀹屾垚鎴栧凡琚粬浜鸿棰�"); + throw new JeecgBootException("浠诲姟涓嶅瓨鍦ㄣ�佸凡瀹屾垚鎴栧凡琚粬浜鸿棰�"); } // 璁剧疆娴佺▼鍙橀噺 @@ -251,15 +340,16 @@ updateEamInspectionOrder(eamInspectionOrder); //鏌ヨ鏁版嵁,杩涜璁惧缁翠慨澶勭悊 - if (eamInspectionOrder.getInspectionStatus().equals(InspectionStatus.CONFIRMED.getCode())){ + if (eamInspectionOrder.getInspectionStatus().equals(InspectionStatus.WAIT_CONFIRM.name())) { updateEamInspectionOrderDetail(eamInspectionOrder); } - return Result.OK("鎿嶄綔鎴愬姛"); + return eamInspectionOrder; } catch (Exception e) { - return Result.error("鎿嶄綔澶辫触锛�" + e.getMessage()); + throw new JeecgBootException("鎿嶄綔澶辫触锛�" + e.getMessage()); } } + private boolean isValidRequest(EamInspectionOrderRequest request) { return StrUtil.isNotBlank(request.getTaskId()) && StrUtil.isNotBlank(request.getDataId()); @@ -302,7 +392,7 @@ private void setupProcessVariables(EamInspectionOrderRequest request, EamInspectionOrder order, LoginUser user) { Map<String, Object> values = new HashMap<>(); - if (InspectionStatus.IN_PROGRESS.getCode().equals(order.getInspectionStatus()) && user.getUsername().equals(order.getOperator())) { + if (InspectionStatus.UNDER_INSPECTION.name().equals(order.getInspectionStatus()) && user.getUsername().equals(order.getOperator())) { // 鐐规浜虹偣妫�缁撴潫 String orgId = Optional.ofNullable(iEamEquipmentService.getById(order.getEquipmentId())) .map(equipment -> equipment.getOrgId()) @@ -323,15 +413,15 @@ } else { // 鐝粍闀跨‘璁� values.put("dataId", order.getId()); - values.put("organization", request.getDealSuggestion()); - values.put("comment", request.getDealSuggestion()); - values.put("confirmation", request.getDealType()); - request.setComment(request.getDealSuggestion()); - if ("2".equals(request.getDealType())) { + values.put("organization", request.getConfirmComment()); + values.put("comment", request.getConfirmComment()); + values.put("confirmation", request.getConfirmDealType()); + request.setComment(request.getConfirmComment()); + if ("2".equals(request.getConfirmDealType())) { // 鐝粍闀块┏鍥� List<String> usernames = new ArrayList<>(); usernames.add(order.getOperator()); - order.setInspectionStatus("2"); + order.setInspectionStatus(InspectionStatus.UNDER_INSPECTION.name()); values.put("NextAssignee", usernames); } } @@ -340,16 +430,28 @@ private void updateOrderStatus(Result result, EamInspectionOrderRequest request, EamInspectionOrder order, LoginUser user) { if (result.isSuccess()) { - if (InspectionStatus.IN_PROGRESS.getCode().equals(order.getInspectionStatus()) && StrUtil.isEmpty(request.getDealType())) { + if (InspectionStatus.UNDER_INSPECTION.name().equals(order.getInspectionStatus()) && StrUtil.isEmpty(request.getConfirmDealType())) { // 鐐规瀹屾垚 - order.setInspectionStatus("3"); + order.setInspectionStatus(InspectionStatus.WAIT_CONFIRM.name()); order.setOperateTime(new Date()); + if (CollectionUtil.isNotEmpty(request.getFileList())) { + List<FileUploadResult> fileUploadResultList = request.getFileList(); + ObjectMapper mapper = new ObjectMapper(); + try { + String referenceFile = mapper.writeValueAsString(fileUploadResultList); + order.setImageFiles(referenceFile); + } catch (JsonProcessingException e) { + log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e); + } + } eamInspectionOrderDetailService.remove(new QueryWrapper<EamInspectionOrderDetail>().eq("order_id", order.getId())); eamInspectionOrderDetailService.saveBatch(request.getTableDetailList()); - } else if (InspectionStatus.COMPLETED.getCode().equals(order.getInspectionStatus()) && StrUtil.isNotEmpty(request.getDealType())) { + } else if (InspectionStatus.WAIT_CONFIRM.name().equals(order.getInspectionStatus()) && StrUtil.isNotEmpty(request.getConfirmDealType())) { // 鐝粍闀跨‘璁や换鍔� - order.setInspectionStatus("4"); + order.setInspectionStatus(InspectionStatus.COMPLETE.name()); order.setConfirmUser(user.getUsername()); + order.setConfirmComment(request.getConfirmComment()); + order.setConfirmDealType(request.getConfirmDealType()); order.setConfirmTime(new Date()); } } @@ -361,60 +463,42 @@ /** * 璁惧鏄惁瀛樺湪寮傚父,骞惰繘琛岃澶囩淮淇� + * * @param eamInspectionOrder */ private void updateEamInspectionOrderDetail(EamInspectionOrder eamInspectionOrder) { - EamEquipmentFaultReason eamEquipmentFaultReason=eamEquipmentFaultReasonService. - getOne(new QueryWrapper<EamEquipmentFaultReason>().eq("fault_code","EFR20250003")); List<EamInspectionOrderDetail> eamInspectionOrderDetails = eamInspectionOrderDetailService .list(new QueryWrapper<EamInspectionOrderDetail>() - .eq("order_id", eamInspectionOrder.getId()).eq("report_flag","1")); - List<EamReportRepair> eamReportRepairs = new ArrayList<>(); - if (!eamInspectionOrderDetails.isEmpty()) { - eamInspectionOrderDetails.forEach(item->{ - EamReportRepair eamReportRepair=new EamReportRepair(); - eamReportRepair.setEquipmentId(eamInspectionOrder.getEquipmentId()); - eamReportRepair.setFaultName(eamEquipmentFaultReason.getFaultName()); - eamReportRepair.setFaultType(eamEquipmentFaultReason.getFaultCategory()); - eamReportRepair.setFaultDescription(eamEquipmentFaultReason.getFaultDescription()); - eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_REPAIR.name()); - eamReportRepair.setBreakdownFlag("1"); - eamReportRepair.setDelFlag(CommonConstant.DEL_FLAG_0); - eamReportRepair.setFaultStartTime(new Date()); - eamReportRepair.setRemark(item.getExceptionDescription()); - eamReportRepairs.add(eamReportRepair); - }); - } - if (!eamReportRepairs.isEmpty()) { - eamReportRepairService.saveBatch(eamReportRepairs); - } + .eq("order_id", eamInspectionOrder.getId()).eq("report_flag", "1").eq("inspection_result", "2")); + eamReportRepairService.reportRepairFromInspection(eamInspectionOrder.getEquipmentId(), eamInspectionOrder.getOperator(), eamInspectionOrderDetails); } /** * 鎵归噺浣滃簾涓庨鍙� + * * @param ids * @param type * @return */ @Override @Transactional(rollbackFor = Exception.class) - public Result<?> batchCancelOrTakeInspectionOrder(String ids, String type){ + public Result<?> batchCancelOrTakeInspectionOrder(String ids, String type) { if (type == null) { return Result.error("璇烽�夋嫨鎿嶄綔绫诲瀷"); } LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); List<String> list = Arrays.asList(ids.split(",")); - QueryWrapper<EamInspectionOrder> queryWrapper =new QueryWrapper<>(); + QueryWrapper<EamInspectionOrder> queryWrapper = new QueryWrapper<>(); queryWrapper.in("id", list); - queryWrapper.eq("inspection_status", "1"); - List<EamInspectionOrder> eamInspectionOrderList =this.list(queryWrapper); - if (!eamInspectionOrderList.isEmpty()){ + queryWrapper.eq("inspection_status", InspectionStatus.WAIT_INSPECTION.name()); + List<EamInspectionOrder> eamInspectionOrderList = this.list(queryWrapper); + if (!eamInspectionOrderList.isEmpty()) { eamInspectionOrderList.forEach(eamInspectionOrder -> { eamInspectionOrder.setInspectionStatus(type); - if (type.equals("2")){ + if (InspectionStatus.UNDER_INSPECTION.name().equals(type)) { eamInspectionOrder.setOperator(loginUser.getUsername()); this.triggerProcess(eamInspectionOrder); - }else { + } else { eamInspectionOrder.setOperator(null); } }); @@ -425,13 +509,13 @@ @Override - public Result<?> selectVoById(String id){ - List<EamInspectionOrder> eamInspectionOrders=this.list(new QueryWrapper<EamInspectionOrder>().eq("id", id)); - List<EamInspectionOrderRequest> eamInspectionOrderRequestList=new ArrayList<>(); + public Result<?> selectVoById(String id) { + List<EamInspectionOrder> eamInspectionOrders = this.list(new QueryWrapper<EamInspectionOrder>().eq("id", id)); + List<EamInspectionOrderRequest> eamInspectionOrderRequestList = new ArrayList<>(); eamInspectionOrders.forEach(eamInspectionOrder -> { - EamInspectionOrderRequest eamInspectionOrderRequest=new EamInspectionOrderRequest(); - BeanUtils.copyProperties(eamInspectionOrder,eamInspectionOrderRequest); - List<EamInspectionOrderDetail> eamInspectionOrderDetails=eamInspectionOrderDetailService + EamInspectionOrderRequest eamInspectionOrderRequest = new EamInspectionOrderRequest(); + BeanUtils.copyProperties(eamInspectionOrder, eamInspectionOrderRequest); + List<EamInspectionOrderDetail> eamInspectionOrderDetails = eamInspectionOrderDetailService .list(new QueryWrapper<EamInspectionOrderDetail>().eq("order_id", eamInspectionOrder.getId())); eamInspectionOrderRequest.setTableDetailList(eamInspectionOrderDetails); eamInspectionOrderRequestList.add(eamInspectionOrderRequest); @@ -460,7 +544,7 @@ public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) { //涓氬姟鏄惁骞查娴佺▼锛屼笟鍔″共棰勶紝娴佺▼骞查锛屾寚瀹氫汉鍛樿繘琛屽鐞� //鑾峰彇涓嬩竴姝ュ鐞嗕汉 - Object object=values.get("NextAssignee"); + Object object = values.get("NextAssignee"); return (List<String>) object; } } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardDetailServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardDetailServiceImpl.java index 966f604..5a0327a 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardDetailServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardDetailServiceImpl.java @@ -1,11 +1,17 @@ package org.jeecg.modules.eam.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.jeecg.common.api.vo.Result; import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail; import org.jeecg.modules.eam.mapper.EamMaintenanceStandardDetailMapper; import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; /** * @Description: 淇濆吇鏍囧噯鏄庣粏 @@ -15,5 +21,14 @@ */ @Service public class EamMaintenanceStandardDetailServiceImpl extends ServiceImpl<EamMaintenanceStandardDetailMapper, EamMaintenanceStandardDetail> implements IEamMaintenanceStandardDetailService { + @Resource + private EamMaintenanceStandardDetailMapper emMaintenanceStandardDetailMapper; + @Override + public List<EamMaintenanceStandardDetail> selectByStandardId(String standardId) { + LambdaQueryWrapper<EamMaintenanceStandardDetail> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamMaintenanceStandardDetail::getStandardId, standardId); + queryWrapper.orderByAsc(EamMaintenanceStandardDetail::getItemCode); + return emMaintenanceStandardDetailMapper.selectList(queryWrapper); + } } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java index c8c4bcb..6d30e4b 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java @@ -2,6 +2,7 @@ import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -27,6 +28,7 @@ import javax.annotation.Resource; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.stream.Collectors; @@ -47,8 +49,8 @@ @Override public IPage<EamMaintenanceStandard> queryPageList(Page<EamMaintenanceStandard> page, EamMaintenanceStandard eamMaintenanceStandard) { - LambdaQueryWrapper<EamMaintenanceStandard> queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(EamMaintenanceStandard::getDelFlag, CommonConstant.DEL_FLAG_0); + QueryWrapper<EamMaintenanceStandard> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ems.del_flag", CommonConstant.DEL_FLAG_0); //鐢ㄦ埛鏁版嵁鏉冮檺 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { @@ -57,41 +59,41 @@ if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) { //閫夋嫨浜嗚澶囷紝鏍规嵁璁惧id杩囨护璁惧 List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(",")); - StringBuilder sqlSb = new StringBuilder("select 1 from eam_equipment t where t.id = equipment_id and t.equipment_code in ("); - equipArr.forEach(equipmentCode -> { - sqlSb.append("'").append(equipmentCode).append("',"); - }); - sqlSb.append(")"); - String sql = sqlSb.toString().replaceAll(",\\)", ")"); - queryWrapper.exists(sql); + queryWrapper.in("e.equipment_code", equipArr); } else { //娌℃湁閫夋嫨璁惧锛屾牴鎹溅闂磋繃婊よ澶� - queryWrapper.exists("select 1 from eam_equipment e where exists (select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id) and e.id = equipment_id", sysUser.getId()); + queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id ", sysUser.getId()); } if(eamMaintenanceStandard != null) { //缂栫爜 妯$硦鏌ヨ if(StringUtils.isNotBlank(eamMaintenanceStandard.getStandardCode())) { - queryWrapper.like(EamMaintenanceStandard::getStandardCode, eamMaintenanceStandard.getStandardCode()); + queryWrapper.like("ems.standard_code", eamMaintenanceStandard.getStandardCode()); } //鍚嶇О 妯$硦鏌ヨ if(StringUtils.isNotBlank(eamMaintenanceStandard.getStandardName())) { - queryWrapper.like(EamMaintenanceStandard::getStandardName, eamMaintenanceStandard.getStandardName()); + queryWrapper.like("ems.standard_name", eamMaintenanceStandard.getStandardCode()); } //璁惧 if(StringUtils.isNotBlank(eamMaintenanceStandard.getEquipmentId())) { - queryWrapper.eq(EamMaintenanceStandard::getEquipmentId, eamMaintenanceStandard.getEquipmentId()); + queryWrapper.eq("ems.equipment_id", eamMaintenanceStandard.getEquipmentId()); } //淇濆吇鍒嗙被 if(StringUtils.isNotBlank(eamMaintenanceStandard.getMaintenanceCategory())) { - queryWrapper.eq(EamMaintenanceStandard::getMaintenanceCategory, eamMaintenanceStandard.getMaintenanceCategory()); + queryWrapper.eq("ems.maintenance_category", eamMaintenanceStandard.getMaintenanceCategory()); } //淇濆吇鍒嗙被 if(StringUtils.isNotBlank(eamMaintenanceStandard.getStandardStatus())) { - queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, eamMaintenanceStandard.getStandardStatus()); + queryWrapper.eq("ems.standard_status", eamMaintenanceStandard.getStandardStatus()); + } + //璁惧缂栫爜 + if(StringUtils.isNotBlank(eamMaintenanceStandard.getKeyword())) { + queryWrapper.and(wrapper -> wrapper.like("e.equipment_name", eamMaintenanceStandard.getKeyword()) + .or() + .like("e.equipment_code", eamMaintenanceStandard.getKeyword())); } } - queryWrapper.orderByDesc(EamMaintenanceStandard::getCreateTime); - return eamMaintenanceStandardMapper.selectPage(page, queryWrapper); + queryWrapper.orderByDesc("ems.create_time"); + return eamMaintenanceStandardMapper.queryPageList(page, queryWrapper); } @Override @@ -269,8 +271,23 @@ * @return */ @Override - public List<EamMaintenanceStandard> queryListBykeywordAndCategory(String keyword, String maintenanceCategory){ - LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - return eamMaintenanceStandardMapper.queryListBykeywordAndCategory(loginUser.getId(),keyword, maintenanceCategory); + public List<EamMaintenanceStandard> queryListByKeywordAndCategory(String keyword, String equipmentId, Integer pageSize, String maintenanceCategory){ + Page<EamMaintenanceStandard> page = new Page<EamMaintenanceStandard>(1, pageSize); + EamMaintenanceStandard query = new EamMaintenanceStandard(); + query.setEquipmentId(equipmentId); + query.setKeyword(keyword); + query.setMaintenanceCategory(maintenanceCategory); + query.setStandardStatus(MaintenanceStandardStatusEnum.NORMAL.name()); + IPage<EamMaintenanceStandard> pageData = this.queryPageList(page, query); + return pageData.getRecords(); + } + + @Override + public List<EamMaintenanceStandard> queryListByCategory(String maintenanceCategory) { + LambdaQueryWrapper<EamMaintenanceStandard> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamMaintenanceStandard::getDelFlag, CommonConstant.DEL_FLAG_0); + queryWrapper.eq(EamMaintenanceStandard::getMaintenanceCategory, maintenanceCategory); + queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.NORMAL.name()); + return eamMaintenanceStandardMapper.selectList(queryWrapper); } } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java index 5bcf4b8..b86ab14 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java @@ -1,28 +1,44 @@ package org.jeecg.modules.eam.service.impl; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; +import org.flowable.engine.TaskService; +import org.flowable.task.api.Task; +import org.jeecg.common.api.vo.FileUploadResult; import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.vo.LoginUser; -import org.jeecg.modules.eam.constant.BusinessCodeConst; -import org.jeecg.modules.eam.constant.ReportRepairEnum; +import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog; +import org.jeecg.modules.eam.constant.*; import org.jeecg.modules.eam.entity.EamEquipment; import org.jeecg.modules.eam.entity.EamRepairOrder; import org.jeecg.modules.eam.entity.EamReportRepair; import org.jeecg.modules.eam.mapper.EamRepairOrderMapper; import org.jeecg.modules.eam.request.EamRepairOrderQuery; +import org.jeecg.modules.eam.request.EamRepairOrderRequest; +import org.jeecg.modules.eam.request.EamRepairOrderResponse; +import org.jeecg.modules.eam.request.EamReportRepairQuery; +import org.jeecg.modules.eam.service.IEamEquipmentExtendService; import org.jeecg.modules.eam.service.IEamEquipmentService; import org.jeecg.modules.eam.service.IEamRepairOrderService; import org.jeecg.modules.eam.service.IEamReportRepairService; import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness; +import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService; import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI; import org.jeecg.modules.flowable.apithird.service.FlowCommonService; import org.jeecg.modules.flowable.service.IFlowDefinitionService; +import org.jeecg.modules.flowable.service.IFlowTaskService; import org.jeecg.modules.mdc.util.DateUtils; import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -53,6 +69,18 @@ @Resource private IEamEquipmentService eamEquipmentService; + + @Resource + private IFlowMyBusinessService flowMyBusinessService; + + @Resource + private TaskService taskService; + + @Resource + private IFlowTaskService flowTaskService; + + @Resource + private IEamEquipmentExtendService eamEquipmentExtendService; /** * 鍒嗛〉鍒楄〃 @@ -86,8 +114,9 @@ eamRepairOrder.setEquipmentId(eamReportRepair.getEquipmentId()); eamRepairOrder.setRepairStatus(ReportRepairEnum.UNDER_REPAIR.name()); eamRepairOrder.setActualStartTime(DateUtils.getNow()); + eamRepairOrder.setIsUseSpare(0); LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - eamRepairOrder.setRepairer(user.getRealname()); + eamRepairOrder.setRepairer(user.getUsername()); super.save(eamRepairOrder); EamEquipment eamEquipment = eamEquipmentService.getById(eamReportRepair.getEquipmentId()); // 鍚姩缁翠慨娴佺▼ @@ -110,7 +139,244 @@ } else { eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_REPAIR.name()); eamReportRepairService.updateById(eamReportRepair); + //鏇存柊璁惧缁翠慨鐘舵�� + eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.UNDER_REPAIR.name()); } + } + + /** + * 鎸囨淳 + * @param eamReportRepairQuery + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void assign(EamReportRepairQuery eamReportRepairQuery) { + EamRepairOrder eamRepairOrder = new EamRepairOrder(); + String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.REPAIR_ORDER_CODE_RULE); + eamRepairOrder.setRepairCode(codeSeq); + EamReportRepair eamReportRepair = eamReportRepairService.getById(eamReportRepairQuery.getId()); + eamRepairOrder.setDelFlag(CommonConstant.DEL_FLAG_0); + eamRepairOrder.setEquipmentId(eamReportRepair.getEquipmentId()); + eamRepairOrder.setRepairStatus(ReportRepairEnum.UNDER_REPAIR.name()); + eamRepairOrder.setActualStartTime(DateUtils.getNow()); + eamRepairOrder.setIsUseSpare(0); + eamRepairOrder.setRepairer(eamReportRepairQuery.getRepairer()); + super.save(eamRepairOrder); + EamEquipment eamEquipment = eamEquipmentService.getById(eamReportRepair.getEquipmentId()); + // 鍚姩缁翠慨娴佺▼ + flowCommonService.initActBusiness("缁翠慨宸ュ崟鍙凤細" + codeSeq + ", 璁惧缂栧彿锛�" + eamEquipment.getEquipmentCode() + "寮�濮嬬淮淇�", + eamRepairOrder.getId(), + "IEamRepairOrderService", + "eam_repair", + null); + Map<String, Object> variables = new HashMap<>(); + variables.put("dataId", eamRepairOrder.getId()); + variables.put("organization", "缁翠慨宸ュ崟鍚姩娴佺▼"); + variables.put("comment", "缁翠慨宸ュ崟鍚姩娴佺▼"); + variables.put("proofreading", true); + List<String> usernames = new ArrayList<>(); + usernames.add(eamReportRepairQuery.getRepairer()); + variables.put("NextAssignee", usernames); + Result result = flowDefinitionService.startProcessInstanceByKey("eam_repair", variables); + if (!result.isSuccess()) { + super.removeById(eamRepairOrder); + } else { + eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_REPAIR.name()); + eamReportRepairService.updateById(eamReportRepair); + //鏇存柊璁惧缁翠慨鐘舵�� + eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.UNDER_REPAIR.name()); + } + } + + /** + * 娴佺▼鎿嶄綔 + * + * @param request + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.REPAIRED, businessTable = "eam_repair_order") + public EamRepairOrder perform(EamRepairOrderRequest request) { + EamRepairOrder eamRepairOrder = this.baseMapper.selectById(request.getId()); + EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId()); + if (eamRepairOrder == null) { + throw new JeecgBootException("瀹℃壒鐨勬暟鎹凡鍒犻櫎锛岃鍒锋柊閲嶈瘯锛�"); + } + // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛 + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (user == null || StrUtil.isBlank(user.getId())) { + throw new JeecgBootException("鏈幏鍙栧埌鐧诲綍鐢ㄦ埛锛岃閲嶆柊鐧诲綍鍚庡啀璇曪紒"); + } + request.setAssignee(user.getUsername()); + // 鑾峰彇娴佺▼涓氬姟璁板綍 + FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(request.getInstanceId()); + if (flowMyBusiness == null) { + throw new JeecgBootException("娴佺▼瀹炰緥涓嶅瓨鍦紝璇峰埛鏂板悗閲嶈瘯锛�"); + } + boolean userAuthorized = isUserAuthorized(flowMyBusiness, user); + if (!userAuthorized) { + throw new JeecgBootException("鐢ㄦ埛鏃犳潈鎿嶄綔姝や换鍔★紝璇峰埛鏂板悗閲嶈瘯锛�"); + } + // 璁ら浠诲姟 + if (!claimTask(flowMyBusiness.getTaskId(), user)) { + throw new JeecgBootException("浠诲姟涓嶅瓨鍦ㄣ�佸凡瀹屾垚鎴栧凡琚粬浜鸿棰嗭紒"); + } + EamEquipment equipment = eamEquipmentService.getById(request.getEquipmentId()); + if (equipment == null) { + throw new JeecgBootException("璁惧涓嶅瓨鍦紝璇锋鏌ワ紒"); + } + + ReportRepairEnum status = ReportRepairEnum.getInstance(eamRepairOrder.getRepairStatus()); + if (status == null) { + return null; + } + //娴佺▼鍙橀噺 + Map<String, Object> values = new HashMap<>(); + switch (status) { + case UNDER_REPAIR: + //缁翠慨涓細涓嬩竴姝� 鍒ゆ柇鏄惁闇�瑕佸浠�, 闇�瑕佸浠惰浆璁惧绠$悊鍛橀鐢ㄥ浠�, 涓嶉渶瑕佸垯杞埌璁惧鎶ヤ慨鍛樼‘璁ょ淮淇畬鎴� + if (request.getIsUseSpare() == 1) { + // 闇�瑕� + if (StringUtils.isBlank(equipment.getEquipmentManager())) { + throw new JeecgBootException("璁惧鏈垎閰嶈澶囩鐞嗗憳锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒"); + } + if (StringUtils.isBlank(eamRepairOrder.getSparePartDescription())) { + values.put("dataId", eamRepairOrder.getId()); + values.put("organization", "缁翠慨宸ュ崟杩涘叆绛夊浠剁姸鎬�"); + values.put("comment", "缁翠慨宸ュ崟杩涘叆绛夊浠剁姸鎬�"); + values.put("NextAssignee", Arrays.asList(equipment.getEquipmentManager().split(","))); + values.put("status", 1); + request.setComment("缁翠慨宸ュ崟杩涘叆绛夊浠剁姸鎬�"); + eamRepairOrder.setRepairStatus(ReportRepairEnum.WAIT_SPARES.name()); + eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_SPARES.name()); + eamRepairOrder.setIsUseSpare(1); + } else { + values.put("dataId", eamRepairOrder.getId()); + values.put("organization", "缁翠慨宸ュ崟杩涘叆鎶ヤ慨鍛樼‘璁ら樁娈�"); + values.put("comment", "缁翠慨宸ュ崟杩涘叆鎶ヤ慨鍛樼‘璁ら樁娈�"); + values.put("NextAssignee", Arrays.asList(eamReportRepair.getCreateBy().split(","))); + request.setComment("缁翠慨宸ュ崟杩涘叆绛夊浠剁姸鎬�"); + eamRepairOrder.setRepairStatus(ReportRepairEnum.WAIT_CONFIRM.name()); + eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_CONFIRM.name()); + eamRepairOrder.setFaultReason(request.getFaultReason()); + eamRepairOrder.setRepairDescription(request.getRepairDescription()); + // 澶勭悊闄勪欢 + if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) { + List<FileUploadResult> fileUploadResultList = request.getImageFilesResult(); + ObjectMapper mapper = new ObjectMapper(); + try { + String referenceFile = mapper.writeValueAsString(fileUploadResultList); + eamRepairOrder.setImageFiles(referenceFile); + } catch (JsonProcessingException e) { + log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e); + } + } + //鏇存柊璁惧缁翠慨鐘舵�� + eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_CONFIRM.name()); + } + } else { + // 涓嶉渶瑕� + values.put("dataId", eamRepairOrder.getId()); + values.put("organization", "缁翠慨宸ュ崟杩涘叆鎶ヤ慨鍛樼‘璁ら樁娈�"); + values.put("comment", "缁翠慨宸ュ崟杩涘叆鎶ヤ慨鍛樼‘璁ら樁娈�"); + values.put("NextAssignee", Arrays.asList(eamReportRepair.getCreateBy().split(","))); + values.put("status", 0); + request.setComment("缁翠慨宸ュ崟杩涘叆鎶ヤ慨鍛樼‘璁ら樁娈�"); + eamRepairOrder.setRepairStatus(ReportRepairEnum.WAIT_CONFIRM.name()); + eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_CONFIRM.name()); + eamRepairOrder.setFaultReason(request.getFaultReason()); + eamRepairOrder.setRepairDescription(request.getRepairDescription()); + eamRepairOrder.setIsUseSpare(0); + // 澶勭悊闄勪欢 + if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) { + List<FileUploadResult> fileUploadResultList = request.getImageFilesResult(); + ObjectMapper mapper = new ObjectMapper(); + try { + String referenceFile = mapper.writeValueAsString(fileUploadResultList); + eamRepairOrder.setImageFiles(referenceFile); + } catch (JsonProcessingException e) { + log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e); + } + } + //鏇存柊璁惧缁翠慨鐘舵�� + eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_CONFIRM.name()); + } + break; + case WAIT_SPARES: + // 绛夊浠�, 绠$悊鍛樼‘璁ゅ浠跺埌浣嶏紝娴佺▼杞埌缁翠慨鍛樼户缁淮淇�,鐘舵�佽浆涓虹淮淇腑 + values.put("dataId", eamRepairOrder.getId()); + values.put("organization", "缁翠慨宸ュ崟杩涘叆缁翠慨鍛樼户缁淮淇樁娈�"); + values.put("comment", "缁翠慨宸ュ崟杩涘叆缁翠慨鍛樼户缁淮淇樁娈�"); + values.put("NextAssignee", Arrays.asList(eamRepairOrder.getRepairer().split(","))); + values.put("status", 0); + request.setComment("缁翠慨宸ュ崟杩涘叆缁翠慨鍛樼户缁淮淇樁娈�"); + eamRepairOrder.setRepairStatus(ReportRepairEnum.UNDER_REPAIR.name()); + eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_REPAIR.name()); + eamRepairOrder.setSparePartDescription(request.getSparePartDescription()); + break; + case WAIT_CONFIRM: + // 寰呯‘璁�, 缁翠慨鍛樼淮淇畬鎴愶紝鎶ヤ慨浜虹‘璁ょ粨鏉熸祦绋� + values.put("dataId", eamRepairOrder.getId()); + values.put("organization", "缁翠慨宸ュ崟娴佺▼缁撴潫"); + values.put("comment", "缁翠慨宸ュ崟娴佺▼缁撴潫"); + values.put("NextAssignee", Arrays.asList(eamReportRepair.getCreateBy().split(","))); + values.put("status", 0); + request.setComment("缁翠慨宸ュ崟杩涘叆鎶ヤ慨鍛樼‘璁ら樁娈�"); + eamRepairOrder.setRepairStatus(ReportRepairEnum.COMPLETE.name()); + eamReportRepair.setReportStatus(ReportRepairEnum.COMPLETE.name()); + eamRepairOrder.setActualEndTime(new Date()); + //鏇存柊璁惧缁翠慨鐘舵�� + eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.NORMAL.name()); + break; + } + request.setValues(values); + + // 瀹屾垚娴佺▼浠诲姟 + Result result = flowTaskService.complete(request); + if (!result.isSuccess()) { + throw new JeecgBootException("瀹℃壒澶辫触锛岃鍒锋柊鏌ョ湅锛�"); + } + //淇濆瓨宸ュ崟 + this.baseMapper.updateById(eamRepairOrder); + // 鍚屾鏇存柊鎶ヤ慨琛ㄧ姸鎬� + eamReportRepairService.updateById(eamReportRepair); + return eamRepairOrder; + } + + @Override + public EamRepairOrderResponse findById(String id) { + EamRepairOrderResponse eamRepairOrderResponse = new EamRepairOrderResponse(); + EamRepairOrder eamRepairOrder = this.baseMapper.selectById(id); + BeanUtils.copyProperties(eamRepairOrder, eamRepairOrderResponse); + EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId()); + BeanUtils.copyProperties(eamReportRepair, eamRepairOrderResponse); + eamRepairOrderResponse.setReportImageFiles(eamReportRepair.getImageFiles()); + eamRepairOrderResponse.setImageFiles(eamRepairOrder.getImageFiles()); + return eamRepairOrderResponse; + } + + private boolean claimTask(String taskId, LoginUser user) { + Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); + if (task == null) { + return false; + } + if (task.getAssignee() != null && !task.getAssignee().equals(user.getUsername())) { + return false; + } + taskService.claim(taskId, user.getUsername()); + return true; + } + + /** + * 鍒ゆ柇鐢ㄦ埛鏄惁鎷ユ湁姝ゆ潈闄� + * @param flowMyBusiness + * @param user + * @return + */ + private boolean isUserAuthorized(FlowMyBusiness flowMyBusiness, LoginUser user) { + List<String> todoUsers = JSON.parseArray(flowMyBusiness.getTodoUsers(), String.class); + return todoUsers != null && todoUsers.contains(user.getUsername()); } @@ -132,7 +398,7 @@ @Override public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) { //鑾峰彇涓嬩竴姝ュ鐞嗕汉 - Object object=values.get("NextAssignee"); + Object object = values.get("NextAssignee"); return (List<String>) object; } } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java index 996b510..faf446f 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java @@ -2,20 +2,26 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; +import org.jeecg.common.api.vo.FileUploadResult; +import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.vo.LoginUser; -import org.jeecg.modules.eam.entity.EamReportRepair; +import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog; +import org.jeecg.modules.eam.constant.*; +import org.jeecg.modules.eam.entity.*; import org.jeecg.modules.eam.mapper.EamReportRepairMapper; import org.jeecg.modules.eam.request.EamReportRepairQuery; +import org.jeecg.modules.eam.service.IEamEquipmentExtendService; import org.jeecg.modules.eam.service.IEamReportRepairService; import org.springframework.stereotype.Service; - import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import javax.annotation.Resource; +import java.util.*; /** * @Description: 鏁呴殰鎶ヤ慨 @@ -24,6 +30,9 @@ */ @Service public class EamReportRepairServiceImpl extends ServiceImpl<EamReportRepairMapper, EamReportRepair> implements IEamReportRepairService { + + @Resource + private IEamEquipmentExtendService eamEquipmentExtendService; /** * 鍒嗛〉鍒楄〃 @@ -46,4 +55,97 @@ } return this.baseMapper.pageList(page, eamReportRepairQuery, sysUser.getId(), equipmentIds); } + + @Override + @Transactional(rollbackFor = Exception.class) + @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.REPORT_REPAIR, businessTable = "eam_report_repair") + public EamReportRepair reportRepairFromMaintenance(String equipmentId, String reportUser, List<EamWeekMaintenanceOrderDetail> detailList) { + StringBuilder sb = new StringBuilder(); + detailList.forEach(detail -> { + sb.append(detail.getItemCode()).append("銆�"); + sb.append(detail.getExceptionDescription()).append(";"); + }); + EamReportRepair entity = new EamReportRepair(); + entity.setEquipmentId(equipmentId); + entity.setCreateBy(reportUser); + entity.setFaultStartTime(new Date()); + entity.setBreakdownFlag(CommonConstant.DEFAULT_0); + entity.setDelFlag(CommonConstant.DEL_FLAG_0); + entity.setFaultName("鍛ㄤ繚鎵ц鎶ヤ慨澶勭悊"); + entity.setFaultDescription(sb.toString()); + entity.setFaultType(CommonConstant.DEFAULT_1); + entity.setReportStatus(ReportRepairEnum.WAIT_REPAIR.name()); + this.baseMapper.insert(entity); + //鏇存柊璁惧缁翠慨鐘舵�� + eamEquipmentExtendService.updateEquipmentRepairStatus(entity.getEquipmentId(), EquipmentRepairStatus.WAIT_REPAIR.name()); + return entity; + } + + @Override + @Transactional(rollbackFor = Exception.class) + @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.REPORT_REPAIR, businessTable = "eam_report_repair") + public EamReportRepair reportRepairFromInspection(String equipmentId, String reportUser, List<EamInspectionOrderDetail> detailList) { + StringBuilder sb = new StringBuilder(); + detailList.forEach(detail -> { + sb.append(detail.getItemCode()).append("銆�"); + sb.append(detail.getExceptionDescription()).append(";"); + }); + EamReportRepair entity = new EamReportRepair(); + entity.setEquipmentId(equipmentId); + entity.setCreateBy(reportUser); + entity.setFaultStartTime(new Date()); + entity.setBreakdownFlag(CommonConstant.DEFAULT_0); + entity.setDelFlag(CommonConstant.DEL_FLAG_0); + entity.setFaultName("鐐规鎵ц鎶ヤ慨澶勭悊"); + entity.setFaultDescription(sb.toString()); + entity.setFaultType(CommonConstant.DEFAULT_1); + entity.setReportStatus(ReportRepairEnum.WAIT_REPAIR.name()); + this.baseMapper.insert(entity); + //鏇存柊璁惧缁翠慨鐘舵�� + eamEquipmentExtendService.updateEquipmentRepairStatus(entity.getEquipmentId(), EquipmentRepairStatus.WAIT_REPAIR.name()); + return entity; + } + + @Override + @Transactional(rollbackFor = Exception.class) + @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.REPORT_REPAIR, businessTable = "eam_report_repair") + public EamReportRepair add(EamReportRepair eamReportRepair) { + eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_REPAIR.name()); + eamReportRepair.setDelFlag(CommonConstant.DEL_FLAG_0); + // 闄勪欢澶勭悊 + if (eamReportRepair.getImageFilesResult() != null) { + List<FileUploadResult> imageFilesResult = eamReportRepair.getImageFilesResult(); + ObjectMapper mapper = new ObjectMapper(); + try { + String referenceFile = mapper.writeValueAsString(imageFilesResult); + eamReportRepair.setImageFiles(referenceFile); + } catch (JsonProcessingException e) { + return null; + } + } + this.baseMapper.insert(eamReportRepair); + //鏇存柊璁惧缁翠慨鐘舵�� + eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_REPAIR.name()); + return eamReportRepair; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean edit(EamReportRepair eamReportRepair) { + // 闄勪欢澶勭悊 + if (eamReportRepair.getImageFilesResult() != null) { + List<FileUploadResult> imageFilesResult = eamReportRepair.getImageFilesResult(); + ObjectMapper mapper = new ObjectMapper(); + try { + String referenceFile = mapper.writeValueAsString(imageFilesResult); + eamReportRepair.setImageFiles(referenceFile); + } catch (JsonProcessingException e) { + return false; + } + } else { + eamReportRepair.setImageFiles(null); + } + this.baseMapper.updateById(eamReportRepair); + return true; + } } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSysFilesServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSysFilesServiceImpl.java index 3ce472e..cf40724 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSysFilesServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSysFilesServiceImpl.java @@ -1,6 +1,7 @@ package org.jeecg.modules.eam.service.impl; import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.common.api.vo.FileUploadResult; import org.jeecg.common.constant.CommonConstant; @@ -13,6 +14,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; @@ -25,6 +27,9 @@ */ @Service public class EamSysFilesServiceImpl extends ServiceImpl<EamSysFilesMapper, EamSysFiles> implements IEamSysFilesService { + + @Resource + private EamSysFilesMapper eamSysFilesMapper; @Override public void downloadFile(HttpServletResponse response, EamSysFiles entity) { @@ -39,21 +44,29 @@ @Override @Transactional(rollbackFor = Exception.class) public boolean saveEamSysFiles(EamSysFilesRequest request) { - if(request == null || CollectionUtil.isEmpty(request.getFileList())){ + if (request == null || CollectionUtil.isEmpty(request.getFileList())) { return false; } List<EamSysFiles> resultList = new ArrayList<>(); for (FileUploadResult fileUploadResult : request.getFileList()) { - EamSysFiles eamSysFiles = new EamSysFiles(); - eamSysFiles.setFilePath(fileUploadResult.getFilePath()); - eamSysFiles.setFileName(fileUploadResult.getFileName()); - eamSysFiles.setFileEncodeName(fileUploadResult.getFileEncodeName()); - eamSysFiles.setFileSize(fileUploadResult.getFileSize()); - eamSysFiles.setFileSuffix(fileUploadResult.getFileSuffix()); + EamSysFiles eamSysFiles = this.getByPath(fileUploadResult.getFilePath()); + if (eamSysFiles == null) { + continue; + } eamSysFiles.setDescription(request.getDescription()); - eamSysFiles.setDelFlag(CommonConstant.DEL_FLAG_0); resultList.add(eamSysFiles); } - return this.saveBatch(resultList); + return this.updateBatchById(resultList); + } + + @Override + public EamSysFiles getByPath(String path) { + LambdaQueryWrapper<EamSysFiles> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamSysFiles::getFileEncodeName, path); + List<EamSysFiles> list = eamSysFilesMapper.selectList(queryWrapper); + if (CollectionUtil.isEmpty(list)) { + return null; + } + return list.get(0); } } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderDetailServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderDetailServiceImpl.java index 6f7c727..63539fb 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderDetailServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderDetailServiceImpl.java @@ -1,11 +1,13 @@ package org.jeecg.modules.eam.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail; import org.jeecg.modules.eam.mapper.EamWeekMaintenanceOrderDetailMapper; import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderDetailService; import org.springframework.stereotype.Service; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import java.util.List; /** * @Description: 鍛ㄤ繚宸ュ崟鏄庣粏 @@ -16,4 +18,11 @@ @Service public class EamWeekMaintenanceOrderDetailServiceImpl extends ServiceImpl<EamWeekMaintenanceOrderDetailMapper, EamWeekMaintenanceOrderDetail> implements IEamWeekMaintenanceOrderDetailService { + @Override + public List<EamWeekMaintenanceOrderDetail> queryListByOrderId(String orderId) { + LambdaQueryWrapper<EamWeekMaintenanceOrderDetail> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamWeekMaintenanceOrderDetail::getOrderId, orderId); + queryWrapper.orderByAsc(EamWeekMaintenanceOrderDetail::getItemCode); + return super.list(queryWrapper); + } } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java index c17c420..661eba9 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java @@ -2,31 +2,42 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; +import org.flowable.engine.TaskService; +import org.flowable.task.api.Task; +import org.jeecg.common.api.vo.FileUploadResult; import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.constant.DataBaseConstant; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.oConvertUtils; -import org.jeecg.modules.eam.constant.WeekMaintenanceStatusEnum; -import org.jeecg.modules.eam.constant.OrderCreationMethodEnum; +import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog; +import org.jeecg.modules.eam.constant.*; +import org.jeecg.modules.eam.entity.EamEquipment; import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrder; import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail; import org.jeecg.modules.eam.mapper.EamWeekMaintenanceOrderMapper; import org.jeecg.modules.eam.request.EamWeekMaintenanceQuery; import org.jeecg.modules.eam.request.EamWeekMaintenanceRequest; -import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderDetailService; -import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderService; +import org.jeecg.modules.eam.service.*; import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness; +import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService; import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI; import org.jeecg.modules.flowable.apithird.service.FlowCommonService; import org.jeecg.modules.flowable.service.IFlowDefinitionService; +import org.jeecg.modules.flowable.service.IFlowTaskService; +import org.jeecg.modules.system.service.ISysUserService; +import org.jeecg.modules.system.vo.UserSelector; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -38,7 +49,7 @@ /** * @Description: 鍛ㄤ繚宸ュ崟 * @Author: jeecg-boot - * @Date: 2025-04-02 + * @Date: 2025-04-02 * @Version: V1.0 */ @Service("IEamWeekMaintenanceOrderService") @@ -50,14 +61,33 @@ @Autowired private IEamWeekMaintenanceOrderDetailService eamWeekMaintenanceOrderDetailService; - @Resource + @Autowired private FlowCommonService flowCommonService; - @Resource + @Autowired private IFlowDefinitionService flowDefinitionService; + @Autowired + private IFlowMyBusinessService flowMyBusinessService; + @Autowired + private TaskService taskService; + @Autowired + private IFlowTaskService flowTaskService; + + @Autowired + private ISysUserService sysUserService; + @Autowired + private IEamEquipmentService eamEquipmentService; + @Autowired + private IEamReportRepairService eamReportRepairService; + @Autowired + private IEamEquipmentExtendService eamEquipmentExtendService; @Override @Transactional(rollbackFor = Exception.class) public boolean addWeekMaintenance(EamWeekMaintenanceRequest request) { + EamEquipment equipment = eamEquipmentService.getById(request.getEquipmentId()); + if (equipment == null) { + throw new JeecgBootException("璁惧涓嶅瓨鍦紝娣诲姞澶辫触锛�"); + } EamWeekMaintenanceOrder order = new EamWeekMaintenanceOrder(); order.setOrderNum(request.getOrderNum()); order.setEquipmentId(request.getEquipmentId()); @@ -67,12 +97,12 @@ order.setRemark(request.getRemark()); //鐘舵�佸垵濮嬪寲 order.setMaintenanceStatus(WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name()); - order.setCreationMethod(OrderCreationMethodEnum.MANUAL.name()); + order.setCreationMethod(request.getCreationMethod()); //鍒犻櫎鏍囪 order.setDelFlag(CommonConstant.DEL_FLAG_0); eamWeekMaintenanceOrderMapper.insert(order); //澶勭悊鏄庣粏鏁版嵁 - if(CollectionUtil.isNotEmpty(request.getTableDetailList())) { + if (CollectionUtil.isNotEmpty(request.getTableDetailList())) { request.getTableDetailList().forEach(tableDetail -> { tableDetail.setId(null); tableDetail.setOrderId(order.getId()); @@ -80,9 +110,9 @@ eamWeekMaintenanceOrderDetailService.saveBatch(request.getTableDetailList()); } //鍒ゆ柇鏄惁瀛樺湪淇濆吇浜� 濡傛灉瀛樺湪鍒欏惎鍔ㄦ祦绋� - if(StringUtils.isNotBlank(order.getOperator())) { + if (StringUtils.isNotBlank(order.getOperator())) { //鍚姩娴佺▼ - flowCommonService.initActBusiness("宸ュ崟鍙�:" + order.getOrderNum() + ";寮�濮嬭繘琛岃澶囧懆淇�", + flowCommonService.initActBusiness("宸ュ崟鍙�:" + order.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";杩涜璁惧鍛ㄤ繚", order.getId(), "IEamWeekMaintenanceOrderService", "week_maintenance_process", null); Map<String, Object> variables = new HashMap<>(); variables.put("dataId", order.getId()); @@ -98,11 +128,13 @@ usernames.add(order.getOperator()); variables.put("NextAssignee", usernames); Result result = flowDefinitionService.startProcessInstanceByKey("week_maintenance_process", variables); - if(result != null){ + if (result != null) { //鏇存柊鍛ㄤ繚鐘舵�� order.setMaintenanceStatus(WeekMaintenanceStatusEnum.UNDER_MAINTENANCE.name()); order.setActualStartTime(new Date()); eamWeekMaintenanceOrderMapper.updateById(order); + //鏇存柊璁惧淇濆吇鐘舵�� + eamEquipmentExtendService.updateEquipmentMaintenanceStatus(order.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name()); return result.isSuccess(); } } @@ -164,11 +196,15 @@ @Override @Transactional(rollbackFor = Exception.class) public boolean editWeekMaintenance(EamWeekMaintenanceRequest request) { + EamEquipment equipment = eamEquipmentService.getById(request.getEquipmentId()); + if (equipment == null) { + throw new JeecgBootException("璁惧涓嶅瓨鍦紝娣诲姞澶辫触锛�"); + } EamWeekMaintenanceOrder entity = eamWeekMaintenanceOrderMapper.selectById(request.getId()); - if(entity == null){ + if (entity == null) { throw new JeecgBootException("缂栬緫鐨勬暟鎹凡鍒犻櫎锛岃鍒锋柊閲嶈瘯锛�"); } - if(!WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())){ + if (!WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) { throw new JeecgBootException("鍙湁寰呬繚鍏荤姸鎬佺殑鏁版嵁鎵嶅彲缂栬緫锛�"); } entity.setMaintenanceDate(request.getMaintenanceDate()); @@ -177,32 +213,32 @@ eamWeekMaintenanceOrderMapper.updateById(entity); //澶勭悊璇︽儏 - if(CollectionUtil.isNotEmpty(request.getTableDetailList())) { + if (CollectionUtil.isNotEmpty(request.getTableDetailList())) { List<EamWeekMaintenanceOrderDetail> addList = new ArrayList<>(); List<EamWeekMaintenanceOrderDetail> updateList = new ArrayList<>(); request.getTableDetailList().forEach(tableDetail -> { tableDetail.setOrderId(entity.getId()); - if(tableDetail.getId() == null){ + if (tableDetail.getId() == null) { addList.add(tableDetail); - }else { + } else { updateList.add(tableDetail); } }); - if(CollectionUtil.isNotEmpty(addList)){ + if (CollectionUtil.isNotEmpty(addList)) { eamWeekMaintenanceOrderDetailService.saveBatch(addList); } - if(CollectionUtil.isNotEmpty(updateList)){ + if (CollectionUtil.isNotEmpty(updateList)) { eamWeekMaintenanceOrderDetailService.updateBatchById(updateList); } } - if(CollectionUtil.isNotEmpty(request.getRemoveDetailList())) { + if (CollectionUtil.isNotEmpty(request.getRemoveDetailList())) { List<String> ids = request.getRemoveDetailList().stream().map(EamWeekMaintenanceOrderDetail::getId).collect(Collectors.toList()); eamWeekMaintenanceOrderDetailService.removeBatchByIds(ids); } //鍒ゆ柇鏄惁瀛樺湪淇濆吇浜� 濡傛灉瀛樺湪鍒欏惎鍔ㄦ祦绋� - if(StringUtils.isNotBlank(entity.getOperator())) { + if (StringUtils.isNotBlank(entity.getOperator())) { //鍚姩娴佺▼ - flowCommonService.initActBusiness("宸ュ崟鍙�:" + entity.getOrderNum() + ";寮�濮嬭繘琛岃澶囧懆淇�", + flowCommonService.initActBusiness("宸ュ崟鍙�:" + entity.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";杩涜璁惧鍛ㄤ繚", entity.getId(), "IEamWeekMaintenanceOrderService", "week_maintenance_process", null); Map<String, Object> variables = new HashMap<>(); variables.put("dataId", entity.getId()); @@ -218,13 +254,16 @@ usernames.add(entity.getOperator()); variables.put("NextAssignee", usernames); Result result = flowDefinitionService.startProcessInstanceByKey("week_maintenance_process", variables); - if(result != null){ + if (result != null) { //鏇存柊鍛ㄤ繚鐘舵�� entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.UNDER_MAINTENANCE.name()); entity.setActualStartTime(new Date()); eamWeekMaintenanceOrderMapper.updateById(entity); + //鏇存柊璁惧淇濆吇鐘舵�� + eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name()); return result.isSuccess(); } + } return true; } @@ -233,20 +272,27 @@ @Transactional(rollbackFor = Exception.class) public boolean collect(String id) { EamWeekMaintenanceOrder entity = eamWeekMaintenanceOrderMapper.selectById(id); - if(entity == null) { + if (entity == null) { throw new JeecgBootException("瑕侀鍙栫殑宸ュ崟涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒"); } - if(!WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) { + if (!WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) { throw new JeecgBootException("璇ュ伐鍗曞凡杩涜杩囬鍙栵紒"); } + EamEquipment equipment = eamEquipmentService.getById(entity.getEquipmentId()); + if (equipment == null) { + throw new JeecgBootException("璁惧涓嶅瓨鍦紝娣诲姞澶辫触锛�"); + } LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if(sysUser == null || !BusinessCodeConst.PCR0001.equals(sysUser.getPost())) { + throw new JeecgBootException("涓嶆槸鎿嶄綔宸ワ紝鏃犳硶棰嗗彇姝ゅ伐鍗曪紒"); + } entity.setOperator(sysUser.getUsername()); entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.UNDER_MAINTENANCE.name()); entity.setActualStartTime(new Date()); eamWeekMaintenanceOrderMapper.updateById(entity); //鍚姩娴佺▼ - flowCommonService.initActBusiness("宸ュ崟鍙�:" + entity.getOrderNum() + ";寮�濮嬭繘琛岃澶囧懆淇�", + flowCommonService.initActBusiness("宸ュ崟鍙�:" + entity.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";杩涜璁惧鍛ㄤ繚", entity.getId(), "IEamWeekMaintenanceOrderService", "week_maintenance_process", null); Map<String, Object> variables = new HashMap<>(); variables.put("dataId", entity.getId()); @@ -262,9 +308,211 @@ usernames.add(entity.getOperator()); variables.put("NextAssignee", usernames); Result result = flowDefinitionService.startProcessInstanceByKey("week_maintenance_process", variables); - if(result != null){ + if (result != null) { + //鏇存柊璁惧淇濆吇鐘舵�� + eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name()); return result.isSuccess(); } + return true; + } + + @Override + @Transactional(rollbackFor = Exception.class) + @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.WEEK_MAINTENANCE, businessTable = "eam_week_maintenance_order") + public EamWeekMaintenanceOrder approval(EamWeekMaintenanceRequest request) { + EamWeekMaintenanceOrder entity = eamWeekMaintenanceOrderMapper.selectById(request.getId()); + if (entity == null) { + throw new JeecgBootException("瀹℃壒鐨勬暟鎹凡鍒犻櫎锛岃鍒锋柊閲嶈瘯锛�"); + } + // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛 + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (user == null || StrUtil.isBlank(user.getId())) { + throw new JeecgBootException("鏈幏鍙栧埌鐧诲綍鐢ㄦ埛锛岃閲嶆柊鐧诲綍鍚庡啀璇曪紒"); + } + request.setAssignee(user.getUsername()); + // 鑾峰彇娴佺▼涓氬姟璁板綍 + FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(request.getInstanceId()); + if (flowMyBusiness == null) { + throw new JeecgBootException("娴佺▼瀹炰緥涓嶅瓨鍦紝璇峰埛鏂板悗閲嶈瘯锛�"); + } + + boolean userAuthorized = isUserAuthorized(flowMyBusiness, user); + if (!userAuthorized) { + throw new JeecgBootException("鐢ㄦ埛鏃犳潈鎿嶄綔姝や换鍔★紝璇峰埛鏂板悗閲嶈瘯锛�"); + } + // 璁ら浠诲姟 + if (!claimTask(flowMyBusiness.getTaskId(), user)) { + throw new JeecgBootException("浠诲姟涓嶅瓨鍦ㄣ�佸凡瀹屾垚鎴栧凡琚粬浜鸿棰嗭紒"); + } + + EamEquipment equipment = eamEquipmentService.getById(entity.getEquipmentId()); + if (equipment == null) { + throw new JeecgBootException("璁惧涓嶅瓨鍦紝璇锋鏌ワ紒"); + } + + WeekMaintenanceStatusEnum status = WeekMaintenanceStatusEnum.getInstance(entity.getMaintenanceStatus()); + if (status == null) { + return null; + } + //娴佺▼鍙橀噺 + Map<String, Object> values = new HashMap<>(); + switch (status) { + case UNDER_MAINTENANCE: + //鎵ц瀹屾垚 + List<UserSelector> userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0003); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰鐝粍闀匡紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); + } + List<String> userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + values.put("dataId", entity.getId()); + values.put("organization", "鍛ㄤ繚鎵ц缁撴潫"); + values.put("comment", "鍛ㄤ繚鎵ц缁撴潫"); + values.put("NextAssignee", userApprovalList); + request.setComment("鍛ㄤ繚鎵ц缁撴潫"); + //璁剧疆entity + entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.WAIT_CONFIRM.name()); + entity.setActualEndTime(new Date()); + //澶勭悊闄勪欢 + if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) { + List<FileUploadResult> fileUploadResultList = request.getImageFilesResult(); + ObjectMapper mapper = new ObjectMapper(); + try { + String referenceFile = mapper.writeValueAsString(fileUploadResultList); + entity.setImageFiles(referenceFile); + } catch (JsonProcessingException e) { + log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e); + } + } + //澶勭悊璇︽儏 + if (CollectionUtil.isNotEmpty(request.getTableDetailList())) { + eamWeekMaintenanceOrderDetailService.updateBatchById(request.getTableDetailList()); + } + //鏇存柊璁惧淇濆吇鐘舵�� + eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.WAIT_CONFIRM.name()); + break; + case WAIT_CONFIRM: + if (StringUtils.isBlank(equipment.getEquipmentManager())) { + throw new JeecgBootException("璁惧鏈垎閰嶈澶囩鐞嗗憳锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒"); + } + //鐝粍闀跨‘璁� + userApprovalList = new ArrayList<>(); + userApprovalList.add(equipment.getEquipmentManager()); + values.put("dataId", entity.getId()); + values.put("organization", request.getConfirmComment()); + values.put("comment", request.getConfirmComment()); + values.put("NextAssignee", userApprovalList); + values.put("confirmation", request.getConfirmDealType()); + request.setComment(request.getConfirmComment()); + //璁剧疆entity + entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.WAIT_INITIAL_ACCEPTANCE.name()); + entity.setConfirmUser(user.getUsername()); + entity.setConfirmComment(request.getConfirmComment()); + entity.setConfirmTime(new Date()); + entity.setConfirmDealType(request.getConfirmDealType()); + if (CommonConstant.HAS_CANCLE.equals(request.getConfirmDealType())) { + //椹冲洖 + userApprovalList = new ArrayList<>(); + userApprovalList.add(entity.getOperator()); + values.put("NextAssignee", userApprovalList); + entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.UNDER_MAINTENANCE.name()); + } + //澶勭悊鎶ヤ慨 + List<EamWeekMaintenanceOrderDetail> collect = request.getTableDetailList().stream().filter((detail) -> CommonConstant.DEFAULT_1.equals(detail.getReportFlag())).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(collect)) { + eamReportRepairService.reportRepairFromMaintenance(equipment.getId(), entity.getOperator(), collect); + } + break; + case WAIT_INITIAL_ACCEPTANCE: + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0005); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰璁捐兘閮ㄧ鐞嗗憳锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒"); + } + userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + values.put("dataId", entity.getId()); + values.put("organization", request.getInitialAcceptanceComment()); + values.put("comment", request.getInitialAcceptanceComment()); + values.put("NextAssignee", userApprovalList); + request.setComment(request.getInitialAcceptanceComment()); + //璁剧疆entity + entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.WAIT_FINAL_ACCEPTANCE.name()); + entity.setInitialAcceptanceUser(user.getUsername()); + entity.setInitialAcceptanceComment(request.getInitialAcceptanceComment()); + entity.setInitialAcceptanceTime(new Date()); + //澶勭悊闄勪欢 + if (CollectionUtil.isNotEmpty(request.getInitialAcceptanceFilesResult())) { + List<FileUploadResult> fileUploadResultList = request.getInitialAcceptanceFilesResult(); + ObjectMapper mapper = new ObjectMapper(); + try { + String referenceFile = mapper.writeValueAsString(fileUploadResultList); + entity.setInitialAcceptanceFiles(referenceFile); + } catch (JsonProcessingException e) { + log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e); + } + } + break; + case WAIT_FINAL_ACCEPTANCE: + values.put("dataId", entity.getId()); + values.put("organization", request.getFinalAcceptanceComment()); + values.put("comment", request.getFinalAcceptanceComment()); + request.setComment(request.getFinalAcceptanceComment()); + //璁剧疆entity + entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.COMPLETE.name()); + entity.setFinalAcceptanceUser(user.getUsername()); + entity.setFinalAcceptanceComment(request.getFinalAcceptanceComment()); + entity.setFinalAcceptanceTime(new Date()); + //澶勭悊闄勪欢 + if (CollectionUtil.isNotEmpty(request.getFinalAcceptanceFilesResult())) { + List<FileUploadResult> fileUploadResultList = request.getFinalAcceptanceFilesResult(); + ObjectMapper mapper = new ObjectMapper(); + try { + String referenceFile = mapper.writeValueAsString(fileUploadResultList); + entity.setFinalAcceptanceFiles(referenceFile); + } catch (JsonProcessingException e) { + log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e); + } + } + //鏇存柊璁惧淇濆吇鐘舵�� + eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name()); + break; + } + request.setValues(values); + + // 瀹屾垚娴佺▼浠诲姟 + Result result = flowTaskService.complete(request); + if (!result.isSuccess()) { + throw new JeecgBootException("瀹℃壒澶辫触锛岃鍒锋柊鏌ョ湅锛�"); + } + //淇濆瓨宸ュ崟 + eamWeekMaintenanceOrderMapper.updateById(entity); + return entity; + } + + @Override + public List<EamWeekMaintenanceOrder> selectUnCompleteOrder(String expiredDate) { + LambdaQueryWrapper<EamWeekMaintenanceOrder> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.lt(EamWeekMaintenanceOrder::getMaintenanceDate, expiredDate); + List<String> unCompleteStatus = new ArrayList<>(); + unCompleteStatus.add(WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name()); + unCompleteStatus.add(WeekMaintenanceStatusEnum.UNDER_MAINTENANCE.name()); + queryWrapper.in(EamWeekMaintenanceOrder::getMaintenanceStatus, unCompleteStatus); + queryWrapper.orderByAsc(EamWeekMaintenanceOrder::getMaintenanceDate); + return eamWeekMaintenanceOrderMapper.selectList(queryWrapper); + } + + private boolean isUserAuthorized(FlowMyBusiness flowMyBusiness, LoginUser user) { + List<String> todoUsers = JSON.parseArray(flowMyBusiness.getTodoUsers(), String.class); + return todoUsers != null && todoUsers.contains(user.getUsername()); + } + + private boolean claimTask(String taskId, LoginUser user) { + Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); + if (task == null) { + return false; + } + if (task.getAssignee() != null && !task.getAssignee().equals(user.getUsername())) { + return false; + } + taskService.claim(taskId, user.getUsername()); return true; } @@ -289,7 +537,7 @@ public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) { //涓氬姟鏄惁骞查娴佺▼锛屼笟鍔″共棰勶紝娴佺▼骞查锛屾寚瀹氫汉鍛樿繘琛屽鐞� //鑾峰彇涓嬩竴姝ュ鐞嗕汉 - Object object=values.get("NextAssignee"); + Object object = values.get("NextAssignee"); return (List<String>) object; } } diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/IFlowMyBusinessService.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/IFlowMyBusinessService.java index aca2489..0093f0e 100644 --- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/IFlowMyBusinessService.java +++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/IFlowMyBusinessService.java @@ -9,5 +9,17 @@ * @Version: V1.0 */ public interface IFlowMyBusinessService extends IService<FlowMyBusiness> { + /** + * 鏍规嵁娴佺▼瀹炰緥id 鑾峰彇 娴佺▼瀹炰緥 + * @param instanceId 娴佺▼瀹炰緥id + * @return + */ + FlowMyBusiness getFlowMyBusiness(String instanceId); + /** + * 鑾峰彇娴佺▼瀹炰緥 + * @param dataId 涓氬姟Id + * @return + */ + FlowMyBusiness selectByDataId(String dataId); } diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java index 793799f..1cf4f7f 100644 --- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java +++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java @@ -1,6 +1,7 @@ package org.jeecg.modules.flowable.apithird.business.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -16,6 +17,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.Date; import java.util.List; @@ -27,7 +29,7 @@ */ @Service public class FlowMyBusinessServiceImpl extends ServiceImpl<FlowMyBusinessMapper, FlowMyBusiness> implements IFlowMyBusinessService { - @Autowired + @Resource private FlowMyBusinessMapper flowMyBusinessMapper; @Autowired @@ -124,4 +126,18 @@ }); return flowMyBusinessDtoIPage; } + + @Override + public FlowMyBusiness getFlowMyBusiness(String instanceId) { + List<FlowMyBusiness> businessList = super.list( + new QueryWrapper<FlowMyBusiness>().eq("process_instance_id", instanceId)); + return businessList.isEmpty() ? null : businessList.get(0); + } + + @Override + public FlowMyBusiness selectByDataId(String dataId) { + List<FlowMyBusiness> businessList = super.list( + new QueryWrapper<FlowMyBusiness>().eq("data_id", dataId)); + return businessList.isEmpty() ? null : businessList.get(0); + } } diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/controller/AssignStreamFlowController.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/controller/AssignStreamFlowController.java index 68278b0..d41ab56 100644 --- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/controller/AssignStreamFlowController.java +++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/controller/AssignStreamFlowController.java @@ -1,7 +1,12 @@ package org.jeecg.modules.flowable.controller; +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.parser.Feature; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; @@ -15,9 +20,11 @@ import org.flowable.image.ProcessDiagramGenerator; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.TranslateDictTextUtils; import org.jeecg.modules.flowable.apithird.business.dto.FlowMyBusinessDto; import org.jeecg.modules.flowable.apithird.business.service.impl.FlowMyBusinessServiceImpl; import org.jeecg.modules.flowable.domain.dto.FlowTaskDto; +import org.jeecg.modules.flowable.domain.vo.FlowHistoricalVo; import org.jeecg.modules.flowable.domain.vo.FlowMy; import org.jeecg.modules.flowable.domain.vo.WorkTaskDataVo; import org.jeecg.modules.flowable.service.IFlowTaskService; @@ -35,8 +42,10 @@ import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; +import java.util.Collections; import java.util.List; +@Api(tags = "宸ヤ綔娴侀�氱敤涓氬姟鎺ュ彛") @RestController @RequestMapping("assign/flow") @Slf4j @@ -55,6 +64,10 @@ private HistoryService historyService; @Autowired private ProcessEngine processEngine; + @Autowired + private ObjectMapper objectMapper; + @Autowired + private TranslateDictTextUtils translateDictTextUtils; @ApiOperation(value = "鑾峰彇鎬诲彴璐�", response = FlowTaskDto.class) @GetMapping(value = "/list") @@ -97,10 +110,26 @@ return flowTaskService.finishedList(pageNo, pageSize,flowMyBusinessDto); } + @ApiOperation(value = "鑾峰彇宸ヤ綔娴佸巻鍙蹭换鍔�", response = FlowTaskDto.class) @GetMapping(value = "/queryHisTaskList") public Result<?> queryHisTaskList(@RequestParam(name = "procInstId") String procInstId) { - return Result.OK(hisWorkTaskService.queryHisTaskByProcInstId(procInstId)); + List<FlowHistoricalVo> flowHistoricalVos = hisWorkTaskService.queryHisTaskByProcInstId(procInstId); + if(CollectionUtil.isEmpty(flowHistoricalVos)) { + return Result.OK(Collections.emptyList()); + } + List<JSONObject> items = new ArrayList<>(); + try { + for(FlowHistoricalVo vo : flowHistoricalVos) { + String json = objectMapper.writeValueAsString(vo); + JSONObject item = JSONObject.parseObject(json, Feature.OrderedField); + translateDictTextUtils.translateField("assignee", vo.getAssignee(), item, "sys_user,realname,username"); + items.add(item); + } + return Result.OK(items); + }catch (Exception e) { + return Result.error("鏁版嵁杞瘧澶辫触锛�"); + } } @ApiOperation(value = "瀹℃壒浠诲姟-鏌ョ湅娴佺▼鍥�") diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/domain/vo/FlowMy.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/domain/vo/FlowMy.java index f8d311f..7602af0 100644 --- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/domain/vo/FlowMy.java +++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/domain/vo/FlowMy.java @@ -34,4 +34,9 @@ * 娴佺▼鍒嗙被 */ private String category; + + /** + * 褰撳墠鑺傜偣鍚嶇О + */ + private String name; } diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/WorkTaskVoMapper.xml b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/WorkTaskVoMapper.xml index 81e862f..6d4e32b 100644 --- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/WorkTaskVoMapper.xml +++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/WorkTaskVoMapper.xml @@ -45,6 +45,9 @@ <if test="flowMy.category!= null and flowMy.category!= ''"> AND pro.CATEGORY_ = #{flowMy.category} </if> + <if test="flowMy.name!= null and flowMy.name!= ''"> + AND atask.name_ = #{flowMy.name} + </if> ORDER BY create_time_ DESC </select> diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/FlowTaskServiceImpl.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/FlowTaskServiceImpl.java index c39da7c..c5243fe 100644 --- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/FlowTaskServiceImpl.java +++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/FlowTaskServiceImpl.java @@ -678,6 +678,9 @@ try { // 寮哄埗缁撴潫娴佺▼瀹炰緥 runtimeService.deleteProcessInstance(processInstanceId, deleteReason); + // 鍒犻櫎鍏宠仈娴佺▼鐨勪笟鍔� + FlowMyBusiness flowMyBusiness=flowMyBusinessService.getFlowMyBusiness(processInstanceId); + flowMyBusinessService.removeById(flowMyBusiness.getId()); System.out.println("Process instance with ID " + processInstanceId + " has been forcefully ended."); } catch (Exception e) { System.err.println("Failed to force end process instance: " + e.getMessage()); diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/ThrowableUtil.java b/lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/util/ThrowableUtil.java similarity index 100% rename from lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/ThrowableUtil.java rename to lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/util/ThrowableUtil.java diff --git a/lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml b/lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml index 2b4b48b..2e398df 100644 --- a/lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml +++ b/lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml @@ -7,7 +7,7 @@ include-stacktrace: ALWAYS include-message: ALWAYS servlet: - context-path: + context-path: /jeecg-boot compression: enabled: true min-response-size: 1024 @@ -135,7 +135,7 @@ database: 0 host: 127.0.0.1 port: 6379 - password: 123456 + password: '' flowable: enable: true #鍏抽棴瀹氭椂浠诲姟JOB -- Gitblit v1.9.3