From 804901bfc31353a5d398a68dd8ef1635b76629fc Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期一, 30 六月 2025 17:59:07 +0800 Subject: [PATCH] art: 设备管理迁移(航宇) --- src/main/java/org/jeecg/modules/eam/entity/EamReportRepair.java | 121 src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardDetailController.java | 72 src/main/java/org/jeecg/modules/eam/constant/MaintenanceCategoryEnum.java | 10 src/main/java/org/jeecg/modules/eam/service/IEamEquipmentFaultReasonService.java | 14 src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentPrecisionParametersMapper.java | 26 src/main/java/org/jeecg/modules/eam/service/impl/EamPrecisionCheckDetailServiceImpl.java | 38 src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java | 106 src/main/java/org/jeecg/modules/eam/entity/EamEquipmentAttachment.java | 68 src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceOrderService.java | 62 src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java | 141 src/main/java/org/jeecg/modules/eam/entity/EamEquipmentExtend.java | 64 src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceOrderDetailController.java | 71 src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceOrderController.java | 372 + src/main/java/org/jeecg/modules/eam/controller/EamProcessParametersController.java | 166 src/main/java/org/jeecg/modules/eam/service/IEamEquipmentExtendService.java | 28 src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java | 67 src/main/java/org/jeecg/modules/eam/util/DateUtils.java | 1089 +++++ src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentExtendMapper.xml | 5 src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardDetailService.java | 21 src/main/java/org/jeecg/modules/eam/mapper/EamInspectionOrderDetailMapper.java | 14 src/main/java/org/jeecg/modules/eam/entity/EamProcessParameters.java | 65 src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceOrderMapper.java | 24 src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceOrderDetailMapper.xml | 5 src/main/java/org/jeecg/modules/eam/entity/EamPrecisionCheckDetail.java | 79 src/main/java/org/jeecg/modules/eam/service/IEamPrecisionCheckDetailService.java | 30 src/main/java/org/jeecg/modules/eam/controller/EamEquipmentHistoryLogController.java | 43 src/main/java/org/jeecg/modules/eam/service/IEamPrecisionParametersService.java | 14 src/main/java/org/jeecg/modules/eam/dto/ThirdMaintenanceStandardImport.java | 23 src/main/java/org/jeecg/modules/eam/dto/WeekMaintenanceStandardImport.java | 21 src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java | 55 src/main/java/org/jeecg/modules/eam/request/EamRepairOrderResponse.java | 78 src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrder.java | 143 src/main/java/org/jeecg/modules/eam/entity/EamEquipmentPrecisionParameters.java | 65 src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentAttachmentMapper.xml | 5 src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentExtendMapper.java | 14 src/main/java/org/jeecg/modules/eam/service/IEamEquipmentProcessParametersService.java | 31 src/main/java/org/jeecg/modules/eam/controller/EamEquipmentAttachmentController.java | 157 src/main/java/org/jeecg/modules/eam/entity/EamEquipmentFaultReason.java | 72 src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceOrderMapper.xml | 12 src/main/java/org/jeecg/modules/eam/request/EamMaintenanceRequest.java | 89 src/main/java/org/jeecg/modules/eam/service/IEamSysFilesService.java | 45 src/main/java/org/jeecg/modules/eam/mapper/xml/EamPrecisionCheckDetailMapper.xml | 5 src/main/java/org/jeecg/modules/eam/vo/EquipmentSearchResult.java | 26 src/main/java/org/jeecg/modules/eam/mapper/EamReportRepairMapper.java | 28 src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentFaultReasonMapper.xml | 5 src/main/java/org/jeecg/modules/eam/vo/EamEquipmentTree.java | 121 src/main/java/org/jeecg/modules/eam/util/ExcelUtils.java | 51 src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentFaultReasonMapper.java | 14 src/main/java/org/jeecg/modules/eam/service/IEamEquipmentPrecisionParametersService.java | 39 src/main/java/org/jeecg/modules/eam/mapper/xml/EamSysFilesMapper.xml | 5 src/main/java/org/jeecg/modules/eam/constant/EquipmentRepairStatus.java | 13 src/main/java/org/jeecg/modules/eam/controller/EamEquipmentFaultReasonController.java | 160 src/main/java/org/jeecg/modules/eam/mapper/xml/EamProcessParametersMapper.xml | 5 src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentMapper.java | 35 src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentAttachmentServiceImpl.java | 65 src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardDetailServiceImpl.java | 31 src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceOrderServiceImpl.java | 548 ++ src/main/java/org/jeecg/modules/eam/service/impl/EamPrecisionParametersServiceImpl.java | 18 src/main/java/org/jeecg/modules/eam/constant/EquipmentMaintenanceStatus.java | 13 src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderService.java | 96 src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java | 338 + src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java | 76 src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentPrecisionParametersServiceImpl.java | 51 src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardDetailMapper.xml | 5 src/main/java/org/jeecg/modules/eam/request/EamReportRepairQuery.java | 44 src/main/java/org/jeecg/modules/eam/request/EamMaintenanceBatchApprovalRequest.java | 41 src/main/java/org/jeecg/modules/eam/constant/OrderCreationMethodEnum.java | 7 src/main/java/org/jeecg/modules/eam/controller/EamSysFilesController.java | 212 + src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java | 292 + src/main/java/org/jeecg/modules/eam/service/IEamEquipmentHistoryLogService.java | 14 src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentExtendServiceImpl.java | 47 src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml | 11 src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderDetailService.java | 21 src/main/java/org/jeecg/modules/eam/dto/MaintenanceStandardImport.java | 19 src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderDetailController.java | 179 src/main/java/org/jeecg/modules/eam/mapper/EamPrecisionCheckDetailMapper.java | 14 src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml | 11 src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java | 57 src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java | 608 ++ src/main/java/org/jeecg/modules/eam/entity/EamEquipmentProcessParameters.java | 63 src/main/java/org/jeecg/modules/eam/controller/EamPrecisionCheckDetailController.java | 70 src/main/java/org/jeecg/modules/eam/entity/EamEquipmentHistoryLog.java | 70 src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrderDetail.java | 86 src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceOrderDetailService.java | 22 src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentProcessParametersMapper.xml | 12 src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java | 508 ++ src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceOrder.java | 149 src/main/java/org/jeecg/modules/eam/vo/InspectionVo.java | 110 src/main/java/org/jeecg/modules/eam/constant/EquipmentOperationTagEnum.java | 14 src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java | 556 ++ src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java | 25 src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml | 12 src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java | 361 + src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java | 278 + src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentFaultReasonServiceImpl.java | 18 src/main/java/org/jeecg/modules/eam/constant/AssetStatusEnum.java | 12 src/main/java/org/jeecg/modules/eam/dto/SecondMaintenanceStandardImport.java | 23 src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java | 206 + src/main/java/org/jeecg/modules/eam/service/impl/EamProcessParametersServiceImpl.java | 18 src/main/java/org/jeecg/modules/eam/tree/FindsEquipmentProductionUtil.java | 79 src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentHistoryLogMapper.xml | 5 src/main/java/org/jeecg/modules/eam/mapper/EamInspectionOrderMapper.java | 38 src/main/java/org/jeecg/modules/eam/constant/MaintenanceStandardStatusEnum.java | 9 src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceOrderDetail.java | 76 src/main/java/org/jeecg/modules/eam/service/IEamProcessParametersService.java | 14 src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java | 563 ++ src/main/java/org/jeecg/modules/eam/aspect/annotation/EquipmentHistoryLog.java | 26 src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml | 56 src/main/java/org/jeecg/modules/eam/constant/InspectionStatus.java | 13 src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentHistoryLogMapper.java | 14 src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentPrecisionParametersMapper.xml | 12 src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentProcessParametersServiceImpl.java | 42 src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentAttachmentMapper.java | 14 src/main/java/org/jeecg/modules/eam/request/EamInspectionBatchApprovalRequest.java | 26 src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceStandardMapper.java | 25 src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceOrderDetailServiceImpl.java | 28 src/main/java/org/jeecg/modules/eam/service/IEamEquipmentAttachmentService.java | 30 src/main/java/org/jeecg/modules/eam/controller/EamPrecisionParametersController.java | 165 src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceStandardDetailMapper.java | 14 src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderQuery.java | 23 src/main/java/org/jeecg/modules/eam/service/impl/EamSysFilesServiceImpl.java | 71 src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java | 28 src/main/java/org/jeecg/modules/eam/mapper/EamSysFilesMapper.java | 14 src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java | 19 src/main/java/org/jeecg/modules/eam/request/EamSysFilesRequest.java | 30 src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderDetailMapper.xml | 5 src/main/java/org/jeecg/modules/eam/mapper/EamProcessParametersMapper.java | 14 src/main/java/org/jeecg/modules/eam/request/EamMaintenanceQuery.java | 23 src/main/java/org/jeecg/modules/eam/constant/MaintenanceStatusEnum.java | 23 src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderDetailServiceImpl.java | 28 src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentProcessParametersMapper.java | 26 src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java | 194 src/main/java/org/jeecg/modules/eam/request/EamMaintenanceStandardRequest.java | 74 src/main/java/org/jeecg/modules/eam/request/EamRepairOrderQuery.java | 28 src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java | 47 src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java | 37 src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml | 11 src/main/java/org/jeecg/modules/eam/controller/EamEquipmentProcessParametersController.java | 118 src/main/java/org/jeecg/modules/eam/controller/EamEquipmentPrecisionParametersController.java | 157 src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java | 128 src/main/java/org/jeecg/modules/eam/entity/EamPrecisionParameters.java | 61 src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderRequest.java | 116 src/main/java/org/jeecg/modules/eam/entity/EamSysFiles.java | 75 src/main/java/org/jeecg/modules/eam/mapper/EamPrecisionParametersMapper.java | 14 src/main/java/org/jeecg/modules/eam/request/EamEquipmentAttachmentRequest.java | 33 src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentHistoryLogServiceImpl.java | 18 src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceOrderDetailMapper.java | 14 src/main/java/org/jeecg/modules/eam/mapper/xml/EamPrecisionParametersMapper.xml | 5 148 files changed, 12,246 insertions(+), 0 deletions(-) diff --git a/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java b/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java new file mode 100644 index 0000000..7993bf3 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java @@ -0,0 +1,128 @@ +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.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +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.service.IEamEquipmentHistoryLogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.lang.reflect.Method; + +/** + * 璁惧灞ュ巻 鍒囬潰瀹炵幇 + */ +@Aspect +@Component +@Slf4j +public class EquipmentHistoryLogAspect { + + @Autowired + private IEamEquipmentHistoryLogService equipmentHistoryLogService; + + @Pointcut("@annotation(org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog)") + public void logPointCut() { + + } + + // 鐜粫閫氱煡锛氳绠楁墽琛屾椂闂� + @Around("logPointCut()") + public Object logMethodExecutionTime(ProceedingJoinPoint joinPoint) throws Throwable { + long start_time = System.currentTimeMillis(); + Object result = joinPoint.proceed(); + long end_time = System.currentTimeMillis(); + saveLog(joinPoint, result); + log.info("[璇锋眰鑰楁椂:{}ms]", end_time - start_time); + return result; + } + + private void saveLog(JoinPoint joinPoint, Object result) { + MethodSignature signature = (MethodSignature) joinPoint.getSignature(); + Method method = signature.getMethod(); + + EamEquipmentHistoryLog log = new EamEquipmentHistoryLog(); + + EquipmentHistoryLog syslog = method.getAnnotation(EquipmentHistoryLog.class); + + if (syslog != null) { + log.setBusinessTable(syslog.businessTable()); + log.setOperationTag(syslog.operationTag().name()); + convertResult(log, syslog.operationTag(), result); + if (StringUtils.isNotBlank(log.getEquipmentId())) { + equipmentHistoryLogService.save(log); + } + } + } + + + private void convertResult(EamEquipmentHistoryLog log, EquipmentOperationTagEnum operationTag, Object result) { + switch (operationTag) { + case ACCEPTANCE: + if (result instanceof EamEquipment) { + EamEquipment equipment = (EamEquipment) result; + log.setEquipmentId(equipment.getId()); + log.setBusinessId(equipment.getId()); + log.setOperator(equipment.getCreateBy()); + log.setDescription(equipment.getRemark()); + log.setCreateTime(equipment.getAcceptanceCheckDate()); + } + 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 MAINTENANCE: + if (result instanceof EamMaintenanceOrder) { + EamMaintenanceOrder order = (EamMaintenanceOrder) result; + if (MaintenanceStatusEnum.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 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; + default: + break; + } + } +} diff --git a/src/main/java/org/jeecg/modules/eam/aspect/annotation/EquipmentHistoryLog.java b/src/main/java/org/jeecg/modules/eam/aspect/annotation/EquipmentHistoryLog.java new file mode 100644 index 0000000..b0c91d2 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/aspect/annotation/EquipmentHistoryLog.java @@ -0,0 +1,26 @@ +package org.jeecg.modules.eam.aspect.annotation; + +import org.jeecg.modules.eam.constant.EquipmentOperationTagEnum; + +import java.lang.annotation.*; + +/** + * 璁惧灞ュ巻娉ㄨВ + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface EquipmentHistoryLog { + + /** + * 鎿嶄綔鏍囩 鏋氫妇 + * @return + */ + EquipmentOperationTagEnum operationTag() default EquipmentOperationTagEnum.OTHER; + + /** + * 娑夊強鐨勪笟鍔′富琛� + * @return + */ + String businessTable() default ""; +} diff --git a/src/main/java/org/jeecg/modules/eam/constant/AssetStatusEnum.java b/src/main/java/org/jeecg/modules/eam/constant/AssetStatusEnum.java new file mode 100644 index 0000000..9757f93 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/constant/AssetStatusEnum.java @@ -0,0 +1,12 @@ +package org.jeecg.modules.eam.constant; + +/** + * 璧勪骇鐘舵�� + */ +public enum AssetStatusEnum { + NORMAL, //姝e父 + LEAN_OUT, //鍊熷嚭 + SEAL_UP, //灏佸瓨 + DEALT, //杞 + SCRAP; //鎶ュ簾 +} diff --git a/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java b/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java new file mode 100644 index 0000000..c03d5e4 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java @@ -0,0 +1,37 @@ +package org.jeecg.modules.eam.constant; + +public interface BusinessCodeConst { + //绮惧害鍙傛暟缂栫爜瑙勫垯 + String PRECISION_PARAMETERS_RULE = "PrecisionParametersRule"; + //宸ヨ壓鍙傛暟缂栫爜瑙勫垯 + String PROCESS_PARAMETERS_RULE = "ProcessParametersRule"; + //璁惧鏁呴殰鍘熷洜缂栫爜瑙勫垯 + String EQUIPMENT_FAULT_REASON_RULE = "EquipmentFaultReasonRule"; + //淇濆吇鏍囧噯缂栫爜瑙勫垯 + String MAINTENANCE_STANDARD_CODE_RULE = "MaintenanceStandardCodeRule"; + //鐐规宸ュ崟缂栫爜瑙勫垯 + String INSPECTION_ORDER_CODE_RULE = "EamInspectionOrder"; + //淇濆吇缂栫爜瑙勫垯 + String MAINTENANCE_CODE_RULE = "MaintenanceCodeRule"; + // 缁翠慨宸ュ崟缂栫爜瑙勫垯 + String REPAIR_ORDER_CODE_RULE = "RepairOrderCodeRule"; + + /** + * 宀椾綅缂栫爜 + */ + //鎿嶄綔宸� + String PCR0001 = "PCR0001"; + //缁翠慨宸� + String PCR0002 = "PCR0002"; + //鐝粍闀� + String PCR0003 = "PCR0003"; + //璁惧绠$悊鍛� + String PCR0004 = "PCR0004"; + //璁惧鑳芥簮閮� + String PCR0005 = "PCR0005"; + //鏈哄姩鍔炵鐞嗗憳 + String PCR0006 = "PCR0006"; + //澶囦欢绠$悊鍛� + String PCR0007 = "PCR0007"; + +} diff --git a/src/main/java/org/jeecg/modules/eam/constant/EquipmentMaintenanceStatus.java b/src/main/java/org/jeecg/modules/eam/constant/EquipmentMaintenanceStatus.java new file mode 100644 index 0000000..e7ad64c --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/constant/EquipmentMaintenanceStatus.java @@ -0,0 +1,13 @@ +package org.jeecg.modules.eam.constant; + +/** + * 淇濆吇鐘舵�� + */ +public enum EquipmentMaintenanceStatus { + NORMAL, + UNDER_INSPECTION, //鐐规涓� + INSPECTION_CONFIRM, //鐐规纭涓� + UNDER_MAINTENANCE, //淇濆吇涓� + MAINTENANCE_WAIT_CONFIRM, //淇濆吇纭涓� + ; +} diff --git a/src/main/java/org/jeecg/modules/eam/constant/EquipmentOperationTagEnum.java b/src/main/java/org/jeecg/modules/eam/constant/EquipmentOperationTagEnum.java new file mode 100644 index 0000000..07615af --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/constant/EquipmentOperationTagEnum.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.eam.constant; + +/** + * 璁惧灞ュ巻 + */ +public enum EquipmentOperationTagEnum { + ACCEPTANCE, //楠屾敹 + POINT_INSPECTION, //鐐规 + MAINTENANCE, //淇濆吇 + REPORT_REPAIR, //鎶ヤ慨 + REPAIRED, //缁翠慨 + OTHER, //鍏跺畠 + ; +} diff --git a/src/main/java/org/jeecg/modules/eam/constant/EquipmentRepairStatus.java b/src/main/java/org/jeecg/modules/eam/constant/EquipmentRepairStatus.java new file mode 100644 index 0000000..eb9be4f --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/constant/EquipmentRepairStatus.java @@ -0,0 +1,13 @@ +package org.jeecg.modules.eam.constant; + +/** + * 缁翠慨鐘舵�� + */ +public enum EquipmentRepairStatus { + NORMAL, + WAIT_REPAIR, + UNDER_REPAIR, + WAIT_CONFIRM, + MAJOR_REPAIR, + PARTIAL_REPAIR,; +} diff --git a/src/main/java/org/jeecg/modules/eam/constant/InspectionStatus.java b/src/main/java/org/jeecg/modules/eam/constant/InspectionStatus.java new file mode 100644 index 0000000..5c8be10 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/constant/InspectionStatus.java @@ -0,0 +1,13 @@ +package org.jeecg.modules.eam.constant; + +import lombok.Getter; + +@Getter +public enum InspectionStatus { + WAIT_INSPECTION, //寰呯偣妫� + UNDER_INSPECTION, //鐐规涓� + WAIT_CONFIRM, //寰呯‘璁� + COMPLETE, //宸插畬鎴� + ABOLISH, //宸蹭綔搴� + EXPIRED; //宸茶繃鏈� +} diff --git a/src/main/java/org/jeecg/modules/eam/constant/MaintenanceCategoryEnum.java b/src/main/java/org/jeecg/modules/eam/constant/MaintenanceCategoryEnum.java new file mode 100644 index 0000000..0e7ac28 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/constant/MaintenanceCategoryEnum.java @@ -0,0 +1,10 @@ +package org.jeecg.modules.eam.constant; + +/** + * 淇濆吇鍒嗙被 + */ +public enum MaintenanceCategoryEnum { + POINT_INSPECTION, //鐐规 + WEEK_MAINTENANCE, //淇濆吇 + ; +} diff --git a/src/main/java/org/jeecg/modules/eam/constant/MaintenanceStandardStatusEnum.java b/src/main/java/org/jeecg/modules/eam/constant/MaintenanceStandardStatusEnum.java new file mode 100644 index 0000000..709577c --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/constant/MaintenanceStandardStatusEnum.java @@ -0,0 +1,9 @@ +package org.jeecg.modules.eam.constant; + +/** + * 淇濆吇鏍囧噯鐘舵�� + */ +public enum MaintenanceStandardStatusEnum { + NORMAL, + ABOLISH,; +} diff --git a/src/main/java/org/jeecg/modules/eam/constant/MaintenanceStatusEnum.java b/src/main/java/org/jeecg/modules/eam/constant/MaintenanceStatusEnum.java new file mode 100644 index 0000000..1aaf85c --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/constant/MaintenanceStatusEnum.java @@ -0,0 +1,23 @@ +package org.jeecg.modules.eam.constant; + +public enum MaintenanceStatusEnum { + WAIT_MAINTENANCE, //寰呬繚鍏� + UNDER_MAINTENANCE, //淇濆吇涓� + WAIT_CONFIRM, //寰呯‘璁� + WAIT_INITIAL_ACCEPTANCE, // 寰呭垵楠� + WAIT_FINAL_ACCEPTANCE, //寰呯粓楠� + COMPLETE, //宸插畬鎴� + ABOLISH, //宸蹭綔搴� + EXPIRED, //宸茶繃鏈� + ; + + public static MaintenanceStatusEnum getInstance(String code) { + MaintenanceStatusEnum[] values = MaintenanceStatusEnum.values(); + for (MaintenanceStatusEnum value : values) { + if (value.name().equals(code)) { + return value; + } + } + return null; + } +} diff --git a/src/main/java/org/jeecg/modules/eam/constant/OrderCreationMethodEnum.java b/src/main/java/org/jeecg/modules/eam/constant/OrderCreationMethodEnum.java new file mode 100644 index 0000000..8c6fe17 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/constant/OrderCreationMethodEnum.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.eam.constant; + +public enum OrderCreationMethodEnum { + AUTO, //鑷姩 绯荤粺鐢熸垚 + MANUAL, //鎵嬪姩 + ; +} diff --git a/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java b/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java new file mode 100644 index 0000000..38583f3 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java @@ -0,0 +1,25 @@ +package org.jeecg.modules.eam.constant; + +public enum ReportRepairEnum { + WAIT_REPAIR, // 寰呯淮淇� + WAIT_INTERNAL_CONFIRM, // 寰呯淮淇‘璁� + UNDER_INTERNAL_REPAIR, // 鍐呴儴缁翠慨涓� + WAIT_LEADER_CONFIRM, // 寰呴瀵肩‘璁� 璁惧绠$悊鍛� + WAIT_EXTERNAL_CONFIRM, // 寰呮満鍔ㄥ姙纭 + UNDER_EXTERNAL_REPAIR, // 鏈哄姩鍔炵淮淇腑 + UNDER_OUTSIDE_REPAIR, // 濮斿缁翠慨涓� 璐d换浜烘槸璋侊紵 + 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/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentAttachmentController.java b/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentAttachmentController.java new file mode 100644 index 0000000..ff07e24 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentAttachmentController.java @@ -0,0 +1,157 @@ +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.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/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java b/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java new file mode 100644 index 0000000..4583f8f --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java @@ -0,0 +1,338 @@ +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; +import org.apache.commons.lang3.StringUtils; +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.EquipmentSearchResult; +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * @Description: 璁惧鍙拌处 + * @Author: jeecg-boot + * @Date: 2025-03-19 + * @Version: V1.0 + */ +@Slf4j +@Api(tags = "璁惧鍙拌处") +@RestController +@RequestMapping("/eam/equipment") +public class EamEquipmentController extends JeecgController<EamEquipment, IEamEquipmentService> { + @Autowired + private IEamEquipmentService eamEquipmentService; + + @Autowired + private IEamEquipmentExtendService eamEquipmentExtendService; + +// @Autowired +// private IMdcEquipmentService mdcEquipmentService; + + @Autowired + private ObjectMapper objectMapper; + @Autowired + private TranslateDictTextUtils translateDictTextUtils; + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param eamEquipment + * @param pageNo + * @param pageSize + * @return + */ +// @AutoLog(value = "璁惧鍙拌处-鍒嗛〉鍒楄〃鏌ヨ") + @ApiOperation(value = "璁惧鍙拌处-鍒嗛〉鍒楄〃鏌ヨ", notes = "璁惧鍙拌处-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<?> queryPageList(EamEquipmentQuery eamEquipment, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { +// QueryWrapper<EamEquipment> queryWrapper = QueryGenerator.initQueryWrapper(eamEquipment, req.getParameterMap()); + IPage<EamEquipment> page = new Page<>(pageNo, pageSize); + IPage<EamEquipment> pageList = eamEquipmentService.queryPageList(page, eamEquipment); + return Result.OK(pageList); + } + + /** + * 娣诲姞 + * + * @param eamEquipment + * @return + */ +// @AutoLog(value = "璁惧鍙拌处-娣诲姞") + @ApiOperation(value = "璁惧鍙拌处-娣诲姞", notes = "璁惧鍙拌处-娣诲姞") + @PostMapping(value = "/add") + public Result<?> add(@RequestBody EamEquipment eamEquipment) { + EamEquipment entity = eamEquipmentService.saveEquipment(eamEquipment); + if (entity == null) { + return Result.OK("娣诲姞澶辫触锛�"); + } + //璋冪敤mdcEquipment鎻掑叆MDC璁惧 +// if (CommonConstant.DEFAULT_1.equals(eamEquipment.getMdcFlag())) { +// //鎻掑叆MDC璁惧 +// MdcEquipment mdcEquipment = new MdcEquipment(); +// mdcEquipment.setEquipmentId(entity.getEquipmentCode()); +// mdcEquipment.setEquipmentType(entity.getDeviceType()); +// mdcEquipment.setEquipmentName(entity.getEquipmentName()); +// mdcEquipmentService.addNewEquipmentFromEam(mdcEquipment, eamEquipment.getOrgId()); +// } + return Result.OK("娣诲姞鎴愬姛锛�"); + } + + /** + * 缂栬緫 + * + * @param eamEquipment + * @return + */ + @ApiOperation(value = "璁惧鍙拌处-缂栬緫", notes = "璁惧鍙拌处-缂栬緫") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result<?> edit(@RequestBody EamEquipment eamEquipment) { + eamEquipmentService.updateById(eamEquipment); + return Result.OK("缂栬緫鎴愬姛!"); + } + + /** + * 閫氳繃id鍒犻櫎 + * + * @param id + * @return + */ + @ApiOperation(value = "璁惧鍙拌处-閫氳繃id鍒犻櫎", notes = "璁惧鍙拌处-閫氳繃id鍒犻櫎") + @DeleteMapping(value = "/delete") + public Result<?> delete(@RequestParam(name = "id", required = true) String id) { + EamEquipment entity = eamEquipmentService.getById(id); + if (entity != null) { + entity.setDelFlag(CommonConstant.DEL_FLAG_1); + eamEquipmentService.updateById(entity); + } + return Result.OK("鍒犻櫎鎴愬姛!"); + } + + /** + * 鎵归噺鍒犻櫎 + * + * @param ids + * @return + */ + @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 -> { + EamEquipment entity = eamEquipmentService.getById(id); + if (entity != null) { + entity.setDelFlag(CommonConstant.DEL_FLAG_1); + eamEquipmentService.updateById(entity); + } + }); + return Result.OK("鎵归噺鍒犻櫎鎴愬姛锛�"); + } + + /** + * 閫氳繃id鏌ヨ + * + * @param id + * @return + */ + @ApiOperation(value = "璁惧鍙拌处-閫氳繃id鏌ヨ", notes = "璁惧鍙拌处-閫氳繃id鏌ヨ") + @GetMapping(value = "/queryById") + public Result<?> queryById(@RequestParam(name = "id", required = true) String id) { + EamEquipment eamEquipment = eamEquipmentService.getById(id); + 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("鏁版嵁杞瘧澶辫触锛�"); + } + } + + /** + * 瀵煎嚭excel + * + * @param request + * @param eamEquipment + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, EamEquipment eamEquipment) { + return super.exportXls(request, eamEquipment, EamEquipment.class, "璁惧鍙拌处"); + } + + /** + * 閫氳繃excel瀵煎叆鏁版嵁 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); + for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { + // 鑾峰彇涓婁紶鏂囦欢瀵硅薄 + MultipartFile file = entity.getValue(); + ImportParams params = new ImportParams(); + params.setTitleRows(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:鎵归噺鎻掑叆鏁版嵁 + long start = System.currentTimeMillis(); +// service.saveBatch(list); + StringBuilder sb = new StringBuilder(); + for (EamEquipment eamEquipment : list) { + //蹇呭~瀛楁鏍¢獙 + if (StringUtils.isBlank(eamEquipment.getEquipmentCode()) || StringUtils.isBlank(eamEquipment.getEquipmentName())) { + sb.append(String.format("璁惧缂栫爜[%s]鎴栬澶囧悕绉癧%s]涓虹┖锛屾棤娉曞鍏n\n", eamEquipment.getEquipmentCode(), eamEquipment.getEquipmentName())); + continue; + } + if (StringUtils.isBlank(eamEquipment.getEquipmentCategory())) { + sb.append(String.format("璁惧缂栫爜[%s]璁惧鍒嗙被涓虹┖锛屾棤娉曞鍏n\n", eamEquipment.getEquipmentCode())); + continue; + } + if (StringUtils.isBlank(eamEquipment.getOrgId()) || StringUtils.isBlank(eamEquipment.getEquipmentManager())) { + sb.append(String.format("璁惧缂栫爜[%s]浣跨敤杞﹂棿鎴栬澶囩鐞嗗憳涓虹┖锛屾棤娉曞鍏n\n", eamEquipment.getEquipmentCode())); + continue; + } +// if (eamEquipment.getAcceptanceCheckDate() == null) { +// sb.append(String.format("璁惧缂栫爜[%s]楠屾敹涓虹┖锛屾棤娉曞鍏n\r", eamEquipment.getEquipmentCode())); +// continue; +// } +// if (StringUtils.isBlank(eamEquipment.getTechnologyStatus())) { +// sb.append(String.format("璁惧缂栫爜[%s]鎶�鏈姸鎬佷负绌猴紝鏃犳硶瀵煎叆\n\r", eamEquipment.getEquipmentCode())); +// continue; +// } + EamEquipment one = eamEquipmentService.getOne(new LambdaQueryWrapper<EamEquipment>().eq(EamEquipment::getEquipmentCode, eamEquipment.getEquipmentCode()).eq(EamEquipment::getDelFlag, CommonConstant.DEL_FLAG_0)); + if (one != null) { + sb.append(String.format("璁惧缂栫爜[%s]宸插瓨鍦紝鏃犳硶閲嶅瀵煎叆\n\r", eamEquipment.getEquipmentCode())); + continue; + } + if (!CommonConstant.DEFAULT_1.equals(eamEquipment.getMdcFlag())) { + eamEquipment.setMdcFlag(CommonConstant.DEFAULT_0); + } + EamEquipment equipment = eamEquipmentService.saveEquipment(eamEquipment); + if (equipment == null) { + //淇濆瓨澶辫触锛岃烦杩囨湰娆″惊鐜� + sb.append(String.format("璁惧缂栫爜[%s]淇濆瓨澶辫触锛屾棤娉曞鍏n\r", eamEquipment.getEquipmentCode())); + continue; + } + //璋冪敤mdcEquipment鎻掑叆MDC璁惧 +// if (CommonConstant.DEFAULT_1.equals(eamEquipment.getMdcFlag())) { +// //鎻掑叆MDC璁惧 +// MdcEquipment mdcEquipment = new MdcEquipment(); +// mdcEquipment.setEquipmentId(eamEquipment.getEquipmentCode()); +// mdcEquipment.setEquipmentType(eamEquipment.getDeviceType()); +// mdcEquipment.setEquipmentName(eamEquipment.getEquipmentName()); +// mdcEquipmentService.addNewEquipmentFromEam(mdcEquipment, eamEquipment.getOrgId()); +// } + } + //400鏉� saveBatch娑堣�楁椂闂�1592姣 寰幆鎻掑叆娑堣�楁椂闂�1947姣 + //1200鏉� saveBatch娑堣�楁椂闂�3687姣 寰幆鎻掑叆娑堣�楁椂闂�5212姣 + log.info("娑堣�楁椂闂�" + (System.currentTimeMillis() - start) + "姣"); + //update-end-author:taoyan date:20190528 for:鎵归噺鎻掑叆鏁版嵁 + if (sb.length() > 0) { + return Result.ok(sb.toString()); + } + return Result.ok("鏂囦欢瀵煎叆鎴愬姛锛佹暟鎹鏁帮細" + list.size()); + } catch (Exception e) { + //update-begin-author:taoyan date:20211124 for: 瀵煎叆鏁版嵁閲嶅澧炲姞鎻愮ず + String msg = e.getMessage(); + log.error(msg, e); + if (msg != null && msg.indexOf("Duplicate entry") >= 0) { + return Result.error("鏂囦欢瀵煎叆澶辫触:鏈夐噸澶嶆暟鎹紒"); + } else { + return Result.error("鏂囦欢瀵煎叆澶辫触:" + e.getMessage()); + } + //update-end-author:taoyan date:20211124 for: 瀵煎叆鏁版嵁閲嶅澧炲姞鎻愮ず + } finally { + try { + file.getInputStream().close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return Result.error("鏂囦欢瀵煎叆澶辫触锛�"); + } + +// @ApiOperation(value = "璁惧琛�-閫氳繃杞﹂棿ids鑾峰彇璁惧鏍�", notes = "璁惧琛�-閫氳繃杞﹂棿ids鑾峰彇璁惧鏍�") +// @GetMapping(value = "/loadTreeListByProductionIds") +// public Result<List<EamEquipmentTree>> loadTreeListByProductionIds(@RequestParam(name = "ids", required = true) String ids) { +// Result<List<EamEquipmentTree>> result = new Result<>(); +// try { +// List<EamEquipmentTree> mdcEquipmentTreeList = eamEquipmentService.loadTreeListByProductionIds(ids); +// result.setSuccess(true); +// result.setResult(mdcEquipmentTreeList); +// } catch (Exception e) { +// log.error(e.getMessage(), e); +// } +// return result; +// } + + /** + * 妫�绱㈣澶� + * @param keyword 鏌ヨ鍏抽敭璇� 璁惧缂栧彿锛岃澶囧悕绉版ā绯婂尮閰� + * @param pageSize 涓�娆¤繑鍥炲灏戣褰� + * @param id 璁惧涓婚敭 + * @return + */ + @ApiOperation(value = "璁惧琛�-寮傛鍔犺浇璁惧鍒楄〃", notes = "璁惧琛�-寮傛鍔犺浇璁惧鍒楄〃") + @GetMapping(value = "/asyncLoadEquipment") + public Result<?> asyncLoadEquipment(@RequestParam(name="keyword",required = false) String keyword, + @RequestParam(value = "pageSize", required = false, defaultValue = "20") Integer pageSize, + @RequestParam(name="id",required = false) String id) { + List<EquipmentSearchResult> resultList = eamEquipmentService.asyncLoadEquipment(keyword, pageSize, id); + return Result.ok(resultList); + } + +} diff --git a/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentFaultReasonController.java b/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentFaultReasonController.java new file mode 100644 index 0000000..40435d0 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentFaultReasonController.java @@ -0,0 +1,160 @@ +package org.jeecg.modules.eam.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.modules.eam.constant.BusinessCodeConst; +import org.jeecg.modules.eam.entity.EamEquipmentFaultReason; +import org.jeecg.modules.eam.service.IEamEquipmentFaultReasonService; +import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; +import java.util.List; + +/** + * @Description: 璁惧鏁呴殰鍘熷洜缁存姢 + * @Author: jeecg-boot + * @Date: 2025-03-19 + * @Version: V1.0 + */ +@Slf4j +@Api(tags="璁惧鏁呴殰鍘熷洜缁存姢") +@RestController +@RequestMapping("/eam/equipmentFaultReason") +public class EamEquipmentFaultReasonController extends JeecgController<EamEquipmentFaultReason, IEamEquipmentFaultReasonService> { + @Autowired + private IEamEquipmentFaultReasonService eamEquipmentFaultReasonService; + + @Autowired + private ISysBusinessCodeRuleService businessCodeRuleService; + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param eamEquipmentFaultReason + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @ApiOperation(value="璁惧鏁呴殰鍘熷洜缁存姢-鍒嗛〉鍒楄〃鏌ヨ", notes="璁惧鏁呴殰鍘熷洜缁存姢-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<?> queryPageList(EamEquipmentFaultReason eamEquipmentFaultReason, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper<EamEquipmentFaultReason> queryWrapper = QueryGenerator.initQueryWrapper(eamEquipmentFaultReason, req.getParameterMap()); + 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); + } + + /** + * 娣诲姞 + * + * @param eamEquipmentFaultReason + * @return + */ + @ApiOperation(value="璁惧鏁呴殰鍘熷洜缁存姢-娣诲姞", notes="璁惧鏁呴殰鍘熷洜缁存姢-娣诲姞") + @PostMapping(value = "/add") + public Result<?> add(@RequestBody EamEquipmentFaultReason eamEquipmentFaultReason) { + String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.EQUIPMENT_FAULT_REASON_RULE); + eamEquipmentFaultReason.setFaultCode(codeSeq); + eamEquipmentFaultReason.setDelFlag(CommonConstant.DEL_FLAG_0); + eamEquipmentFaultReasonService.save(eamEquipmentFaultReason); + return Result.OK("娣诲姞鎴愬姛锛�"); + } + + /** + * 缂栬緫 + * + * @param eamEquipmentFaultReason + * @return + */ + @ApiOperation(value="璁惧鏁呴殰鍘熷洜缁存姢-缂栬緫", notes="璁惧鏁呴殰鍘熷洜缁存姢-缂栬緫") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result<?> edit(@RequestBody EamEquipmentFaultReason eamEquipmentFaultReason) { + eamEquipmentFaultReasonService.updateById(eamEquipmentFaultReason); + return Result.OK("缂栬緫鎴愬姛!"); + } + + /** + * 閫氳繃id鍒犻櫎 + * + * @param id + * @return + */ + @ApiOperation(value="璁惧鏁呴殰鍘熷洜缁存姢-閫氳繃id鍒犻櫎", notes="璁惧鏁呴殰鍘熷洜缁存姢-閫氳繃id鍒犻櫎") + @DeleteMapping(value = "/delete") + public Result<?> delete(@RequestParam(name="id",required=true) String id) { + eamEquipmentFaultReasonService.removeById(id); + return Result.OK("鍒犻櫎鎴愬姛!"); + } + + /** + * 鎵归噺鍒犻櫎 + * + * @param ids + * @return + */ + @ApiOperation(value="璁惧鏁呴殰鍘熷洜缁存姢-鎵归噺鍒犻櫎", notes="璁惧鏁呴殰鍘熷洜缁存姢-鎵归噺鍒犻櫎") + @DeleteMapping(value = "/deleteBatch") + public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.eamEquipmentFaultReasonService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("鎵归噺鍒犻櫎鎴愬姛锛�"); + } + + /** + * 閫氳繃id鏌ヨ + * + * @param id + * @return + */ + @ApiOperation(value="璁惧鏁呴殰鍘熷洜缁存姢-閫氳繃id鏌ヨ", notes="璁惧鏁呴殰鍘熷洜缁存姢-閫氳繃id鏌ヨ") + @GetMapping(value = "/queryById") + public Result<?> queryById(@RequestParam(name="id",required=true) String id) { + EamEquipmentFaultReason eamEquipmentFaultReason = eamEquipmentFaultReasonService.getById(id); + return Result.OK(eamEquipmentFaultReason); + } + + /** + * 瀵煎嚭excel + * + * @param request + * @param eamEquipmentFaultReason + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, EamEquipmentFaultReason eamEquipmentFaultReason) { + return super.exportXls(request, eamEquipmentFaultReason, EamEquipmentFaultReason.class, "璁惧鏁呴殰鍘熷洜缁存姢"); + } + + /** + * 閫氳繃excel瀵煎叆鏁版嵁 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, EamEquipmentFaultReason.class); + } + +} diff --git a/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentHistoryLogController.java b/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentHistoryLogController.java new file mode 100644 index 0000000..80e00f6 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentHistoryLogController.java @@ -0,0 +1,43 @@ +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.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 + * @Version: V1.0 + */ +@Slf4j +@Api(tags = "璁惧灞ュ巻") +@RestController +@RequestMapping("/eam/equipmentHistoryLog") +public class EamEquipmentHistoryLogController extends JeecgController<EamEquipmentHistoryLog, IEamEquipmentHistoryLogService> { + @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/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentPrecisionParametersController.java b/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentPrecisionParametersController.java new file mode 100644 index 0000000..b879e2f --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentPrecisionParametersController.java @@ -0,0 +1,157 @@ +package org.jeecg.modules.eam.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 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.entity.EamEquipmentPrecisionParameters; +import org.jeecg.modules.eam.service.IEamEquipmentPrecisionParametersService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +/** + * @Description: 璁惧绮惧害鍙傛暟 + * @Author: jeecg-boot + * @Date: 2025-04-27 + * @Version: V1.0 + */ +@Slf4j +@Api(tags="璁惧绮惧害鍙傛暟") +@RestController +@RequestMapping("/eam/equipmentPrecisionParameters") +public class EamEquipmentPrecisionParametersController extends JeecgController<EamEquipmentPrecisionParameters, IEamEquipmentPrecisionParametersService> { + @Autowired + private IEamEquipmentPrecisionParametersService eamEquipmentPrecisionParametersService; + @Autowired + private ObjectMapper objectMapper; + @Autowired + private TranslateDictTextUtils translateDictTextUtils; + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @AutoLog(value = "璁惧绮惧害鍙傛暟-鍒嗛〉鍒楄〃鏌ヨ") + @ApiOperation(value="璁惧绮惧害鍙傛暟-鍒嗛〉鍒楄〃鏌ヨ", notes="璁惧绮惧害鍙傛暟-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<?> queryPageList(String equipmentId, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + Page<EamEquipmentPrecisionParameters> page = new Page<EamEquipmentPrecisionParameters>(pageNo, pageSize); + IPage<EamEquipmentPrecisionParameters> pageList = eamEquipmentPrecisionParametersService.queryPageList(equipmentId, page); + return Result.OK(pageList); + } + + /** + * 娣诲姞 + * + * @param req + * @return + */ + @AutoLog(value = "璁惧绮惧害鍙傛暟-娣诲姞") + @ApiOperation(value="璁惧绮惧害鍙傛暟-娣诲姞", notes="璁惧绮惧害鍙傛暟-娣诲姞") + @PostMapping(value = "/add") + public Result<?> add(@RequestBody EamEquipmentPrecisionParameters req) { + EamEquipmentPrecisionParameters entity = eamEquipmentPrecisionParametersService.queryByEquipmentIdAndParameterId(req.getEquipmentId(), req.getParameterId()); + if(entity != null){ + return Result.error("鍙傛暟宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�"); + } + eamEquipmentPrecisionParametersService.save(req); + return Result.OK("娣诲姞鎴愬姛锛�"); + } + + /** + * 缂栬緫 + * + * @param req + * @return + */ + @AutoLog(value = "璁惧绮惧害鍙傛暟-缂栬緫") + @ApiOperation(value="璁惧绮惧害鍙傛暟-缂栬緫", notes="璁惧绮惧害鍙傛暟-缂栬緫") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result<?> edit(@RequestBody EamEquipmentPrecisionParameters req) { + EamEquipmentPrecisionParameters entity = eamEquipmentPrecisionParametersService.getById(req.getId()); + if(entity == null){ + return Result.error("瑕佺紪杈戠殑鍙傛暟涓嶅瓨鍦紝璇峰埛鏂伴噸璇�!"); + } + eamEquipmentPrecisionParametersService.updateById(req); + 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) { + eamEquipmentPrecisionParametersService.removeById(id); + return Result.OK("鍒犻櫎鎴愬姛!"); + } + + /** + * 鎵归噺鍒犻櫎 + * + * @param ids + * @return + */ + @AutoLog(value = "璁惧绮惧害鍙傛暟-鎵归噺鍒犻櫎") + @ApiOperation(value="璁惧绮惧害鍙傛暟-鎵归噺鍒犻櫎", notes="璁惧绮惧害鍙傛暟-鎵归噺鍒犻櫎") + @DeleteMapping(value = "/deleteBatch") + public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.eamEquipmentPrecisionParametersService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("鎵归噺鍒犻櫎鎴愬姛锛�"); + } + + + /** + * 鍒楄〃鏌ヨ + * + * @param equipmentId 璁惧ID + * @return + */ + @ApiOperation(value="璁惧绮惧害鍙傛暟-鍒楄〃鏌ヨ", notes="璁惧绮惧害鍙傛暟-鍒楄〃鏌ヨ") + @GetMapping(value = "/queryList") + public Result<?> queryList(@RequestParam(name="equipmentId") String equipmentId) { + List<EamEquipmentPrecisionParameters> list = eamEquipmentPrecisionParametersService.queryList(equipmentId); + if(CollectionUtil.isEmpty(list)) { + return Result.OK(Collections.emptyList()); + } + List<JSONObject> items = new ArrayList<>(); + try { + for(EamEquipmentPrecisionParameters vo : list) { + String json = objectMapper.writeValueAsString(vo); + JSONObject item = JSONObject.parseObject(json, Feature.OrderedField); + translateDictTextUtils.translateField("parameterId", vo.getParameterId(), item, "eam_precision_parameters,parameter_name,id"); + translateDictTextUtils.translateField("parameterCode", vo.getParameterId(), item, "eam_precision_parameters,parameter_code,id"); + items.add(item); + } + return Result.OK(items); + }catch (Exception e) { + return Result.error("鏁版嵁杞瘧澶辫触锛�"); + } + } +} diff --git a/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentProcessParametersController.java b/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentProcessParametersController.java new file mode 100644 index 0000000..a2688aa --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentProcessParametersController.java @@ -0,0 +1,118 @@ +package org.jeecg.modules.eam.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.modules.eam.entity.EamEquipmentProcessParameters; +import org.jeecg.modules.eam.service.IEamEquipmentProcessParametersService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.Arrays; + + /** + * @Description: 璁惧宸ヨ壓鍙傛暟 + * @Author: jeecg-boot + * @Date: 2025-04-27 + * @Version: V1.0 + */ +@Slf4j +@Api(tags="璁惧宸ヨ壓鍙傛暟") +@RestController +@RequestMapping("/eam/equipmentProcessParameters") +public class EamEquipmentProcessParametersController extends JeecgController<EamEquipmentProcessParameters, IEamEquipmentProcessParametersService> { + @Autowired + private IEamEquipmentProcessParametersService eamEquipmentProcessParametersService; + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param equipmentId + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @AutoLog(value = "璁惧宸ヨ壓鍙傛暟-鍒嗛〉鍒楄〃鏌ヨ") + @ApiOperation(value="璁惧宸ヨ壓鍙傛暟-鍒嗛〉鍒楄〃鏌ヨ", notes="璁惧宸ヨ壓鍙傛暟-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<?> queryPageList(String equipmentId, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + Page<EamEquipmentProcessParameters> page = new Page<>(pageNo, pageSize); + IPage<EamEquipmentProcessParameters> pageList = eamEquipmentProcessParametersService.queryPageList(equipmentId, page); + return Result.OK(pageList); + } + + /** + * 娣诲姞 + * + * @param req + * @return + */ + @AutoLog(value = "璁惧宸ヨ壓鍙傛暟-娣诲姞") + @ApiOperation(value="璁惧宸ヨ壓鍙傛暟-娣诲姞", notes="璁惧宸ヨ壓鍙傛暟-娣诲姞") + @PostMapping(value = "/add") + public Result<?> add(@RequestBody EamEquipmentProcessParameters req) { + EamEquipmentProcessParameters entity = eamEquipmentProcessParametersService.queryByEquipmentIdAndParameterId(req.getEquipmentId(), req.getParameterId()); + if(entity != null){ + return Result.error("鍙傛暟宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�"); + } + eamEquipmentProcessParametersService.save(req); + return Result.OK("娣诲姞鎴愬姛锛�"); + } + + /** + * 缂栬緫 + * + * @param req + * @return + */ + @AutoLog(value = "璁惧宸ヨ壓鍙傛暟-缂栬緫") + @ApiOperation(value="璁惧宸ヨ壓鍙傛暟-缂栬緫", notes="璁惧宸ヨ壓鍙傛暟-缂栬緫") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result<?> edit(@RequestBody EamEquipmentProcessParameters req) { + EamEquipmentProcessParameters entity = eamEquipmentProcessParametersService.getById(req.getId()); + if(entity == null){ + return Result.error("瑕佺紪杈戠殑鍙傛暟涓嶅瓨鍦紝璇峰埛鏂伴噸璇�!"); + } + eamEquipmentProcessParametersService.updateById(req); + 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) { + eamEquipmentProcessParametersService.removeById(id); + return Result.OK("鍒犻櫎鎴愬姛!"); + } + + /** + * 鎵归噺鍒犻櫎 + * + * @param ids + * @return + */ + @AutoLog(value = "璁惧宸ヨ壓鍙傛暟-鎵归噺鍒犻櫎") + @ApiOperation(value="璁惧宸ヨ壓鍙傛暟-鎵归噺鍒犻櫎", notes="璁惧宸ヨ壓鍙傛暟-鎵归噺鍒犻櫎") + @DeleteMapping(value = "/deleteBatch") + public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.eamEquipmentProcessParametersService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("鎵归噺鍒犻櫎鎴愬姛锛�"); + } + +} diff --git a/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java b/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java new file mode 100644 index 0000000..c5a3769 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java @@ -0,0 +1,608 @@ +package org.jeecg.modules.eam.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.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.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.vo.InspectionVo; +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.*; +import org.springframework.web.servlet.ModelAndView; + +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: 鐐规宸ュ崟 + * @Author: jeecg-boot + * @Date: 2025-04-02 + * @Version: V1.0 + */ +@Api(tags = "鐐规宸ュ崟") +@RestController +@RequestMapping("/eam/eamInspectionOrder") +@Slf4j +public class EamInspectionOrderController extends JeecgController<EamInspectionOrder, IEamInspectionOrderService> { + @Autowired + private IEamInspectionOrderService eamInspectionOrderService; + @Autowired + private ISysBusinessCodeRuleService businessCodeRuleService; + @Autowired + private ObjectMapper objectMapper; + @Autowired + private TranslateDictTextUtils translateDictTextUtils; + @Autowired + private IEamInspectionOrderDetailService eamInspectionOrderDetailService; + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @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) { + return super.exportXls(request, eamInspectionOrder, EamInspectionOrder.class, "鐐规宸ュ崟"); + } + + /** + * 閫氳繃excel瀵煎叆鏁版嵁 + * + * @param request + * @param response + * @return + */ + //@RequiresPermissions("鐐规宸ュ崟:importExcel") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, EamInspectionOrder.class); + } + + /** + * 鎶ヨ〃浣跨敤 qsw + * 2025-6-19 + */ + @GetMapping("/findInspectionResult") + public JSONObject findInspectionResult(@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "1000") Integer pageSize, + @RequestParam Map<String, Object> params) { + + String equipmentId = (String)params.get("equipmentId"); + String inspectionDate = (String)params.get("inspectionDate"); + + List<InspectionVo> inspectionVos = new ArrayList<>(); + List<Map<String, Object>> inspectionStandard = eamInspectionOrderService.findInspectionStandard(equipmentId); + for (Map<String, Object> map : inspectionStandard) { + List<InspectionVo> dayInspectionResult = eamInspectionOrderService.findInspectionResult(equipmentId,(String)map.get("itemDemand"),inspectionDate); + InspectionVo inspectionVo = new InspectionVo(); + inspectionVo.setInspectionContent((String)map.get("itemDemand")); + Object seq = map.get("seq"); + inspectionVo.setSeq(seq.toString()); + for (InspectionVo vo : dayInspectionResult) { + if("1".equals(vo.getDayTime())){ + inspectionVo.setDay1(vo.getInspectionResult()); + continue; + }else if("2".equals(vo.getDayTime())){ + inspectionVo.setDay2(vo.getInspectionResult()); + continue; + }else if("3".equals(vo.getDayTime())){ + inspectionVo.setDay3(vo.getInspectionResult()); + continue; + }else if("4".equals(vo.getDayTime())){ + inspectionVo.setDay4(vo.getInspectionResult()); + continue; + }else if("5".equals(vo.getDayTime())){ + inspectionVo.setDay5(vo.getInspectionResult()); + continue; + }else if("6".equals(vo.getDayTime())){ + inspectionVo.setDay6(vo.getInspectionResult()); + continue; + }else if("7".equals(vo.getDayTime())){ + inspectionVo.setDay7(vo.getInspectionResult()); + continue; + }else if("8".equals(vo.getDayTime())){ + inspectionVo.setDay8(vo.getInspectionResult()); + continue; + }else if("9".equals(vo.getDayTime())){ + inspectionVo.setDay9(vo.getInspectionResult()); + continue; + }else if("10".equals(vo.getDayTime())){ + inspectionVo.setDay10(vo.getInspectionResult()); + continue; + }else if("11".equals(vo.getDayTime())){ + inspectionVo.setDay11(vo.getInspectionResult()); + continue; + }else if("12".equals(vo.getDayTime())){ + inspectionVo.setDay12(vo.getInspectionResult()); + continue; + }else if("13".equals(vo.getDayTime())){ + inspectionVo.setDay13(vo.getInspectionResult()); + continue; + }else if("14".equals(vo.getDayTime())){ + inspectionVo.setDay14(vo.getInspectionResult()); + continue; + }else if("15".equals(vo.getDayTime())){ + inspectionVo.setDay15(vo.getInspectionResult()); + continue; + }else if("16".equals(vo.getDayTime())){ + inspectionVo.setDay16(vo.getInspectionResult()); + continue; + }else if("17".equals(vo.getDayTime())){ + inspectionVo.setDay17(vo.getInspectionResult()); + continue; + }else if("18".equals(vo.getDayTime())){ + inspectionVo.setDay18(vo.getInspectionResult()); + continue; + }else if("19".equals(vo.getDayTime())){ + inspectionVo.setDay19(vo.getInspectionResult()); + continue; + }else if("20".equals(vo.getDayTime())){ + inspectionVo.setDay20(vo.getInspectionResult()); + continue; + }else if("21".equals(vo.getDayTime())){ + inspectionVo.setDay21(vo.getInspectionResult()); + continue; + }else if("22".equals(vo.getDayTime())){ + inspectionVo.setDay22(vo.getInspectionResult()); + continue; + }else if("23".equals(vo.getDayTime())){ + inspectionVo.setDay23(vo.getInspectionResult()); + continue; + }else if("24".equals(vo.getDayTime())){ + inspectionVo.setDay24(vo.getInspectionResult()); + continue; + }else if("25".equals(vo.getDayTime())){ + inspectionVo.setDay25(vo.getInspectionResult()); + continue; + }else if("26".equals(vo.getDayTime())){ + inspectionVo.setDay26(vo.getInspectionResult()); + continue; + }else if("27".equals(vo.getDayTime())){ + inspectionVo.setDay27(vo.getInspectionResult()); + continue; + }else if("28".equals(vo.getDayTime())){ + inspectionVo.setDay28(vo.getInspectionResult()); + continue; + }else if("29".equals(vo.getDayTime())){ + inspectionVo.setDay29(vo.getInspectionResult()); + continue; + }else if("30".equals(vo.getDayTime())){ + inspectionVo.setDay30(vo.getInspectionResult()); + continue; + }else if("31".equals(vo.getDayTime())){ + inspectionVo.setDay31(vo.getInspectionResult()); + continue; + } + } + inspectionVos.add(inspectionVo); + } + JSONObject jsonObject = new JSONObject(); + jsonObject.put("data",inspectionVos); + return jsonObject; + } + + /** + * 鎶ヨ〃浣跨敤 qsw + * 2025-6-19 + */ + @GetMapping("/findInspectionUser") + public JSONObject findInspectionUser(@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "1000") Integer pageSize, + @RequestParam Map<String, Object> params) { + + String equipmentId = (String)params.get("equipmentId"); + String inspectionDate = (String)params.get("inspectionDate"); + + List<InspectionVo> inspectionVos = new ArrayList<>(); + List<InspectionVo> inspectionUser = eamInspectionOrderService.findInspectionUser(equipmentId,inspectionDate); + InspectionVo inspectionVo = new InspectionVo(); + for (InspectionVo vo : inspectionUser) { + if("1".equals(vo.getDayTime())){ + inspectionVo.setOperator1(vo.getOperator()); + inspectionVo.setConfirmUser1(vo.getConfirmUser()); + continue; + }else if("2".equals(vo.getDayTime())){ + inspectionVo.setOperator2(vo.getOperator()); + inspectionVo.setConfirmUser2(vo.getConfirmUser()); + continue; + }else if("3".equals(vo.getDayTime())){ + inspectionVo.setOperator3(vo.getOperator()); + inspectionVo.setConfirmUser3(vo.getConfirmUser()); + continue; + }else if("4".equals(vo.getDayTime())){ + inspectionVo.setOperator4(vo.getOperator()); + inspectionVo.setConfirmUser4(vo.getConfirmUser()); + continue; + }else if("5".equals(vo.getDayTime())){ + inspectionVo.setOperator5(vo.getOperator()); + inspectionVo.setConfirmUser5(vo.getConfirmUser()); + continue; + }else if("6".equals(vo.getDayTime())){ + inspectionVo.setOperator6(vo.getOperator()); + inspectionVo.setConfirmUser6(vo.getConfirmUser()); + continue; + }else if("7".equals(vo.getDayTime())){ + inspectionVo.setOperator7(vo.getOperator()); + inspectionVo.setConfirmUser7(vo.getConfirmUser()); + continue; + }else if("8".equals(vo.getDayTime())){ + inspectionVo.setOperator8(vo.getOperator()); + inspectionVo.setConfirmUser8(vo.getConfirmUser()); + continue; + }else if("9".equals(vo.getDayTime())){ + inspectionVo.setOperator9(vo.getOperator()); + inspectionVo.setConfirmUser9(vo.getConfirmUser()); + continue; + }else if("10".equals(vo.getDayTime())){ + inspectionVo.setOperator10(vo.getOperator()); + inspectionVo.setConfirmUser10(vo.getConfirmUser()); + continue; + }else if("11".equals(vo.getDayTime())){ + inspectionVo.setOperator11(vo.getOperator()); + inspectionVo.setConfirmUser11(vo.getConfirmUser()); + continue; + }else if("12".equals(vo.getDayTime())){ + inspectionVo.setOperator12(vo.getOperator()); + inspectionVo.setConfirmUser12(vo.getConfirmUser()); + continue; + }else if("13".equals(vo.getDayTime())){ + inspectionVo.setOperator13(vo.getOperator()); + inspectionVo.setConfirmUser13(vo.getConfirmUser()); + continue; + }else if("14".equals(vo.getDayTime())){ + inspectionVo.setOperator14(vo.getOperator()); + inspectionVo.setConfirmUser14(vo.getConfirmUser()); + continue; + }else if("15".equals(vo.getDayTime())){ + inspectionVo.setOperator15(vo.getOperator()); + inspectionVo.setConfirmUser15(vo.getConfirmUser()); + continue; + }else if("16".equals(vo.getDayTime())){ + inspectionVo.setOperator16(vo.getOperator()); + inspectionVo.setConfirmUser16(vo.getConfirmUser()); + continue; + }else if("17".equals(vo.getDayTime())){ + inspectionVo.setOperator17(vo.getOperator()); + inspectionVo.setConfirmUser17(vo.getConfirmUser()); + continue; + }else if("18".equals(vo.getDayTime())){ + inspectionVo.setOperator18(vo.getOperator()); + inspectionVo.setConfirmUser18(vo.getConfirmUser()); + continue; + }else if("19".equals(vo.getDayTime())){ + inspectionVo.setOperator19(vo.getOperator()); + inspectionVo.setConfirmUser19(vo.getConfirmUser()); + continue; + }else if("20".equals(vo.getDayTime())){ + inspectionVo.setOperator20(vo.getOperator()); + inspectionVo.setConfirmUser20(vo.getConfirmUser()); + continue; + }else if("21".equals(vo.getDayTime())){ + inspectionVo.setOperator21(vo.getOperator()); + inspectionVo.setConfirmUser21(vo.getConfirmUser()); + continue; + }else if("22".equals(vo.getDayTime())){ + inspectionVo.setOperator22(vo.getOperator()); + inspectionVo.setConfirmUser22(vo.getConfirmUser()); + continue; + }else if("23".equals(vo.getDayTime())){ + inspectionVo.setOperator23(vo.getOperator()); + inspectionVo.setConfirmUser23(vo.getConfirmUser()); + continue; + }else if("24".equals(vo.getDayTime())){ + inspectionVo.setOperator24(vo.getOperator()); + inspectionVo.setConfirmUser24(vo.getConfirmUser()); + continue; + }else if("25".equals(vo.getDayTime())){ + inspectionVo.setOperator25(vo.getOperator()); + inspectionVo.setConfirmUser25(vo.getConfirmUser()); + continue; + }else if("26".equals(vo.getDayTime())){ + inspectionVo.setOperator26(vo.getOperator()); + inspectionVo.setConfirmUser26(vo.getConfirmUser()); + continue; + }else if("27".equals(vo.getDayTime())){ + inspectionVo.setOperator27(vo.getOperator()); + inspectionVo.setConfirmUser27(vo.getConfirmUser()); + continue; + }else if("28".equals(vo.getDayTime())){ + inspectionVo.setOperator28(vo.getOperator()); + inspectionVo.setConfirmUser28(vo.getConfirmUser()); + continue; + }else if("29".equals(vo.getDayTime())){ + inspectionVo.setOperator29(vo.getOperator()); + inspectionVo.setConfirmUser29(vo.getConfirmUser()); + continue; + }else if("30".equals(vo.getDayTime())){ + inspectionVo.setOperator30(vo.getOperator()); + inspectionVo.setConfirmUser30(vo.getConfirmUser()); + continue; + }else if("31".equals(vo.getDayTime())){ + inspectionVo.setOperator31(vo.getOperator()); + inspectionVo.setConfirmUser31(vo.getConfirmUser()); + continue; + } + } + inspectionVos.add(inspectionVo); +// } + JSONObject jsonObject = new JSONObject(); + jsonObject.put("data",inspectionVos); + return jsonObject; + } + + + +} diff --git a/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderDetailController.java b/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderDetailController.java new file mode 100644 index 0000000..931aa4a --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderDetailController.java @@ -0,0 +1,179 @@ +package org.jeecg.modules.eam.controller; + +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 io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.modules.eam.entity.EamInspectionOrderDetail; +import org.jeecg.modules.eam.service.IEamInspectionOrderDetailService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; +import java.util.List; + +/** + * @Description: 鐐规宸ュ崟鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-04-02 + * @Version: V1.0 + */ +@Api(tags="鐐规宸ュ崟鏄庣粏") +@RestController +@RequestMapping("/eam/eamInspectionOrderDetail") +@Slf4j +public class EamInspectionOrderDetailController extends JeecgController<EamInspectionOrderDetail, IEamInspectionOrderDetailService> { + @Autowired + private IEamInspectionOrderDetailService eamInspectionOrderDetailService; + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param eamInspectionOrderDetail + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "鐐规宸ュ崟鏄庣粏-鍒嗛〉鍒楄〃鏌ヨ") + @ApiOperation(value="鐐规宸ュ崟鏄庣粏-鍒嗛〉鍒楄〃鏌ヨ", notes="鐐规宸ュ崟鏄庣粏-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<IPage<EamInspectionOrderDetail>> queryPageList(EamInspectionOrderDetail eamInspectionOrderDetail, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper<EamInspectionOrderDetail> queryWrapper = QueryGenerator.initQueryWrapper(eamInspectionOrderDetail, req.getParameterMap()); + Page<EamInspectionOrderDetail> page = new Page<EamInspectionOrderDetail>(pageNo, pageSize); + IPage<EamInspectionOrderDetail> pageList = eamInspectionOrderDetailService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 娣诲姞 + * + * @param eamInspectionOrderDetail + * @return + */ + @AutoLog(value = "鐐规宸ュ崟鏄庣粏-娣诲姞") + @ApiOperation(value="鐐规宸ュ崟鏄庣粏-娣诲姞", notes="鐐规宸ュ崟鏄庣粏-娣诲姞") + //@RequiresPermissions("org.jeecg.modules:鐐规宸ュ崟鏄庣粏:add") + @PostMapping(value = "/add") + public Result<String> add(@RequestBody EamInspectionOrderDetail eamInspectionOrderDetail) { + eamInspectionOrderDetailService.save(eamInspectionOrderDetail); + return Result.OK("娣诲姞鎴愬姛锛�"); + } + + /** + * 缂栬緫 + * + * @param eamInspectionOrderDetail + * @return + */ + @AutoLog(value = "鐐规宸ュ崟鏄庣粏-缂栬緫") + @ApiOperation(value="鐐规宸ュ崟鏄庣粏-缂栬緫", notes="鐐规宸ュ崟鏄庣粏-缂栬緫") + //@RequiresPermissions("org.jeecg.modules:鐐规宸ュ崟鏄庣粏:edit") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result<String> edit(@RequestBody EamInspectionOrderDetail eamInspectionOrderDetail) { + eamInspectionOrderDetailService.updateById(eamInspectionOrderDetail); + return Result.OK("缂栬緫鎴愬姛!"); + } + + /** + * 閫氳繃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) { + eamInspectionOrderDetailService.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.eamInspectionOrderDetailService.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<EamInspectionOrderDetail> queryById(@RequestParam(name="id",required=true) String id) { + EamInspectionOrderDetail eamInspectionOrderDetail = eamInspectionOrderDetailService.getById(id); + if(eamInspectionOrderDetail==null) { + return Result.error("鏈壘鍒板搴旀暟鎹�"); + } + return Result.OK(eamInspectionOrderDetail); + } + + /** + * 瀵煎嚭excel + * + * @param request + * @param eamInspectionOrderDetail + */ + //@RequiresPermissions("org.jeecg.modules:鐐规宸ュ崟鏄庣粏:exportXls") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, EamInspectionOrderDetail eamInspectionOrderDetail) { + return super.exportXls(request, eamInspectionOrderDetail, EamInspectionOrderDetail.class, "鐐规宸ュ崟鏄庣粏"); + } + + /** + * 閫氳繃excel瀵煎叆鏁版嵁 + * + * @param request + * @param response + * @return + */ + //@RequiresPermissions("鐐规宸ュ崟鏄庣粏:importExcel") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, EamInspectionOrderDetail.class); + } + + /** + * 涓�娆″姞杞� + * + * @param orderId + * @return + */ + @ApiOperation(value = "淇濆吇鏍囧噯鏄庣粏-涓嶅垎椤靛垪琛ㄦ煡璇�", notes = "淇濆吇鏍囧噯鏄庣粏-涓嶅垎椤靛垪琛ㄦ煡璇�") + @GetMapping(value = "/queryList") + public Result<?> queryList(@RequestParam("orderId") String orderId) { + LambdaQueryWrapper<EamInspectionOrderDetail> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamInspectionOrderDetail::getOrderId, orderId); + queryWrapper.orderByAsc(EamInspectionOrderDetail::getItemCode); + List<EamInspectionOrderDetail> list = eamInspectionOrderDetailService.list(queryWrapper); + return Result.OK(list); + } + +} diff --git a/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceOrderController.java b/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceOrderController.java new file mode 100644 index 0000000..8cf4b46 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceOrderController.java @@ -0,0 +1,372 @@ +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.MaintenanceStatusEnum; +import org.jeecg.modules.eam.entity.EamMaintenanceOrder; +import org.jeecg.modules.eam.entity.EamMaintenanceOrderDetail; +import org.jeecg.modules.eam.request.EamMaintenanceBatchApprovalRequest; +import org.jeecg.modules.eam.request.EamMaintenanceQuery; +import org.jeecg.modules.eam.request.EamMaintenanceRequest; +import org.jeecg.modules.eam.service.IEamMaintenanceOrderDetailService; +import org.jeecg.modules.eam.service.IEamMaintenanceOrderService; +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.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.Arrays; +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * @Description: 淇濆吇宸ュ崟 + * @Author: jeecg-boot + * @Date: 2025-04-02 + * @Version: V1.0 + */ +@Slf4j +@Api(tags = "淇濆吇宸ュ崟") +@RestController +@RequestMapping("/eam/maintenanceOrder") +public class EamMaintenanceOrderController extends JeecgController<EamMaintenanceOrder, IEamMaintenanceOrderService> { + @Autowired + private IEamMaintenanceOrderService eamMaintenanceOrderService; + @Autowired + private ISysBusinessCodeRuleService businessCodeRuleService; + @Autowired + private ObjectMapper objectMapper; + @Autowired + private TranslateDictTextUtils translateDictTextUtils; + @Autowired + private IEamMaintenanceOrderDetailService MaintenanceOrderDetailService; + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param query + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @ApiOperation(value = "淇濆吇宸ュ崟-鍒嗛〉鍒楄〃鏌ヨ", notes = "淇濆吇宸ュ崟-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<?> queryPageList(EamMaintenanceQuery query, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { +// QueryWrapper<EamMaintenanceOrder> queryWrapper = QueryGenerator.initQueryWrapper(eamMaintenanceOrder, req.getParameterMap()); + Page<EamMaintenanceOrder> page = new Page<>(pageNo, pageSize); + IPage<EamMaintenanceOrder> pageList = eamMaintenanceOrderService.queryPageList(page, query); + return Result.OK(pageList); + } + + /** + * 娣诲姞 + * + * @param request + * @return + */ + @AutoLog(value = "淇濆吇宸ュ崟-娣诲姞") + @ApiOperation(value = "淇濆吇宸ュ崟-娣诲姞", notes = "淇濆吇宸ュ崟-娣诲姞") + @PostMapping(value = "/add") + public Result<?> add(@RequestBody EamMaintenanceRequest request) { + if (request == null) { + return Result.error("娣诲姞鐨勫璞′笉鑳戒负绌猴紒"); + } + if (CollectionUtil.isEmpty(request.getTableDetailList())) { + return Result.error("淇濆吇椤逛笉鑳戒负绌猴紒"); + } + String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.MAINTENANCE_CODE_RULE); + request.setOrderNum(codeSeq); + request.setCreationMethod(OrderCreationMethodEnum.MANUAL.name()); + boolean b = eamMaintenanceOrderService.addMaintenance(request); + if (!b) { + return Result.error("娣诲姞澶辫触锛�"); + } + return Result.OK("娣诲姞鎴愬姛锛�"); + } + + /** + * 缂栬緫 + * + * @param request + * @return + */ + @AutoLog(value = "淇濆吇宸ュ崟-缂栬緫") + @ApiOperation(value = "淇濆吇宸ュ崟-缂栬緫", notes = "淇濆吇宸ュ崟-缂栬緫") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result<?> edit(@RequestBody EamMaintenanceRequest request) { + if (request == null) { + return Result.error("娣诲姞鐨勫璞′笉鑳戒负绌猴紒"); + } + if (CollectionUtil.isEmpty(request.getTableDetailList())) { + return Result.error("淇濆吇椤逛笉鑳戒负绌猴紒"); + } + boolean b = eamMaintenanceOrderService.editMaintenance(request); + if (!b) { + return Result.error("缂栬緫澶辫触锛�"); + } + return Result.OK("缂栬緫鎴愬姛!"); + } + + /** + * 閫氳繃id鍒犻櫎 + * + * @param id + * @return + */ + @AutoLog(value = "淇濆吇宸ュ崟-閫氳繃id鍒犻櫎") + @ApiOperation(value = "淇濆吇宸ュ崟-閫氳繃id鍒犻櫎", notes = "淇濆吇宸ュ崟-閫氳繃id鍒犻櫎") + @DeleteMapping(value = "/delete") + public Result<?> delete(@RequestParam(name = "id", required = true) String id) { + eamMaintenanceOrderService.removeById(id); + return Result.OK("鍒犻櫎鎴愬姛!"); + } + + /** + * 閫氳繃id浣滃簾 + * + * @param id + * @return + */ + @AutoLog(value = "淇濆吇宸ュ崟-浣滃簾") + @ApiOperation(value = "淇濆吇宸ュ崟-浣滃簾", notes = "淇濆吇宸ュ崟-浣滃簾") + @DeleteMapping(value = "/abolish") + public Result<?> abolish(@RequestParam(name = "id", required = true) String id) { + EamMaintenanceOrder entity = eamMaintenanceOrderService.getById(id); + if (entity == null) { + return Result.error("瑕佷綔搴熺殑鏁版嵁涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒"); + } + if (!MaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) { + return Result.error("璇ョ姸鎬佺殑鏁版嵁涓嶅厑璁歌繘琛屼綔搴燂紒"); + } + entity.setMaintenanceStatus(MaintenanceStatusEnum.ABOLISH.name()); + eamMaintenanceOrderService.updateById(entity); + return Result.OK("浣滃簾鎴愬姛!"); + } + + /** + * 閫氳繃id棰嗗彇 + * + * @param id + * @return + */ + @AutoLog(value = "淇濆吇宸ュ崟-棰嗗彇") + @ApiOperation(value = "淇濆吇宸ュ崟-棰嗗彇", notes = "淇濆吇宸ュ崟-棰嗗彇") + @GetMapping(value = "/collect") + public Result<?> collect(@RequestParam(name = "id", required = true) String id) { + boolean b = eamMaintenanceOrderService.collect(id); + if (!b) { + Result.OK("棰嗗彇澶辫触!"); + } + return Result.OK("棰嗗彇鎴愬姛!"); + } + + /** + * 鎵归噺鍒犻櫎 + * + * @param ids + * @return + */ + @AutoLog(value = "淇濆吇宸ュ崟-鎵归噺鍒犻櫎") + @ApiOperation(value = "淇濆吇宸ュ崟-鎵归噺鍒犻櫎", notes = "淇濆吇宸ュ崟-鎵归噺鍒犻櫎") + @DeleteMapping(value = "/deleteBatch") + public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { + this.eamMaintenanceOrderService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("鎵归噺鍒犻櫎鎴愬姛锛�"); + } + + /** + * 閫氳繃id鎵归噺浣滃簾 + * + * @param ids + * @return + */ + @AutoLog(value = "淇濆吇宸ュ崟-鎵归噺浣滃簾") + @ApiOperation(value = "淇濆吇宸ュ崟-鎵归噺浣滃簾", notes = "淇濆吇宸ュ崟-鎵归噺浣滃簾") + @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 -> { + EamMaintenanceOrder entity = eamMaintenanceOrderService.getById(id); + if (entity != null && MaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) { + entity.setMaintenanceStatus(MaintenanceStatusEnum.ABOLISH.name()); + eamMaintenanceOrderService.updateById(entity); + i.getAndIncrement(); + } + }); + 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 -> { + EamMaintenanceOrder entity = eamMaintenanceOrderService.getById(id); + if (entity != null && MaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) { + boolean b = eamMaintenanceOrderService.collect(id); + if (b) { + i.getAndIncrement(); + } + } + }); + return Result.OK("鎵归噺棰嗗彇鎴愬姛 " + i.get() + " 鏉″伐鍗曪紒"); + } + + /** + * 閫氳繃id鏌ヨ + * + * @param id + * @return + */ + @ApiOperation(value = "淇濆吇宸ュ崟-閫氳繃id鏌ヨ", notes = "淇濆吇宸ュ崟-閫氳繃id鏌ヨ") + @GetMapping(value = "/queryById") + public Result<?> queryById(@RequestParam(name = "id", required = true) String id) { + EamMaintenanceOrder eamMaintenanceOrder = eamMaintenanceOrderService.getById(id); + if (eamMaintenanceOrder == null) { + return Result.error("鏈壘鍒板搴旀暟鎹�"); + } + try { + String json = objectMapper.writeValueAsString(eamMaintenanceOrder); + JSONObject item = JSONObject.parseObject(json, Feature.OrderedField); + translateDictTextUtils.translateField("equipmentId", eamMaintenanceOrder.getEquipmentId(), item, "eam_equipment,equipment_code,id"); + translateDictTextUtils.translateField("standardId", eamMaintenanceOrder.getStandardId(), item, "eam_maintenance_standard,standard_name,id"); + translateDictTextUtils.translateField("operator", eamMaintenanceOrder.getOperator(), item, "sys_user,realname,username"); + translateDictTextUtils.translateField("creationMethod", eamMaintenanceOrder.getCreationMethod(), item, "order_creation_method"); + translateDictTextUtils.translateField("maintenanceStatus", eamMaintenanceOrder.getMaintenanceStatus(), item, "_maintenance_status"); + translateDictTextUtils.translateField("confirmUser", eamMaintenanceOrder.getConfirmUser(), item, "sys_user,realname,username"); + translateDictTextUtils.translateField("confirmDealType", eamMaintenanceOrder.getConfirmDealType(), item, "approved_rejected"); + translateDictTextUtils.translateField("initialAcceptanceUser", eamMaintenanceOrder.getInitialAcceptanceUser(), item, "sys_user,realname,username"); + translateDictTextUtils.translateField("finalAcceptanceUser", eamMaintenanceOrder.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 EamMaintenanceRequest 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("瀹℃壒浠诲姟閿欒鎴栦笉瀛樺湪锛�"); + } + EamMaintenanceOrder b = eamMaintenanceOrderService.approval(request); + if (b == null) { + return Result.error("鎿嶄綔澶辫触锛�"); + } + return Result.ok("鎿嶄綔鎴愬姛锛�"); + } + + @ApiOperation(value = "淇濆吇宸ュ崟-鎵归噺瀹℃壒娴佺▼", notes = "淇濆吇宸ュ崟-鎵归噺瀹℃壒娴佺▼") + @PostMapping("/batchApproval") + public Result<?> batchApproval(@RequestBody EamMaintenanceBatchApprovalRequest 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) { + EamMaintenanceRequest orderRequest = new EamMaintenanceRequest(); + EamMaintenanceOrder order = eamMaintenanceOrderService.getById(workTaskDataVo.getDataId()); + if (order == null) { + errorMsg.append("宸ュ崟ID锛�"); + errorMsg.append(workTaskDataVo.getDataId()); + errorMsg.append(",涓嶅瓨鍦ㄦ垨宸茶鍒犻櫎!\n"); + continue; + } + if (!(MaintenanceStatusEnum.WAIT_CONFIRM.name().equals(order.getMaintenanceStatus()) + || MaintenanceStatusEnum.WAIT_INITIAL_ACCEPTANCE.name().equals(order.getMaintenanceStatus()) + || MaintenanceStatusEnum.WAIT_FINAL_ACCEPTANCE.name().equals(order.getMaintenanceStatus()))) { + errorMsg.append("宸ュ崟鍙凤細"); + errorMsg.append(order.getOrderNum()); + errorMsg.append(",鐘舵�佹棤娉曟壒閲忓鎵�!\n"); + continue; + } + List<EamMaintenanceOrderDetail> tableDetailList = MaintenanceOrderDetailService.queryListByOrderId(order.getId()); + try { + orderRequest.setId(order.getId()); + orderRequest.setEquipmentId(order.getEquipmentId()); + //瀹℃壒淇℃伅 + if (MaintenanceStatusEnum.WAIT_CONFIRM.name().equals(order.getMaintenanceStatus())) { + orderRequest.setConfirmComment(request.getConfirmComment()); + orderRequest.setConfirmDealType(request.getConfirmDealType()); + } else if (MaintenanceStatusEnum.WAIT_INITIAL_ACCEPTANCE.name().equals(order.getMaintenanceStatus())) { + orderRequest.setInitialAcceptanceComment(request.getInitialAcceptanceComment()); + orderRequest.setInitialAcceptanceFilesResult(request.getInitialAcceptanceFilesResult()); + } else if (MaintenanceStatusEnum.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); + EamMaintenanceOrder result = eamMaintenanceOrderService.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/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceOrderDetailController.java b/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceOrderDetailController.java new file mode 100644 index 0000000..3fe7077 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceOrderDetailController.java @@ -0,0 +1,71 @@ +package org.jeecg.modules.eam.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.modules.eam.entity.EamMaintenanceOrderDetail; +import org.jeecg.modules.eam.service.IEamMaintenanceOrderDetailService; +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; + +import java.util.List; + +/** + * @Description: 淇濆吇宸ュ崟鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-04-02 + * @Version: V1.0 + */ +@Slf4j +@Api(tags="淇濆吇宸ュ崟鏄庣粏") +@RestController +@RequestMapping("/eam/maintenanceOrderDetail") +public class EamMaintenanceOrderDetailController extends JeecgController<EamMaintenanceOrderDetail, IEamMaintenanceOrderDetailService> { + @Autowired + private IEamMaintenanceOrderDetailService eamMaintenanceOrderDetailService; + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param orderId + * @param pageNo + * @param pageSize + * @return + */ + @ApiOperation(value = "淇濆吇宸ュ崟鏄庣粏-鍒嗛〉鍒楄〃鏌ヨ", notes = "淇濆吇宸ュ崟鏄庣粏-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<?> queryPageList(@RequestParam("orderId") String orderId, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { + LambdaQueryWrapper<EamMaintenanceOrderDetail> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamMaintenanceOrderDetail::getOrderId, orderId); + queryWrapper.orderByAsc(EamMaintenanceOrderDetail::getItemCode); + Page<EamMaintenanceOrderDetail> page = new Page<>(pageNo, pageSize); + IPage<EamMaintenanceOrderDetail> pageList = eamMaintenanceOrderDetailService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 涓�娆″姞杞� + * + * @param orderId + * @return + */ + @ApiOperation(value = "淇濆吇宸ュ崟鏄庣粏-涓嶅垎椤靛垪琛ㄦ煡璇�", notes = "淇濆吇宸ュ崟鏄庣粏-涓嶅垎椤靛垪琛ㄦ煡璇�") + @GetMapping(value = "/queryList") + public Result<?> queryList(@RequestParam("orderId") String orderId) { + LambdaQueryWrapper<EamMaintenanceOrderDetail> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamMaintenanceOrderDetail::getOrderId, orderId); + queryWrapper.orderByAsc(EamMaintenanceOrderDetail::getItemCode); + List<EamMaintenanceOrderDetail> list = eamMaintenanceOrderDetailService.list(queryWrapper); + return Result.OK(list); + } +} diff --git a/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java b/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java new file mode 100644 index 0000000..2fe4564 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java @@ -0,0 +1,508 @@ +package org.jeecg.modules.eam.controller; + +import cn.hutool.core.collection.CollectionUtil; +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.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.jeecg.common.api.vo.FileUploadResult; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.exception.JeecgBootException; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.common.util.FileUtil; +import org.jeecg.modules.eam.constant.BusinessCodeConst; +import org.jeecg.modules.eam.constant.MaintenanceCategoryEnum; +import org.jeecg.modules.eam.constant.MaintenanceStandardStatusEnum; +import org.jeecg.modules.eam.dto.MaintenanceStandardImport; +import org.jeecg.modules.eam.dto.WeekMaintenanceStandardImport; +import org.jeecg.modules.eam.entity.EamEquipment; +import org.jeecg.modules.eam.entity.EamMaintenanceStandard; +import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail; +import org.jeecg.modules.eam.request.EamMaintenanceStandardRequest; +import org.jeecg.modules.eam.service.IEamEquipmentService; +import org.jeecg.modules.eam.service.IEamMaintenanceStandardService; +import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.util.PoiPublicUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Description: 淇濆吇鏍囧噯 + * @Author: jeecg-boot + * @Date: 2025-03-26 + * @Version: V1.0 + */ +@Slf4j +@Api(tags = "淇濆吇鏍囧噯") +@RestController +@RequestMapping("/eam/maintenanceStandard") +public class EamMaintenanceStandardController extends JeecgController<EamMaintenanceStandard, IEamMaintenanceStandardService> { + @Autowired + private IEamMaintenanceStandardService eamMaintenanceStandardService; + @Autowired + private ISysBusinessCodeRuleService businessCodeRuleService; + @Autowired + private IEamEquipmentService eamEquipmentService; + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param eamMaintenanceStandard + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @ApiOperation(value = "淇濆吇鏍囧噯-鍒嗛〉鍒楄〃鏌ヨ", notes = "淇濆吇鏍囧噯-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<?> queryPageList(EamMaintenanceStandard eamMaintenanceStandard, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { +// QueryWrapper<EamMaintenanceStandard> queryWrapper = QueryGenerator.initQueryWrapper(eamMaintenanceStandard, req.getParameterMap()); + Page<EamMaintenanceStandard> page = new Page<EamMaintenanceStandard>(pageNo, pageSize); + IPage<EamMaintenanceStandard> pageList = eamMaintenanceStandardService.queryPageList(page, eamMaintenanceStandard); + return Result.OK(pageList); + } + + /** + * 娣诲姞 + * + * @param standardRequest + * @return + */ + @AutoLog(value = "淇濆吇鏍囧噯-娣诲姞") + @ApiOperation(value = "淇濆吇鏍囧噯-娣诲姞", notes = "淇濆吇鏍囧噯-娣诲姞") + @PostMapping(value = "/add") + public Result<?> add(@RequestBody EamMaintenanceStandardRequest standardRequest) { + if (standardRequest == null) { + return Result.error("娣诲姞鐨勫璞′笉鑳戒负绌猴紒"); + } + if (CollectionUtil.isEmpty(standardRequest.getTableDetailList())) { + return Result.error("淇濆吇椤逛笉鑳戒负绌猴紒"); + } + String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.MAINTENANCE_STANDARD_CODE_RULE); + standardRequest.setStandardCode(codeSeq); + boolean b = eamMaintenanceStandardService.addMaintenanceStandard(standardRequest); + if (!b) { + return Result.error("娣诲姞澶辫触锛�"); + } + return Result.OK("娣诲姞鎴愬姛锛�"); + } + + /** + * 缂栬緫 + * + * @param standardRequest + * @return + */ + @AutoLog(value = "淇濆吇鏍囧噯-缂栬緫") + @ApiOperation(value = "淇濆吇鏍囧噯-缂栬緫", notes = "淇濆吇鏍囧噯-缂栬緫") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result<?> edit(@RequestBody EamMaintenanceStandardRequest standardRequest) { + if (standardRequest == null) { + return Result.error("娣诲姞鐨勫璞′笉鑳戒负绌猴紒"); + } + if (CollectionUtil.isEmpty(standardRequest.getTableDetailList())) { + return Result.error("淇濆吇椤逛笉鑳戒负绌猴紒"); + } + boolean b = eamMaintenanceStandardService.editMaintenanceStandard(standardRequest); + if (!b) { + return Result.error("缂栬緫澶辫触锛�"); + } + return Result.OK("缂栬緫鎴愬姛!"); + } + + /** + * 鍗囩増 + * + * @param standardRequest + * @return + */ + @AutoLog(value = "淇濆吇鏍囧噯-鍗囩増") + @ApiOperation(value = "淇濆吇鏍囧噯-鍗囩増", notes = "淇濆吇鏍囧噯-鍗囩増") + @RequestMapping(value = "/upgrade", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result<?> upgrade(@RequestBody EamMaintenanceStandardRequest standardRequest) { + if (standardRequest == null) { + return Result.error("娣诲姞鐨勫璞′笉鑳戒负绌猴紒"); + } + if (CollectionUtil.isEmpty(standardRequest.getTableDetailList())) { + return Result.error("淇濆吇椤逛笉鑳戒负绌猴紒"); + } + String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.MAINTENANCE_STANDARD_CODE_RULE); + standardRequest.setStandardCode(codeSeq); + boolean b = eamMaintenanceStandardService.upgradeMaintenanceStandard(standardRequest); + if (!b) { + return Result.error("鍗囩増澶辫触锛�"); + } + return Result.OK("鍗囩増鎴愬姛!"); + } + + /** + * 鏌ヨ鏍囧噯鍒楄〃-鍓嶇灞曠ず璇ョ敤鎴锋嫢鏈夌殑鏍囧噯 + * @param keyword 璁惧缂栧彿 + * @param maintenanceCategory 淇濆吇绫诲瀷 + * @return + */ + @AutoLog(value = "淇濆吇鏍囧噯-鏌ヨ鏍囧噯鍒楄〃-鍓嶇灞曠ず璇ョ敤鎴锋嫢鏈夌殑鏍囧噯") + @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, equipmentId, pageSize, maintenanceCategory); + return Result.OK(list); + } + + /** + * 閫氳繃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) { + EamMaintenanceStandard entity = eamMaintenanceStandardService.getById(id); + if (entity != null) { + entity.setDelFlag(CommonConstant.DEL_FLAG_1); + eamMaintenanceStandardService.updateById(entity); + } + return Result.OK("鍒犻櫎鎴愬姛!"); + } + + /** + * 閫氳繃id浣滃簾 + * + * @param id + * @return + */ + @AutoLog(value = "淇濆吇鏍囧噯-浣滃簾") + @ApiOperation(value = "淇濆吇鏍囧噯-浣滃簾", notes = "淇濆吇鏍囧噯-浣滃簾") + @DeleteMapping(value = "/abolish") + public Result<?> abolish(@RequestParam(name = "id", required = true) String id) { + EamMaintenanceStandard entity = eamMaintenanceStandardService.getById(id); + if (entity != null) { + entity.setStandardStatus(MaintenanceStandardStatusEnum.ABOLISH.name()); + eamMaintenanceStandardService.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 -> { + EamMaintenanceStandard entity = eamMaintenanceStandardService.getById(id); + if (entity != null) { + entity.setDelFlag(CommonConstant.DEL_FLAG_1); + eamMaintenanceStandardService.updateById(entity); + } + }); + return Result.OK("鎵归噺鍒犻櫎鎴愬姛锛�"); + } + + /** + * 閫氳繃id鏌ヨ + * + * @param id + * @return + */ + @ApiOperation(value = "淇濆吇鏍囧噯-閫氳繃id鏌ヨ", notes = "淇濆吇鏍囧噯-閫氳繃id鏌ヨ") + @GetMapping(value = "/queryById") + public Result<?> queryById(@RequestParam(name = "id", required = true) String id) { + EamMaintenanceStandard eamMaintenanceStandard = eamMaintenanceStandardService.getById(id); + return Result.OK(eamMaintenanceStandard); + } + + /** + * 瀵煎嚭excel + * + * @param request + * @param eamMaintenanceStandard + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, EamMaintenanceStandard eamMaintenanceStandard) { + return super.exportXls(request, eamMaintenanceStandard, EamMaintenanceStandard.class, "淇濆吇鏍囧噯"); + } + + /** + * 閫氳繃excel瀵煎叆鏁版嵁 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/inspectionImportExcel", method = RequestMethod.POST) + public Result<?> inspectionImportExcel(HttpServletRequest request, HttpServletResponse response) { + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); + for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { + // 鑾峰彇涓婁紶鏂囦欢瀵硅薄 + MultipartFile file = entity.getValue(); + ImportParams params = new ImportParams(); + params.setTitleRows(2); + params.setHeadRows(1); + params.setSheetNum(1); + params.setNeedSave(true); + EamMaintenanceStandardRequest standardRequest = new EamMaintenanceStandardRequest(); + try { + //璇诲彇璁惧缂栧彿锛屽浘鐗囩瓑 + readExcel(file, standardRequest); + EamEquipment equipment = eamEquipmentService.selectByEquipmentCode(standardRequest.getEquipmentCode()); + if(equipment == null) { + log.error("璁惧涓嶅瓨鍦細{}", standardRequest.getEquipmentCode()); + continue; + } + standardRequest.setStandardName(standardRequest.getEquipmentName() + "鐐规鏍囧噯"); + standardRequest.setMaintenanceCategory(MaintenanceCategoryEnum.POINT_INSPECTION.name()); + standardRequest.setEquipmentId(equipment.getId()); + //璇诲彇淇濆吇鏄庣粏鍐呭 + List<MaintenanceStandardImport> list = ExcelImportUtil.importExcel(file.getInputStream(), MaintenanceStandardImport.class, params); + //鏄庣粏椤� + List<EamMaintenanceStandardDetail> tableList = list.stream().map(EamMaintenanceStandardDetail::new).collect(Collectors.toList()); + standardRequest.setTableDetailList(tableList); + String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.MAINTENANCE_STANDARD_CODE_RULE); + standardRequest.setStandardCode(codeSeq); + boolean b = eamMaintenanceStandardService.addMaintenanceStandard(standardRequest); + if (!b) { + log.error("淇濆瓨澶辫触锛� {}", standardRequest.getEquipmentCode()); + } + } catch (Exception e) { + //update-begin-author:taoyan date:20211124 for: 瀵煎叆鏁版嵁閲嶅澧炲姞鎻愮ず + String msg = e.getMessage(); + log.error("鏂囦欢 {} 澶勭悊寮傚父锛� {}", file.getOriginalFilename(), msg, e); + //update-end-author:taoyan date:20211124 for: 瀵煎叆鏁版嵁閲嶅澧炲姞鎻愮ず + } finally { + try { + file.getInputStream().close(); + } catch (IOException e) { + log.error(e.getMessage(), e); + } + } + } + return Result.ok("鏂囦欢瀵煎叆瀹屾垚锛�"); + } + + /** + * 閫氳繃excel瀵煎叆鏁版嵁 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/maintenanceImportExcel", method = RequestMethod.POST) + public Result<?> maintenanceImportExcel(HttpServletRequest request, HttpServletResponse response) { + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); + for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { + // 鑾峰彇涓婁紶鏂囦欢瀵硅薄 + MultipartFile file = entity.getValue(); + ImportParams params = new ImportParams(); + params.setTitleRows(2); + params.setHeadRows(1); + params.setSheetNum(1); + params.setNeedSave(true); + EamMaintenanceStandardRequest standardRequest = new EamMaintenanceStandardRequest(); + try { + //璇诲彇璁惧缂栧彿锛屽浘鐗囩瓑 + readWeekExcel(file, standardRequest); + EamEquipment equipment = eamEquipmentService.selectByEquipmentCode(standardRequest.getEquipmentCode()); + if(equipment == null) { + log.error("璁惧涓嶅瓨鍦細{}", standardRequest.getEquipmentCode()); + continue; + } + standardRequest.setStandardName(standardRequest.getEquipmentName() + "淇濆吇鏍囧噯"); + standardRequest.setMaintenanceCategory(MaintenanceCategoryEnum.WEEK_MAINTENANCE.name()); + standardRequest.setEquipmentId(equipment.getId()); + //璇诲彇淇濆吇鏄庣粏鍐呭 + List<WeekMaintenanceStandardImport> list = ExcelImportUtil.importExcel(file.getInputStream(), WeekMaintenanceStandardImport.class, params); + //鏄庣粏椤� + List<EamMaintenanceStandardDetail> tableList = list.stream().map(EamMaintenanceStandardDetail::new).collect(Collectors.toList()); + standardRequest.setTableDetailList(tableList); + String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.MAINTENANCE_STANDARD_CODE_RULE); + standardRequest.setStandardCode(codeSeq); + boolean b = eamMaintenanceStandardService.addMaintenanceStandard(standardRequest); + if (!b) { + log.error("淇濆瓨澶辫触锛� {}", standardRequest.getEquipmentCode()); + } + } catch (Exception e) { + //update-begin-author:taoyan date:20211124 for: 瀵煎叆鏁版嵁閲嶅澧炲姞鎻愮ず + String msg = e.getMessage(); + log.error("鏂囦欢 {} 澶勭悊寮傚父锛� {}", file.getOriginalFilename(), msg, e); + //update-end-author:taoyan date:20211124 for: 瀵煎叆鏁版嵁閲嶅澧炲姞鎻愮ず + } finally { + try { + file.getInputStream().close(); + } catch (IOException e) { + log.error(e.getMessage(), e); + } + } + } + return Result.ok("鏂囦欢瀵煎叆瀹屾垚锛�"); + } + + /** + * 璇诲彇Excel 绗竴琛岋紝 绗簩琛岀殑淇℃伅锛屽寘鎷浘鐗囦俊鎭� + * @param file + * @param request + */ + private void readExcel(MultipartFile file, EamMaintenanceStandardRequest request) { + Workbook book = null; + boolean isXSSFWorkbook = false; + try { + book = WorkbookFactory.create(file.getInputStream()); + if (book instanceof XSSFWorkbook) { + isXSSFWorkbook = true; + } + + Sheet sheet = book.getSheetAt(0); + //绗竴琛岃鍙� + Row row = sheet.getRow(0); + //璁惧缂栫爜 + Cell equipmentCode = row.getCell(15); + if(CellType.NUMERIC.equals(equipmentCode.getCellType())) { + request.setEquipmentCode(String.valueOf((int) equipmentCode.getNumericCellValue())); + }else if(CellType.STRING.equals(equipmentCode.getCellType())) { + request.setEquipmentCode(equipmentCode.getStringCellValue()); + } + if (StringUtils.isBlank(request.getEquipmentCode())) { + throw new JeecgBootException("Excel銆� " + file.getOriginalFilename() + "銆戞病鏈夎鍙栧埌璁惧缂栧彿锛屽鍏ュけ璐ワ紒"); + } + //鍒濆鏃ユ湡 + Cell initialDate = row.getCell(11); + if (DateUtil.isCellDateFormatted(initialDate)) { + request.setInitialDate(initialDate.getDateCellValue()); + } else { + request.setInitialDate(new Date()); + } + //璁惧鍚嶇О + Cell equipmentName = row.getCell(13); + request.setEquipmentName(equipmentName.getStringCellValue()); + + //绗簩琛岃鍙� + row = sheet.getRow(1); + //淇濆吇鍛ㄦ湡 + Cell period = row.getCell(11); + if (CellType.NUMERIC.equals(period.getCellType())) { + request.setMaintenancePeriod((int) period.getNumericCellValue()); + } else { + //榛樿鐐规鍛ㄦ湡 1 + request.setMaintenancePeriod(1); + } + //鏂囦欢缂栫爜 + Cell fileCode = row.getCell(13); + request.setFileCode(fileCode.getStringCellValue()); + + Map<String, PictureData> pictures; + if (isXSSFWorkbook) { + pictures = PoiPublicUtil.getSheetPictrues07((XSSFSheet) book.getSheetAt(0), (XSSFWorkbook) book); + } else { + pictures = PoiPublicUtil.getSheetPictrues03((HSSFSheet) book.getSheetAt(0), (HSSFWorkbook) book); + } + + if (CollectionUtil.isNotEmpty(pictures)) { + //鍙細瀛樺湪涓�寮犲浘鐗� + PictureData pictureData = pictures.get(pictures.keySet().iterator().next()); + byte[] data = pictureData.getData(); + String fileName = request.getEquipmentCode() + "[" + request.getFileCode() + "]" + "." + pictureData.suggestFileExtension(); + FileUploadResult fileUploadResult = FileUtil.uploadFile(data, fileName); + if(fileUploadResult != null) { + List<FileUploadResult> fileList = request.getFileList(); + if(fileList == null) { + fileList = new ArrayList<FileUploadResult>(); + } + fileList.add(fileUploadResult); + request.setFileList(fileList); + } + } + } catch (Exception e) { + log.error("璇诲彇Excel淇℃伅澶辫触锛歿}", e.getMessage(), e); + } + } + + /** + * 璇诲彇Excel 绗竴琛岋紝 绗簩琛岀殑淇℃伅 + * @param file + * @param request + */ + public void readWeekExcel(MultipartFile file, EamMaintenanceStandardRequest request) { + Workbook book = null; + boolean isXSSFWorkbook = false; + try { + book = WorkbookFactory.create(file.getInputStream()); + if (book instanceof XSSFWorkbook) { + isXSSFWorkbook = true; + } + + Sheet sheet = book.getSheetAt(0); + //绗竴琛岃鍙� + Row row = sheet.getRow(0); + //璁惧缂栫爜 + Cell equipmentCode = row.getCell(10); + if(CellType.NUMERIC.equals(equipmentCode.getCellType())) { + request.setEquipmentCode(String.valueOf((int) equipmentCode.getNumericCellValue())); + }else if(CellType.STRING.equals(equipmentCode.getCellType())) { + request.setEquipmentCode(equipmentCode.getStringCellValue()); + } + if (StringUtils.isBlank(request.getEquipmentCode())) { + throw new JeecgBootException("Excel銆� " + file.getOriginalFilename() + "銆戞病鏈夎鍙栧埌璁惧缂栧彿锛屽鍏ュけ璐ワ紒"); + } + //鍒濆鏃ユ湡 + Cell initialDate = row.getCell(6); + if (DateUtil.isCellDateFormatted(initialDate)) { + request.setInitialDate(initialDate.getDateCellValue()); + } else { + request.setInitialDate(new Date()); + } + //璁惧鍚嶇О + Cell equipmentName = row.getCell(8); + request.setEquipmentName(equipmentName.getStringCellValue()); + + //绗簩琛岃鍙� + row = sheet.getRow(1); + //淇濆吇鍛ㄦ湡 + Cell period = row.getCell(6); + if (CellType.NUMERIC.equals(period.getCellType())) { + request.setMaintenancePeriod((int) period.getNumericCellValue()); + } else { + request.setMaintenancePeriod(null); + } + //鏂囦欢缂栫爜 + Cell fileCode = row.getCell(8); + request.setFileCode(fileCode.getStringCellValue()); + } catch (Exception e) { + log.error("璇诲彇Excel淇℃伅澶辫触锛歿}", e.getMessage(), e); + } + } +} diff --git a/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardDetailController.java b/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardDetailController.java new file mode 100644 index 0000000..39769f7 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardDetailController.java @@ -0,0 +1,72 @@ +package org.jeecg.modules.eam.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail; +import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService; +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; + +import java.util.List; + +/** + * @Description: 淇濆吇鏍囧噯鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-03-26 + * @Version: V1.0 + */ +@Slf4j +@Api(tags = "淇濆吇鏍囧噯鏄庣粏") +@RestController +@RequestMapping("/eam/eamMaintenanceStandardDetail") +public class EamMaintenanceStandardDetailController extends JeecgController<EamMaintenanceStandardDetail, IEamMaintenanceStandardDetailService> { + @Autowired + private IEamMaintenanceStandardDetailService eamMaintenanceStandardDetailService; + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param standardId + * @param pageNo + * @param pageSize + * @return + */ + @ApiOperation(value = "淇濆吇鏍囧噯鏄庣粏-鍒嗛〉鍒楄〃鏌ヨ", notes = "淇濆吇鏍囧噯鏄庣粏-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<?> queryPageList(@RequestParam("standardId") String standardId, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { + LambdaQueryWrapper<EamMaintenanceStandardDetail> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamMaintenanceStandardDetail::getStandardId, standardId); + queryWrapper.orderByAsc(EamMaintenanceStandardDetail::getItemCode); + Page<EamMaintenanceStandardDetail> page = new Page<>(pageNo, pageSize); + IPage<EamMaintenanceStandardDetail> pageList = eamMaintenanceStandardDetailService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 涓�娆″姞杞� + * + * @param standardId + * @return + */ + @ApiOperation(value = "淇濆吇鏍囧噯鏄庣粏-涓嶅垎椤靛垪琛ㄦ煡璇�", notes = "淇濆吇鏍囧噯鏄庣粏-涓嶅垎椤靛垪琛ㄦ煡璇�") + @GetMapping(value = "/queryList") + public Result<?> queryList(@RequestParam("standardId") String standardId) { + LambdaQueryWrapper<EamMaintenanceStandardDetail> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamMaintenanceStandardDetail::getStandardId, standardId); + queryWrapper.orderByAsc(EamMaintenanceStandardDetail::getItemCode); + List<EamMaintenanceStandardDetail> list = eamMaintenanceStandardDetailService.list(queryWrapper); + return Result.OK(list); + } + +} diff --git a/src/main/java/org/jeecg/modules/eam/controller/EamPrecisionCheckDetailController.java b/src/main/java/org/jeecg/modules/eam/controller/EamPrecisionCheckDetailController.java new file mode 100644 index 0000000..a9c2c41 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/controller/EamPrecisionCheckDetailController.java @@ -0,0 +1,70 @@ +package org.jeecg.modules.eam.controller; + +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.parser.Feature; +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.system.base.controller.JeecgController; +import org.jeecg.common.util.TranslateDictTextUtils; +import org.jeecg.modules.eam.entity.EamPrecisionCheckDetail; +import org.jeecg.modules.eam.service.IEamPrecisionCheckDetailService; +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; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * @Description: 璁惧绮惧害妫�娴嬫槑缁� + * @Author: jeecg-boot + * @Date: 2025-05-13 + * @Version: V1.0 + */ +@Slf4j +@Api(tags="璁惧绮惧害妫�娴嬫槑缁�") +@RestController +@RequestMapping("/eam/precisionCheckDetail") +public class EamPrecisionCheckDetailController extends JeecgController<EamPrecisionCheckDetail, IEamPrecisionCheckDetailService> { + @Autowired + private IEamPrecisionCheckDetailService eamPrecisionCheckDetailService; + @Autowired + private ObjectMapper objectMapper; + @Autowired + private TranslateDictTextUtils translateDictTextUtils; + + /** + * 鍒楄〃鏌ヨ + * + * @param orderId 宸ュ崟ID + * @return + */ + @ApiOperation(value="璁惧绮惧害鍙傛暟-鍒楄〃鏌ヨ", notes="璁惧绮惧害鍙傛暟-鍒楄〃鏌ヨ") + @GetMapping(value = "/queryList") + public Result<?> queryList(@RequestParam(name="orderId") String orderId) { + List<EamPrecisionCheckDetail> list = eamPrecisionCheckDetailService.getByOrderId(orderId); + if(CollectionUtil.isEmpty(list)) { + return Result.OK(Collections.emptyList()); + } + List<JSONObject> items = new ArrayList<>(); + try { + for(EamPrecisionCheckDetail vo : list) { + String json = objectMapper.writeValueAsString(vo); + JSONObject item = JSONObject.parseObject(json, Feature.OrderedField); + translateDictTextUtils.translateField("parameterId", vo.getParameterId(), item, "eam_precision_parameters,parameter_name,id"); + translateDictTextUtils.translateField("parameterCode", vo.getParameterId(), item, "eam_precision_parameters,parameter_code,id"); + items.add(item); + } + return Result.OK(items); + }catch (Exception e) { + return Result.error("鏁版嵁杞瘧澶辫触锛�"); + } + } +} diff --git a/src/main/java/org/jeecg/modules/eam/controller/EamPrecisionParametersController.java b/src/main/java/org/jeecg/modules/eam/controller/EamPrecisionParametersController.java new file mode 100644 index 0000000..df78745 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/controller/EamPrecisionParametersController.java @@ -0,0 +1,165 @@ +package org.jeecg.modules.eam.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.modules.eam.constant.BusinessCodeConst; +import org.jeecg.modules.eam.entity.EamPrecisionParameters; +import org.jeecg.modules.eam.service.IEamPrecisionParametersService; +import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; +import java.util.List; + +/** + * @Description: 绮惧害鍙傛暟缁存姢 + * @Author: jeecg-boot + * @Date: 2025-03-17 + * @Version: V1.0 + */ +@Slf4j +@Api(tags = "绮惧害鍙傛暟缁存姢") +@RestController +@RequestMapping("/eam/precisionParameters") +public class EamPrecisionParametersController extends JeecgController<EamPrecisionParameters, IEamPrecisionParametersService> { + @Autowired + private IEamPrecisionParametersService eamPrecisionParametersService; + + @Autowired + private ISysBusinessCodeRuleService businessCodeRuleService; + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param eamPrecisionParameters + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @ApiOperation(value = "绮惧害鍙傛暟缁存姢-鍒嗛〉鍒楄〃鏌ヨ", notes = "绮惧害鍙傛暟缁存姢-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<?> queryPageList(EamPrecisionParameters eamPrecisionParameters, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper<EamPrecisionParameters> queryWrapper = QueryGenerator.initQueryWrapper(eamPrecisionParameters, req.getParameterMap()); + Page<EamPrecisionParameters> page = new Page<EamPrecisionParameters>(pageNo, pageSize); + queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0); + IPage<EamPrecisionParameters> pageList = eamPrecisionParametersService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 娣诲姞 + * + * @param eamPrecisionParameters + * @return + */ + @ApiOperation(value = "绮惧害鍙傛暟缁存姢-娣诲姞", notes = "绮惧害鍙傛暟缁存姢-娣诲姞") + @PostMapping(value = "/add") + public Result<?> add(@RequestBody EamPrecisionParameters eamPrecisionParameters) { + String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.PRECISION_PARAMETERS_RULE); + eamPrecisionParameters.setParameterCode(codeSeq); + eamPrecisionParameters.setDelFlag(CommonConstant.DEL_FLAG_0); + eamPrecisionParametersService.save(eamPrecisionParameters); + return Result.OK("娣诲姞鎴愬姛锛�"); + } + + /** + * 缂栬緫 + * + * @param eamPrecisionParameters + * @return + */ + @ApiOperation(value = "绮惧害鍙傛暟缁存姢-缂栬緫", notes = "绮惧害鍙傛暟缁存姢-缂栬緫") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result<?> edit(@RequestBody EamPrecisionParameters eamPrecisionParameters) { + eamPrecisionParametersService.updateById(eamPrecisionParameters); + return Result.OK("缂栬緫鎴愬姛!"); + } + + /** + * 閫氳繃id鍒犻櫎 + * + * @param id + * @return + */ + @ApiOperation(value = "绮惧害鍙傛暟缁存姢-閫氳繃id鍒犻櫎", notes = "绮惧害鍙傛暟缁存姢-閫氳繃id鍒犻櫎") + @DeleteMapping(value = "/delete") + public Result<?> delete(@RequestParam(name = "id", required = true) String id) { + eamPrecisionParametersService.removeById(id); + return Result.OK("鍒犻櫎鎴愬姛!"); + } + + /** + * 鎵归噺鍒犻櫎 + * + * @param ids + * @return + */ + @ApiOperation(value = "绮惧害鍙傛暟缁存姢-鎵归噺鍒犻櫎", notes = "绮惧害鍙傛暟缁存姢-鎵归噺鍒犻櫎") + @DeleteMapping(value = "/deleteBatch") + public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { + this.eamPrecisionParametersService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("鎵归噺鍒犻櫎鎴愬姛锛�"); + } + + /** + * 閫氳繃id鏌ヨ + * + * @param id + * @return + */ + @ApiOperation(value = "绮惧害鍙傛暟缁存姢-閫氳繃id鏌ヨ", notes = "绮惧害鍙傛暟缁存姢-閫氳繃id鏌ヨ") + @GetMapping(value = "/queryById") + public Result<?> queryById(@RequestParam(name = "id", required = true) String id) { + EamPrecisionParameters eamPrecisionParameters = eamPrecisionParametersService.getById(id); + return Result.OK(eamPrecisionParameters); + } + + /** + * 瀵煎嚭excel + * + * @param request + * @param eamPrecisionParameters + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, EamPrecisionParameters eamPrecisionParameters) { + return super.exportXls(request, eamPrecisionParameters, EamPrecisionParameters.class, "绮惧害鍙傛暟缁存姢"); + } + + /** + * 閫氳繃excel瀵煎叆鏁版嵁 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, EamPrecisionParameters.class); + } + + @ApiOperation(value = "绮惧害鍙傛暟缁存姢-鏌ヨ鎵�鏈�", notes = "绮惧害鍙傛暟缁存姢-鏌ヨ鎵�鏈�") + @GetMapping(value = "/listAll") + public Result<?> listAll() { + QueryWrapper<EamPrecisionParameters> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0); + List<EamPrecisionParameters> list = eamPrecisionParametersService.list(queryWrapper); + return Result.OK(list); + } + +} diff --git a/src/main/java/org/jeecg/modules/eam/controller/EamProcessParametersController.java b/src/main/java/org/jeecg/modules/eam/controller/EamProcessParametersController.java new file mode 100644 index 0000000..5156cc4 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/controller/EamProcessParametersController.java @@ -0,0 +1,166 @@ +package org.jeecg.modules.eam.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.modules.eam.constant.BusinessCodeConst; +import org.jeecg.modules.eam.entity.EamProcessParameters; +import org.jeecg.modules.eam.service.IEamProcessParametersService; +import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; +import java.util.List; + +/** + * @Description: 宸ュ簭鍙傛暟缁存姢 + * @Author: jeecg-boot + * @Date: 2025-03-17 + * @Version: V1.0 + */ +@Slf4j +@Api(tags = "宸ュ簭鍙傛暟缁存姢") +@RestController +@RequestMapping("/eam/processParameters") +public class EamProcessParametersController extends JeecgController<EamProcessParameters, IEamProcessParametersService> { + @Autowired + private IEamProcessParametersService eamProcessParametersService; + + @Autowired + private ISysBusinessCodeRuleService businessCodeRuleService; + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param eamProcessParameters + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @ApiOperation(value = "宸ュ簭鍙傛暟缁存姢-鍒嗛〉鍒楄〃鏌ヨ", notes = "宸ュ簭鍙傛暟缁存姢-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<?> queryPageList(EamProcessParameters eamProcessParameters, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper<EamProcessParameters> queryWrapper = QueryGenerator.initQueryWrapper(eamProcessParameters, req.getParameterMap()); + queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0); + Page<EamProcessParameters> page = new Page<EamProcessParameters>(pageNo, pageSize); + IPage<EamProcessParameters> pageList = eamProcessParametersService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 娣诲姞 + * + * @param eamProcessParameters + * @return + */ + @ApiOperation(value = "宸ュ簭鍙傛暟缁存姢-娣诲姞", notes = "宸ュ簭鍙傛暟缁存姢-娣诲姞") + @PostMapping(value = "/add") + public Result<?> add(@RequestBody EamProcessParameters eamProcessParameters) { + String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.PROCESS_PARAMETERS_RULE); + eamProcessParameters.setParameterCode(codeSeq); + eamProcessParameters.setDelFlag(CommonConstant.DEL_FLAG_0); + eamProcessParametersService.save(eamProcessParameters); + return Result.OK("娣诲姞鎴愬姛锛�"); + } + + /** + * 缂栬緫 + * + * @param eamProcessParameters + * @return + */ + @ApiOperation(value = "宸ュ簭鍙傛暟缁存姢-缂栬緫", notes = "宸ュ簭鍙傛暟缁存姢-缂栬緫") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result<?> edit(@RequestBody EamProcessParameters eamProcessParameters) { + eamProcessParametersService.updateById(eamProcessParameters); + return Result.OK("缂栬緫鎴愬姛!"); + } + + /** + * 閫氳繃id鍒犻櫎 + * + * @param id + * @return + */ + @ApiOperation(value = "宸ュ簭鍙傛暟缁存姢-閫氳繃id鍒犻櫎", notes = "宸ュ簭鍙傛暟缁存姢-閫氳繃id鍒犻櫎") + @DeleteMapping(value = "/delete") + public Result<?> delete(@RequestParam(name = "id", required = true) String id) { + eamProcessParametersService.removeById(id); + return Result.OK("鍒犻櫎鎴愬姛!"); + } + + /** + * 鎵归噺鍒犻櫎 + * + * @param ids + * @return + */ + @ApiOperation(value = "宸ュ簭鍙傛暟缁存姢-鎵归噺鍒犻櫎", notes = "宸ュ簭鍙傛暟缁存姢-鎵归噺鍒犻櫎") + @DeleteMapping(value = "/deleteBatch") + public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { + this.eamProcessParametersService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("鎵归噺鍒犻櫎鎴愬姛锛�"); + } + + /** + * 閫氳繃id鏌ヨ + * + * @param id + * @return + */ + @ApiOperation(value = "宸ュ簭鍙傛暟缁存姢-閫氳繃id鏌ヨ", notes = "宸ュ簭鍙傛暟缁存姢-閫氳繃id鏌ヨ") + @GetMapping(value = "/queryById") + public Result<?> queryById(@RequestParam(name = "id", required = true) String id) { + EamProcessParameters eamProcessParameters = eamProcessParametersService.getById(id); + return Result.OK(eamProcessParameters); + } + + /** + * 瀵煎嚭excel + * + * @param request + * @param eamProcessParameters + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, EamProcessParameters eamProcessParameters) { + return super.exportXls(request, eamProcessParameters, EamProcessParameters.class, "宸ュ簭鍙傛暟缁存姢"); + } + + /** + * 閫氳繃excel瀵煎叆鏁版嵁 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, EamProcessParameters.class); + } + + + @ApiOperation(value = "宸ュ簭鍙傛暟缁存姢-鏌ヨ鎵�鏈�", notes = "宸ュ簭鍙傛暟缁存姢-鏌ヨ鎵�鏈�") + @GetMapping(value = "/listAll") + public Result<?> listAll() { + QueryWrapper<EamProcessParameters> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0); + List<EamProcessParameters> list = eamProcessParametersService.list(queryWrapper); + return Result.OK(list); + } + +} diff --git a/src/main/java/org/jeecg/modules/eam/controller/EamSysFilesController.java b/src/main/java/org/jeecg/modules/eam/controller/EamSysFilesController.java new file mode 100644 index 0000000..09c142b --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/controller/EamSysFilesController.java @@ -0,0 +1,212 @@ +package org.jeecg.modules.eam.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.FileUploadResult; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.modules.eam.entity.EamSysFiles; +import org.jeecg.modules.eam.request.EamSysFilesRequest; +import org.jeecg.modules.eam.service.IEamSysFilesService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +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: 璁惧闄勪欢绠$悊 + * @Author: jeecg-boot + * @Date: 2025-03-17 + * @Version: V1.0 + */ +@Slf4j +@Api(tags = "璁惧闄勪欢绠$悊") +@RestController +@RequestMapping("/eam/sysFiles") +public class EamSysFilesController extends JeecgController<EamSysFiles, IEamSysFilesService> { + @Autowired + private IEamSysFilesService eamSysFilesService; + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param eamSysFiles + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @ApiOperation(value = "璁惧闄勪欢绠$悊-鍒嗛〉鍒楄〃鏌ヨ", notes = "璁惧闄勪欢绠$悊-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<?> queryPageList(EamSysFiles eamSysFiles, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper<EamSysFiles> queryWrapper = QueryGenerator.initQueryWrapper(eamSysFiles, req.getParameterMap()); + queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0); + Page<EamSysFiles> page = new Page<EamSysFiles>(pageNo, pageSize); + IPage<EamSysFiles> pageList = eamSysFilesService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 娣诲姞 + * + * @param request + * @return + */ + @ApiOperation(value = "璁惧闄勪欢绠$悊-娣诲姞", notes = "璁惧闄勪欢绠$悊-娣诲姞") + @PostMapping(value = "/add") + public Result<?> add(@RequestBody EamSysFilesRequest request) { + boolean b = eamSysFilesService.saveEamSysFiles(request); + if(!b) { + return Result.OK("鎿嶄綔澶辫触锛�"); + } + return Result.OK("娣诲姞鎴愬姛锛�"); + } + + /** + * 缂栬緫 + * + * @param eamSysFiles + * @return + */ + @ApiOperation(value = "璁惧闄勪欢绠$悊-缂栬緫", notes = "璁惧闄勪欢绠$悊-缂栬緫") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result<?> edit(@RequestBody EamSysFiles eamSysFiles) { + eamSysFilesService.updateById(eamSysFiles); + return Result.OK("缂栬緫鎴愬姛!"); + } + + /** + * 閫氳繃id鍒犻櫎 + * + * @param id + * @return + */ + @ApiOperation(value = "璁惧闄勪欢绠$悊-閫氳繃id鍒犻櫎", notes = "璁惧闄勪欢绠$悊-閫氳繃id鍒犻櫎") + @DeleteMapping(value = "/delete") + public Result<?> delete(@RequestParam(name = "id", required = true) String id) { + EamSysFiles entity = eamSysFilesService.getById(id); + if(entity != null) { + entity.setDelFlag(CommonConstant.DEL_FLAG_1); + eamSysFilesService.updateById(entity); + } + return Result.OK("鍒犻櫎鎴愬姛!"); + } + + /** + * 鎵归噺鍒犻櫎 + * + * @param ids + * @return + */ + @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 -> { + EamSysFiles entity = eamSysFilesService.getById(id); + if(entity != null) { + entity.setDelFlag(CommonConstant.DEL_FLAG_1); + eamSysFilesService.updateById(entity); + } + }); + return Result.OK("鎵归噺鍒犻櫎鎴愬姛锛�"); + } + + /** + * 閫氳繃id鏌ヨ + * + * @param id + * @return + */ + @ApiOperation(value = "璁惧闄勪欢绠$悊-閫氳繃id鏌ヨ", notes = "璁惧闄勪欢绠$悊-閫氳繃id鏌ヨ") + @GetMapping(value = "/queryById") + public Result<?> queryById(@RequestParam(name = "id", required = true) String id) { + EamSysFiles eamSysFiles = eamSysFilesService.getById(id); + return Result.OK(eamSysFiles); + } + + /** + * 鍗曚釜鏂囦欢涓婁紶 + * @param request + * @param response + * @return + */ + @ApiOperation(value = "璁惧闄勪欢绠$悊-鍗曚釜鏂囦欢涓婁紶", notes = "璁惧闄勪欢绠$悊-鍗曚釜鏂囦欢涓婁紶") + @PostMapping("/upload") + public Result<?> uploadFile(HttpServletRequest request, HttpServletResponse response) { + // 杞崲鎴愬閮ㄥ垎request + MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; + MultipartFile files = multiRequest.getFile("file"); + try { + FileUploadResult sysUpload = eamSysFilesService.uploadFile(files); + 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); + return Result.error("鎿嶄綔澶辫触:" + e.getMessage()); + } + + } + + /** + * 鎵归噺涓婁紶鎺ュ彛 + * @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/src/main/java/org/jeecg/modules/eam/dto/MaintenanceStandardImport.java b/src/main/java/org/jeecg/modules/eam/dto/MaintenanceStandardImport.java new file mode 100644 index 0000000..451d990 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/dto/MaintenanceStandardImport.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.eam.dto; + +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; + +@Data +public class MaintenanceStandardImport implements Serializable { + + @Excel(name = "鍥惧彿", width = 15) + private Integer itemCode; + @Excel(name = "鐐规椤圭洰", width = 15) + private String itemName; + @Excel(name = "鐐规閮ㄤ綅", width = 15) + private String itemPart; + @Excel(name = "鐐规瑕佹眰", width = 15) + private String itemDemand; +} diff --git a/src/main/java/org/jeecg/modules/eam/dto/SecondMaintenanceStandardImport.java b/src/main/java/org/jeecg/modules/eam/dto/SecondMaintenanceStandardImport.java new file mode 100644 index 0000000..c69135d --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/dto/SecondMaintenanceStandardImport.java @@ -0,0 +1,23 @@ +package org.jeecg.modules.eam.dto; + +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; + +@Data +public class SecondMaintenanceStandardImport implements Serializable { + + @Excel(name = "搴忓彿", width = 15) + private Integer itemCode; + @Excel(name = "閮ㄤ綅", width = 15) + private String itemPart; + @Excel(name = "淇濆吇鍐呭", width = 15) + private String itemName; + @Excel(name = "妫�鏌ユ爣鍑嗘垨瑕佹眰", width = 15) + private String itemDemand; + @Excel(name = "淇濆吇瑕佹眰", width = 15) + private String itemDemandAlias; + @Excel(name = "妫�鏌ユ柟娉�", width = 15) + private String checkMethod; +} diff --git a/src/main/java/org/jeecg/modules/eam/dto/ThirdMaintenanceStandardImport.java b/src/main/java/org/jeecg/modules/eam/dto/ThirdMaintenanceStandardImport.java new file mode 100644 index 0000000..f33a088 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/dto/ThirdMaintenanceStandardImport.java @@ -0,0 +1,23 @@ +package org.jeecg.modules.eam.dto; + +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; + +@Data +public class ThirdMaintenanceStandardImport implements Serializable { + + @Excel(name = "搴忓彿", width = 15) + private Integer itemCode; + @Excel(name = "閮ㄤ綅", width = 15) + private String itemPart; + @Excel(name = "淇濆吇鍐呭", width = 15) + private String itemName; + @Excel(name = "妫�鏌ユ爣鍑嗘垨瑕佹眰", width = 15) + private String itemDemand; + @Excel(name = "淇濆吇瑕佹眰", width = 15) + private String itemDemandAlias; + @Excel(name = "妫�鏌ユ柟娉�", width = 15) + private String checkMethod; +} diff --git a/src/main/java/org/jeecg/modules/eam/dto/WeekMaintenanceStandardImport.java b/src/main/java/org/jeecg/modules/eam/dto/WeekMaintenanceStandardImport.java new file mode 100644 index 0000000..b7a6140 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/dto/WeekMaintenanceStandardImport.java @@ -0,0 +1,21 @@ +package org.jeecg.modules.eam.dto; + +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; + +@Data +public class WeekMaintenanceStandardImport implements Serializable { + + @Excel(name = "搴忓彿", width = 15) + private Integer itemCode; + @Excel(name = "淇濆吇澶ч」鐩�", width = 15) + private String itemName; + @Excel(name = "瀛愰」鐩�", width = 15) + private String subItemName; + @Excel(name = "閮ㄤ綅/绫诲瀷", width = 15) + private String itemPart; + @Excel(name = "淇濆吇瑕佹眰", width = 15) + private String itemDemand; +} diff --git a/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java b/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java new file mode 100644 index 0000000..9ce89d0 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java @@ -0,0 +1,361 @@ +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; +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; +import java.math.BigDecimal; +import java.util.Date; + +/** + * @Description: 璁惧鍙拌处 + * @Author: jeecg-boot + * @Date: 2025-03-19 + * @Version: V1.0 + */ +@Data +@TableName("eam_equipment") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value = "eam_equipment瀵硅薄", description = "璁惧鍙拌处") +public class EamEquipment implements Serializable { + + /** + * 涓婚敭 + */ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "涓婚敭") + private String id; + /** + * 鍒涘缓浜� + */ + @ApiModelProperty(value = "鍒涘缓浜�") + @Dict(dicCode = "sys_user, realname, username") + private String createBy; + /** + * 鍒涘缓鏃堕棿 + */ + @ApiModelProperty(value = "鍒涘缓鏃堕棿") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss ") + private Date createTime; + /** + * 鏇存柊浜� + */ + @ApiModelProperty(value = "鏇存柊浜�") + @Dict(dicCode = "sys_user, realname, username") + private String updateBy; + /** + * 鏇存柊鏃堕棿 + */ + @ApiModelProperty(value = "鏇存柊鏃堕棿") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss ") + private Date updateTime; + /** + * 鍒犻櫎鏍囪 + */ + @ApiModelProperty(value = "鍒犻櫎鏍囪") + private Integer delFlag; + /** + * 璁惧缁熶竴缂栧彿 + */ + @Excel(name = "璁惧缂栧彿", width = 15, orderNum = "1") + @ApiModelProperty(value = "璁惧缂栧彿") + private String equipmentCode; + /** + * 璁惧鍚嶇О + */ + @Excel(name = "璁惧鍚嶇О", width = 15, orderNum = "2") + @ApiModelProperty(value = "璁惧鍚嶇О") + private String equipmentName; + /** + * 浣跨敤閮ㄩ棬 + */ + @Excel(name = "浣跨敤杞﹂棿", width = 25, dictTable = "mdc_production", dicText = "production_name", dicCode = "id", orderNum = "9") + @ApiModelProperty(value = "浣跨敤閮ㄩ棬") + @Dict(dicCode = "mdc_production, production_name, id") + private String orgId; + /** + * 璁惧绠$悊鍛� + */ + @Excel(name = "璁惧绠$悊鍛�", width = 35, dictTable = "sys_user", dicText = "realname", dicCode = "username", orderNum = "10") + @ApiModelProperty(value = "璁惧绠$悊鍛�") + @Dict(dicCode = "sys_user, realname, username") + private String equipmentManager; + /** + * 璁惧绫诲埆 + */ + @Excel(name = "璁惧绫诲埆", width = 15, dicCode = "equipment_category", orderNum = "5") + @ApiModelProperty(value = "璁惧绫诲埆") + @Dict(dicCode = "equipment_category") + private String equipmentCategory; + /** + * 璁惧鍨嬪彿 + */ + @Excel(name = "璁惧鍨嬪彿", width = 15, orderNum = "3") + @ApiModelProperty(value = "璁惧鍨嬪彿") + private String equipmentModel; + /** + * 璁惧瑙勬牸 + */ + @Excel(name = "璁惧瑙勬牸", width = 15, orderNum = "4") + @ApiModelProperty(value = "璁惧瑙勬牸") + private String equipmentSpecification; + + /** + * 瀹夎浣嶇疆 + */ + @Excel(name = "瀹夎浣嶇疆", width = 15, orderNum = "11") + @ApiModelProperty(value = "瀹夎浣嶇疆") + private String installationPosition; + /** + * 璧勪骇浣跨敤鐘舵�� + */ + @Excel(name = "璧勪骇浣跨敤鐘舵��", width = 15, dicCode = "asset_status", orderNum = "7") + @ApiModelProperty(value = "璧勪骇鐘舵��") + @Dict(dicCode = "asset_status") + private String assetStatus; + /** + * 鍑哄巶缂栧彿 + */ + @Excel(name = "鍑哄巶缂栧彿", width = 15, orderNum = "12") + @ApiModelProperty(value = "鍑哄巶缂栧彿") + private String factoryNumber; + /** + * 鏈哄簥鍘傚 + */ + @Excel(name = "鏈哄簥鍘傚", width = 15, orderNum = "13") + @ApiModelProperty(value = "鏈哄簥鍘傚") + private String manufacturingEnterprise; + /** + * 鏉ユ簮鍥藉 + */ + @Excel(name = "鏉ユ簮鍥藉", width = 25, orderNum = "14") + @ApiModelProperty(value = "鏉ユ簮鍥藉") + private String originCountry; + /** + * 璁惧渚涘簲鍟� + */ + @Excel(name = "璁惧渚涘簲鍟�", width = 25, orderNum = "15") + @ApiModelProperty(value = "璁惧渚涘簲鍟�") + private String supplier; + /** + * 鍑哄巶鏃ユ湡 + */ + @Excel(name = "鍑哄巶鏃ユ湡", width = 25, format = "yyyy/MM/dd", orderNum = "16") + @ApiModelProperty(value = "鍑哄巶鏃ユ湡") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date leaveFactoryDate; + /** + * 楠屾敹鏃ユ湡 + */ + @Excel(name = "鎶曠敤鏃ユ湡", width = 25, format = "yyyy/MM/dd", orderNum = "17") + @ApiModelProperty(value = "楠屾敹鏃ユ湡") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date acceptanceCheckDate; + /** + * 璁惧鍥剧墖 + */ + @ApiModelProperty(value = "璁惧鍥剧墖") + private String equipmentImage; + /** + * 鐢垫満鍙版暟 + */ + @Excel(name = "鐢垫満鍙版暟", width = 15, orderNum = "18") + @ApiModelProperty(value = "鐢垫満鍙版暟") + private Integer motorsNumber; + /** + * 鎬诲姛鐜�(KW) + */ + @Excel(name = "鎬诲姛鐜�(KW)", width = 15, orderNum = "19") + @ApiModelProperty(value = "鎬诲姛鐜�") + private String equipmentPower; + /** + * 閲嶉噺(鍚�) + */ + @Excel(name = "閲嶉噺(鍚�)", width = 15, orderNum = "20") + @ApiModelProperty(value = "閲嶉噺(鍚�)") + private String equipmentWeight; + /** + * 鏄惁鏈夊伐鑹哄弬鏁� + */ + @Excel(name = "鏈夋棤宸ヨ壓鍙傛暟", width = 15, dicCode = "has_no", orderNum = "21") + @ApiModelProperty(value = "鏄惁鏈夊伐鑹哄弬鏁�") + private String processParametersFlag; + /** + * 鏄惁鏈夌簿搴﹀弬鏁� + */ + @Excel(name = "鏈夋棤绮惧害鍙傛暟", width = 15, dicCode = "has_no", orderNum = "22") + @ApiModelProperty(value = "鏄惁鏈夌簿搴﹀弬鏁�") + private String precisionParametersFlag; + + /** + * 澶囨敞 + */ + @Excel(name = "澶囨敞", width = 50, orderNum = "99") + @ApiModelProperty(value = "澶囨敞") + private String remark; + /** + * 澶栧舰灏哄 + */ + @Excel(name = "澶栧舰灏哄", width = 15, orderNum = "24") + @ApiModelProperty(value = "澶栧舰灏哄") + private String overallDimensions; + /** + * 璁惧绉嶇被 + */ + @Excel(name = "璁惧绉嶇被", width = 15, orderNum = "6", dictTable = "sys_category", dicCode = "code", dicText = "name") + @ApiModelProperty(value = "璁惧绉嶇被") + @Dict(dictTable = "sys_category", dicCode = "code", dicText = "name") + private String equipmentType; + /** + * 鍘熷浠峰�� + */ + @Excel(name = "鍘熷��(鍏�)", width = 15, orderNum = "25") + @ApiModelProperty(value = "鍘熷浠峰��") + private BigDecimal originalValue; + /** + * 璧勯噾鏉ユ簮 + */ + @Excel(name = "璧勯噾鏉ユ簮", width = 15, orderNum = "26") + @ApiModelProperty(value = "璧勯噾鏉ユ簮") + private String fundingSource; + + /** + * 鍔熻兘鐢ㄩ�� + */ + @Excel(name = "鍔熻兘鐢ㄩ��", width = 15, orderNum = "27") + @ApiModelProperty(value = "鍔熻兘鐢ㄩ��") + private String functionUse; + /** + * 鎬ц兘鎸囨爣 + */ + @Excel(name = "鎬ц兘鎸囨爣", width = 15, orderNum = "28") + @ApiModelProperty(value = "鎬ц兘鎸囨爣") + private String performanceIndicators; + + /** + * 鍏ュ笎鏃堕棿 + */ + @Excel(name = "鍏ュ笎鏃堕棿", width = 15, format = "yyyy/MM/dd", orderNum = "29") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + @ApiModelProperty(value = "鍏ュ笎鏃堕棿") + private Date bookingTime; + + /** + * 绠$悊鍒嗙被锛圓\B\C锛� + */ + @Excel(name = "绠$悊鍒嗙被", width = 15, dicCode = "equipment_abc_flag", orderNum = "8") + @ApiModelProperty(value = "绠$悊鍒嗙被") + @Dict(dicCode = "equipment_abc_flag") + private String equipmentImportance; + + /** + * 鎶�鏈姸鎬� + */ + @Excel(name = "鎶�鏈姸鎬�", width = 15, dicCode = "technology_status", orderNum = "7") + @ApiModelProperty(value = "鎶�鏈姸鎬�") + @Dict(dicCode = "technology_status") + private String technologyStatus; + + + + /** =================== 鑸畤鏁戠敓 鏈敤鐨勫瓧娈� 寮�濮� ==========================**/ + + /** + * 鎿嶄綔绯荤粺 + */ + @ApiModelProperty(value = "鎿嶄綔绯荤粺") + private String operationSystem; + /** + * 涓昏酱杩炴帴灏哄 + */ + @ApiModelProperty(value = "涓昏酱杩炴帴灏哄") + private String spindleConnectDimension; + /** + * 绔嬮」鍗″彿 + */ + @ApiModelProperty(value = "绔嬮」鍗″彿") + private String cardNumber; + /** + * 鏄惁瀹炴柦MDC + */ + @ApiModelProperty(value = "鏄惁瀹炴柦MDC") + private String mdcFlag; + + @ApiModelProperty(value = "MDC璁惧绫诲瀷") + private String deviceType; + /** + * 璁惧绔彛 + */ + @ApiModelProperty(value = "璁惧绔彛") + private String equipmentPort; + /** + * 鍧愭爣鏁伴噺 + */ + @ApiModelProperty(value = "鍧愭爣鏁伴噺") + private Integer coordinateNum; + /** + * 鐗圭璁惧;鏄惁涓虹壒绉嶈澶� + */ + @ApiModelProperty(value = "鏄惁鐗圭璁惧") + private String specialEquipment; + + + + /** + * 璐ㄤ繚寮�濮嬫棩鏈� + */ + @ApiModelProperty(value = "璐ㄤ繚寮�濮嬫棩鏈�") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date warrantyStartDate; + /** + * 璐ㄤ繚缁撴潫鏃ユ湡 + */ + @ApiModelProperty(value = "璐ㄤ繚缁撴潫鏃ユ湡") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date warrantyEndDate; + + /** =================== 鑸畤鏁戠敓 鏈敤鐨勫瓧娈� 缁撴潫 ==========================**/ + + @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; + + // 璁惧埆绠$悊 鎵嬫寔绔帴鍙d娇鐢� + @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/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentAttachment.java b/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentAttachment.java new file mode 100644 index 0000000..9adb082 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentAttachment.java @@ -0,0 +1,68 @@ +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/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentExtend.java b/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentExtend.java new file mode 100644 index 0000000..a2b06c8 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentExtend.java @@ -0,0 +1,64 @@ +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 org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; + +/** + * @Description: 璁惧鍙拌处鎵╁睍琛� + * @Author: jeecg-boot + * @Date: 2025-03-19 + * @Version: V1.0 + */ +@Data +@TableName("eam_equipment_extend") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="eam_equipment_extend瀵硅薄", description="璁惧鍙拌处鎵╁睍琛�") +public class EamEquipmentExtend implements Serializable { + + /**涓婚敭*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "涓婚敭") + private String id; + /**鍒涘缓浜�*/ + @ApiModelProperty(value = "鍒涘缓浜�") + private String createBy; + /**鍒涘缓鏃堕棿*/ + @ApiModelProperty(value = "鍒涘缓鏃堕棿") + private java.util.Date createTime; + /**鏇存柊浜�*/ + @ApiModelProperty(value = "鏇存柊浜�") + private String updateBy; + /**鏇存柊鏃堕棿*/ + @ApiModelProperty(value = "鏇存柊鏃堕棿") + private java.util.Date updateTime; + /**淇濆吇鐘舵��*/ + @Excel(name = "淇濆吇鐘舵��", width = 15) + @ApiModelProperty(value = "淇濆吇鐘舵��") + private String maintenanceStatus; + /**缁翠慨鐘舵��*/ + @Excel(name = "缁翠慨鐘舵��", width = 15) + @ApiModelProperty(value = "缁翠慨鐘舵��") + private String repairStatus; + /**鏈�鏂颁簩淇濇棩鏈�*/ + @ApiModelProperty(value = "鏈�鏂颁簩淇濇棩鏈�") + private java.util.Date latestSecondMaintenance; + /**涓嬫浜屼繚鏃ユ湡*/ + @ApiModelProperty(value = "涓嬫浜屼繚鏃ユ湡") + private java.util.Date nextSecondMaintenance; + /**鏈�鏂颁笁淇濇棩鏈�*/ + @ApiModelProperty(value = "鏈�鏂颁笁淇濇棩鏈�") + private java.util.Date latestThirdMaintenance; + /**涓嬫涓変繚鏃ユ湡*/ + @ApiModelProperty(value = "涓嬫涓変繚鏃ユ湡") + private java.util.Date nextThirdMaintenance; +} diff --git a/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentFaultReason.java b/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentFaultReason.java new file mode 100644 index 0000000..dabe79a --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentFaultReason.java @@ -0,0 +1,72 @@ +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; +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 java.io.Serializable; +import java.util.Date; + +/** + * @Description: 璁惧鏁呴殰鍘熷洜缁存姢 + * @Author: jeecg-boot + * @Date: 2025-03-19 + * @Version: V1.0 + */ +@Data +@TableName("eam_equipment_fault_reason") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="eam_equipment_fault_reason瀵硅薄", description="璁惧鏁呴殰鍘熷洜缁存姢") +public class EamEquipmentFaultReason 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; + /**鏁呴殰缂栫爜*/ + @Excel(name = "鏁呴殰缂栫爜", width = 25) + @ApiModelProperty(value = "鏁呴殰缂栫爜") + private String faultCode; + /**鏁呴殰绠�绉�*/ + @Excel(name = "鏁呴殰绠�绉�", width = 25) + @ApiModelProperty(value = "鏁呴殰绠�绉�") + private String faultName; + /**鏁呴殰鎻忚堪*/ + @Excel(name = "鏁呴殰鎻忚堪", width = 50) + @ApiModelProperty(value = "鏁呴殰鎻忚堪") + private String faultDescription; + /**鏁呴殰鍒嗙被*/ + @Excel(name = "鏁呴殰鍒嗙被", width = 15, dicCode = "fault_reason_category") + @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/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentHistoryLog.java b/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentHistoryLog.java new file mode 100644 index 0000000..814d3ad --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentHistoryLog.java @@ -0,0 +1,70 @@ +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 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; + +/** + * @Description: 璁惧灞ュ巻 + * @Author: jeecg-boot + * @Date: 2025-03-19 + * @Version: V1.0 + */ +@Data +@TableName("eam_equipment_history_log") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="eam_equipment_history_log瀵硅薄", description="璁惧灞ュ巻") +public class EamEquipmentHistoryLog implements Serializable { + + /**涓婚敭*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "涓婚敭") + private String id; + /**鍒涘缓浜�*/ + @Excel(name = "鍒涘缓浜�", width = 15) + @ApiModelProperty(value = "鍒涘缓浜�") + private 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) + @ApiModelProperty(value = "璁惧ID") + private String equipmentId; + /**鎿嶄綔鏍囩*/ + @Excel(name = "鎿嶄綔鏍囩", width = 15) + @ApiModelProperty(value = "鎿嶄綔鏍囩") + @Dict(dicCode = "equipment_operation_tag") + private String operationTag; + /**鎿嶄綔浜�*/ + @Excel(name = "鎿嶄綔浜�", width = 15) + @ApiModelProperty(value = "鎿嶄綔浜�") + @Dict(dicCode = "sys_user, realname, username") + private String operator; + /**鎿嶄綔鎻忚堪*/ + @Excel(name = "鎿嶄綔鎻忚堪", width = 15) + @ApiModelProperty(value = "鎿嶄綔鎻忚堪") + private String description; + /**涓氬姟涓昏〃*/ + @Excel(name = "涓氬姟涓昏〃", width = 15) + @ApiModelProperty(value = "涓氬姟涓昏〃") + private String businessTable; + /**涓氬姟id*/ + @Excel(name = "涓氬姟id", width = 15) + @ApiModelProperty(value = "涓氬姟id") + private String businessId; +} diff --git a/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentPrecisionParameters.java b/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentPrecisionParameters.java new file mode 100644 index 0000000..481d6c7 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentPrecisionParameters.java @@ -0,0 +1,65 @@ +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; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; +import java.util.Date; +/** + * @Description: 璁惧绮惧害鍙傛暟 + * @Author: jeecg-boot + * @Date: 2025-04-27 + * @Version: V1.0 + */ +@Data +@TableName("eam_equipment_precision_parameters") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="eam_equipment_precision_parameters瀵硅薄", description="璁惧绮惧害鍙傛暟") +public class EamEquipmentPrecisionParameters implements Serializable { + + /**涓婚敭*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "涓婚敭") + private String id; + /**鍒涘缓浜�*/ + @Excel(name = "鍒涘缓浜�", width = 15) + @ApiModelProperty(value = "鍒涘缓浜�") + private String createBy; + /**鍒涘缓鏃堕棿*/ + @ApiModelProperty(value = "鍒涘缓鏃堕棿") + private Date createTime; + /**鏇存柊浜�*/ + @Excel(name = "鏇存柊浜�", width = 15) + @ApiModelProperty(value = "鏇存柊浜�") + private String updateBy; + /**鏇存柊鏃堕棿*/ + @ApiModelProperty(value = "鏇存柊鏃堕棿") + private Date updateTime; + /**璁惧id*/ + @Excel(name = "璁惧id", width = 15) + @ApiModelProperty(value = "璁惧id") + private String equipmentId; + /**鍙傛暟id*/ + @Excel(name = "鍙傛暟id", width = 15) + @ApiModelProperty(value = "鍙傛暟id") + private String parameterId; + /**鍏佸樊鍊�(mm)*/ + @Excel(name = "鍏佸樊鍊�(mm)", width = 15) + @ApiModelProperty(value = "鍏佸樊鍊�(mm)") + private String parameterValue; + /**瀹為檯鍊�(mm)*/ + @Excel(name = "瀹為檯鍊�(mm)", width = 15) + @ApiModelProperty(value = "瀹為檯鍊�(mm)") + private java.math.BigDecimal actualValue; + @TableField(exist = false) + private String parameterCode; +} diff --git a/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentProcessParameters.java b/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentProcessParameters.java new file mode 100644 index 0000000..19ecfc1 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentProcessParameters.java @@ -0,0 +1,63 @@ +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; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; +import java.util.Date; +/** + * @Description: 璁惧宸ヨ壓鍙傛暟 + * @Author: jeecg-boot + * @Date: 2025-04-27 + * @Version: V1.0 + */ +@Data +@TableName("eam_equipment_process_parameters") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="eam_equipment_process_parameters瀵硅薄", description="璁惧宸ヨ壓鍙傛暟") +public class EamEquipmentProcessParameters implements Serializable { + + /**涓婚敭*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "涓婚敭") + private String id; + /**鍒涘缓浜�*/ + @Excel(name = "鍒涘缓浜�", width = 15) + @ApiModelProperty(value = "鍒涘缓浜�") + private String createBy; + /**鍒涘缓鏃堕棿*/ + @ApiModelProperty(value = "鍒涘缓鏃堕棿") + private Date createTime; + /**鏇存柊浜�*/ + @Excel(name = "鏇存柊浜�", width = 15) + @ApiModelProperty(value = "鏇存柊浜�") + private String updateBy; + /**鏇存柊鏃堕棿*/ + @ApiModelProperty(value = "鏇存柊鏃堕棿") + private Date updateTime; + /**璁惧id*/ + @Excel(name = "璁惧id", width = 15) + @ApiModelProperty(value = "璁惧id") + private String equipmentId; + /**鍙傛暟id*/ + @Excel(name = "鍙傛暟id", width = 15) + @ApiModelProperty(value = "鍙傛暟id") + private String parameterId; + /**鍙傛暟鑼冨洿*/ + @Excel(name = "鍙傛暟鑼冨洿", width = 15) + @ApiModelProperty(value = "鍙傛暟鑼冨洿") + private String parameterPeriod; + @TableField(exist = false) + private String parameterCode; + @TableField(exist = false) + private String parameterUnit; +} diff --git a/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrder.java b/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrder.java new file mode 100644 index 0000000..863aa72 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrder.java @@ -0,0 +1,143 @@ +package org.jeecg.modules.eam.entity; + +import com.baomidou.mybatisplus.annotation.*; +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; +import java.util.Date; + +/** + * @Description: 鐐规宸ュ崟 + * @Author: jeecg-boot + * @Date: 2025-04-02 + * @Version: V1.0 + */ +@Data +@TableName("eam_inspection_order") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="eam_inspection_order瀵硅薄", description="鐐规宸ュ崟") +public class EamInspectionOrder implements Serializable { + private static final long serialVersionUID = 1L; + + /**涓婚敭*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "涓婚敭") + private String id; + /**鍒涘缓浜�*/ + @ApiModelProperty(value = "鍒涘缓浜�") + @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname") + private String createBy; + /**鍒涘缓鏃堕棿*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "鍒涘缓鏃堕棿") + private Date createTime; + /**鏇存柊浜�*/ + @ApiModelProperty(value = "鏇存柊浜�") + private String updateBy; + /**鏇存柊鏃堕棿*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @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") + private String equipmentId; + /**鏍囧噯ID*/ + @Excel(name = "淇濆吇鏍囧噯ID", width = 15) + @ApiModelProperty(value = "淇濆吇鏍囧噯ID") + @Dict(dictTable = "eam_maintenance_standard", dicCode = "id", dicText = "standard_name") + 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 = "鍒涘缓鏂瑰紡") + @Dict(dicCode = "order_creation_method") + private String creationMethod; + /**鐐规鐘舵��*/ + @Excel(name = "鐐规鐘舵��", width = 15) + @ApiModelProperty(value = "鐐规鐘舵�� 寰呯偣妫�-鐐规涓�-寰呯‘璁�-宸插畬鎴�-浣滃簾") + @Dict(dicCode = "inspection_status") + 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; + /**纭鎰忚*/ + @ApiModelProperty(value = "纭鎰忚") + private String confirmComment; + /** 纭绫诲瀷 1 閫氳繃 2 椹冲洖 */ + @ApiModelProperty(value = "纭绫诲瀷") + @Dict(dicCode = "approved_rejected") + private String confirmDealType; + /**澶囨敞*/ + @Excel(name = "澶囨敞", width = 15) + @ApiModelProperty(value = "澶囨敞-鐐规宸ュ崟鍒涘缓澶囨敞") + private String remark; + /**鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧*/ + @Excel(name = "鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧-鎵ц鏃�", width = 15) + @ApiModelProperty(value = "鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧") + private String imageFiles; + + /**鏍囧噯鍚嶇О*/ + @ApiModelProperty(value = "鏍囧噯鍚嶇О") + private transient String standardName; + /**淇濆吇鍛ㄦ湡;鍗曚綅:澶�*/ + @ApiModelProperty(value = "淇濆吇鍛ㄦ湡;鍗曚綅:澶�") + private transient Integer maintenancePeriod; + /**璁惧缂栧彿*/ + @ApiModelProperty(value = "璁惧缂栧彿") + private transient String equipmentCode; + + @ApiModelProperty(value = "璁惧鍚嶇О") + @TableField(exist = false) + private String equipmentName; +} diff --git a/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrderDetail.java b/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrderDetail.java new file mode 100644 index 0000000..00962c2 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrderDetail.java @@ -0,0 +1,86 @@ +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 com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Description: 鐐规宸ュ崟鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-04-02 + * @Version: V1.0 + */ +@Data +@TableName("eam_inspection_order_detail") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="eam_inspection_order_detail瀵硅薄", description="鐐规宸ュ崟鏄庣粏") +public class EamInspectionOrderDetail implements Serializable { + private static final long serialVersionUID = 1L; + + /**涓婚敭*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "涓婚敭") + private String id; + /**鍒涘缓浜�*/ + @ApiModelProperty(value = "鍒涘缓浜�") + private String createBy; + /**鍒涘缓鏃堕棿*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "鍒涘缓鏃堕棿") + private Date createTime; + /**鏇存柊浜�*/ + @ApiModelProperty(value = "鏇存柊浜�") + private String updateBy; + /**鏇存柊鏃堕棿*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "鏇存柊鏃堕棿") + private Date updateTime; + /**宸ュ崟ID*/ + @Excel(name = "宸ュ崟ID", width = 15) + @ApiModelProperty(value = "宸ュ崟ID") + private String orderId; + /**鐐规缁撴灉*/ + @Excel(name = "鐐规缁撴灉", width = 15) + @ApiModelProperty(value = "鐐规缁撴灉-姝e父-寮傚父") + private String inspectionResult; + /**寮傚父鎻忚堪*/ + @Excel(name = "寮傚父鎻忚堪", width = 15) + @ApiModelProperty(value = "寮傚父鎻忚堪") + private String exceptionDescription; + /**寮傚父鏄惁淇濅慨*/ + @Excel(name = "寮傚父鏄惁鎶ヤ慨", width = 15) + @ApiModelProperty(value = "寮傚父鏄惁鎶ヤ慨") + private String reportFlag; + /**淇濆吇椤瑰簭鍙�*/ + @ApiModelProperty(value = "淇濆吇椤瑰簭鍙�") + private Integer itemCode; + /**淇濆吇椤�*/ + @ApiModelProperty(value = "淇濆吇椤�") + private String itemName; + /**淇濆吇瑕佹眰*/ + @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/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceOrder.java b/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceOrder.java new file mode 100644 index 0000000..a69862d --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceOrder.java @@ -0,0 +1,149 @@ +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; +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; +import java.util.Date; +/** + * @Description: 淇濆吇宸ュ崟 + * @Author: jeecg-boot + * @Date: 2025-04-02 + * @Version: V1.0 + */ +@Data +@TableName("eam_maintenance_order") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="eam_maintenance_order", description="淇濆吇宸ュ崟") +public class EamMaintenanceOrder 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; + /**宸ュ崟鍙�*/ + @Excel(name = "宸ュ崟鍙�", width = 15) + @ApiModelProperty(value = "宸ュ崟鍙�") + private String orderNum; + /**璁惧ID*/ + @ApiModelProperty(value = "璁惧ID") +// @Dict(dicCode = "eam_equipment, equipment_code, id") + private String equipmentId; + /**鏍囧噯ID*/ + @ApiModelProperty(value = "鏍囧噯ID") + @Dict(dicCode = "eam_maintenance_standard, standard_name, id") + private String standardId; + /**璁″垝淇濆吇鏃ユ湡*/ + @ApiModelProperty(value = "璁″垝淇濆吇鏃ユ湡") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date maintenanceDate; + /**瀹為檯寮�濮嬫椂闂�*/ + @ApiModelProperty(value = "瀹為檯寮�濮嬫椂闂�") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date actualStartTime; + /**瀹為檯缁撴潫鏃堕棿*/ + @ApiModelProperty(value = "瀹為檯缁撴潫鏃堕棿") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date actualEndTime; + /**淇濆吇浜�*/ + @ApiModelProperty(value = "淇濆吇浜�") + @Dict(dicCode = "sys_user, realname, username") + private String operator; + /**淇濆吇鐘舵��*/ + @ApiModelProperty(value = "淇濆吇鐘舵��") + @Dict(dicCode = "week_maintenance_status") + private String maintenanceStatus; + /**鍒涘缓鏂瑰紡*/ + @ApiModelProperty(value = "鍒涘缓鏂瑰紡") + @Dict(dicCode = "order_creation_method") + private String creationMethod; + /**纭浜�*/ + @ApiModelProperty(value = "纭浜�") + @Dict(dicCode = "sys_user, realname, username") + private String confirmUser; + /**纭鏃堕棿*/ + @ApiModelProperty(value = "纭鏃堕棿") + @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; + /**澶囨敞*/ + @ApiModelProperty(value = "澶囨敞") + private String remark; + /**纭鎰忚*/ + @ApiModelProperty(value = "纭鎰忚") + private String confirmComment; + /**鍒濋獙鏀朵汉*/ + @ApiModelProperty(value = "鍒濋獙鏀朵汉") + @Dict(dicCode = "sys_user, realname, username") + private String initialAcceptanceUser; + /**鍒濋獙鏀舵椂闂�*/ + @ApiModelProperty(value = "鍒濋獙鏀舵椂闂�") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date initialAcceptanceTime; + /**鍒濋獙鏀舵剰瑙�*/ + @ApiModelProperty(value = "鍒濋獙鏀舵剰瑙�") + private String initialAcceptanceComment; + /**鍒濋獙鏀堕檮浠�*/ + @ApiModelProperty(value = "鍒濋獙鏀堕檮浠�") + private String initialAcceptanceFiles; + /**缁堥獙鏀朵汉*/ + @ApiModelProperty(value = "缁堥獙鏀朵汉") + @Dict(dicCode = "sys_user, realname, username") + private String finalAcceptanceUser; + /**缁堥獙鏀舵椂闂�*/ + @ApiModelProperty(value = "缁堥獙鏀舵椂闂�") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date finalAcceptanceTime; + /**缁堥獙鏀舵剰瑙�*/ + @ApiModelProperty(value = "缁堥獙鏀舵剰瑙�") + private String finalAcceptanceComment; + /**缁堥獙鏀堕檮浠�*/ + @ApiModelProperty(value = "缁堥獙鏀堕檮浠�") + private String finalAcceptanceFiles; + + + //鍒楄〃灞曠ず + @TableField(exist = false) + private String equipmentCode; + @TableField(exist = false) + private String equipmentName; +} diff --git a/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceOrderDetail.java b/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceOrderDetail.java new file mode 100644 index 0000000..aa018f2 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceOrderDetail.java @@ -0,0 +1,76 @@ +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-02 + * @Version: V1.0 + */ +@Data +@TableName("eam_maintenance_order_detail") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="eam_maintenance_order_detail", description="淇濆吇宸ュ崟鏄庣粏") +public class EamMaintenanceOrderDetail 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; + /**宸ュ崟ID*/ + @ApiModelProperty(value = "宸ュ崟ID") + private String orderId; + /**淇濆吇椤瑰簭鍙�*/ + @ApiModelProperty(value = "淇濆吇椤瑰簭鍙�") + private Integer itemCode; + /**淇濆吇椤�*/ + @ApiModelProperty(value = "淇濆吇椤�") + private String itemName; + /**瀛愪繚鍏婚」*/ + @ApiModelProperty(value = "瀛愪繚鍏婚」") + private String subItemName; + /**淇濆吇瑕佹眰*/ + @ApiModelProperty(value = "淇濆吇瑕佹眰") + private String itemDemand; + /**淇濆吇缁撴灉*/ + @ApiModelProperty(value = "淇濆吇缁撴灉") + private String maintenanceResult; + /**寮傚父鎻忚堪*/ + @ApiModelProperty(value = "寮傚父鎻忚堪") + private String exceptionDescription; + /**鎶ヤ慨鏍囪*/ + @ApiModelProperty(value = "鎶ヤ慨鏍囪") + private String reportFlag; + + public EamMaintenanceOrderDetail(){} + + public EamMaintenanceOrderDetail(EamMaintenanceStandardDetail detail) { + this.itemCode = detail.getItemCode(); + this.itemName = detail.getItemName(); + this.subItemName = detail.getSubItemName(); + this.itemDemand = detail.getItemDemand(); + } +} diff --git a/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java b/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java new file mode 100644 index 0000000..5dabd18 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java @@ -0,0 +1,141 @@ +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; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecg.common.aspect.annotation.Dict; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Description: 淇濆吇鏍囧噯 + * @Author: jeecg-boot + * @Date: 2025-03-26 + * @Version: V1.0 + */ +@Data +@TableName("eam_maintenance_standard") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value = "eam_maintenance_standard瀵硅薄", description = "淇濆吇鏍囧噯") +public class EamMaintenanceStandard 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 = "鏍囧噯缂栫爜") + private String standardCode; + /** + * 鏍囧噯鍚嶇О + */ + @ApiModelProperty(value = "鏍囧噯鍚嶇О") + 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; + /** + * 淇濆吇鍒嗙被 + */ + @ApiModelProperty(value = "淇濆吇鍒嗙被") + @Dict(dicCode = "maintenance_category") + private String maintenanceCategory; + /** + * 璁惧缂栧彿 + */ + @ApiModelProperty(value = "璁惧缂栧彿") + @Dict(dicCode = "eam_equipment, equipment_code, id") + private String equipmentId; + /** + * 鏍囧噯鐘舵�� + */ + @ApiModelProperty(value = "鏍囧噯鐘舵��") + @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; + + //鍒楄〃灞曠ず + @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/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java b/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java new file mode 100644 index 0000000..efd0f47 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java @@ -0,0 +1,106 @@ +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 org.jeecg.modules.eam.dto.MaintenanceStandardImport; +import org.jeecg.modules.eam.dto.SecondMaintenanceStandardImport; +import org.jeecg.modules.eam.dto.ThirdMaintenanceStandardImport; +import org.jeecg.modules.eam.dto.WeekMaintenanceStandardImport; + +import java.io.Serializable; +import java.util.Date; +/** + * @Description: 淇濆吇鏍囧噯鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-03-26 + * @Version: V1.0 + */ +@Data +@TableName("eam_maintenance_standard_detail") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="eam_maintenance_standard_detail瀵硅薄", description="淇濆吇鏍囧噯鏄庣粏") +public class EamMaintenanceStandardDetail 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; + /**淇濆吇鏍囧噯ID*/ + @ApiModelProperty(value = "淇濆吇鏍囧噯ID") + private String standardId; + /**淇濆吇椤瑰簭鍙�*/ + @ApiModelProperty(value = "淇濆吇椤瑰簭鍙�") + private Integer itemCode; + /**閮ㄤ綅*/ + @ApiModelProperty(value = "閮ㄤ綅") + private String itemPart; + /**淇濆吇椤�*/ + @ApiModelProperty(value = "淇濆吇椤�") + private String itemName; + /**瀛愪繚鍏婚」*/ + @ApiModelProperty(value = "瀛愪繚鍏婚」") + private String subItemName; + /**妫�鏌ユ爣鍑嗘垨瑕佹眰*/ + @ApiModelProperty(value = "妫�鏌ユ爣鍑嗘垨瑕佹眰") + private String itemDemand; + /**淇濆吇瑕佹眰2*/ + @ApiModelProperty(value = "淇濆吇瑕佹眰2") + private String itemDemandAlias; + /**妫�鏌ユ柟娉�*/ + @ApiModelProperty(value = "妫�鏌ユ柟娉�") + private String checkMethod; + + + public EamMaintenanceStandardDetail(){} + + public EamMaintenanceStandardDetail(MaintenanceStandardImport dto) { + this.itemCode = dto.getItemCode(); + this.itemPart = dto.getItemPart(); + this.itemName = dto.getItemName(); + this.itemDemand = dto.getItemDemand(); + } + + public EamMaintenanceStandardDetail(WeekMaintenanceStandardImport dto) { + this.itemCode = dto.getItemCode(); + this.itemName = dto.getItemName(); + this.subItemName = dto.getSubItemName() + " " + (dto.getItemPart() == null ? "" : dto.getItemPart()); + this.itemDemand = dto.getItemDemand(); + } + + public EamMaintenanceStandardDetail(SecondMaintenanceStandardImport dto) { + this.itemCode = dto.getItemCode(); + this.itemName = dto.getItemName(); + this.itemPart = dto.getItemPart(); + this.itemDemand = dto.getItemDemand(); + this.itemDemandAlias = dto.getItemDemandAlias(); + this.checkMethod = dto.getCheckMethod(); + } + + public EamMaintenanceStandardDetail(ThirdMaintenanceStandardImport dto) { + this.itemCode = dto.getItemCode(); + this.itemName = dto.getItemName(); + this.itemPart = dto.getItemPart(); + this.itemDemand = dto.getItemDemand(); + this.itemDemandAlias = dto.getItemDemandAlias(); + this.checkMethod = dto.getCheckMethod(); + } +} diff --git a/src/main/java/org/jeecg/modules/eam/entity/EamPrecisionCheckDetail.java b/src/main/java/org/jeecg/modules/eam/entity/EamPrecisionCheckDetail.java new file mode 100644 index 0000000..fcf65a8 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/entity/EamPrecisionCheckDetail.java @@ -0,0 +1,79 @@ +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-05-13 + * @Version: V1.0 + */ +@Data +@TableName("eam_precision_check_detail") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value = "eam_precision_check_detail瀵硅薄", description = "璁惧绮惧害妫�娴嬫槑缁�") +public class EamPrecisionCheckDetail 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; + /** + * 宸ュ崟ID + */ + @ApiModelProperty(value = "宸ュ崟ID") + private String orderId; + /** + * 璁惧ID + */ + @ApiModelProperty(value = "璁惧ID") + private String equipmentId; + /** + * 鍙傛暟id + */ + @ApiModelProperty(value = "鍙傛暟id") + private String parameterId; + /** + * 鍏佸樊鍊�(mm) + */ + @ApiModelProperty(value = "鍏佸樊鍊�(mm)") + private String parameterValue; + /** + * 瀹炴祴鍊� + */ + @ApiModelProperty(value = "瀹炴祴鍊�") + private java.math.BigDecimal actualValue; +} diff --git a/src/main/java/org/jeecg/modules/eam/entity/EamPrecisionParameters.java b/src/main/java/org/jeecg/modules/eam/entity/EamPrecisionParameters.java new file mode 100644 index 0000000..4c72d1d --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/entity/EamPrecisionParameters.java @@ -0,0 +1,61 @@ +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 org.jeecg.common.aspect.annotation.Dict; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; +import java.util.Date; +/** + * @Description: 绮惧害鍙傛暟缁存姢 + * @Author: jeecg-boot + * @Date: 2025-03-17 + * @Version: V1.0 + */ +@Data +@TableName("eam_precision_parameters") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="eam_precision_parameters瀵硅薄", description="绮惧害鍙傛暟缁存姢") +public class EamPrecisionParameters 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; + /**鍙傛暟缂栫爜*/ + @Excel(name = "鍙傛暟缂栫爜", width = 25) + @ApiModelProperty(value = "鍙傛暟缂栫爜") + private String parameterCode; + /**妫�娴嬮」鐩�*/ + @Excel(name = "妫�娴嬮」鐩�", width = 25) + @ApiModelProperty(value = "妫�娴嬮」鐩�") + private String parameterName; + /**鍙傛暟鍒嗙被*/ + @Excel(name = "鍙傛暟鍒嗙被", width = 15, dicCode = "precision_parameters_category") + @ApiModelProperty(value = "鍙傛暟鍒嗙被") + @Dict(dicCode = "precision_parameters_category") + private String parameterCategory; +} diff --git a/src/main/java/org/jeecg/modules/eam/entity/EamProcessParameters.java b/src/main/java/org/jeecg/modules/eam/entity/EamProcessParameters.java new file mode 100644 index 0000000..f313c9f --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/entity/EamProcessParameters.java @@ -0,0 +1,65 @@ +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 org.jeecg.common.aspect.annotation.Dict; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; +import java.util.Date; +/** + * @Description: 宸ュ簭鍙傛暟缁存姢 + * @Author: jeecg-boot + * @Date: 2025-03-17 + * @Version: V1.0 + */ +@Data +@TableName("eam_process_parameters") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="eam_process_parameters瀵硅薄", description="宸ュ簭鍙傛暟缁存姢") +public class EamProcessParameters 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; + /**鍙傛暟缂栫爜*/ + @Excel(name = "鍙傛暟缂栫爜", width = 25) + @ApiModelProperty(value = "鍙傛暟缂栫爜") + private String parameterCode; + /**鍙傛暟鍚嶇О*/ + @Excel(name = "鍙傛暟鍚嶇О", width = 25) + @ApiModelProperty(value = "鍙傛暟鍚嶇О") + private String parameterName; + /**鍙傛暟鍒嗙被*/ + @Excel(name = "鍙傛暟鍒嗙被", width = 15, dicCode = "process_parameters_category") + @ApiModelProperty(value = "鍙傛暟鍒嗙被") + @Dict(dicCode = "process_parameters_category") + private String parameterCategory; + /**璁¢噺鍗曚綅*/ + @Excel(name = "璁¢噺鍗曚綅", width = 15) + @ApiModelProperty(value = "璁¢噺鍗曚綅") + private String parameterUnit; +} diff --git a/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java b/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java new file mode 100644 index 0000000..c28502d --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java @@ -0,0 +1,194 @@ +package org.jeecg.modules.eam.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +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 org.jeecg.common.aspect.annotation.Dict; +import org.jeecg.common.system.base.entity.JeecgEntity; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Description: 缁翠慨宸ュ崟 + * @Author: Lius + * @Date: 2025-04-03 + */ +@Data +@TableName("eam_repair_order") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value = "eam_repair_order瀵硅薄", description = "缁翠慨宸ュ崟") +public class EamRepairOrder extends JeecgEntity implements Serializable { + + private static final long serialVersionUID = -2336763554235629574L; + + /** + * 鍒犻櫎鏍囪 + */ + @Excel(name = "鍒犻櫎鏍囪", width = 15) + @ApiModelProperty(value = "鍒犻櫎鏍囪") + private Integer delFlag; + /** + * 宸ュ崟缂栧彿 + */ + @Excel(name = "宸ュ崟缂栧彿", width = 15) + @ApiModelProperty(value = "宸ュ崟缂栧彿") + private String repairCode; + /** + * 鎶ヤ慨ID + */ + @Excel(name = "鎶ヤ慨ID", width = 15) + @ApiModelProperty(value = "鎶ヤ慨ID") + private String reportId; + /** + * 璁惧ID + */ + @Excel(name = "璁惧ID", width = 15) + @ApiModelProperty(value = "璁惧ID") +// @Dict(dictTable = "eam_equipment", dicCode = "id", dicText = "equipment_code") + private String equipmentId; + /** + * 缁翠慨鐘舵�� + */ + @Excel(name = "缁翠慨鐘舵��", width = 15) + @ApiModelProperty(value = "缁翠慨鐘舵��") + @Dict(dicCode = "report_repair_status") + private String repairStatus; + /** + * 缁翠慨寮�濮嬫椂闂� + */ + @ApiModelProperty(value = "缁翠慨寮�濮嬫椂闂�") + private Date actualStartTime; + /** + * 缁翠慨缁撴潫鏃堕棿 + */ + @ApiModelProperty(value = "缁翠慨缁撴潫鏃堕棿") + private Date actualEndTime; + + /** + * 缁翠慨纭缁撴灉 + */ + @ApiModelProperty(value = "缁翠慨纭缁撴灉") + @Dict(dicCode = "yn") + private String repairConfirm; + /** + * 缁翠慨纭鎰忚 + */ + @ApiModelProperty(value = "缁翠慨纭鎰忚") + private String repairConfirmComment; + /** + * 缁翠慨纭鏃堕棿 + */ + @ApiModelProperty(value = "缁翠慨纭鏃堕棿") + private Date repairConfirmTime; + /** + * 鏁呴殰鍘熷洜 + */ + @Excel(name = "鏁呴殰鍘熷洜", width = 15) + @ApiModelProperty(value = "鏁呴殰鍘熷洜") + private String faultReason; + /** + * 缁翠慨缁撴灉鎻忚堪 + */ + @Excel(name = "缁翠慨缁撴灉鎻忚堪", width = 15) + @ApiModelProperty(value = "缁翠慨缁撴灉鎻忚堪") + private String repairDescription; + /** + * 缁翠慨璐熻矗浜� + */ + @Excel(name = "缁翠慨璐熻矗浜�", width = 15) + @ApiModelProperty(value = "缁翠慨璐熻矗浜�") + @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname") + private String repairer; + + /** + * 纭棰嗗 + */ + @ApiModelProperty(value = "纭棰嗗") + @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname") + private String leaderUser; + /** + * 棰嗗纭缁撴灉 + */ + @ApiModelProperty(value = "棰嗗纭缁撴灉") + @Dict(dicCode = "yn") + private String leaderConfirm; + /** + * 纭鎰忚 + */ + @ApiModelProperty(value = "纭鎰忚") + private String leaderConfirmComment; + /** + * 纭鏃堕棿 + */ + @ApiModelProperty(value = "纭鏃堕棿") + private Date leaderConfirmTime; + /** + * 鏈哄姩鍔炵淮淇汉 + */ + @ApiModelProperty(value = "鏈哄姩鍔炵淮淇汉") + @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname") + private String externalRepairer; + /** + * 鏈哄姩鍔炵‘璁ょ粨鏋� + */ + @ApiModelProperty(value = "鏈哄姩鍔炵‘璁ょ粨鏋�") + @Dict(dicCode = "yn") + private String externalConfirm; + /** + * 鏈哄姩鍔炵‘璁ゆ剰瑙� + */ + @ApiModelProperty(value = "鏈哄姩鍔炵‘璁ゆ剰瑙�") + private String externalConfirmComment; + /** + * 鏈哄姩鍔炵‘璁ゆ椂闂� + */ + @ApiModelProperty(value = "鏈哄姩鍔炵‘璁ゆ椂闂�") + private Date externalConfirmTime; + /** + * 濮斿璐熻矗浜� + */ + @Excel(name = "濮斿璐熻矗浜�", width = 15) + @ApiModelProperty(value = "濮斿璐熻矗浜�") + private String outsourcedUser; + /** + * 鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧 + */ + @Excel(name = "鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧", width = 15) + @ApiModelProperty(value = "鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧") + private String imageFiles; + /** + * 鎿嶄綔宸ョ‘璁� + */ + @ApiModelProperty(value = "鎿嶄綔宸ョ‘璁�") + @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname") + private String confirmer; + /** + * 鎿嶄綔宸ョ‘璁ゆ剰瑙� + */ + @ApiModelProperty(value = "鎿嶄綔宸ョ‘璁ゆ剰瑙�") + private String confirmComment; + /** + * 鎿嶄綔宸ョ‘璁ゆ椂闂� + */ + @ApiModelProperty(value = "鎿嶄綔宸ョ‘璁ゆ椂闂�") + private Date confirmTime; + + @TableField(exist = false) + @ApiModelProperty(value = "璁惧鍚嶇О") + private String equipmentName; + /** + * 璁惧缂栫爜 + */ + @TableField(exist = false) + @ApiModelProperty(value = "璁惧缂栫爜") + private String equipmentCode; + @TableField(exist = false) + private String installationPosition; +} diff --git a/src/main/java/org/jeecg/modules/eam/entity/EamReportRepair.java b/src/main/java/org/jeecg/modules/eam/entity/EamReportRepair.java new file mode 100644 index 0000000..f0e3429 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/entity/EamReportRepair.java @@ -0,0 +1,121 @@ +package org.jeecg.modules.eam.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +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.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; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * @Description: 鏁呴殰鎶ヤ慨 + * @Author: Lius + * @Date: 2025-04-01 + */ +@Data +@TableName("eam_report_repair") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value = "eam_report_repair瀵硅薄", description = "鏁呴殰鎶ヤ慨") +public class EamReportRepair extends JeecgEntity implements Serializable { + + private static final long serialVersionUID = 3966250456529614720L; + + /** + * 璁惧ID + */ + @Excel(name = "璁惧ID", width = 15, dictTable = "eam_equipment", dicCode = "id", dicText = "equipment_code") + @ApiModelProperty(value = "璁惧ID") +// @Dict(dictTable = "eam_equipment", dicCode = "id", dicText = "equipment_code") + private String equipmentId; + /** + * 璁惧鍚嶇О + */ + @Excel(name = "璁惧鍚嶇О", width = 15) + @TableField(exist = false) + @ApiModelProperty(value = "璁惧鍚嶇О") + private String equipmentName; + /** + * 鍒犻櫎鏍囪 + */ + @ApiModelProperty(value = "鍒犻櫎鏍囪") + @Dict(dicCode = "del_flag") + private Integer delFlag; + /** + * 鏁呴殰寮�濮嬫椂闂� + */ + @ApiModelProperty(value = "鏁呴殰寮�濮嬫椂闂�") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "鏁呴殰寮�濮嬫椂闂�", width = 15, format = "yyyy-MM-dd HH:mm:ss") + private Date faultStartTime; + /** + * 鏄惁鍋滄満 + */ + @Excel(name = "鏄惁鍋滄満", width = 15, dicCode = "breakdown_flag") + @ApiModelProperty(value = "鏄惁鍋滄満") + @Dict(dicCode = "breakdown_flag") + private String breakdownFlag; + /** + * 鏁呴殰绠�绉� + */ + @Excel(name = "鏁呴殰绠�绉�", width = 15) + @ApiModelProperty(value = "鏁呴殰绠�绉�") + private String faultName; + /** + * 鏁呴殰鍒嗙被 + */ + @Excel(name = "鏁呴殰鍒嗙被", width = 15, dicCode = "fault_reason_category") + @ApiModelProperty(value = "鏁呴殰鍒嗙被") + @Dict(dicCode = "fault_reason_category") + private String faultType; + /** + * 鏁呴殰鎻忚堪 + */ + @Excel(name = "鏁呴殰鎻忚堪", width = 15) + @ApiModelProperty(value = "鏁呴殰鎻忚堪") + private String faultDescription; + /** + * 鎶ヤ慨鐘舵�� + */ + @Excel(name = "鎶ヤ慨鐘舵��", width = 15, dicCode = "report_repair_status") + @ApiModelProperty(value = "鎶ヤ慨鐘舵��") + @Dict(dicCode = "report_repair_status") + private String reportStatus; + /** + * 鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧 + */ + @Excel(name = "鐓х墖", width = 15, type = 2) + @ApiModelProperty(value = "鐓х墖") + private String imageFiles; + + /**鐓х墖*/ + @ApiModelProperty(value = "鐓х墖") + @TableField(exist = false) + private List<FileUploadResult> imageFilesResult; + + /** + * 澶囨敞 + */ + @Excel(name = "澶囨敞", width = 15) + @ApiModelProperty(value = "澶囨敞") + private String remark; + + //鍒楄〃灞曠ず + @TableField(exist = false) + private String equipmentCode; + @TableField(exist = false) + private String installationPosition; + +} diff --git a/src/main/java/org/jeecg/modules/eam/entity/EamSysFiles.java b/src/main/java/org/jeecg/modules/eam/entity/EamSysFiles.java new file mode 100644 index 0000000..f42f08f --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/entity/EamSysFiles.java @@ -0,0 +1,75 @@ +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 org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Description: 璁惧闄勪欢绠$悊 + * @Author: jeecg-boot + * @Date: 2025-03-17 + * @Version: V1.0 + */ +@Data +@TableName("eam_sys_files") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="eam_sys_files瀵硅薄", description="璁惧闄勪欢绠$悊") +public class EamSysFiles implements Serializable { + + /**涓婚敭*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "涓婚敭") + private String id; + /**鍒涘缓浜�*/ + @Excel(name = "鍒涘缓浜�", width = 15) + @ApiModelProperty(value = "鍒涘缓浜�") + private String createBy; + /**鍒涘缓鏃堕棿*/ + @ApiModelProperty(value = "鍒涘缓鏃堕棿") + private Date createTime; + /**鏇存柊浜�*/ + @Excel(name = "鏇存柊浜�", width = 15) + @ApiModelProperty(value = "鏇存柊浜�") + private String updateBy; + /**鏇存柊鏃堕棿*/ + @ApiModelProperty(value = "鏇存柊鏃堕棿") + private Date updateTime; + /**鍒犻櫎鏍囪*/ + @Excel(name = "鍒犻櫎鏍囪", width = 15) + @ApiModelProperty(value = "鍒犻櫎鏍囪") + private Integer delFlag; + /**鏂囦欢鍔犲瘑鍚�*/ + @Excel(name = "鏂囦欢鍔犲瘑鍚�", width = 15) + @ApiModelProperty(value = "鏂囦欢鍔犲瘑鍚�") + private String fileEncodeName; + /**鏂囦欢鍘熷鍚嶇О*/ + @Excel(name = "鏂囦欢鍘熷鍚嶇О", width = 15) + @ApiModelProperty(value = "鏂囦欢鍘熷鍚嶇О") + private String fileName; + /**鏂囦欢淇濆瓨璺緞*/ + @Excel(name = "鏂囦欢淇濆瓨璺緞", width = 15) + @ApiModelProperty(value = "鏂囦欢淇濆瓨璺緞") + private String filePath; + /**鏂囦欢鍚庣紑鍚�*/ + @Excel(name = "鏂囦欢鍚庣紑鍚�", width = 15) + @ApiModelProperty(value = "鏂囦欢鍚庣紑鍚�") + private String fileSuffix; + /**鏂囦欢澶у皬*/ + @Excel(name = "鏂囦欢澶у皬", width = 15) + @ApiModelProperty(value = "鏂囦欢澶у皬") + private Long fileSize; + /**鎻忚堪*/ + @Excel(name = "鎻忚堪", width = 15) + @ApiModelProperty(value = "鎻忚堪") + private String description; +} diff --git a/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentAttachmentMapper.java b/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentAttachmentMapper.java new file mode 100644 index 0000000..ca99a69 --- /dev/null +++ b/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/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentExtendMapper.java b/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentExtendMapper.java new file mode 100644 index 0000000..47b3123 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentExtendMapper.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.eam.mapper; + +import org.jeecg.modules.eam.entity.EamEquipmentExtend; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 璁惧鍙拌处鎵╁睍琛� + * @Author: jeecg-boot + * @Date: 2025-03-19 + * @Version: V1.0 + */ +public interface EamEquipmentExtendMapper extends BaseMapper<EamEquipmentExtend> { + +} diff --git a/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentFaultReasonMapper.java b/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentFaultReasonMapper.java new file mode 100644 index 0000000..05c4b9b --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentFaultReasonMapper.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.eam.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.eam.entity.EamEquipmentFaultReason; + +/** + * @Description: 璁惧鏁呴殰鍘熷洜缁存姢 + * @Author: jeecg-boot + * @Date: 2025-03-19 + * @Version: V1.0 + */ +public interface EamEquipmentFaultReasonMapper extends BaseMapper<EamEquipmentFaultReason> { + +} diff --git a/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentHistoryLogMapper.java b/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentHistoryLogMapper.java new file mode 100644 index 0000000..bf68bc1 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentHistoryLogMapper.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.eam.mapper; + +import org.jeecg.modules.eam.entity.EamEquipmentHistoryLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 璁惧灞ュ巻 + * @Author: jeecg-boot + * @Date: 2025-03-19 + * @Version: V1.0 + */ +public interface EamEquipmentHistoryLogMapper extends BaseMapper<EamEquipmentHistoryLog> { + +} diff --git a/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentMapper.java b/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentMapper.java new file mode 100644 index 0000000..92bffec --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentMapper.java @@ -0,0 +1,35 @@ +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.apache.ibatis.annotations.Select; +import org.jeecg.modules.eam.entity.EamEquipment; + +import java.util.List; + +/** + * @Description: 璁惧鍙拌处 + * @Author: jeecg-boot + * @Date: 2025-03-19 + * @Version: V1.0 + */ +public interface EamEquipmentMapper extends BaseMapper<EamEquipment> { + /** + * 鏌ヨ浜х嚎涓嬬殑璁惧 + * @param productionId 浜х嚎id + * @return + */ + @Select("select * from eam_equipment where del_flag = 0 and org_id = #{productionId}") + List<EamEquipment> queryByProductionId(String productionId); + + /** + * 鍒嗛〉鏌ヨ + * @param page + * @param queryWrapper + * @return + */ + IPage<EamEquipment> queryPageList(IPage<EamEquipment> page, @Param(Constants.WRAPPER) Wrapper<EamEquipment> queryWrapper); +} diff --git a/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentPrecisionParametersMapper.java b/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentPrecisionParametersMapper.java new file mode 100644 index 0000000..0f9d295 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentPrecisionParametersMapper.java @@ -0,0 +1,26 @@ +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.EamEquipmentPrecisionParameters; + +/** + * @Description: 璁惧绮惧害鍙傛暟 + * @Author: jeecg-boot + * @Date: 2025-04-27 + * @Version: V1.0 + */ +public interface EamEquipmentPrecisionParametersMapper extends BaseMapper<EamEquipmentPrecisionParameters> { + + /** + * 鍒嗛〉鏌ヨ + * @param page + * @param queryWrapper + * @return + */ + IPage<EamEquipmentPrecisionParameters> queryPageList(Page<EamEquipmentPrecisionParameters> page, @Param(Constants.WRAPPER) QueryWrapper<EamEquipmentPrecisionParameters> queryWrapper); +} diff --git a/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentProcessParametersMapper.java b/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentProcessParametersMapper.java new file mode 100644 index 0000000..d569156 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentProcessParametersMapper.java @@ -0,0 +1,26 @@ +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.EamEquipmentProcessParameters; + +/** + * @Description: 璁惧宸ヨ壓鍙傛暟 + * @Author: jeecg-boot + * @Date: 2025-04-27 + * @Version: V1.0 + */ +public interface EamEquipmentProcessParametersMapper extends BaseMapper<EamEquipmentProcessParameters> { + + /** + * 鍒嗛〉鏌ヨ + * @param queryWrapper + * @param page + * @return + */ + IPage<EamEquipmentProcessParameters> queryPageList(Page<EamEquipmentProcessParameters> page, @Param(Constants.WRAPPER) QueryWrapper<EamEquipmentProcessParameters> queryWrapper); +} diff --git a/src/main/java/org/jeecg/modules/eam/mapper/EamInspectionOrderDetailMapper.java b/src/main/java/org/jeecg/modules/eam/mapper/EamInspectionOrderDetailMapper.java new file mode 100644 index 0000000..401a05e --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/EamInspectionOrderDetailMapper.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.eam.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.eam.entity.EamInspectionOrderDetail; + +/** + * @Description: 鐐规宸ュ崟鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-04-02 + * @Version: V1.0 + */ +public interface EamInspectionOrderDetailMapper extends BaseMapper<EamInspectionOrderDetail> { + +} diff --git a/src/main/java/org/jeecg/modules/eam/mapper/EamInspectionOrderMapper.java b/src/main/java/org/jeecg/modules/eam/mapper/EamInspectionOrderMapper.java new file mode 100644 index 0000000..8f84cb4 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/EamInspectionOrderMapper.java @@ -0,0 +1,38 @@ +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.vo.InspectionVo; + +import java.util.List; +import java.util.Map; + +/** + * @Description: 鐐规宸ュ崟 + * @Author: jeecg-boot + * @Date: 2025-04-02 + * @Version: V1.0 + */ +public interface EamInspectionOrderMapper extends BaseMapper<EamInspectionOrder> { + + /** + * 鍒嗛〉鏌ヨ + * @param page + * @param queryWrapper + * @return + */ + IPage<EamInspectionOrder> queryPageList(Page<EamInspectionOrder> page, @Param(Constants.WRAPPER) QueryWrapper<EamInspectionOrder> queryWrapper); + /** + * 鐐规鎶ヨ〃 new + */ + List<InspectionVo> findInspectionResult(@Param("equipmentId")String equipmentId, @Param("itemDemand")String itemDemand,@Param("yearMonth")String yearMonth); + + List<InspectionVo> findInspectionUser(@Param("equipmentId")String equipmentId,@Param("yearMonth")String yearMonth); + + List<Map<String,Object>> findInspectionStandard(@Param("equipmentId")String equipmentId); +} diff --git a/src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceOrderDetailMapper.java b/src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceOrderDetailMapper.java new file mode 100644 index 0000000..9639e0b --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceOrderDetailMapper.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.eam.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.eam.entity.EamMaintenanceOrderDetail; + +/** + * @Description: 淇濆吇宸ュ崟鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-04-02 + * @Version: V1.0 + */ +public interface EamMaintenanceOrderDetailMapper extends BaseMapper<EamMaintenanceOrderDetail> { + +} diff --git a/src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceOrderMapper.java b/src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceOrderMapper.java new file mode 100644 index 0000000..734a8a5 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceOrderMapper.java @@ -0,0 +1,24 @@ +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.EamMaintenanceOrder; + +/** + * @Description: 淇濆吇宸ュ崟 + * @Author: jeecg-boot + * @Date: 2025-04-02 + * @Version: V1.0 + */ +public interface EamMaintenanceOrderMapper extends BaseMapper<EamMaintenanceOrder> { + /** + * 鍒嗛〉鏌ヨ + * @param page + * @param queryWrapper + * @return + */ + IPage<EamMaintenanceOrder> queryPageList(IPage<EamMaintenanceOrder> page, @Param(Constants.WRAPPER) Wrapper<EamMaintenanceOrder> queryWrapper); +} diff --git a/src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceStandardDetailMapper.java b/src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceStandardDetailMapper.java new file mode 100644 index 0000000..d2d1ab8 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceStandardDetailMapper.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.eam.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail; + +/** + * @Description: 淇濆吇鏍囧噯鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-03-26 + * @Version: V1.0 + */ +public interface EamMaintenanceStandardDetailMapper extends BaseMapper<EamMaintenanceStandardDetail> { + +} diff --git a/src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceStandardMapper.java b/src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceStandardMapper.java new file mode 100644 index 0000000..af5ac37 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/EamMaintenanceStandardMapper.java @@ -0,0 +1,25 @@ +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; + +/** + * @Description: 淇濆吇鏍囧噯 + * @Author: jeecg-boot + * @Date: 2025-03-26 + * @Version: V1.0 + */ +public interface EamMaintenanceStandardMapper extends BaseMapper<EamMaintenanceStandard> { + + /** + * 鍒嗛〉鏌ヨ + * @param page + * @param queryWrapper + * @return + */ + IPage<EamMaintenanceStandard> queryPageList(IPage<EamMaintenanceStandard> page, @Param(Constants.WRAPPER) Wrapper<EamMaintenanceStandard> queryWrapper); +} diff --git a/src/main/java/org/jeecg/modules/eam/mapper/EamPrecisionCheckDetailMapper.java b/src/main/java/org/jeecg/modules/eam/mapper/EamPrecisionCheckDetailMapper.java new file mode 100644 index 0000000..a0d79ae --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/EamPrecisionCheckDetailMapper.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.eam.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.eam.entity.EamPrecisionCheckDetail; + +/** + * @Description: 璁惧绮惧害妫�娴嬫槑缁� + * @Author: jeecg-boot + * @Date: 2025-05-13 + * @Version: V1.0 + */ +public interface EamPrecisionCheckDetailMapper extends BaseMapper<EamPrecisionCheckDetail> { + +} diff --git a/src/main/java/org/jeecg/modules/eam/mapper/EamPrecisionParametersMapper.java b/src/main/java/org/jeecg/modules/eam/mapper/EamPrecisionParametersMapper.java new file mode 100644 index 0000000..7fd672f --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/EamPrecisionParametersMapper.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.eam.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.eam.entity.EamPrecisionParameters; + +/** + * @Description: 绮惧害鍙傛暟缁存姢 + * @Author: jeecg-boot + * @Date: 2025-03-17 + * @Version: V1.0 + */ +public interface EamPrecisionParametersMapper extends BaseMapper<EamPrecisionParameters> { + +} diff --git a/src/main/java/org/jeecg/modules/eam/mapper/EamProcessParametersMapper.java b/src/main/java/org/jeecg/modules/eam/mapper/EamProcessParametersMapper.java new file mode 100644 index 0000000..03099bc --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/EamProcessParametersMapper.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.eam.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.eam.entity.EamProcessParameters; + +/** + * @Description: 宸ュ簭鍙傛暟缁存姢 + * @Author: jeecg-boot + * @Date: 2025-03-17 + * @Version: V1.0 + */ +public interface EamProcessParametersMapper extends BaseMapper<EamProcessParameters> { + +} diff --git a/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java b/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java new file mode 100644 index 0000000..3fe37ac --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java @@ -0,0 +1,28 @@ +package org.jeecg.modules.eam.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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.EamRepairOrder; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.eam.request.EamRepairOrderQuery; + +import java.util.List; + +/** + * @Description: 缁翠慨宸ュ崟 + * @Author: Lius + * @Date: 2025-04-03 + */ +public interface EamRepairOrderMapper extends BaseMapper<EamRepairOrder> { + + /** + * 鍒嗛〉鏌ヨ + * @param page + * @param queryWrapper + * @return + */ + IPage<EamRepairOrder> queryPageList(Page<EamRepairOrder> page, @Param(Constants.WRAPPER) QueryWrapper<EamRepairOrder> queryWrapper); +} diff --git a/src/main/java/org/jeecg/modules/eam/mapper/EamReportRepairMapper.java b/src/main/java/org/jeecg/modules/eam/mapper/EamReportRepairMapper.java new file mode 100644 index 0000000..ccc642f --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/EamReportRepairMapper.java @@ -0,0 +1,28 @@ +package org.jeecg.modules.eam.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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.EamReportRepair; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.eam.request.EamReportRepairQuery; + +import java.util.List; + +/** + * @Description: 鏁呴殰鎶ヤ慨 + * @Author: Lius + * @Date: 2025-04-01 + */ +public interface EamReportRepairMapper extends BaseMapper<EamReportRepair> { + + /** + * 鍒嗛〉鏌ヨ + * @param page + * @param queryWrapper + * @return + */ + IPage<EamReportRepair> queryPageList(Page<EamReportRepair> page, @Param(Constants.WRAPPER) QueryWrapper<EamReportRepair> queryWrapper); +} diff --git a/src/main/java/org/jeecg/modules/eam/mapper/EamSysFilesMapper.java b/src/main/java/org/jeecg/modules/eam/mapper/EamSysFilesMapper.java new file mode 100644 index 0000000..d199f47 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/EamSysFilesMapper.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.eam.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.eam.entity.EamSysFiles; + +/** + * @Description: 璁惧闄勪欢绠$悊 + * @Author: jeecg-boot + * @Date: 2025-03-17 + * @Version: V1.0 + */ +public interface EamSysFilesMapper extends BaseMapper<EamSysFiles> { + +} diff --git a/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentAttachmentMapper.xml b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentAttachmentMapper.xml new file mode 100644 index 0000000..ec5ca50 --- /dev/null +++ b/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/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentExtendMapper.xml b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentExtendMapper.xml new file mode 100644 index 0000000..8d5f86d --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentExtendMapper.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.EamEquipmentExtendMapper"> + +</mapper> \ No newline at end of file diff --git a/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentFaultReasonMapper.xml b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentFaultReasonMapper.xml new file mode 100644 index 0000000..cc31487 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentFaultReasonMapper.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.EamEquipmentFaultReasonMapper"> + +</mapper> \ No newline at end of file diff --git a/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentHistoryLogMapper.xml b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentHistoryLogMapper.xml new file mode 100644 index 0000000..13e274b --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentHistoryLogMapper.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.EamEquipmentHistoryLogMapper"> + +</mapper> \ No newline at end of file diff --git a/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml new file mode 100644 index 0000000..f7e323a --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml @@ -0,0 +1,12 @@ +<?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.EamEquipmentMapper"> + + <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamEquipment"> + select e.*, ext.repair_status, ext.maintenance_status + from eam_equipment e + left join eam_equipment_extend ext + on e.id = ext.id + ${ew.customSqlSegment} + </select> +</mapper> \ No newline at end of file diff --git a/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentPrecisionParametersMapper.xml b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentPrecisionParametersMapper.xml new file mode 100644 index 0000000..955d277 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentPrecisionParametersMapper.xml @@ -0,0 +1,12 @@ +<?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.EamEquipmentPrecisionParametersMapper"> + + <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamEquipmentPrecisionParameters"> + select wmo.*, e.parameter_code + from eam_equipment_precision_parameters wmo + inner join eam_precision_parameters e + on wmo.parameter_id = e.id + ${ew.customSqlSegment} + </select> +</mapper> \ No newline at end of file diff --git a/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentProcessParametersMapper.xml b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentProcessParametersMapper.xml new file mode 100644 index 0000000..b8c7f5b --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentProcessParametersMapper.xml @@ -0,0 +1,12 @@ +<?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.EamEquipmentProcessParametersMapper"> + + <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamEquipmentProcessParameters"> + select wmo.*, e.parameter_code, e.parameter_unit + from eam_equipment_process_parameters wmo + inner join eam_process_parameters e + on wmo.parameter_id = e.id + ${ew.customSqlSegment} + </select> +</mapper> \ No newline at end of file diff --git a/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderDetailMapper.xml b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderDetailMapper.xml new file mode 100644 index 0000000..5a55b0f --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderDetailMapper.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.EamInspectionOrderDetailMapper"> + +</mapper> diff --git a/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml new file mode 100644 index 0000000..9461c66 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml @@ -0,0 +1,56 @@ +<?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.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> + + <select id="findInspectionUser" parameterType="String" resultType="org.jeecg.modules.eam.vo.InspectionVo"> + + SELECT + t2.realname operator, + t3.realname as confirmUser, + CONVERT(VARCHAR, DATEPART(DAY, t1.inspection_date)) as dayTime + FROM + eam_inspection_order t1 + left join sys_user t2 on t1.operator = t2.username + left join sys_user t3 on t1.confirm_user = t3.username + WHERE t1.del_flag = '0' + AND t1.equipment_id = #{equipmentId} + AND SUBSTRING ( CONVERT ( VARCHAR ( 10 ), t1.inspection_date, 120 ), 1, 7 ) = SUBSTRING(CONVERT(VARCHAR(10),#{yearMonth}, 120 ), 1, 7 ) + </select> + + <select id="findInspectionResult" parameterType="String" resultType="org.jeecg.modules.eam.vo.InspectionVo"> + + SELECT + t1.item_demand as inspectionContent, + CONVERT(VARCHAR, DATEPART(DAY, t2.inspection_date)) as dayTime, + case t1.inspection_result when '1' then '鈭�' when '2' then 'x' else '' end as inspectionResult + FROM + eam_inspection_order_detail t1 + LEFT JOIN eam_inspection_order t2 ON t1.order_id = t2.id + WHERE t1.item_demand = #{itemDemand} + and t2.equipment_id = #{equipmentId} + AND SUBSTRING ( CONVERT ( VARCHAR ( 10 ), t2.inspection_date, 120 ), 1, 7 ) = SUBSTRING(CONVERT(VARCHAR(10),#{yearMonth}, 120 ), 1, 7 ) + </select> + + <select id="findInspectionStandard" parameterType="String" resultType="Map"> + SELECT + ROW_NUMBER() OVER (ORDER BY t1.id) AS seq, + t1.item_demand as itemDemand + FROM + eam_maintenance_standard_detail t1 + LEFT JOIN eam_maintenance_standard t2 ON t1.standard_id = t2.id + WHERE + t2.maintenance_category = 'POINT_INSPECTION' + AND t2.standard_status = 'NORMAL' + and equipment_id =#{equipmentId} + ORDER BY + item_code ASC + </select> +</mapper> diff --git a/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceOrderDetailMapper.xml b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceOrderDetailMapper.xml new file mode 100644 index 0000000..79e6377 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceOrderDetailMapper.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.EamMaintenanceOrderDetailMapper"> + +</mapper> \ No newline at end of file diff --git a/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceOrderMapper.xml b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceOrderMapper.xml new file mode 100644 index 0000000..1c2b7cf --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceOrderMapper.xml @@ -0,0 +1,12 @@ +<?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.EamMaintenanceOrderMapper"> + + <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamMaintenanceOrder"> + select wmo.*, e.equipment_code, e.equipment_name + from eam_maintenance_order wmo + inner join eam_equipment e + on wmo.equipment_id = e.id + ${ew.customSqlSegment} + </select> +</mapper> \ No newline at end of file diff --git a/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardDetailMapper.xml b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardDetailMapper.xml new file mode 100644 index 0000000..4ca5a19 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardDetailMapper.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.EamMaintenanceStandardDetailMapper"> + +</mapper> \ No newline at end of file diff --git a/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml new file mode 100644 index 0000000..68f0ef2 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml @@ -0,0 +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="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/src/main/java/org/jeecg/modules/eam/mapper/xml/EamPrecisionCheckDetailMapper.xml b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamPrecisionCheckDetailMapper.xml new file mode 100644 index 0000000..37a420c --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamPrecisionCheckDetailMapper.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.EamPrecisionCheckDetailMapper"> + +</mapper> \ No newline at end of file diff --git a/src/main/java/org/jeecg/modules/eam/mapper/xml/EamPrecisionParametersMapper.xml b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamPrecisionParametersMapper.xml new file mode 100644 index 0000000..a1905e7 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamPrecisionParametersMapper.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.EamPrecisionParametersMapper"> + +</mapper> \ No newline at end of file diff --git a/src/main/java/org/jeecg/modules/eam/mapper/xml/EamProcessParametersMapper.xml b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamProcessParametersMapper.xml new file mode 100644 index 0000000..413ccaf --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamProcessParametersMapper.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.EamProcessParametersMapper"> + +</mapper> \ No newline at end of file diff --git a/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml new file mode 100644 index 0000000..389b192 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml @@ -0,0 +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.EamRepairOrderMapper"> + <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamRepairOrder"> + select wmo.*, e.equipment_code, e.equipment_name, e.installation_position + from eam_repair_order wmo + inner join eam_equipment e + on wmo.equipment_id = e.id + ${ew.customSqlSegment} + </select> +</mapper> \ No newline at end of file diff --git a/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml new file mode 100644 index 0000000..4ff2d5c --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportRepairMapper.xml @@ -0,0 +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.EamReportRepairMapper"> + <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamReportRepair"> + select wmo.*, e.equipment_code, e.equipment_name, e.installation_position + from eam_report_repair wmo + inner join eam_equipment e + on wmo.equipment_id = e.id + ${ew.customSqlSegment} + </select> +</mapper> \ No newline at end of file diff --git a/src/main/java/org/jeecg/modules/eam/mapper/xml/EamSysFilesMapper.xml b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamSysFilesMapper.xml new file mode 100644 index 0000000..0e57ce1 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/mapper/xml/EamSysFilesMapper.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.EamSysFilesMapper"> + +</mapper> \ No newline at end of file diff --git a/src/main/java/org/jeecg/modules/eam/request/EamEquipmentAttachmentRequest.java b/src/main/java/org/jeecg/modules/eam/request/EamEquipmentAttachmentRequest.java new file mode 100644 index 0000000..e1552f3 --- /dev/null +++ b/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/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java b/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java new file mode 100644 index 0000000..40293d6 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.eam.request; + +import lombok.Data; + +@Data +public class EamEquipmentQuery { + private String id; + private String equipmentCode; + private String equipmentName; + private String equipmentImportance; + private String assetStatus; + private String technologyStatus; + private String operationSystem; + private String orgId; + private String equipmentCategory; + + private String column; + private String order; +} diff --git a/src/main/java/org/jeecg/modules/eam/request/EamInspectionBatchApprovalRequest.java b/src/main/java/org/jeecg/modules/eam/request/EamInspectionBatchApprovalRequest.java new file mode 100644 index 0000000..36a84e2 --- /dev/null +++ b/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/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderQuery.java b/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderQuery.java new file mode 100644 index 0000000..b53d8d5 --- /dev/null +++ b/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/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderRequest.java b/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderRequest.java new file mode 100644 index 0000000..dfacb46 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderRequest.java @@ -0,0 +1,116 @@ +package org.jeecg.modules.eam.request; + +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.fasterxml.jackson.annotation.JsonFormat; +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.eam.entity.EamInspectionOrderDetail; +import org.jeecg.modules.flowable.domain.vo.FlowTaskVo; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +public class EamInspectionOrderRequest extends FlowTaskVo implements Serializable { + private static final long serialVersionUID = 1L; + + /**涓婚敭*/ + @ApiModelProperty(value = "涓婚敭") + private String id; + /**鍒涘缓浜�*/ + @ApiModelProperty(value = "鍒涘缓浜�") + @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname") + private String createBy; + /**鍒涘缓鏃堕棿*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "鍒涘缓鏃堕棿") + private Date createTime; + /**鏇存柊浜�*/ + @ApiModelProperty(value = "鏇存柊浜�") + private String updateBy; + /**鏇存柊鏃堕棿*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "鏇存柊鏃堕棿") + private Date updateTime; + /**鍒犻櫎鏍囪*/ + @ApiModelProperty(value = "鍒犻櫎鏍囪") + @TableLogic + private Integer delFlag; + /**宸ュ崟鍙�*/ + @ApiModelProperty(value = "宸ュ崟鍙�") + private String orderNum; + /**璁惧ID*/ + @ApiModelProperty(value = "璁惧ID") + @Dict(dictTable = "eam_equipment", dicCode = "equipment_code", dicText = "id") + private String equipmentId; + /**鏍囧噯ID*/ + @ApiModelProperty(value = "淇濆吇鏍囧噯ID") + @Dict(dictTable = "eam_maintenance_standard", dicCode = "standard_code", dicText = "id") + private String standardId; + /**鐐规鏃ユ湡*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "鐐规鏃ユ湡") + private Date inspectionDate; + /**鐐规杩囨湡鏃堕棿*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "鐐规杩囨湡鏃堕棿") + private Date expirationTime; + /**鐐规鏃堕棿*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "鐐规鏃堕棿") + private Date operateTime; + /**鐐规浜�*/ + @ApiModelProperty(value = "鐐规浜�-鏄鍙栦汉") + @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname") + private String operator; + /**鍒涘缓鏂瑰紡*/ + @ApiModelProperty(value = "鍒涘缓鏂瑰紡") + private String creationMethod; + /**鐐规鐘舵��*/ + @ApiModelProperty(value = "鐐规鐘舵�� 寰呯偣妫�-寰呯‘璁�-宸插畬鎴�") + private String inspectionStatus; + /**鐝粍闀跨‘璁�*/ + @ApiModelProperty(value = "鐝粍闀跨‘璁�--棰嗗彇鍚庝骇鐢�") + @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname") + private String confirmUser; + /**纭鏃堕棿*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "纭鏃堕棿") + private Date confirmTime; + /**澶囨敞*/ + @ApiModelProperty(value = "澶囨敞-鐐规宸ュ崟鍒涘缓澶囨敞") + private String remark; + /**鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧*/ + @ApiModelProperty(value = "鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧") + private String imageFiles; + + /**涓婁紶鏂囦欢瀵圭郴*/ + @ApiModelProperty(value = "涓婁紶鏂囦欢瀵硅薄") + private List<FileUploadResult> fileList; + + /**鍒楄〃 淇濆吇椤规槑缁�*/ + @ApiModelProperty(value = "鍒楄〃 淇濆吇椤规槑缁�") + private List<EamInspectionOrderDetail> tableDetailList; + + /**纭鎰忚*/ + @ApiModelProperty(value = "纭鎰忚") + private String confirmComment; + /** 纭绫诲瀷 1 閫氳繃 2 椹冲洖 */ + @ApiModelProperty(value = "纭绫诲瀷") + @Dict(dicCode = "approved_rejected") + private String confirmDealType; +} diff --git a/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceBatchApprovalRequest.java b/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceBatchApprovalRequest.java new file mode 100644 index 0000000..a461e3d --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceBatchApprovalRequest.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 EamMaintenanceBatchApprovalRequest 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/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceQuery.java b/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceQuery.java new file mode 100644 index 0000000..9abac89 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceQuery.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 EamMaintenanceQuery { + private String orderNum; + private String equipmentId; + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date maintenanceDateBegin; + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date maintenanceDateEnd; + private String maintenanceStatus; + + private String column; + private String order; +} diff --git a/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceRequest.java b/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceRequest.java new file mode 100644 index 0000000..33e0f8b --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceRequest.java @@ -0,0 +1,89 @@ +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.api.vo.FileUploadResult; +import org.jeecg.modules.eam.entity.EamMaintenanceOrderDetail; +import org.jeecg.modules.flowable.domain.vo.FlowTaskVo; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="淇濆吇瀵硅薄", description="淇濆吇") +public class EamMaintenanceRequest extends FlowTaskVo implements Serializable { + + /**涓婚敭*/ + @ApiModelProperty(value = "涓婚敭") + private String id; + /**宸ュ崟鍙�*/ + @ApiModelProperty(value = "宸ュ崟鍙�") + private String orderNum; + /**璁惧ID*/ + @ApiModelProperty(value = "璁惧ID") + private String equipmentId; + /**鏍囧噯ID*/ + @ApiModelProperty(value = "鏍囧噯ID") + private String standardId; + /**淇濆吇鏃ユ湡*/ + @ApiModelProperty(value = "淇濆吇鏃ユ湡") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date maintenanceDate; + /**淇濆吇浜�*/ + @ApiModelProperty(value = "淇濆吇浜�") + private String operator; + /**淇濆吇鍥剧墖*/ + @ApiModelProperty(value = "淇濆吇鍥剧墖") + private String imageFiles; + /**淇濆吇鍥剧墖*/ + @ApiModelProperty(value = "淇濆吇鍥剧墖") + private List<FileUploadResult> imageFilesResult; + /**澶囨敞*/ + @ApiModelProperty(value = "澶囨敞") + private String remark; + /**鍒涘缓鏂瑰紡*/ + @ApiModelProperty(value = "鍒涘缓鏂瑰紡") + private String creationMethod; + /**鍒楄〃 淇濆吇椤规槑缁�*/ + @ApiModelProperty(value = "鍒楄〃 淇濆吇椤规槑缁�") + private List<EamMaintenanceOrderDetail> tableDetailList; + /**鍒犻櫎 淇濆吇椤规槑缁�*/ + @ApiModelProperty(value = "鍒犻櫎 淇濆吇椤规槑缁�") + private List<EamMaintenanceOrderDetail> 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/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceStandardRequest.java b/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceStandardRequest.java new file mode 100644 index 0000000..d12e2ff --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceStandardRequest.java @@ -0,0 +1,74 @@ +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.api.vo.FileUploadResult; +import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="eam_maintenance_standard瀵硅薄", description="淇濆吇鏍囧噯") +public class EamMaintenanceStandardRequest implements Serializable { + + /**涓婚敭*/ + @ApiModelProperty(value = "涓婚敭") + private String id; + /**鏍囧噯缂栫爜*/ + @ApiModelProperty(value = "鏍囧噯缂栫爜") + private String standardCode; + /**鏍囧噯鍚嶇О*/ + @ApiModelProperty(value = "鏍囧噯鍚嶇О") + 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; + /**淇濆吇鍒嗙被*/ + @ApiModelProperty(value = "淇濆吇鍒嗙被") + private String maintenanceCategory; + /**璁惧ID*/ + @ApiModelProperty(value = "璁惧ID") + private String equipmentId; + /**鏍囧噯鐘舵��*/ + @ApiModelProperty(value = "鏍囧噯鐘舵��") + private String standardStatus; + /**鏍囧噯鐗堟湰*/ + @ApiModelProperty(value = "鏍囧噯鐗堟湰") + private Integer standardVersion; + /**鏂囦欢缂栧彿*/ + @ApiModelProperty(value = "鏂囦欢缂栧彿") + private String fileCode; + /**鍙傝�冩枃浠�*/ + @ApiModelProperty(value = "鍙傝�冩枃浠�") + private String referenceFile; + /**涓婁紶鏂囦欢瀵圭郴*/ + @ApiModelProperty(value = "涓婁紶鏂囦欢瀵硅薄") + private List<FileUploadResult> fileList; + /**鍒楄〃 淇濆吇椤规槑缁�*/ + @ApiModelProperty(value = "鍒楄〃 淇濆吇椤规槑缁�") + private List<EamMaintenanceStandardDetail> tableDetailList; + /**鍒犻櫎 淇濆吇椤规槑缁�*/ + @ApiModelProperty(value = "鍒犻櫎 淇濆吇椤规槑缁�") + private List<EamMaintenanceStandardDetail> removeDetailList; + + /** + * Excel瀵煎叆鏃朵娇鐢� + */ + private String equipmentName; + private String equipmentCode; + +} diff --git a/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderQuery.java b/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderQuery.java new file mode 100644 index 0000000..9039ad8 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderQuery.java @@ -0,0 +1,28 @@ +package org.jeecg.modules.eam.request; + +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecg.modules.eam.entity.EamRepairOrder; + +import java.io.Serializable; + +/** + * @Author: Lius + * @CreateTime: 2025-04-09 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="璇锋眰瀵硅薄", description="缁翠慨宸ュ崟") +public class EamRepairOrderQuery extends EamRepairOrder implements Serializable { + + private static final long serialVersionUID = 7710893031748864058L; + + + + private String column; + private String order; +} diff --git a/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java b/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java new file mode 100644 index 0000000..922934e --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java @@ -0,0 +1,76 @@ +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.FlowTaskVo; + +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 faultReason; + /** + * 缁翠慨缁撴灉鎻忚堪 + */ + @ApiModelProperty(value = "缁翠慨缁撴灉鎻忚堪") + private String repairDescription; + + /** + * 鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧 + */ + @ApiModelProperty(value = "鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧") + private String imageFiles; + + /**缁翠慨鍥剧墖*/ + @ApiModelProperty(value = "缁翠慨鍥剧墖闆嗗悎") + private List<FileUploadResult> imageFilesResult; + + /** + * 缁翠慨浜虹‘璁� + */ + private String repairConfirm; + private String repairConfirmComment; + + /** + * 棰嗗纭 + */ + private String leaderConfirm; + private String leaderConfirmComment; + + /** + * 鏈哄姩鍔炵‘璁� + */ + private String externalConfirm; + private String externalConfirmComment; + + /** + * 鎿嶄綔宸ョ‘璁ゆ剰瑙� + */ + private String confirmComment; +} diff --git a/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderResponse.java b/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderResponse.java new file mode 100644 index 0000000..2bf13c2 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderResponse.java @@ -0,0 +1,78 @@ +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.jeecgframework.poi.excel.annotation.Excel; +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/src/main/java/org/jeecg/modules/eam/request/EamReportRepairQuery.java b/src/main/java/org/jeecg/modules/eam/request/EamReportRepairQuery.java new file mode 100644 index 0000000..8bbc279 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/request/EamReportRepairQuery.java @@ -0,0 +1,44 @@ +package org.jeecg.modules.eam.request; + +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecg.modules.eam.entity.EamReportRepair; + +import java.io.Serializable; + +/** + * @Author: Lius + * @CreateTime: 2025-04-03 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="璇锋眰瀵硅薄", description="璁惧鎶ヤ慨") +public class EamReportRepairQuery extends EamReportRepair implements Serializable { + + private static final long serialVersionUID = -7111580122226167877L; + + /** + * 璁惧缂栫爜 + */ + private String equipmentCode; + + /** + * 寮�濮嬫椂闂� + */ + private String startTime; + /** + * 缁撴潫鏃堕棿 + */ + private String endTime; + /** + * 鎸囨淳浜猴紙缁翠慨璐熻矗浜猴級 + */ + private String repairer; + + private String column; + private String order; +} diff --git a/src/main/java/org/jeecg/modules/eam/request/EamSysFilesRequest.java b/src/main/java/org/jeecg/modules/eam/request/EamSysFilesRequest.java new file mode 100644 index 0000000..43f9b21 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/request/EamSysFilesRequest.java @@ -0,0 +1,30 @@ +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 EamSysFilesRequest implements Serializable { + /**鎻忚堪*/ + @ApiModelProperty(value = "鎻忚堪") + private String description; + /**涓婁紶鏂囦欢瀵圭郴*/ + @ApiModelProperty(value = "涓婁紶鏂囦欢瀵圭郴") + private List<FileUploadResult> fileList; +} diff --git a/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentAttachmentService.java b/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentAttachmentService.java new file mode 100644 index 0000000..c8ac11c --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentAttachmentService.java @@ -0,0 +1,30 @@ +package org.jeecg.modules.eam.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.eam.entity.EamEquipmentAttachment; +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/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentExtendService.java b/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentExtendService.java new file mode 100644 index 0000000..dd78661 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentExtendService.java @@ -0,0 +1,28 @@ +package org.jeecg.modules.eam.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.eam.entity.EamEquipmentExtend; + +/** + * @Description: 璁惧鍙拌处鎵╁睍琛� + * @Author: jeecg-boot + * @Date: 2025-03-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/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentFaultReasonService.java b/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentFaultReasonService.java new file mode 100644 index 0000000..e0b0290 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentFaultReasonService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.eam.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.eam.entity.EamEquipmentFaultReason; + +/** + * @Description: 璁惧鏁呴殰鍘熷洜缁存姢 + * @Author: jeecg-boot + * @Date: 2025-03-19 + * @Version: V1.0 + */ +public interface IEamEquipmentFaultReasonService extends IService<EamEquipmentFaultReason> { + +} diff --git a/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentHistoryLogService.java b/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentHistoryLogService.java new file mode 100644 index 0000000..18fa206 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentHistoryLogService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.eam.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.eam.entity.EamEquipmentHistoryLog; + +/** + * @Description: 璁惧灞ュ巻 + * @Author: jeecg-boot + * @Date: 2025-03-19 + * @Version: V1.0 + */ +public interface IEamEquipmentHistoryLogService extends IService<EamEquipmentHistoryLog> { + +} diff --git a/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentPrecisionParametersService.java b/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentPrecisionParametersService.java new file mode 100644 index 0000000..bfefaa8 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentPrecisionParametersService.java @@ -0,0 +1,39 @@ +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.modules.eam.entity.EamEquipmentPrecisionParameters; + +import java.util.List; + +/** + * @Description: 璁惧绮惧害鍙傛暟 + * @Author: jeecg-boot + * @Date: 2025-04-27 + * @Version: V1.0 + */ +public interface IEamEquipmentPrecisionParametersService extends IService<EamEquipmentPrecisionParameters> { + /** + * 鏌ヨ璁惧绮惧害鍙傛暟 + * @param equipmentId 璁惧ID + * @param parameterId 鍙傛暟ID + * @return + */ + EamEquipmentPrecisionParameters queryByEquipmentIdAndParameterId(String equipmentId, String parameterId); + + /** + * 鍒嗛〉鏌ヨ + * @param equipmentId + * @param page + * @return + */ + IPage<EamEquipmentPrecisionParameters> queryPageList(String equipmentId, Page<EamEquipmentPrecisionParameters> page); + + /** + * 鍒楄〃鏌ヨ + * @param equipmentId + * @return + */ + List<EamEquipmentPrecisionParameters> queryList(String equipmentId); +} diff --git a/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentProcessParametersService.java b/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentProcessParametersService.java new file mode 100644 index 0000000..c881016 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentProcessParametersService.java @@ -0,0 +1,31 @@ +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.modules.eam.entity.EamEquipmentProcessParameters; + +/** + * @Description: 璁惧宸ヨ壓鍙傛暟 + * @Author: jeecg-boot + * @Date: 2025-04-27 + * @Version: V1.0 + */ +public interface IEamEquipmentProcessParametersService extends IService<EamEquipmentProcessParameters> { + + /** + * 鏌ヨ璁惧宸ヨ壓鍙傛暟 + * @param equipmentId 璁惧缂栧彿 + * @param parameterId 鍙傛暟缂栧彿 + * @return + */ + EamEquipmentProcessParameters queryByEquipmentIdAndParameterId(String equipmentId, String parameterId); + + /** + * 鍒嗛〉鏌ヨ + * @param equipmentId + * @param page + * @return + */ + IPage<EamEquipmentProcessParameters> queryPageList(String equipmentId, Page<EamEquipmentProcessParameters> page); +} diff --git a/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java b/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java new file mode 100644 index 0000000..9814e2d --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java @@ -0,0 +1,55 @@ +package org.jeecg.modules.eam.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.eam.entity.EamEquipment; +import org.jeecg.modules.eam.request.EamEquipmentQuery; +import org.jeecg.modules.eam.vo.EamEquipmentTree; +import org.jeecg.modules.eam.vo.EquipmentSearchResult; + +import java.util.List; + +/** + * @Description: 璁惧鍙拌处 + * @Author: jeecg-boot + * @Date: 2025-03-19 + * @Version: V1.0 + */ +public interface IEamEquipmentService extends IService<EamEquipment> { + + /** + * 鍙拌处璁惧娣诲姞 + * @param eamEquipment + */ + EamEquipment saveEquipment(EamEquipment eamEquipment); + + /** + * 鑾峰彇浜х嚎涓嬬殑璁惧淇℃伅 + * @param ids 浜х嚎ids + * @return + */ +// List<EamEquipmentTree> loadTreeListByProductionIds(String ids); + + /** + * 璁惧鍙拌处鍒嗛〉鏌ヨ + * @param page + * @param eamEquipment + * @return + */ + IPage<EamEquipment> queryPageList(IPage<EamEquipment> page, EamEquipmentQuery eamEquipment); + + /** + * 鍏抽敭瀛楁悳绱� + * @param keyword + * @param pageSize + * @return + */ + List<EquipmentSearchResult> asyncLoadEquipment(String keyword, Integer pageSize, String id); + + /** + * 鏌ヨ璁惧淇℃伅 + * @param equipmentCode + * @return + */ + EamEquipment selectByEquipmentCode(String equipmentCode); +} diff --git a/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderDetailService.java b/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderDetailService.java new file mode 100644 index 0000000..0fd64c7 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderDetailService.java @@ -0,0 +1,21 @@ +package org.jeecg.modules.eam.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.eam.entity.EamInspectionOrderDetail; + +import java.util.List; + +/** + * @Description: 鐐规宸ュ崟鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-04-02 + * @Version: V1.0 + */ +public interface IEamInspectionOrderDetailService extends IService<EamInspectionOrderDetail> { + /** + * 鑾峰彇宸ュ崟淇濆吇椤瑰唴瀹� + * @param orderId 宸ュ崟ID + * @return + */ + List<EamInspectionOrderDetail> queryListByOrderId(String orderId); +} diff --git a/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderService.java b/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderService.java new file mode 100644 index 0000000..d6dd822 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderService.java @@ -0,0 +1,96 @@ +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 org.jeecg.modules.eam.vo.InspectionVo; + +import java.util.List; +import java.util.Map; + +/** + * @Description: 鐐规宸ュ崟 + * @Author: jeecg-boot + * @Date: 2025-04-02 + * @Version: V1.0 + */ +public interface IEamInspectionOrderService extends IService<EamInspectionOrder> { + + /** + * 鏂板鐐规宸ュ崟 + * @param eamInspectionOrderRequest + * @return + */ + boolean addInspectionOrder(EamInspectionOrderRequest eamInspectionOrderRequest); + + /** + * 缂栬緫鐐规宸ュ崟 + * @param eamInspectionOrderRequest + * @return + */ + boolean editInspectionOrder(EamInspectionOrderRequest eamInspectionOrderRequest); + + /** + * 棰嗗彇鐐规宸ュ崟 + * @param id + * @return + */ + boolean takeInspectionOrder(String id); + + /** + * 浣滃簾鐐规宸ュ崟 + * @param id + * @return + */ + boolean cancelInspectionOrder(String id); + + /** + * 鎵归噺浣滃簾涓庨鍙� + * @param ids + * @param type + * @return + */ + Result<?> batchCancelOrTakeInspectionOrder(String ids, String type); + + /** + * 鏌ヨ鐐规宸ュ崟鍩烘湰淇℃伅 + * @param id + * @return + */ + Result<?> selectVoById(String id); + + /** + * 鐐规娴佺▼ + * @param eamInspectionOrderRequest + * @return + */ + 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); + + /** + * 鐐规鎶ヨ〃 new + */ + List<InspectionVo> findInspectionResult(String equipmentId, String itemDemand,String yearMonth); + + List<InspectionVo> findInspectionUser(String equipmentId,String yearMonth); + + List<Map<String,Object>> findInspectionStandard(String equipmentId); +} diff --git a/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceOrderDetailService.java b/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceOrderDetailService.java new file mode 100644 index 0000000..9c561f5 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceOrderDetailService.java @@ -0,0 +1,22 @@ +package org.jeecg.modules.eam.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.eam.entity.EamMaintenanceOrderDetail; + +import java.util.List; + +/** + * @Description: 淇濆吇宸ュ崟鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-04-02 + * @Version: V1.0 + */ +public interface IEamMaintenanceOrderDetailService extends IService<EamMaintenanceOrderDetail> { + + /** + * 鏍规嵁宸ュ崟ID 鏌ヨ淇濆吇鏄庣粏 + * @param orderId + * @return + */ + List<EamMaintenanceOrderDetail> queryListByOrderId(String orderId); +} diff --git a/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceOrderService.java b/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceOrderService.java new file mode 100644 index 0000000..ebcaf1f --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceOrderService.java @@ -0,0 +1,62 @@ +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.modules.eam.entity.EamMaintenanceOrder; +import org.jeecg.modules.eam.request.EamMaintenanceQuery; +import org.jeecg.modules.eam.request.EamMaintenanceRequest; + +import java.util.List; + +/** + * @Description: 淇濆吇宸ュ崟 + * @Author: jeecg-boot + * @Date: 2025-04-02 + * @Version: V1.0 + */ +public interface IEamMaintenanceOrderService extends IService<EamMaintenanceOrder> { + + /** + * 鎵嬪姩鏂板宸ュ崟 + * @param request + * @return + */ + boolean addMaintenance(EamMaintenanceRequest request); + + /** + * 鍒嗛〉鏌ヨ + * @param page + * @param query + * @return + */ + IPage<EamMaintenanceOrder> queryPageList(Page<EamMaintenanceOrder> page, EamMaintenanceQuery query); + + /** + * 淇濆吇缂栬緫鐘舵�� + * @param request + * @return + */ + boolean editMaintenance(EamMaintenanceRequest request); + + /** + * 棰嗗彇淇濆吇宸ュ崟 + * @param id + * @return + */ + boolean collect(String id); + + /** + * 鎴戠殑寰呭姙锛屽鎵瑰姩浣� + * @param request + * @return + */ + EamMaintenanceOrder approval(EamMaintenanceRequest request); + + /** + * 鑾峰彇浠婂ぉ涔嬪墠鏈繚鍏诲畬鎴愮殑宸ュ崟 + * @param expiredDate 杩囨湡鏃ユ湡 + * @return + */ + List<EamMaintenanceOrder> selectUnCompleteOrder(String expiredDate); +} diff --git a/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardDetailService.java b/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardDetailService.java new file mode 100644 index 0000000..c5981af --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardDetailService.java @@ -0,0 +1,21 @@ +package org.jeecg.modules.eam.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail; + +import java.util.List; + +/** + * @Description: 淇濆吇鏍囧噯鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-03-26 + * @Version: V1.0 + */ +public interface IEamMaintenanceStandardDetailService extends IService<EamMaintenanceStandardDetail> { + /** + * 鑾峰彇鏍囧噯涓嬫槑缁嗛」淇℃伅 + * @param standardId + * @return + */ + List<EamMaintenanceStandardDetail> selectByStandardId(String standardId); +} diff --git a/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java b/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java new file mode 100644 index 0000000..c136e81 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java @@ -0,0 +1,67 @@ +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.modules.eam.entity.EamMaintenanceStandard; +import org.jeecg.modules.eam.request.EamMaintenanceStandardRequest; + +import java.util.List; + +/** + * @Description: 淇濆吇鏍囧噯 + * @Author: jeecg-boot + * @Date: 2025-03-26 + * @Version: V1.0 + */ +public interface IEamMaintenanceStandardService extends IService<EamMaintenanceStandard> { + /** + * 鍒嗛〉鏌ヨ + * @param page + * @param eamMaintenanceStandard + * @return + */ + IPage<EamMaintenanceStandard> queryPageList(Page<EamMaintenanceStandard> page, EamMaintenanceStandard eamMaintenanceStandard); + + /** + * 鏂板 淇濆吇鏍囧噯 + * @param standardRequest + */ + boolean addMaintenanceStandard(EamMaintenanceStandardRequest standardRequest); + + /** + * 鏂板 淇濆吇鏍囧噯 + * @param standardRequest + */ + boolean editMaintenanceStandard(EamMaintenanceStandardRequest standardRequest); + + /** + * 鍗囩増 + * @param standardRequest + * @return + */ + boolean upgradeMaintenanceStandard(EamMaintenanceStandardRequest standardRequest); + + /** + * 閲嶅鎬ф牎楠� + * @param equipmentId 璁惧缂栧彿 + * @param maintenanceCategory 淇濆吇绫诲瀷 + * @return + */ + EamMaintenanceStandard checkDuplicate(String equipmentId, String maintenanceCategory); + + /** + * 鏌ヨ鏍囧噯鍒楄〃-鍓嶇灞曠ず璇ョ敤鎴锋嫢鏈夌殑鏍囧噯 + * @param keyword 鍏抽敭璇� + * @param maintenanceCategory 淇濆吇绫诲瀷 + * @return + */ + List<EamMaintenanceStandard> queryListByKeywordAndCategory(String keyword, String equipmentId, Integer pageSize, String maintenanceCategory); + + /** + * 鏌ヨ淇濆吇绫诲瀷涓嬫甯哥殑淇濆吇鏍囧噯 + * @param maintenanceCategory 淇濆吇绫诲瀷 + * @return + */ + List<EamMaintenanceStandard> queryListByCategory(String maintenanceCategory); +} diff --git a/src/main/java/org/jeecg/modules/eam/service/IEamPrecisionCheckDetailService.java b/src/main/java/org/jeecg/modules/eam/service/IEamPrecisionCheckDetailService.java new file mode 100644 index 0000000..3a40ced --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/IEamPrecisionCheckDetailService.java @@ -0,0 +1,30 @@ +package org.jeecg.modules.eam.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.eam.entity.EamPrecisionCheckDetail; + +import java.util.List; + +/** + * @Description: 璁惧绮惧害妫�娴嬫槑缁� + * @Author: jeecg-boot + * @Date: 2025-05-13 + * @Version: V1.0 + */ +public interface IEamPrecisionCheckDetailService extends IService<EamPrecisionCheckDetail> { + + /** + * 鏍规嵁宸ュ崟ID 鏌ヨ 绮惧害淇℃伅 + * @param orderId + * @return + */ + List<EamPrecisionCheckDetail> getByOrderId(String orderId); + + /** + * 鏍¢獙鏄惁瀛樺湪绮惧害妫�楠� + * @param orderId + * @return + */ + boolean hasPrecisionCheckDetail(String orderId); + +} diff --git a/src/main/java/org/jeecg/modules/eam/service/IEamPrecisionParametersService.java b/src/main/java/org/jeecg/modules/eam/service/IEamPrecisionParametersService.java new file mode 100644 index 0000000..5e36900 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/IEamPrecisionParametersService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.eam.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.eam.entity.EamPrecisionParameters; + +/** + * @Description: 绮惧害鍙傛暟缁存姢 + * @Author: jeecg-boot + * @Date: 2025-03-17 + * @Version: V1.0 + */ +public interface IEamPrecisionParametersService extends IService<EamPrecisionParameters> { + +} diff --git a/src/main/java/org/jeecg/modules/eam/service/IEamProcessParametersService.java b/src/main/java/org/jeecg/modules/eam/service/IEamProcessParametersService.java new file mode 100644 index 0000000..3bd6983 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/IEamProcessParametersService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.eam.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.eam.entity.EamProcessParameters; + +/** + * @Description: 宸ュ簭鍙傛暟缁存姢 + * @Author: jeecg-boot + * @Date: 2025-03-17 + * @Version: V1.0 + */ +public interface IEamProcessParametersService extends IService<EamProcessParameters> { + +} diff --git a/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java b/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java new file mode 100644 index 0000000..2c015e4 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java @@ -0,0 +1,47 @@ +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.modules.eam.entity.EamRepairOrder; +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: 缁翠慨宸ュ崟 + * @Author: Lius + * @Date: 2025-04-03 + */ +public interface IEamRepairOrderService extends IService<EamRepairOrder> { + + /** + * 鍒嗛〉鍒楄〃 + * @param page + * @param eamRepairOrderQuery + * @return + */ + IPage<EamRepairOrder> pageList(Page<EamRepairOrder> page, EamRepairOrderQuery eamRepairOrderQuery); + + /** + * 棰嗗彇宸ュ崟锛屽惎鍔ㄧ淮淇祦绋� + * @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/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java b/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java new file mode 100644 index 0000000..f123ee2 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java @@ -0,0 +1,57 @@ +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.modules.eam.entity.EamInspectionOrderDetail; +import org.jeecg.modules.eam.entity.EamMaintenanceOrderDetail; +import org.jeecg.modules.eam.entity.EamReportRepair; +import org.jeecg.modules.eam.request.EamReportRepairQuery; + +import java.util.List; + +/** + * @Description: 鏁呴殰鎶ヤ慨 + * @Author: Lius + * @Date: 2025-04-01 + */ +public interface IEamReportRepairService extends IService<EamReportRepair> { + + /** + * 鍒嗛〉鍒楄〃 + * @param page + * @param eamReportRepairQuery + * @return + */ + IPage<EamReportRepair> pageList(Page<EamReportRepair> page, EamReportRepairQuery eamReportRepairQuery); + + /** + * 浠庝繚鍏讳腑鐢熸垚鎶ヤ慨 + * @param detailList + * @return + */ + EamReportRepair reportRepairFromMaintenance(String equipmentId, String reportUser, List<EamMaintenanceOrderDetail> 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/src/main/java/org/jeecg/modules/eam/service/IEamSysFilesService.java b/src/main/java/org/jeecg/modules/eam/service/IEamSysFilesService.java new file mode 100644 index 0000000..6b0c5f7 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/IEamSysFilesService.java @@ -0,0 +1,45 @@ +package org.jeecg.modules.eam.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.common.api.vo.FileUploadResult; +import org.jeecg.modules.eam.entity.EamSysFiles; +import org.jeecg.modules.eam.request.EamSysFilesRequest; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; + +/** + * @Description: 璁惧闄勪欢绠$悊 + * @Author: jeecg-boot + * @Date: 2025-03-17 + * @Version: V1.0 + */ +public interface IEamSysFilesService extends IService<EamSysFiles> { + + /** + * 涓嬭浇鏂囦欢 + * @param response + * @param byId + */ + void downloadFile(HttpServletResponse response, EamSysFiles byId); + + /** + * 涓婁紶闄勪欢 + * @param file + * @return + */ + FileUploadResult uploadFile(MultipartFile file); + + /** + * 鎵归噺娣诲姞璁惧闄勪欢 + * @param request + */ + boolean saveEamSysFiles(EamSysFilesRequest request); + + /** + * 鏍规嵁璺緞鑾峰彇鏂囦欢 + * @param path + * @return + */ + EamSysFiles getByPath(String path); +} diff --git a/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentAttachmentServiceImpl.java b/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentAttachmentServiceImpl.java new file mode 100644 index 0000000..2dbbe82 --- /dev/null +++ b/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/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentExtendServiceImpl.java b/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentExtendServiceImpl.java new file mode 100644 index 0000000..292b944 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentExtendServiceImpl.java @@ -0,0 +1,47 @@ +package org.jeecg.modules.eam.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.modules.eam.entity.EamEquipmentExtend; +import org.jeecg.modules.eam.mapper.EamEquipmentExtendMapper; +import org.jeecg.modules.eam.service.IEamEquipmentExtendService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; + +/** + * @Description: 璁惧鍙拌处鎵╁睍琛� + * @Author: jeecg-boot + * @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/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentFaultReasonServiceImpl.java b/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentFaultReasonServiceImpl.java new file mode 100644 index 0000000..32cbbbd --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentFaultReasonServiceImpl.java @@ -0,0 +1,18 @@ +package org.jeecg.modules.eam.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.modules.eam.entity.EamEquipmentFaultReason; +import org.jeecg.modules.eam.mapper.EamEquipmentFaultReasonMapper; +import org.jeecg.modules.eam.service.IEamEquipmentFaultReasonService; +import org.springframework.stereotype.Service; + +/** + * @Description: 璁惧鏁呴殰鍘熷洜缁存姢 + * @Author: jeecg-boot + * @Date: 2025-03-19 + * @Version: V1.0 + */ +@Service +public class EamEquipmentFaultReasonServiceImpl extends ServiceImpl<EamEquipmentFaultReasonMapper, EamEquipmentFaultReason> implements IEamEquipmentFaultReasonService { + +} diff --git a/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentHistoryLogServiceImpl.java b/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentHistoryLogServiceImpl.java new file mode 100644 index 0000000..b9ff3f5 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentHistoryLogServiceImpl.java @@ -0,0 +1,18 @@ +package org.jeecg.modules.eam.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.modules.eam.entity.EamEquipmentHistoryLog; +import org.jeecg.modules.eam.mapper.EamEquipmentHistoryLogMapper; +import org.jeecg.modules.eam.service.IEamEquipmentHistoryLogService; +import org.springframework.stereotype.Service; + +/** + * @Description: 璁惧灞ュ巻 + * @Author: jeecg-boot + * @Date: 2025-03-19 + * @Version: V1.0 + */ +@Service +public class EamEquipmentHistoryLogServiceImpl extends ServiceImpl<EamEquipmentHistoryLogMapper, EamEquipmentHistoryLog> implements IEamEquipmentHistoryLogService { + +} diff --git a/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentPrecisionParametersServiceImpl.java b/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentPrecisionParametersServiceImpl.java new file mode 100644 index 0000000..a18493c --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentPrecisionParametersServiceImpl.java @@ -0,0 +1,51 @@ +package org.jeecg.modules.eam.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.modules.eam.entity.EamEquipmentPrecisionParameters; +import org.jeecg.modules.eam.mapper.EamEquipmentPrecisionParametersMapper; +import org.jeecg.modules.eam.service.IEamEquipmentPrecisionParametersService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Description: 璁惧绮惧害鍙傛暟 + * @Author: jeecg-boot + * @Date: 2025-04-27 + * @Version: V1.0 + */ +@Service +public class EamEquipmentPrecisionParametersServiceImpl extends ServiceImpl<EamEquipmentPrecisionParametersMapper, EamEquipmentPrecisionParameters> implements IEamEquipmentPrecisionParametersService { + + @Resource + private EamEquipmentPrecisionParametersMapper eamEquipmentPrecisionParametersMapper; + + @Override + public EamEquipmentPrecisionParameters queryByEquipmentIdAndParameterId(String equipmentId, String parameterId) { + LambdaQueryWrapper<EamEquipmentPrecisionParameters> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamEquipmentPrecisionParameters::getEquipmentId, equipmentId); + queryWrapper.eq(EamEquipmentPrecisionParameters::getParameterId, parameterId); + return eamEquipmentPrecisionParametersMapper.selectOne(queryWrapper); + } + + @Override + public IPage<EamEquipmentPrecisionParameters> queryPageList(String equipmentId, Page<EamEquipmentPrecisionParameters> page) { + QueryWrapper<EamEquipmentPrecisionParameters> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("wmo.equipment_id", equipmentId); + queryWrapper.orderByDesc("wmo.create_time"); + return eamEquipmentPrecisionParametersMapper.queryPageList(page, queryWrapper); + } + + @Override + public List<EamEquipmentPrecisionParameters> queryList(String equipmentId) { + LambdaQueryWrapper<EamEquipmentPrecisionParameters> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamEquipmentPrecisionParameters::getEquipmentId, equipmentId); + queryWrapper.orderByDesc(EamEquipmentPrecisionParameters::getCreateTime); + return eamEquipmentPrecisionParametersMapper.selectList(queryWrapper); + } +} diff --git a/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentProcessParametersServiceImpl.java b/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentProcessParametersServiceImpl.java new file mode 100644 index 0000000..03051f8 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentProcessParametersServiceImpl.java @@ -0,0 +1,42 @@ +package org.jeecg.modules.eam.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.modules.eam.entity.EamEquipmentProcessParameters; +import org.jeecg.modules.eam.mapper.EamEquipmentProcessParametersMapper; +import org.jeecg.modules.eam.service.IEamEquipmentProcessParametersService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * @Description: 璁惧宸ヨ壓鍙傛暟 + * @Author: jeecg-boot + * @Date: 2025-04-27 + * @Version: V1.0 + */ +@Service +public class EamEquipmentProcessParametersServiceImpl extends ServiceImpl<EamEquipmentProcessParametersMapper, EamEquipmentProcessParameters> implements IEamEquipmentProcessParametersService { + + @Resource + private EamEquipmentProcessParametersMapper eamEquipmentProcessParametersMapper; + + @Override + public EamEquipmentProcessParameters queryByEquipmentIdAndParameterId(String equipmentId, String parameterId) { + LambdaQueryWrapper<EamEquipmentProcessParameters> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamEquipmentProcessParameters::getEquipmentId, equipmentId); + queryWrapper.eq(EamEquipmentProcessParameters::getParameterId, parameterId); + return eamEquipmentProcessParametersMapper.selectOne(queryWrapper); + } + + @Override + public IPage<EamEquipmentProcessParameters> queryPageList(String equipmentId, Page<EamEquipmentProcessParameters> page) { + QueryWrapper<EamEquipmentProcessParameters> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("wmo.equipment_id", equipmentId); + queryWrapper.orderByDesc("wmo.create_time"); + return eamEquipmentProcessParametersMapper.queryPageList(page, queryWrapper); + } +} diff --git a/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java b/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java new file mode 100644 index 0000000..040d6e0 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java @@ -0,0 +1,278 @@ +package org.jeecg.modules.eam.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +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 org.apache.commons.lang3.StringUtils; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.constant.DataBaseConstant; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog; +import org.jeecg.modules.eam.constant.AssetStatusEnum; +import org.jeecg.modules.eam.constant.EquipmentMaintenanceStatus; +import org.jeecg.modules.eam.constant.EquipmentOperationTagEnum; +import org.jeecg.modules.eam.constant.EquipmentRepairStatus; +import org.jeecg.modules.eam.entity.EamEquipment; +import org.jeecg.modules.eam.entity.EamEquipmentExtend; +import org.jeecg.modules.eam.mapper.EamEquipmentMapper; +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.EquipmentSearchResult; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +/** + * @Description: 璁惧鍙拌处 + * @Author: jeecg-boot + * @Date: 2025-03-19 + * @Version: V1.0 + */ +@Service +public class EamEquipmentServiceImpl extends ServiceImpl<EamEquipmentMapper, EamEquipment> implements IEamEquipmentService { + + @Resource + private EamEquipmentMapper eamEquipmentMapper; + @Autowired + private IEamEquipmentExtendService equipmentExtendService; +// @Autowired +// private IMdcProductionService mdcProductionService; + + @Override + @Transactional(rollbackFor = Exception.class) + @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.ACCEPTANCE, businessTable = "eam_equipment") + public EamEquipment saveEquipment(EamEquipment eamEquipment) { + if (eamEquipment == null) { + return null; + } + //璧勪骇鐘舵�侀粯璁� 姝e父 + eamEquipment.setAssetStatus(AssetStatusEnum.NORMAL.name()); + eamEquipment.setDelFlag(CommonConstant.DEL_FLAG_0); + eamEquipmentMapper.insert(eamEquipment); + + //鎵╁睍琛ㄦ暟鎹悓姝ユ坊鍔� + EamEquipmentExtend eamEquipmentExtend = new EamEquipmentExtend(); + eamEquipmentExtend.setId(eamEquipment.getId()); + eamEquipmentExtend.setMaintenanceStatus(EquipmentMaintenanceStatus.NORMAL.name()); + eamEquipmentExtend.setRepairStatus(EquipmentRepairStatus.NORMAL.name()); + + equipmentExtendService.save(eamEquipmentExtend); + + //鎻掑叆璁惧灞ュ巻 @EquipmentHistoryLog + return eamEquipment; + } + +// @Override +// public List<EamEquipmentTree> loadTreeListByProductionIds(String ids) { +// List<String> productionIds = Arrays.asList(ids.split(",")); +// //鑾峰彇鎵�鏈変骇绾挎暟鎹� +// List<MdcProduction> productionList = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()).orderByAsc(MdcProduction::getProductionOrder)); +// List<String> allProductionIds = new ArrayList<>(); +// //鎵惧埌鎵�鏈変骇绾縤d鐨勪笂绾d +// if (!productionIds.isEmpty()) { +// for (String productionId : productionIds) { +// this.getAllProductionIds(productionList, productionId, allProductionIds); +// } +// } +// //杩囨护浜х嚎鏁版嵁 +// List<MdcProduction> list = productionList.stream().filter((MdcProduction mdcProduction) -> allProductionIds.contains(mdcProduction.getId())).collect(Collectors.toList()); +// //缁勮浜х嚎璁惧鏍� +// List<EamEquipmentTree> treeList = FindsEquipmentProductionUtil.wrapEquipmentProductionTreeList(list); +// //濉厖璁惧鏁版嵁 +// fillEquipmentByProduction(treeList); +// return treeList; +// } + + @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) { + 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 (eamEquipment != null) { + if (StringUtils.isNotBlank(eamEquipment.getEquipmentCode())) { + queryWrapper.like("e.equipment_code", eamEquipment.getEquipmentCode()); + } + if (StringUtils.isNotBlank(eamEquipment.getEquipmentName())) { + queryWrapper.like("e.equipment_name", eamEquipment.getEquipmentName()); + } + if (StringUtils.isNotBlank(eamEquipment.getEquipmentImportance())) { + queryWrapper.eq("e.equipment_importance", eamEquipment.getEquipmentImportance()); + } + if (StringUtils.isNotBlank(eamEquipment.getAssetStatus())) { + queryWrapper.like("e.asset_status", eamEquipment.getAssetStatus()); + } + if (StringUtils.isNotBlank(eamEquipment.getTechnologyStatus())) { + queryWrapper.like("e.technology_status", eamEquipment.getTechnologyStatus()); + } + if (StringUtils.isNotBlank(eamEquipment.getOperationSystem())) { + queryWrapper.like("e.operation_system", eamEquipment.getOperationSystem()); + } +// if (StringUtils.isNotBlank(eamEquipment.getOrgId())) { +// //杞﹂棿缂栫爜涓嶄负绌� +// List<String> productIds = mdcProductionService.recursionChildren(eamEquipment.getOrgId()); +// if (CollectionUtil.isNotEmpty(productIds)) { +// //涓嶅仛绛涢�� +// queryWrapper.in("e.org_id", productIds); +// } +// } + if (StringUtils.isNotBlank(eamEquipment.getEquipmentCategory())) { + queryWrapper.like("e.equipment_category", eamEquipment.getEquipmentCategory()); + } + if (StringUtils.isNotBlank(eamEquipment.getId())) { + queryWrapper.eq("e.id", eamEquipment.getId()); + } + //鎺掑簭 + if (StringUtils.isNotBlank(eamEquipment.getColumn()) && StringUtils.isNotBlank(eamEquipment.getOrder())) { + //queryWrapper.like("column", eamEquipment.getColumn()); + String column = eamEquipment.getColumn(); + if (column.endsWith(CommonConstant.DICT_TEXT_SUFFIX)) { + column = column.substring(0, column.lastIndexOf(CommonConstant.DICT_TEXT_SUFFIX)); + } + if (DataBaseConstant.SQL_ASC.equalsIgnoreCase(eamEquipment.getOrder())) { + queryWrapper.orderByAsc("e." + oConvertUtils.camelToUnderline(column)); + } else { + queryWrapper.orderByDesc("e." + oConvertUtils.camelToUnderline(column)); + } + } else { + queryWrapper.orderByDesc("e.create_time"); + } + } else { + queryWrapper.orderByDesc("e.create_time"); + } + + IPage<EamEquipment> ipage = eamEquipmentMapper.queryPageList(page, queryWrapper); + return ipage; + } + + @Override + public List<EquipmentSearchResult> asyncLoadEquipment(String keyword, Integer pageSize, String id) { + if (StringUtils.isNotBlank(id)) { + EamEquipment eamEquipment = eamEquipmentMapper.selectById(id); + if (eamEquipment != null) { + List<EquipmentSearchResult> resultList = new ArrayList<>(); + resultList.add(new EquipmentSearchResult(eamEquipment)); + return resultList; + } + } + IPage<EamEquipment> page = new Page<>(1, pageSize); + QueryWrapper<EamEquipment> queryWrapper = new QueryWrapper<>(); + //鐢ㄦ埛鏁版嵁鏉冮檺 + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (sysUser == null) { + return Collections.emptyList(); + } + if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) { + //閫夋嫨浜嗚澶囷紝鏍规嵁璁惧id杩囨护璁惧 + List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(",")); + queryWrapper.in("equipment_code", equipArr); + } else { + //娌℃湁閫夋嫨璁惧锛屾牴鎹溅闂磋繃婊よ澶� + queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=org_id", sysUser.getId()); + } + if (StringUtils.isNotBlank(keyword)) { + queryWrapper.like("equipment_code", keyword); + queryWrapper.or().like("equipment_name", keyword); + } + queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0); + IPage<EamEquipment> pageResult = eamEquipmentMapper.queryPageList(page, queryWrapper); + if (pageResult != null && CollectionUtil.isNotEmpty(pageResult.getRecords())) { + List<EquipmentSearchResult> resultList = new ArrayList<>(); + pageResult.getRecords().forEach((record) -> { + resultList.add(new EquipmentSearchResult(record)); + }); + return resultList; + } + return Collections.emptyList(); + } + + @Override + public EamEquipment selectByEquipmentCode(String equipmentCode) { + if (StringUtils.isBlank(equipmentCode)) { + return null; + } + QueryWrapper<EamEquipment> queryWrapper = new QueryWrapper<>(); + //鐢ㄦ埛鏁版嵁鏉冮檺 + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (sysUser == null) { + return null; + } + if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) { + //閫夋嫨浜嗚澶囷紝鏍规嵁璁惧id杩囨护璁惧 + List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(",")); + queryWrapper.in("equipment_code", equipArr); + } else { + //娌℃湁閫夋嫨璁惧锛屾牴鎹溅闂磋繃婊よ澶� + queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=org_id", sysUser.getId()); + } + queryWrapper.eq("equipment_code", equipmentCode); + queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0); + + return eamEquipmentMapper.selectOne(queryWrapper); + } + + /** + * 鑾峰彇鎵�鏈夌殑浜х嚎id锛堝寘鍚墍鏈変笂绾э級 + */ +// private void getAllProductionIds(List<MdcProduction> productionList, String productionId, List<String> allProductionIds) { +// if (!allProductionIds.contains(productionId)) { +// allProductionIds.add(productionId); +// } +// for (MdcProduction mdcProduction : productionList) { +// if (StringUtils.isEmpty(mdcProduction.getParentId())) { +// continue; +// } +// if (productionId.equals(mdcProduction.getId())) { +// if (!allProductionIds.contains(mdcProduction.getParentId())) { +// allProductionIds.add(mdcProduction.getParentId()); +// getAllProductionIds(productionList, mdcProduction.getParentId(), allProductionIds); +// } +// } +// } +// } + + /** + * 浜х嚎璁惧鏍戝~鍏呰澶囨暟鎹� + */ +// private void fillEquipmentByProduction(List<EamEquipmentTree> treeList) { +// for (EamEquipmentTree mdcEquipmentTree : treeList) { +// List<EamEquipment> equipmentList = eamEquipmentMapper.queryByProductionId(mdcEquipmentTree.getKey()); +// if (CollectionUtil.isNotEmpty(equipmentList)) { +// for (EamEquipment mdcEquipment : equipmentList) { +// EamEquipmentTree tree = new EamEquipmentTree().convert(mdcEquipment); +// tree.setParentId(mdcEquipmentTree.getKey()); +// tree.setType(2); +// mdcEquipmentTree.getChildren().add(tree); +// } +// mdcEquipmentTree.setLeaf(false); +// } +// if (CollectionUtil.isNotEmpty(mdcEquipmentTree.getChildren())) { +// fillEquipmentByProduction(mdcEquipmentTree.getChildren()); +// } +// } +// } + +} diff --git a/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderDetailServiceImpl.java b/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderDetailServiceImpl.java new file mode 100644 index 0000000..36bf8b5 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderDetailServiceImpl.java @@ -0,0 +1,28 @@ +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.List; + +/** + * @Description: 鐐规宸ュ崟鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-04-02 + * @Version: V1.0 + */ +@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/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java b/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java new file mode 100644 index 0000000..696baeb --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java @@ -0,0 +1,556 @@ +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.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.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.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.eam.vo.InspectionVo; +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; +import org.jeecg.modules.flowable.apithird.service.FlowCommonService; +import org.jeecg.modules.flowable.service.IFlowDefinitionService; +import org.jeecg.modules.flowable.service.IFlowTaskService; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.*; + +/** + * @Description: 鐐规宸ュ崟 + * @Author: jeecg-boot + * @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 + private FlowCommonService flowCommonService; + @Resource + private IFlowDefinitionService flowDefinitionService; + @Autowired + private IFlowTaskService flowTaskService; + @Autowired + private IEamEquipmentService eamEquipmentService; + @Autowired + private FlowMyBusinessServiceImpl flowMyBusinessService; + @Autowired + private TaskService taskService; + @Autowired + private IEamEquipmentService iEamEquipmentService; + @Autowired + private IEamReportRepairService eamReportRepairService; + + @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); + //淇敼鐘舵�� + 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())) { + eamInspectionOrderRequest.getTableDetailList().forEach(tableDetail -> { + tableDetail.setOrderId(eamInspectionOrder.getId()); + tableDetail.setId(null); + }); + eamInspectionOrderDetailService.saveBatch(eamInspectionOrderRequest.getTableDetailList()); + } + //澶勭悊闄勪欢 + if (CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getFileList())) { + FileUploadResult fileUploadResult = eamInspectionOrderRequest.getFileList().get(0); + ObjectMapper mapper = new ObjectMapper(); + try { + String referenceFile = mapper.writeValueAsString(fileUploadResult); + eamInspectionOrder.setImageFiles(referenceFile); + } catch (JsonProcessingException e) { + log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e); + } + } + if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())) { + triggerProcess(eamInspectionOrder); + } + return true; + } + + /** + * 瑙﹀彂娴佺▼ + * + * @param eamInspectionOrder + * @return + */ + public boolean triggerProcess(EamInspectionOrder eamInspectionOrder) { + EamEquipment equipment = eamEquipmentService.getById(eamInspectionOrder.getEquipmentId()); + if (equipment == null) { + return false; + } else { + eamInspectionOrder.setEquipmentCode(equipment.getEquipmentCode()); + } + flowCommonService.initActBusiness("宸ュ崟鍙�: " + eamInspectionOrder.getOrderNum() + ";璁惧缂栧彿: " + eamInspectionOrder.getEquipmentCode() + ";瀹夎浣嶇疆: " + equipment.getInstallationPosition(), + eamInspectionOrder.getId(), "IEamInspectionOrderService", "eam_inspection", null); + Map<String, Object> variables = new HashMap<>(); + variables.put("dataId", eamInspectionOrder.getId()); + if (StrUtil.isEmpty(eamInspectionOrder.getRemark())) { + variables.put("organization", "鏂板鐐规宸ュ崟榛樿鍚姩娴佺▼"); + variables.put("comment", "鏂板鐐规宸ュ崟榛樿鍚姩娴佺▼"); + } else { + variables.put("organization", eamInspectionOrder.getRemark()); + variables.put("comment", eamInspectionOrder.getRemark()); + } + variables.put("proofreading", true); + List<String> usernames = new ArrayList<>(); + usernames.add(eamInspectionOrder.getOperator()); + variables.put("NextAssignee", usernames); + Result result = flowDefinitionService.startProcessInstanceByKey("eam_inspection", variables); + return result.isSuccess(); + } + + + @Override + public boolean editInspectionOrder(EamInspectionOrderRequest eamInspectionOrderRequest) { + EamInspectionOrder eamInspectionOrder = new EamInspectionOrder(); + BeanUtils.copyProperties(eamInspectionOrderRequest, eamInspectionOrder); + if (StrUtil.isNotEmpty(eamInspectionOrder.getOperator())) { + eamInspectionOrder.setInspectionStatus(InspectionStatus.UNDER_INSPECTION.name()); + } + super.updateById(eamInspectionOrder); + //澶勭悊鏄庣粏鏁版嵁 + if (CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getTableDetailList())) { + eamInspectionOrderRequest.getTableDetailList().forEach(tableDetail -> { + tableDetail.setOrderId(eamInspectionOrder.getId()); + tableDetail.setCreateTime(new Date()); + }); + //鍒犻櫎鏄庣粏 + eamInspectionOrderDetailService.remove(new QueryWrapper<EamInspectionOrderDetail>().eq("order_id", eamInspectionOrder.getId())); + eamInspectionOrderDetailService.saveBatch(eamInspectionOrderRequest.getTableDetailList()); + } + return true; + } + + /** + * 棰嗗彇鐐规宸ュ崟 + * + * @param id + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean takeInspectionOrder(String id) { + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if(user == null || !BusinessCodeConst.PCR0001.equals(user.getPost())) { + throw new JeecgBootException("涓嶆槸鎿嶄綔宸ワ紝鏃犳硶棰嗗彇姝ゅ伐鍗曪紒"); + } + EamInspectionOrder eamInspectionOrder = this.getById(id); + if (eamInspectionOrder == null) { + return false; + } else { + eamInspectionOrder.setOperator(user.getUsername()); + //淇敼鐘舵�� + eamInspectionOrder.setInspectionStatus(InspectionStatus.UNDER_INSPECTION.name()); + this.triggerProcess(eamInspectionOrder); + this.updateById(eamInspectionOrder); + return true; + } + } + + /** + * 浣滃簾鐐规宸ュ崟 + * + * @param id + * @return + */ + @Override + public boolean cancelInspectionOrder(String id) { + EamInspectionOrder eamInspectionOrder = this.getById(id); + if (eamInspectionOrder == null) { + return false; + } else { + eamInspectionOrder.setInspectionStatus(InspectionStatus.ABOLISH.name()); + return updateById(eamInspectionOrder); + } + } + + /** + * 鐐规娴佺▼ + * + * @param eamInspectionOrderRequest + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.POINT_INSPECTION, businessTable = "eam_inspection_order") + public EamInspectionOrder inspectionProcess(EamInspectionOrderRequest eamInspectionOrderRequest) { + try { + // 妫�鏌ヨ姹傚弬鏁� + if (!isValidRequest(eamInspectionOrderRequest)) { + throw new JeecgBootException("闈炴硶鍙傛暟"); + } + + // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛 + LoginUser user = getCurrentUser(); + if (user == null || StrUtil.isBlank(user.getId())) { + throw new JeecgBootException("璐﹀彿涓嶅瓨鍦�"); + } + eamInspectionOrderRequest.setAssignee(user.getUsername()); + + // 鑾峰彇鐐规宸ュ崟淇℃伅 + EamInspectionOrder eamInspectionOrder = getEamInspectionOrder(eamInspectionOrderRequest.getDataId()); + if (eamInspectionOrder == null) { + throw new JeecgBootException("鏈壘鍒板搴旀暟鎹�"); + } + + // 鑾峰彇娴佺▼涓氬姟璁板綍 + FlowMyBusiness flowMyBusiness = getFlowMyBusiness(eamInspectionOrderRequest.getInstanceId()); + if (flowMyBusiness == null) { + throw new JeecgBootException("娴佺▼璁板綍涓嶅瓨鍦�"); + } + + // 妫�鏌ョ敤鎴锋槸鍚︽湁鏉冮檺鎿嶄綔浠诲姟 + if (!isUserAuthorized(flowMyBusiness, user)) { + throw new JeecgBootException("鐢ㄦ埛鏃犳潈鎿嶄綔姝や换鍔�"); + } + + // 璁ら浠诲姟 + if (!claimTask(flowMyBusiness.getTaskId(), user)) { + throw new JeecgBootException("浠诲姟涓嶅瓨鍦ㄣ�佸凡瀹屾垚鎴栧凡琚粬浜鸿棰�"); + } + + // 璁剧疆娴佺▼鍙橀噺 + setupProcessVariables(eamInspectionOrderRequest, eamInspectionOrder, user); + + // 瀹屾垚娴佺▼浠诲姟 + Result result = flowTaskService.complete(eamInspectionOrderRequest); + + // 鏍规嵁浠诲姟瀹屾垚缁撴灉鏇存柊宸ュ崟鐘舵�� + updateOrderStatus(result, eamInspectionOrderRequest, eamInspectionOrder, user); + + // 鏇存柊宸ュ崟淇℃伅 + updateEamInspectionOrder(eamInspectionOrder); + + //鏌ヨ鏁版嵁,杩涜璁惧缁翠慨澶勭悊 + if (eamInspectionOrder.getInspectionStatus().equals(InspectionStatus.WAIT_CONFIRM.name())) { + updateEamInspectionOrderDetail(eamInspectionOrder); + } + + return eamInspectionOrder; + } catch (Exception e) { + throw new JeecgBootException("鎿嶄綔澶辫触锛�" + e.getMessage()); + } + } + + + private boolean isValidRequest(EamInspectionOrderRequest request) { + return StrUtil.isNotBlank(request.getTaskId()) && StrUtil.isNotBlank(request.getDataId()); + } + + private LoginUser getCurrentUser() { + try { + return (LoginUser) SecurityUtils.getSubject().getPrincipal(); + } catch (Exception e) { + return null; + } + } + + private EamInspectionOrder getEamInspectionOrder(String dataId) { + return this.getById(dataId); + } + + private FlowMyBusiness getFlowMyBusiness(String instanceId) { + List<FlowMyBusiness> businessList = flowMyBusinessService.list( + new QueryWrapper<FlowMyBusiness>().eq("process_instance_id", instanceId)); + return businessList.isEmpty() ? null : businessList.get(0); + } + + 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; + } + + private void setupProcessVariables(EamInspectionOrderRequest request, EamInspectionOrder order, LoginUser user) { + Map<String, Object> values = new HashMap<>(); + if (InspectionStatus.UNDER_INSPECTION.name().equals(order.getInspectionStatus()) && user.getUsername().equals(order.getOperator())) { + // 鐐规浜虹偣妫�缁撴潫 + String manager = Optional.ofNullable(iEamEquipmentService.getById(order.getEquipmentId())) + .map(EamEquipment::getEquipmentManager) + .orElse(null); + if (manager == null) { + throw new IllegalArgumentException("璁惧绠$悊鍛樻湭閰嶇疆"); + } + List<String> usernameList = Collections.singletonList(manager); + values.put("dataId", order.getId()); + values.put("organization", "鐐规浜虹偣妫�缁撴潫"); + values.put("comment", "鐐规浜虹偣妫�缁撴潫"); + values.put("NextAssignee", usernameList); + request.setComment("鐐规浜虹偣妫�缁撴潫"); + } else { + // 鐝粍闀跨‘璁� + values.put("dataId", order.getId()); + 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(InspectionStatus.UNDER_INSPECTION.name()); + values.put("NextAssignee", usernames); + } + } + request.setValues(values); + } + + private void updateOrderStatus(Result result, EamInspectionOrderRequest request, EamInspectionOrder order, LoginUser user) { + if (result.isSuccess()) { + if (InspectionStatus.UNDER_INSPECTION.name().equals(order.getInspectionStatus()) && StrUtil.isEmpty(request.getConfirmDealType())) { + // 鐐规瀹屾垚 + 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.WAIT_CONFIRM.name().equals(order.getInspectionStatus()) && StrUtil.isNotEmpty(request.getConfirmDealType())) { + // 鐝粍闀跨‘璁や换鍔� + order.setInspectionStatus(InspectionStatus.COMPLETE.name()); + order.setConfirmUser(user.getUsername()); + order.setConfirmComment(request.getConfirmComment()); + order.setConfirmDealType(request.getConfirmDealType()); + order.setConfirmTime(new Date()); + } + } + } + + private void updateEamInspectionOrder(EamInspectionOrder eamInspectionOrder) { + this.updateById(eamInspectionOrder); + } + + /** + * 璁惧鏄惁瀛樺湪寮傚父,骞惰繘琛岃澶囩淮淇� + * + * @param eamInspectionOrder + */ + private void updateEamInspectionOrderDetail(EamInspectionOrder eamInspectionOrder) { + List<EamInspectionOrderDetail> eamInspectionOrderDetails = eamInspectionOrderDetailService + .list(new QueryWrapper<EamInspectionOrderDetail>() + .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) { + 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.in("id", list); + queryWrapper.eq("inspection_status", InspectionStatus.WAIT_INSPECTION.name()); + List<EamInspectionOrder> eamInspectionOrderList = this.list(queryWrapper); + if (!eamInspectionOrderList.isEmpty()) { + eamInspectionOrderList.forEach(eamInspectionOrder -> { + eamInspectionOrder.setInspectionStatus(type); + if (InspectionStatus.UNDER_INSPECTION.name().equals(type)) { + eamInspectionOrder.setOperator(loginUser.getUsername()); + this.triggerProcess(eamInspectionOrder); + } else { + eamInspectionOrder.setOperator(null); + } + }); + this.updateBatchById(eamInspectionOrderList); + } + return Result.OK("鎿嶄綔鎴愬姛"); + } + + + @Override + 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 + .list(new QueryWrapper<EamInspectionOrderDetail>().eq("order_id", eamInspectionOrder.getId())); + eamInspectionOrderRequest.setTableDetailList(eamInspectionOrderDetails); + eamInspectionOrderRequestList.add(eamInspectionOrderRequest); + }); + return Result.ok(eamInspectionOrderRequestList); + } + + @Override + public void afterFlowHandle(FlowMyBusiness business) { + business.getTaskNameId();//鎺ヤ笅鏉ュ鎵圭殑鑺傜偣 + business.getValues();//鍓嶇浼犺繘鏉ョ殑鍙傛暟 + business.getActStatus(); + } + + @Override + public Object getBusinessDataById(String dataId) { + return this.getById(dataId); + } + + @Override + public Map<String, Object> flowValuesOfTask(String taskNameId, Map<String, Object> values) { + return null; + } + + @Override + public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) { + //涓氬姟鏄惁骞查娴佺▼锛屼笟鍔″共棰勶紝娴佺▼骞查锛屾寚瀹氫汉鍛樿繘琛屽鐞� + //鑾峰彇涓嬩竴姝ュ鐞嗕汉 + Object object = values.get("NextAssignee"); + return (List<String>) object; + } + + @Override + public List<InspectionVo> findInspectionResult(String equipmentId,String itemDemand,String yearMonth) { + return this.baseMapper.findInspectionResult(equipmentId,itemDemand,yearMonth); + } + + @Override + public List<InspectionVo> findInspectionUser(String equipmentId,String yearMonth) { + return this.baseMapper.findInspectionUser(equipmentId,yearMonth); + } + + @Override + public List<Map<String, Object>> findInspectionStandard(String equipmentId) { + return this.baseMapper.findInspectionStandard(equipmentId); + } +} diff --git a/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceOrderDetailServiceImpl.java b/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceOrderDetailServiceImpl.java new file mode 100644 index 0000000..3b71a63 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceOrderDetailServiceImpl.java @@ -0,0 +1,28 @@ +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.EamMaintenanceOrderDetail; +import org.jeecg.modules.eam.mapper.EamMaintenanceOrderDetailMapper; +import org.jeecg.modules.eam.service.IEamMaintenanceOrderDetailService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Description: 淇濆吇宸ュ崟鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-04-02 + * @Version: V1.0 + */ +@Service +public class EamMaintenanceOrderDetailServiceImpl extends ServiceImpl<EamMaintenanceOrderDetailMapper, EamMaintenanceOrderDetail> implements IEamMaintenanceOrderDetailService { + + @Override + public List<EamMaintenanceOrderDetail> queryListByOrderId(String orderId) { + LambdaQueryWrapper<EamMaintenanceOrderDetail> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamMaintenanceOrderDetail::getOrderId, orderId); + queryWrapper.orderByAsc(EamMaintenanceOrderDetail::getItemCode); + return super.list(queryWrapper); + } +} diff --git a/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceOrderServiceImpl.java b/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceOrderServiceImpl.java new file mode 100644 index 0000000..bf0013e --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceOrderServiceImpl.java @@ -0,0 +1,548 @@ +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.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.EquipmentMaintenanceStatus; +import org.jeecg.modules.eam.constant.EquipmentOperationTagEnum; +import org.jeecg.modules.eam.constant.MaintenanceStatusEnum; +import org.jeecg.modules.eam.entity.EamEquipment; +import org.jeecg.modules.eam.entity.EamMaintenanceOrder; +import org.jeecg.modules.eam.entity.EamMaintenanceOrderDetail; +import org.jeecg.modules.eam.mapper.EamMaintenanceOrderMapper; +import org.jeecg.modules.eam.request.EamMaintenanceQuery; +import org.jeecg.modules.eam.request.EamMaintenanceRequest; +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; + +import javax.annotation.Resource; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Description: 淇濆吇宸ュ崟 + * @Author: jeecg-boot + * @Date: 2025-04-02 + * @Version: V1.0 + */ +@Service("IEamMaintenanceOrderService") +public class EamMaintenanceOrderServiceImpl extends ServiceImpl<EamMaintenanceOrderMapper, EamMaintenanceOrder> implements IEamMaintenanceOrderService, FlowCallBackServiceI { + + @Resource + private EamMaintenanceOrderMapper eamMaintenanceOrderMapper; + + @Autowired + private IEamMaintenanceOrderDetailService eamMaintenanceOrderDetailService; + + @Autowired + private FlowCommonService flowCommonService; + @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 addMaintenance(EamMaintenanceRequest request) { + EamEquipment equipment = eamEquipmentService.getById(request.getEquipmentId()); + if (equipment == null) { + throw new JeecgBootException("璁惧涓嶅瓨鍦紝娣诲姞澶辫触锛�"); + } + EamMaintenanceOrder order = new EamMaintenanceOrder(); + order.setOrderNum(request.getOrderNum()); + order.setEquipmentId(request.getEquipmentId()); + order.setStandardId(request.getStandardId()); + order.setMaintenanceDate(request.getMaintenanceDate()); + order.setOperator(request.getOperator()); + order.setRemark(request.getRemark()); + //鐘舵�佸垵濮嬪寲 + order.setMaintenanceStatus(MaintenanceStatusEnum.WAIT_MAINTENANCE.name()); + order.setCreationMethod(request.getCreationMethod()); + //鍒犻櫎鏍囪 + order.setDelFlag(CommonConstant.DEL_FLAG_0); + eamMaintenanceOrderMapper.insert(order); + //澶勭悊鏄庣粏鏁版嵁 + if (CollectionUtil.isNotEmpty(request.getTableDetailList())) { + request.getTableDetailList().forEach(tableDetail -> { + tableDetail.setId(null); + tableDetail.setOrderId(order.getId()); + }); + eamMaintenanceOrderDetailService.saveBatch(request.getTableDetailList()); + } + //鍒ゆ柇鏄惁瀛樺湪淇濆吇浜� 濡傛灉瀛樺湪鍒欏惎鍔ㄦ祦绋� + if (StringUtils.isNotBlank(order.getOperator())) { + //鍚姩娴佺▼ + flowCommonService.initActBusiness("宸ュ崟鍙�:" + order.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";杩涜璁惧淇濆吇", + order.getId(), "IEamMaintenanceOrderService", "maintenance_process", null); + Map<String, Object> variables = new HashMap<>(); + variables.put("dataId", order.getId()); + if (StrUtil.isEmpty(order.getRemark())) { + variables.put("organization", "鏂板淇濆吇宸ュ崟榛樿鍚姩娴佺▼"); + variables.put("comment", "鏂板淇濆吇宸ュ崟榛樿鍚姩娴佺▼"); + } else { + variables.put("organization", order.getRemark()); + variables.put("comment", order.getRemark()); + } + variables.put("proofreading", true); + List<String> usernames = new ArrayList<>(); + usernames.add(order.getOperator()); + variables.put("NextAssignee", usernames); + Result result = flowDefinitionService.startProcessInstanceByKey("_maintenance_process", variables); + if (result != null) { + //鏇存柊淇濆吇鐘舵�� + order.setMaintenanceStatus(MaintenanceStatusEnum.UNDER_MAINTENANCE.name()); + order.setActualStartTime(new Date()); + eamMaintenanceOrderMapper.updateById(order); + //鏇存柊璁惧淇濆吇鐘舵�� + eamEquipmentExtendService.updateEquipmentMaintenanceStatus(order.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name()); + return result.isSuccess(); + } + } + + return true; + } + + @Override + public IPage<EamMaintenanceOrder> queryPageList(Page<EamMaintenanceOrder> page, EamMaintenanceQuery query) { + QueryWrapper<EamMaintenanceOrder> 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.getMaintenanceStatus())) { + queryWrapper.eq("wmo.maintenance_status", query.getMaintenanceStatus()); + } + if (query.getMaintenanceDateBegin() != null && query.getMaintenanceDateEnd() != null) { + queryWrapper.between("wmo.maintenance_date", query.getMaintenanceDateBegin(), query.getMaintenanceDateEnd()); + } + //鎺掑簭 + 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 eamMaintenanceOrderMapper.queryPageList(page, queryWrapper); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean editMaintenance(EamMaintenanceRequest request) { + EamEquipment equipment = eamEquipmentService.getById(request.getEquipmentId()); + if (equipment == null) { + throw new JeecgBootException("璁惧涓嶅瓨鍦紝娣诲姞澶辫触锛�"); + } + EamMaintenanceOrder entity = eamMaintenanceOrderMapper.selectById(request.getId()); + if (entity == null) { + throw new JeecgBootException("缂栬緫鐨勬暟鎹凡鍒犻櫎锛岃鍒锋柊閲嶈瘯锛�"); + } + if (!MaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())) { + throw new JeecgBootException("鍙湁寰呬繚鍏荤姸鎬佺殑鏁版嵁鎵嶅彲缂栬緫锛�"); + } + entity.setMaintenanceDate(request.getMaintenanceDate()); + entity.setOperator(request.getOperator()); + entity.setRemark(request.getRemark()); + + eamMaintenanceOrderMapper.updateById(entity); + //澶勭悊璇︽儏 + if (CollectionUtil.isNotEmpty(request.getTableDetailList())) { + List<EamMaintenanceOrderDetail> addList = new ArrayList<>(); + List<EamMaintenanceOrderDetail> updateList = new ArrayList<>(); + request.getTableDetailList().forEach(tableDetail -> { + tableDetail.setOrderId(entity.getId()); + if (tableDetail.getId() == null) { + addList.add(tableDetail); + } else { + updateList.add(tableDetail); + } + }); + if (CollectionUtil.isNotEmpty(addList)) { + eamMaintenanceOrderDetailService.saveBatch(addList); + } + if (CollectionUtil.isNotEmpty(updateList)) { + eamMaintenanceOrderDetailService.updateBatchById(updateList); + } + } + if (CollectionUtil.isNotEmpty(request.getRemoveDetailList())) { + List<String> ids = request.getRemoveDetailList().stream().map(EamMaintenanceOrderDetail::getId).collect(Collectors.toList()); + eamMaintenanceOrderDetailService.removeBatchByIds(ids); + } + //鍒ゆ柇鏄惁瀛樺湪淇濆吇浜� 濡傛灉瀛樺湪鍒欏惎鍔ㄦ祦绋� + if (StringUtils.isNotBlank(entity.getOperator())) { + //鍚姩娴佺▼ + flowCommonService.initActBusiness("宸ュ崟鍙�:" + entity.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";杩涜璁惧淇濆吇", + entity.getId(), "IEamMaintenanceOrderService", "_maintenance_process", null); + Map<String, Object> variables = new HashMap<>(); + variables.put("dataId", entity.getId()); + if (StrUtil.isEmpty(entity.getRemark())) { + variables.put("organization", "鏂板淇濆吇宸ュ崟榛樿鍚姩娴佺▼"); + variables.put("comment", "鏂板淇濆吇宸ュ崟榛樿鍚姩娴佺▼"); + } else { + variables.put("organization", entity.getRemark()); + variables.put("comment", entity.getRemark()); + } + variables.put("proofreading", true); + List<String> usernames = new ArrayList<>(); + usernames.add(entity.getOperator()); + variables.put("NextAssignee", usernames); + Result result = flowDefinitionService.startProcessInstanceByKey("_maintenance_process", variables); + if (result != null) { + //鏇存柊淇濆吇鐘舵�� + entity.setMaintenanceStatus(MaintenanceStatusEnum.UNDER_MAINTENANCE.name()); + entity.setActualStartTime(new Date()); + eamMaintenanceOrderMapper.updateById(entity); + //鏇存柊璁惧淇濆吇鐘舵�� + eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name()); + return result.isSuccess(); + } + + } + return true; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean collect(String id) { + EamMaintenanceOrder entity = eamMaintenanceOrderMapper.selectById(id); + if (entity == null) { + throw new JeecgBootException("瑕侀鍙栫殑宸ュ崟涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒"); + } + if (!MaintenanceStatusEnum.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(MaintenanceStatusEnum.UNDER_MAINTENANCE.name()); + entity.setActualStartTime(new Date()); + eamMaintenanceOrderMapper.updateById(entity); + + //鍚姩娴佺▼ + flowCommonService.initActBusiness("宸ュ崟鍙�:" + entity.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";杩涜璁惧淇濆吇", + entity.getId(), "IEamMaintenanceOrderService", "_maintenance_process", null); + Map<String, Object> variables = new HashMap<>(); + variables.put("dataId", entity.getId()); + if (StrUtil.isEmpty(entity.getRemark())) { + variables.put("organization", "鏂板淇濆吇宸ュ崟榛樿鍚姩娴佺▼"); + variables.put("comment", "鏂板淇濆吇宸ュ崟榛樿鍚姩娴佺▼"); + } else { + variables.put("organization", entity.getRemark()); + variables.put("comment", entity.getRemark()); + } + variables.put("proofreading", true); + List<String> usernames = new ArrayList<>(); + usernames.add(entity.getOperator()); + variables.put("NextAssignee", usernames); + Result result = flowDefinitionService.startProcessInstanceByKey("_maintenance_process", variables); + if (result != null) { + //鏇存柊璁惧淇濆吇鐘舵�� + eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name()); + return result.isSuccess(); + } + return true; + } + + @Override + @Transactional(rollbackFor = Exception.class) + @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.MAINTENANCE, businessTable = "eam__maintenance_order") + public EamMaintenanceOrder approval(EamMaintenanceRequest request) { + EamMaintenanceOrder entity = eamMaintenanceOrderMapper.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("璁惧涓嶅瓨鍦紝璇锋鏌ワ紒"); + } + + MaintenanceStatusEnum status = MaintenanceStatusEnum.getInstance(entity.getMaintenanceStatus()); + if (status == null) { + return null; + } + //娴佺▼鍙橀噺 + Map<String, Object> values = new HashMap<>(); + List<UserSelector> userSelectors; + List<String> userApprovalList; + switch (status) { + case UNDER_MAINTENANCE: + //鎵ц瀹屾垚 + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0003); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰鐝粍闀匡紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); + } + userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + values.put("dataId", entity.getId()); + values.put("organization", "淇濆吇鎵ц缁撴潫"); + values.put("comment", "淇濆吇鎵ц缁撴潫"); + values.put("NextAssignee", userApprovalList); + request.setComment("淇濆吇鎵ц缁撴潫"); + //璁剧疆entity + entity.setMaintenanceStatus(MaintenanceStatusEnum.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())) { + eamMaintenanceOrderDetailService.updateBatchById(request.getTableDetailList()); + } + //鏇存柊璁惧淇濆吇鐘舵�� + eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.MAINTENANCE_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(MaintenanceStatusEnum.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(MaintenanceStatusEnum.UNDER_MAINTENANCE.name()); + } + //澶勭悊鎶ヤ慨 + List<EamMaintenanceOrderDetail> 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(MaintenanceStatusEnum.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(MaintenanceStatusEnum.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("瀹℃壒澶辫触锛岃鍒锋柊鏌ョ湅锛�"); + } + //淇濆瓨宸ュ崟 + eamMaintenanceOrderMapper.updateById(entity); + return entity; + } + + @Override + public List<EamMaintenanceOrder> selectUnCompleteOrder(String expiredDate) { + LambdaQueryWrapper<EamMaintenanceOrder> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.lt(EamMaintenanceOrder::getMaintenanceDate, expiredDate); + List<String> unCompleteStatus = new ArrayList<>(); + unCompleteStatus.add(MaintenanceStatusEnum.WAIT_MAINTENANCE.name()); + unCompleteStatus.add(MaintenanceStatusEnum.UNDER_MAINTENANCE.name()); + queryWrapper.in(EamMaintenanceOrder::getMaintenanceStatus, unCompleteStatus); + queryWrapper.orderByAsc(EamMaintenanceOrder::getMaintenanceDate); + return eamMaintenanceOrderMapper.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; + } + + @Override + public void afterFlowHandle(FlowMyBusiness business) { + business.getTaskNameId();//鎺ヤ笅鏉ュ鎵圭殑鑺傜偣 + business.getValues();//鍓嶇浼犺繘鏉ョ殑鍙傛暟 + business.getActStatus(); + } + + @Override + public Object getBusinessDataById(String dataId) { + return this.getById(dataId); + } + + @Override + public Map<String, Object> flowValuesOfTask(String taskNameId, Map<String, Object> values) { + return null; + } + + @Override + public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) { + //涓氬姟鏄惁骞查娴佺▼锛屼笟鍔″共棰勶紝娴佺▼骞查锛屾寚瀹氫汉鍛樿繘琛屽鐞� + //鑾峰彇涓嬩竴姝ュ鐞嗕汉 + Object object = values.get("NextAssignee"); + return (List<String>) object; + } +} diff --git a/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardDetailServiceImpl.java b/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardDetailServiceImpl.java new file mode 100644 index 0000000..7dce5a5 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardDetailServiceImpl.java @@ -0,0 +1,31 @@ +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.EamMaintenanceStandardDetail; +import org.jeecg.modules.eam.mapper.EamMaintenanceStandardDetailMapper; +import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Description: 淇濆吇鏍囧噯鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-03-26 + * @Version: V1.0 + */ +@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/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java b/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java new file mode 100644 index 0000000..1315ecf --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java @@ -0,0 +1,292 @@ +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.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.jeecg.common.api.vo.FileUploadResult; +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.MaintenanceStandardStatusEnum; +import org.jeecg.modules.eam.entity.EamMaintenanceStandard; +import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail; +import org.jeecg.modules.eam.mapper.EamMaintenanceStandardMapper; +import org.jeecg.modules.eam.request.EamMaintenanceStandardRequest; +import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService; +import org.jeecg.modules.eam.service.IEamMaintenanceStandardService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Description: 淇濆吇鏍囧噯 + * @Author: jeecg-boot + * @Date: 2025-03-26 + * @Version: V1.0 + */ +@Service +public class EamMaintenanceStandardServiceImpl extends ServiceImpl<EamMaintenanceStandardMapper, EamMaintenanceStandard> implements IEamMaintenanceStandardService { + + @Resource + private EamMaintenanceStandardMapper eamMaintenanceStandardMapper; + + @Autowired + private IEamMaintenanceStandardDetailService eamMaintenanceStandardDetailService; + + @Override + public IPage<EamMaintenanceStandard> queryPageList(Page<EamMaintenanceStandard> page, EamMaintenanceStandard eamMaintenanceStandard) { + QueryWrapper<EamMaintenanceStandard> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ems.del_flag", CommonConstant.DEL_FLAG_0); + //鐢ㄦ埛鏁版嵁鏉冮檺 + 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(eamMaintenanceStandard != null) { + //缂栫爜 妯$硦鏌ヨ + if(StringUtils.isNotBlank(eamMaintenanceStandard.getStandardCode())) { + queryWrapper.like("ems.standard_code", eamMaintenanceStandard.getStandardCode()); + } + //鍚嶇О 妯$硦鏌ヨ + if(StringUtils.isNotBlank(eamMaintenanceStandard.getStandardName())) { + queryWrapper.like("ems.standard_name", eamMaintenanceStandard.getStandardCode()); + } + //璁惧 + if(StringUtils.isNotBlank(eamMaintenanceStandard.getEquipmentId())) { + queryWrapper.eq("ems.equipment_id", eamMaintenanceStandard.getEquipmentId()); + } + //淇濆吇鍒嗙被 + if(StringUtils.isNotBlank(eamMaintenanceStandard.getMaintenanceCategory())) { + queryWrapper.eq("ems.maintenance_category", eamMaintenanceStandard.getMaintenanceCategory()); + } + //淇濆吇鍒嗙被 + if(StringUtils.isNotBlank(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("ems.create_time"); + return eamMaintenanceStandardMapper.queryPageList(page, queryWrapper); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean addMaintenanceStandard(EamMaintenanceStandardRequest standardRequest) { + EamMaintenanceStandard entity = new EamMaintenanceStandard(); + entity.setStandardCode(standardRequest.getStandardCode()); + entity.setStandardName(standardRequest.getStandardName()); + entity.setMaintenanceCategory(standardRequest.getMaintenanceCategory()); + entity.setMaintenancePeriod(standardRequest.getMaintenancePeriod()); + entity.setInitialDate(standardRequest.getInitialDate()); + entity.setFileCode(standardRequest.getFileCode()); + entity.setStandardStatus(MaintenanceStandardStatusEnum.NORMAL.name()); + //鐗堟湰閫掑 + entity.setStandardVersion(CommonConstant.OPERATE_TYPE_1); + //璁惧澶勭悊 + entity.setEquipmentId(standardRequest.getEquipmentId()); + //鍒犻櫎鏍囪 + entity.setDelFlag(CommonConstant.DEL_FLAG_0); + //閲嶅鎬ф牎楠� + EamMaintenanceStandard exist = checkDuplicate(entity.getEquipmentId(), entity.getMaintenanceCategory()); + if(exist != null){ + throw new JeecgBootException("璁惧鏍囧噯宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�"); + } + //澶勭悊闄勪欢 + if(CollectionUtil.isNotEmpty(standardRequest.getFileList())) { + FileUploadResult fileUploadResult = standardRequest.getFileList().get(0); + ObjectMapper mapper = new ObjectMapper(); + try { + String referenceFile = mapper.writeValueAsString(fileUploadResult); + entity.setReferenceFile(referenceFile); + } catch (JsonProcessingException e) { + log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e); + } + } + eamMaintenanceStandardMapper.insert(entity); + //澶勭悊鏄庣粏鏁版嵁 + if(CollectionUtil.isNotEmpty(standardRequest.getTableDetailList())) { + standardRequest.getTableDetailList().forEach(tableDetail -> { + tableDetail.setStandardId(entity.getId()); + }); + eamMaintenanceStandardDetailService.saveBatch(standardRequest.getTableDetailList()); + } + return true; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean editMaintenanceStandard(EamMaintenanceStandardRequest standardRequest) { + EamMaintenanceStandard entity = eamMaintenanceStandardMapper.selectById(standardRequest.getId()); + if(entity == null){ + throw new JeecgBootException("缂栬緫鐨勬暟鎹凡鍒犻櫎锛岃鍒锋柊閲嶈瘯锛�"); + } + entity.setStandardName(standardRequest.getStandardName()); + entity.setMaintenancePeriod(standardRequest.getMaintenancePeriod()); + entity.setFileCode(standardRequest.getFileCode()); + //澶勭悊闄勪欢 + if(CollectionUtil.isNotEmpty(standardRequest.getFileList())) { + FileUploadResult fileUploadResult = standardRequest.getFileList().get(0); + ObjectMapper mapper = new ObjectMapper(); + try { + String referenceFile = mapper.writeValueAsString(fileUploadResult); + entity.setReferenceFile(referenceFile); + } catch (JsonProcessingException e) { + log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e); + } + }else { + entity.setReferenceFile(null); + } + eamMaintenanceStandardMapper.updateById(entity); + //澶勭悊璇︽儏 + if(CollectionUtil.isNotEmpty(standardRequest.getTableDetailList())) { + List<EamMaintenanceStandardDetail> addList = new ArrayList<>(); + List<EamMaintenanceStandardDetail> updateList = new ArrayList<>(); + standardRequest.getTableDetailList().forEach(tableDetail -> { + tableDetail.setStandardId(entity.getId()); + if(tableDetail.getId() == null){ + addList.add(tableDetail); + }else { + updateList.add(tableDetail); + } + }); + if(CollectionUtil.isNotEmpty(addList)){ + eamMaintenanceStandardDetailService.saveBatch(addList); + } + if(CollectionUtil.isNotEmpty(updateList)){ + eamMaintenanceStandardDetailService.updateBatchById(updateList); + } + } + if(CollectionUtil.isNotEmpty(standardRequest.getRemoveDetailList())) { + List<String> ids = standardRequest.getRemoveDetailList().stream().map(EamMaintenanceStandardDetail::getId).collect(Collectors.toList()); + eamMaintenanceStandardDetailService.removeBatchByIds(ids); + } + return true; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean upgradeMaintenanceStandard(EamMaintenanceStandardRequest standardRequest) { + EamMaintenanceStandard entity = eamMaintenanceStandardMapper.selectById(standardRequest.getId()); + if(entity == null){ + throw new JeecgBootException("缂栬緫鐨勬暟鎹凡鍒犻櫎锛岃鍒锋柊閲嶈瘯锛�"); + } + entity.setStandardStatus(MaintenanceStandardStatusEnum.ABOLISH.name()); + //鍘熸潵鐨勪綔搴� + eamMaintenanceStandardMapper.updateById(entity); + + //鏂板涓�涓増鏈� + EamMaintenanceStandard newEntity = new EamMaintenanceStandard(); + newEntity.setStandardCode(standardRequest.getStandardCode()); + newEntity.setStandardName(standardRequest.getStandardName()); + newEntity.setMaintenanceCategory(standardRequest.getMaintenanceCategory()); + newEntity.setMaintenancePeriod(standardRequest.getMaintenancePeriod()); + newEntity.setInitialDate(standardRequest.getInitialDate()); + newEntity.setFileCode(standardRequest.getFileCode()); + newEntity.setStandardStatus(MaintenanceStandardStatusEnum.NORMAL.name()); + //鐗堟湰閫掑 + newEntity.setStandardVersion(entity.getStandardVersion() + 1); + //璁惧澶勭悊 + newEntity.setEquipmentId(standardRequest.getEquipmentId()); + //鍒犻櫎鏍囪 + newEntity.setDelFlag(CommonConstant.DEL_FLAG_0); + //閲嶅鎬ф牎楠� + EamMaintenanceStandard exist = checkDuplicate(newEntity.getEquipmentId(), newEntity.getMaintenanceCategory()); + if(exist != null){ + throw new JeecgBootException("璁惧鏍囧噯宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�"); + } + //澶勭悊闄勪欢 + if(CollectionUtil.isNotEmpty(standardRequest.getFileList())) { + FileUploadResult fileUploadResult = standardRequest.getFileList().get(0); + ObjectMapper mapper = new ObjectMapper(); + try { + String referenceFile = mapper.writeValueAsString(fileUploadResult); + newEntity.setReferenceFile(referenceFile); + } catch (JsonProcessingException e) { + log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e); + } + } + eamMaintenanceStandardMapper.insert(newEntity); + //澶勭悊鏄庣粏鏁版嵁 + if(CollectionUtil.isNotEmpty(standardRequest.getTableDetailList())) { + standardRequest.getTableDetailList().forEach(tableDetail -> { + tableDetail.setId(null); + tableDetail.setCreateBy(null); + tableDetail.setUpdateBy(null); + tableDetail.setCreateTime(null); + tableDetail.setUpdateTime(null); + tableDetail.setStandardId(newEntity.getId()); + }); + eamMaintenanceStandardDetailService.saveBatch(standardRequest.getTableDetailList()); + } + return true; + } + + @Override + public EamMaintenanceStandard checkDuplicate(String equipmentId, String maintenanceCategory) { + LambdaQueryWrapper<EamMaintenanceStandard> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamMaintenanceStandard::getEquipmentId, equipmentId); + queryWrapper.eq(EamMaintenanceStandard::getMaintenanceCategory, maintenanceCategory); + queryWrapper.eq(EamMaintenanceStandard::getDelFlag, CommonConstant.DEL_FLAG_0); + queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.NORMAL.name()); + queryWrapper.orderByDesc(EamMaintenanceStandard::getStandardVersion); + + List<EamMaintenanceStandard> list = eamMaintenanceStandardMapper.selectList(queryWrapper); + if(CollectionUtil.isEmpty(list)) { + return null; + } + return list.get(0); + } + + /** + * 鏌ヨ鏍囧噯鍒楄〃-鍓嶇灞曠ず璇ョ敤鎴锋嫢鏈夌殑鏍囧噯 + * @param keyword 璁惧缂栧彿 + * @param maintenanceCategory 淇濆吇绫诲瀷 + * @return + */ + @Override + 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/src/main/java/org/jeecg/modules/eam/service/impl/EamPrecisionCheckDetailServiceImpl.java b/src/main/java/org/jeecg/modules/eam/service/impl/EamPrecisionCheckDetailServiceImpl.java new file mode 100644 index 0000000..cda6eb5 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/impl/EamPrecisionCheckDetailServiceImpl.java @@ -0,0 +1,38 @@ +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.EamPrecisionCheckDetail; +import org.jeecg.modules.eam.mapper.EamPrecisionCheckDetailMapper; +import org.jeecg.modules.eam.service.IEamPrecisionCheckDetailService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Description: 璁惧绮惧害妫�娴嬫槑缁� + * @Author: jeecg-boot + * @Date: 2025-05-13 + * @Version: V1.0 + */ +@Service +public class EamPrecisionCheckDetailServiceImpl extends ServiceImpl<EamPrecisionCheckDetailMapper, EamPrecisionCheckDetail> implements IEamPrecisionCheckDetailService { + + @Resource + private EamPrecisionCheckDetailMapper eamPrecisionCheckDetailMapper; + + @Override + public List<EamPrecisionCheckDetail> getByOrderId(String orderId) { + LambdaQueryWrapper<EamPrecisionCheckDetail> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamPrecisionCheckDetail::getOrderId, orderId); + return eamPrecisionCheckDetailMapper.selectList(queryWrapper); + } + + @Override + public boolean hasPrecisionCheckDetail(String orderId) { + LambdaQueryWrapper<EamPrecisionCheckDetail> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(EamPrecisionCheckDetail::getOrderId, orderId); + return eamPrecisionCheckDetailMapper.selectCount(wrapper) > 0; + } +} diff --git a/src/main/java/org/jeecg/modules/eam/service/impl/EamPrecisionParametersServiceImpl.java b/src/main/java/org/jeecg/modules/eam/service/impl/EamPrecisionParametersServiceImpl.java new file mode 100644 index 0000000..5f8e5b6 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/impl/EamPrecisionParametersServiceImpl.java @@ -0,0 +1,18 @@ +package org.jeecg.modules.eam.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.modules.eam.entity.EamPrecisionParameters; +import org.jeecg.modules.eam.mapper.EamPrecisionParametersMapper; +import org.jeecg.modules.eam.service.IEamPrecisionParametersService; +import org.springframework.stereotype.Service; + +/** + * @Description: 绮惧害鍙傛暟缁存姢 + * @Author: jeecg-boot + * @Date: 2025-03-17 + * @Version: V1.0 + */ +@Service +public class EamPrecisionParametersServiceImpl extends ServiceImpl<EamPrecisionParametersMapper, EamPrecisionParameters> implements IEamPrecisionParametersService { + +} diff --git a/src/main/java/org/jeecg/modules/eam/service/impl/EamProcessParametersServiceImpl.java b/src/main/java/org/jeecg/modules/eam/service/impl/EamProcessParametersServiceImpl.java new file mode 100644 index 0000000..916abbf --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/impl/EamProcessParametersServiceImpl.java @@ -0,0 +1,18 @@ +package org.jeecg.modules.eam.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.modules.eam.entity.EamProcessParameters; +import org.jeecg.modules.eam.mapper.EamProcessParametersMapper; +import org.jeecg.modules.eam.service.IEamProcessParametersService; +import org.springframework.stereotype.Service; + +/** + * @Description: 宸ュ簭鍙傛暟缁存姢 + * @Author: jeecg-boot + * @Date: 2025-03-17 + * @Version: V1.0 + */ +@Service +public class EamProcessParametersServiceImpl extends ServiceImpl<EamProcessParametersMapper, EamProcessParameters> implements IEamProcessParametersService { + +} diff --git a/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java b/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java new file mode 100644 index 0000000..4092235 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java @@ -0,0 +1,563 @@ +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.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.EquipmentRepairStatus; +import org.jeecg.modules.eam.constant.ReportRepairEnum; +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.eam.util.DateUtils; +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.ISysBusinessCodeRuleService; +import org.jeecg.modules.system.service.ISysUserService; +import org.jeecg.modules.system.vo.UserSelector; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Description: 缁翠慨宸ュ崟 + * @Author: Lius + * @Date: 2025-04-03 + */ +@Service("IEamRepairOrderService") +public class EamRepairOrderServiceImpl extends ServiceImpl<EamRepairOrderMapper, EamRepairOrder> implements IEamRepairOrderService, FlowCallBackServiceI { + + @Resource + private FlowCommonService flowCommonService; + + @Resource + private ISysBusinessCodeRuleService businessCodeRuleService; + + @Resource + private IEamReportRepairService eamReportRepairService; + + @Resource + private IFlowDefinitionService flowDefinitionService; + + @Resource + private IEamEquipmentService eamEquipmentService; + + @Resource + private IFlowMyBusinessService flowMyBusinessService; + + @Resource + private TaskService taskService; + + @Resource + private IFlowTaskService flowTaskService; + + @Resource + private IEamEquipmentExtendService eamEquipmentExtendService; + + @Autowired + private ISysUserService sysUserService; + + /** + * 鍒嗛〉鍒楄〃 + * + * @param page + * @param query + * @return + */ + @Override + public IPage<EamRepairOrder> pageList(Page<EamRepairOrder> page, EamRepairOrderQuery query) { + QueryWrapper<EamRepairOrder> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("wmo.del_flag", CommonConstant.DEL_FLAG_0); + //鐢ㄦ埛鏁版嵁鏉冮檺 + 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.getEquipmentCode())) { + queryWrapper.like("e.equipment_code", query.getEquipmentCode()); + } + if (StringUtils.isNotBlank(query.getEquipmentName())) { + queryWrapper.like("e.equipment_name", query.getEquipmentName()); + } + if (StringUtils.isNotBlank(query.getRepairStatus())) { + queryWrapper.eq("wmo.repair_status", query.getRepairStatus()); + } + if (StringUtils.isNotBlank(query.getRepairer())) { + queryWrapper.like("wmo.repairer", query.getRepairer()); + } + if (StringUtils.isNotBlank(query.getRepairCode())) { + queryWrapper.like("wmo.repair_code", query.getRepairCode()); + } +// if(query.getStartTime() != null && query.getEndTime() != null) { +// queryWrapper.between("wmo.fault_start_time", query.getStartTime(), query.getEndTime()); +// } + //鎺掑簭 + 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 baseMapper.queryPageList(page, queryWrapper); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void saveRepairOrder(EamRepairOrder eamRepairOrder) { + String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.REPAIR_ORDER_CODE_RULE); + eamRepairOrder.setRepairCode(codeSeq); + EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId()); + if(eamReportRepair == null){ + throw new JeecgBootException("鏁呴殰鎶ヤ慨涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒"); + } + eamRepairOrder.setDelFlag(CommonConstant.DEL_FLAG_0); + eamRepairOrder.setEquipmentId(eamReportRepair.getEquipmentId()); + eamRepairOrder.setRepairStatus(ReportRepairEnum.WAIT_INTERNAL_CONFIRM.name()); + eamRepairOrder.setActualStartTime(DateUtils.getNow()); + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + eamRepairOrder.setRepairer(user.getUsername()); + super.save(eamRepairOrder); + EamEquipment eamEquipment = eamEquipmentService.getById(eamReportRepair.getEquipmentId()); + // 鍚姩缁翠慨娴佺▼ + flowCommonService.initActBusiness("宸ュ崟鍙凤細" + codeSeq + ", 璁惧缂栧彿锛�" + eamEquipment.getEquipmentCode() + ";瀹夎浣嶇疆: " + eamEquipment.getInstallationPosition(), + 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(user.getUsername()); + variables.put("NextAssignee", usernames); + Result result = flowDefinitionService.startProcessInstanceByKey("eam_repair", variables); + if (!result.isSuccess()) { + super.removeById(eamRepairOrder); + } else { + eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_INTERNAL_CONFIRM.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()); + if(eamReportRepair == null){ + throw new JeecgBootException("鏁呴殰鎶ヤ慨涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒"); + } + eamRepairOrder.setDelFlag(CommonConstant.DEL_FLAG_0); + eamRepairOrder.setEquipmentId(eamReportRepair.getEquipmentId()); + eamRepairOrder.setRepairStatus(ReportRepairEnum.WAIT_INTERNAL_CONFIRM.name()); + eamRepairOrder.setActualStartTime(DateUtils.getNow()); + eamRepairOrder.setRepairer(eamReportRepairQuery.getRepairer()); + super.save(eamRepairOrder); + EamEquipment eamEquipment = eamEquipmentService.getById(eamReportRepair.getEquipmentId()); + // 鍚姩缁翠慨娴佺▼ + flowCommonService.initActBusiness("宸ュ崟鍙凤細" + codeSeq + ", 璁惧缂栧彿锛�" + eamEquipment.getEquipmentCode() + ";瀹夎浣嶇疆: " + eamEquipment.getInstallationPosition(), + 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.WAIT_INTERNAL_CONFIRM.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 order = this.baseMapper.selectById(request.getId()); + if (order == null) { + throw new JeecgBootException("缁翠慨宸ュ崟涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒"); + } + EamReportRepair eamReportRepair = eamReportRepairService.getById(order.getReportId()); + if (eamReportRepair == 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(order.getRepairStatus()); + if (status == null) { + throw new JeecgBootException("宸ュ崟鐘舵�佷笉鍚堟硶锛岃妫�鏌ワ紒"); + } + //娴佺▼鍙橀噺 + Map<String, Object> values = new HashMap<>(); + List<UserSelector> userSelectors; + List<String> userApprovalList; + switch (status) { + case WAIT_INTERNAL_CONFIRM: + order.setRepairConfirm(request.getRepairConfirm()); + order.setRepairConfirmComment(request.getRepairConfirmComment()); + order.setRepairConfirmTime(new Date()); + values.put("dataId", order.getId()); + values.put("repairConfirm", request.getRepairConfirm()); + if(StringUtils.isNotBlank(request.getRepairConfirmComment())){ + values.put("organization", request.getRepairConfirmComment()); + values.put("comment", request.getRepairConfirmComment()); + request.setComment(request.getRepairConfirmComment()); + }else { + values.put("organization", "缁翠慨宸ュ崟缁翠慨浜虹‘璁ゅ畬鎴�"); + values.put("comment", "缁翠慨宸ュ崟缁翠慨浜虹‘璁ゅ畬鎴�"); + request.setComment("缁翠慨宸ュ崟缁翠慨浜虹‘璁ゅ畬鎴�"); + } + if(CommonConstant.STATUS_1.equals(request.getRepairConfirm())) { + //鍙唴閮ㄧ淮淇� 缁翠慨浜鸿繘琛岀淮淇� + values.put("NextAssignee", Arrays.asList(order.getRepairer().split(","))); + + order.setRepairStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name()); + eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name()); + }else { + //鎻愪氦鏈哄姩鍔炵淮淇紝杞﹂棿绠$悊鍛樼‘璁� + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0003); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰鐝粍闀匡紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); + } + userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + values.put("NextAssignee", userApprovalList); + order.setRepairStatus(ReportRepairEnum.WAIT_LEADER_CONFIRM.name()); + eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_LEADER_CONFIRM.name()); + } + break; + case UNDER_INTERNAL_REPAIR: + // 鍐呴儴缁翠慨 + values.put("dataId", order.getId()); + values.put("organization", "缁翠慨宸ュ崟缁翠慨瀹屾垚寰呮搷浣滃伐纭"); + values.put("comment", "缁翠慨宸ュ崟缁翠慨瀹屾垚寰呮搷浣滃伐纭"); + values.put("NextAssignee", Arrays.asList(eamReportRepair.getCreateBy().split(","))); + request.setComment("缁翠慨宸ュ崟缁翠慨瀹屾垚寰呮搷浣滃伐纭"); + order.setRepairStatus(ReportRepairEnum.WAIT_CONFIRM.name()); + eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_CONFIRM.name()); + order.setFaultReason(request.getFaultReason()); + order.setRepairDescription(request.getRepairDescription()); + order.setActualEndTime(new Date()); + // 澶勭悊闄勪欢 + if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) { + List<FileUploadResult> fileUploadResultList = request.getImageFilesResult(); + ObjectMapper mapper = new ObjectMapper(); + try { + String referenceFile = mapper.writeValueAsString(fileUploadResultList); + order.setImageFiles(referenceFile); + } catch (JsonProcessingException e) { + log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e); + } + } + //鏇存柊璁惧缁翠慨鐘舵�� + eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_CONFIRM.name()); + break; + case WAIT_LEADER_CONFIRM: + order.setLeaderConfirm(request.getLeaderConfirm()); + order.setLeaderConfirmComment(request.getLeaderConfirmComment()); + order.setLeaderUser(user.getUsername()); + order.setLeaderConfirmTime(new Date()); + values.put("dataId", order.getId()); + values.put("leaderConfirm", request.getLeaderConfirm()); + if(StringUtils.isNotBlank(request.getLeaderConfirmComment())){ + values.put("organization", request.getLeaderConfirmComment()); + values.put("comment", request.getLeaderConfirmComment()); + request.setComment(request.getLeaderConfirmComment()); + }else { + values.put("organization", "缁翠慨宸ュ崟棰嗗纭瀹屾垚"); + values.put("comment", "缁翠慨宸ュ崟棰嗗纭瀹屾垚"); + request.setComment("缁翠慨宸ュ崟棰嗗纭瀹屾垚"); + } + if(CommonConstant.STATUS_1.equals(request.getLeaderConfirm())) { + //閫氳繃 鎻愪氦鏈哄姩鍔炵淮淇� + userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0006); + if (CollectionUtil.isEmpty(userSelectors)) { + throw new JeecgBootException("璁惧鏈垎閰嶇粰鍏徃绠$悊鍛橈紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�"); + } + userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); + values.put("NextAssignee", userApprovalList); + order.setRepairStatus(ReportRepairEnum.WAIT_EXTERNAL_CONFIRM.name()); + eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_EXTERNAL_CONFIRM.name()); + }else { + //椹冲洖 鍙唴閮ㄧ淮淇� 缁翠慨浜鸿繘琛岀淮淇� + values.put("NextAssignee", Arrays.asList(order.getRepairer().split(","))); + order.setRepairStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name()); + eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name()); + } + break; + case WAIT_EXTERNAL_CONFIRM: + order.setExternalConfirm(request.getExternalConfirm()); + order.setExternalConfirmComment(request.getExternalConfirmComment()); + order.setExternalRepairer(user.getUsername()); + order.setExternalConfirmTime(new Date()); + values.put("dataId", order.getId()); + values.put("externalConfirm", request.getExternalConfirm()); + if(StringUtils.isNotBlank(request.getExternalConfirmComment())){ + values.put("organization", request.getExternalConfirmComment()); + values.put("comment", request.getExternalConfirmComment()); + request.setComment(request.getExternalConfirmComment()); + }else { + values.put("organization", "缁翠慨宸ュ崟鏈哄姩鍔炵‘璁ゅ畬鎴�"); + values.put("comment", "缁翠慨宸ュ崟鏈哄姩鍔炵‘璁ゅ畬鎴�"); + request.setComment("缁翠慨宸ュ崟鏈哄姩鍔炵‘璁ゅ畬鎴�"); + } + if(CommonConstant.STATUS_1.equals(request.getExternalConfirm())) { + //鏈哄姩鍔炲彲缁翠慨 鏈哄姩鍔炵淮淇汉杩涜缁翠慨 + values.put("NextAssignee", Arrays.asList(order.getExternalRepairer().split(","))); + order.setRepairStatus(ReportRepairEnum.UNDER_EXTERNAL_REPAIR.name()); + eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_EXTERNAL_REPAIR.name()); + }else { + //鏈哄姩鍔炰笉鍙淮淇� 杩涜濮斿缁翠慨 + values.put("NextAssignee", Arrays.asList(order.getExternalRepairer().split(","))); + order.setRepairStatus(ReportRepairEnum.UNDER_OUTSIDE_REPAIR.name()); + eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_OUTSIDE_REPAIR.name()); + } + break; + case UNDER_EXTERNAL_REPAIR: + // 鏈哄姩鍔炵淮淇� + values.put("dataId", order.getId()); + values.put("organization", "缁翠慨宸ュ崟鏈哄姩鍔炵淮淇畬鎴愬緟鎿嶄綔宸ョ‘璁�"); + values.put("comment", "缁翠慨宸ュ崟鏈哄姩鍔炵淮淇畬鎴愬緟鎿嶄綔宸ョ‘璁�"); + values.put("NextAssignee", Arrays.asList(eamReportRepair.getCreateBy().split(","))); + request.setComment("缁翠慨宸ュ崟鏈哄姩鍔炵淮淇畬鎴愬緟鎿嶄綔宸ョ‘璁�"); + order.setRepairStatus(ReportRepairEnum.WAIT_CONFIRM.name()); + eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_CONFIRM.name()); + order.setFaultReason(request.getFaultReason()); + order.setRepairDescription(request.getRepairDescription()); + order.setActualEndTime(new Date()); + // 澶勭悊闄勪欢 + if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) { + List<FileUploadResult> fileUploadResultList = request.getImageFilesResult(); + ObjectMapper mapper = new ObjectMapper(); + try { + String referenceFile = mapper.writeValueAsString(fileUploadResultList); + order.setImageFiles(referenceFile); + } catch (JsonProcessingException e) { + log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e); + } + } + //鏇存柊璁惧缁翠慨鐘舵�� + eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_CONFIRM.name()); + break; + case UNDER_OUTSIDE_REPAIR: + // 鏈哄姩鍔炵淮淇� + values.put("dataId", order.getId()); + values.put("organization", "缁翠慨宸ュ崟濮斿缁翠慨瀹屾垚寰呮搷浣滃伐纭"); + values.put("comment", "缁翠慨宸ュ崟濮斿缁翠慨瀹屾垚寰呮搷浣滃伐纭"); + values.put("NextAssignee", Arrays.asList(eamReportRepair.getCreateBy().split(","))); + request.setComment("缁翠慨宸ュ崟濮斿缁翠慨瀹屾垚寰呮搷浣滃伐纭"); + order.setRepairStatus(ReportRepairEnum.WAIT_CONFIRM.name()); + order.setOutsourcedUser(user.getUsername()); + eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_CONFIRM.name()); + order.setFaultReason(request.getFaultReason()); + order.setRepairDescription(request.getRepairDescription()); + order.setActualEndTime(new Date()); + // 澶勭悊闄勪欢 + if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) { + List<FileUploadResult> fileUploadResultList = request.getImageFilesResult(); + ObjectMapper mapper = new ObjectMapper(); + try { + String referenceFile = mapper.writeValueAsString(fileUploadResultList); + order.setImageFiles(referenceFile); + } catch (JsonProcessingException e) { + log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e); + } + } + //鏇存柊璁惧缁翠慨鐘舵�� + eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_CONFIRM.name()); + break; + case WAIT_CONFIRM: + // 寰呯‘璁�, 缁翠慨鍛樼淮淇畬鎴愶紝鎶ヤ慨浜虹‘璁ょ粨鏉熸祦绋� + values.put("dataId", order.getId()); + values.put("organization", "缁翠慨宸ュ崟娴佺▼缁撴潫"); + values.put("comment", "缁翠慨宸ュ崟娴佺▼缁撴潫"); + request.setComment("缁翠慨宸ュ崟娴佺▼缁撴潫"); + order.setRepairStatus(ReportRepairEnum.COMPLETE.name()); + eamReportRepair.setReportStatus(ReportRepairEnum.COMPLETE.name()); + order.setConfirmComment(request.getConfirmComment()); + order.setConfirmTime(new Date()); + order.setConfirmer(user.getUsername()); + //鏇存柊璁惧缁翠慨鐘舵�� + 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(order); + // 鍚屾鏇存柊鎶ヤ慨琛ㄧ姸鎬� + eamReportRepairService.updateById(eamReportRepair); + return order; + } + + @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()); + } + + + @Override + public void afterFlowHandle(FlowMyBusiness business) { + + } + + @Override + public Object getBusinessDataById(String dataId) { + return null; + } + + @Override + public Map<String, Object> flowValuesOfTask(String taskNameId, Map<String, Object> values) { + return Collections.emptyMap(); + } + + @Override + public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) { + //鑾峰彇涓嬩竴姝ュ鐞嗕汉 + Object object = values.get("NextAssignee"); + return (List<String>) object; + } +} diff --git a/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java b/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java new file mode 100644 index 0000000..a8fc353 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java @@ -0,0 +1,206 @@ +package org.jeecg.modules.eam.service.impl; + +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.jeecg.common.api.vo.FileUploadResult; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.constant.DataBaseConstant; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog; +import org.jeecg.modules.eam.constant.EquipmentOperationTagEnum; +import org.jeecg.modules.eam.constant.EquipmentRepairStatus; +import org.jeecg.modules.eam.constant.ReportRepairEnum; +import org.jeecg.modules.eam.entity.EamInspectionOrderDetail; +import org.jeecg.modules.eam.entity.EamMaintenanceOrderDetail; +import org.jeecg.modules.eam.entity.EamReportRepair; +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 org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +/** + * @Description: 鏁呴殰鎶ヤ慨 + * @Author: Lius + * @Date: 2025-04-01 + */ +@Service +public class EamReportRepairServiceImpl extends ServiceImpl<EamReportRepairMapper, EamReportRepair> implements IEamReportRepairService { + + @Resource + private IEamEquipmentExtendService eamEquipmentExtendService; + + /** + * 鍒嗛〉鍒楄〃 + * + * @param page + * @param query + * @return + */ + @Override + public IPage<EamReportRepair> pageList(Page<EamReportRepair> page, EamReportRepairQuery query) { + QueryWrapper<EamReportRepair> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("wmo.del_flag", CommonConstant.DEL_FLAG_0); + //鐢ㄦ埛鏁版嵁鏉冮檺 + 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.getEquipmentCode())) { + queryWrapper.like("e.equipment_code", query.getEquipmentCode()); + } + if (StringUtils.isNotBlank(query.getEquipmentName())) { + queryWrapper.like("e.equipment_name", query.getEquipmentName()); + } + if (StringUtils.isNotBlank(query.getBreakdownFlag())) { + queryWrapper.eq("wmo.breakdown_flag", query.getBreakdownFlag()); + } + if (StringUtils.isNotBlank(query.getReportStatus())) { + queryWrapper.eq("wmo.report_status", query.getReportStatus()); + } + if (StringUtils.isNotBlank(query.getFaultDescription())) { + queryWrapper.like("wmo.fault_description", query.getFaultDescription()); + } + if(query.getStartTime() != null && query.getEndTime() != null) { + queryWrapper.between("wmo.fault_start_time", query.getStartTime(), query.getEndTime()); + } + //鎺掑簭 + 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 baseMapper.queryPageList(page, queryWrapper); + } + + @Override + @Transactional(rollbackFor = Exception.class) + @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.REPORT_REPAIR, businessTable = "eam_report_repair") + public EamReportRepair reportRepairFromMaintenance(String equipmentId, String reportUser, List<EamMaintenanceOrderDetail> 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/src/main/java/org/jeecg/modules/eam/service/impl/EamSysFilesServiceImpl.java b/src/main/java/org/jeecg/modules/eam/service/impl/EamSysFilesServiceImpl.java new file mode 100644 index 0000000..f836554 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/service/impl/EamSysFilesServiceImpl.java @@ -0,0 +1,71 @@ +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.util.FileUtil; +import org.jeecg.modules.eam.entity.EamSysFiles; +import org.jeecg.modules.eam.mapper.EamSysFilesMapper; +import org.jeecg.modules.eam.request.EamSysFilesRequest; +import org.jeecg.modules.eam.service.IEamSysFilesService; +import org.springframework.stereotype.Service; +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; + +/** + * @Description: 璁惧闄勪欢绠$悊 + * @Author: jeecg-boot + * @Date: 2025-03-17 + * @Version: V1.0 + */ +@Service +public class EamSysFilesServiceImpl extends ServiceImpl<EamSysFilesMapper, EamSysFiles> implements IEamSysFilesService { + + @Resource + private EamSysFilesMapper eamSysFilesMapper; + + @Override + public void downloadFile(HttpServletResponse response, EamSysFiles entity) { + FileUtil.downLoadFile(response, entity.getFilePath(), entity.getFileName()); + } + + @Override + public FileUploadResult uploadFile(MultipartFile file) { + return FileUtil.uploadFile(file); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean saveEamSysFiles(EamSysFilesRequest request) { + if (request == null || CollectionUtil.isEmpty(request.getFileList())) { + return false; + } + List<EamSysFiles> resultList = new ArrayList<>(); + for (FileUploadResult fileUploadResult : request.getFileList()) { + EamSysFiles eamSysFiles = this.getByPath(fileUploadResult.getFilePath()); + if (eamSysFiles == null) { + continue; + } + eamSysFiles.setDescription(request.getDescription()); + resultList.add(eamSysFiles); + } + 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/src/main/java/org/jeecg/modules/eam/tree/FindsEquipmentProductionUtil.java b/src/main/java/org/jeecg/modules/eam/tree/FindsEquipmentProductionUtil.java new file mode 100644 index 0000000..d9aec4b --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/tree/FindsEquipmentProductionUtil.java @@ -0,0 +1,79 @@ +//package org.jeecg.modules.eam.tree; +// +//import org.jeecg.common.util.oConvertUtils; +//import org.jeecg.modules.eam.vo.EamEquipmentTree; +//import org.jeecg.modules.system.entity.MdcProduction; +//import org.jeecg.modules.system.model.MdcProductionTreeModel; +// +//import java.util.ArrayList; +//import java.util.List; +// +///** +// * 浜х嚎璁惧鏍� +// * @author: LiuS +// * @create: 2023-04-03 15:59 +// */ +//public class FindsEquipmentProductionUtil { +// +// /** +// * 鑾峰彇 MdcEquipmentTree +// */ +// public static List<EamEquipmentTree> wrapEquipmentProductionTreeList(List<MdcProduction> recordList) { +// List<EamEquipmentTree> idList = new ArrayList<>(); +// List<MdcProductionTreeModel> records = new ArrayList<>(); +// for (MdcProduction mdcProduction : recordList) { +// records.add(new MdcProductionTreeModel(mdcProduction)); +// } +// getChildren(records, idList); +// setEmptyChildrenAsNull(idList); +// return idList; +// } +// +// /** +// * 璇ユ柟娉曟槸鎵惧埌骞跺皝瑁呴《绾х埗绫荤殑鑺傜偣鍒癟reeList闆嗗悎 +// */ +// private static void getChildren(List<MdcProductionTreeModel> recordList, List<EamEquipmentTree> idList) { +// List<MdcProductionTreeModel> treeList = new ArrayList<>(); +// for (MdcProductionTreeModel mdcProductionTreeModel : recordList) { +// if (oConvertUtils.isEmpty(mdcProductionTreeModel.getParentId())) { +// mdcProductionTreeModel.setType(1); +// treeList.add(mdcProductionTreeModel); +// idList.add(new EamEquipmentTree().convertByProduction(mdcProductionTreeModel)); +// } +// } +// getGrandChildren(treeList, recordList, idList); +// } +// +// /** +// *璇ユ柟娉曟槸鎵惧埌椤剁骇鐖剁被涓嬬殑鎵�鏈夊瓙鑺傜偣闆嗗悎骞跺皝瑁呭埌TreeList闆嗗悎 +// */ +// private static void getGrandChildren(List<MdcProductionTreeModel> treeList, List<MdcProductionTreeModel> recordList, List<EamEquipmentTree> idList) { +// for (int i = 0; i < treeList.size(); i++) { +// MdcProductionTreeModel model = treeList.get(i); +// EamEquipmentTree mdcEquipmentTree = idList.get(i); +// for (int i1 = 0; i1 < recordList.size(); i1++) { +// MdcProductionTreeModel m = recordList.get(i1); +// if (m.getParentId() != null && m.getParentId().equals(model.getId())) { +// model.getChildren().add(m); +// m.setType(1); +// mdcEquipmentTree.getChildren().add(new EamEquipmentTree().convertByProduction(m)); +// } +// } +// getGrandChildren(treeList.get(i).getChildren(), recordList, idList.get(i).getChildren()); +// } +// } +// +// /** +// * 璇ユ柟娉曟槸灏嗗瓙鑺傜偣涓虹┖鐨凩ist闆嗗悎璁剧疆涓篘ull鍊� +// */ +// private static void setEmptyChildrenAsNull(List<EamEquipmentTree> idList) { +// for (EamEquipmentTree mdcEquipmentTree : idList) { +// if (mdcEquipmentTree.getChildren().isEmpty()) { +// mdcEquipmentTree.setLeaf(true); +// } else { +// setEmptyChildrenAsNull(mdcEquipmentTree.getChildren()); +// mdcEquipmentTree.setLeaf(false); +// } +// } +// } +//} diff --git a/src/main/java/org/jeecg/modules/eam/util/DateUtils.java b/src/main/java/org/jeecg/modules/eam/util/DateUtils.java new file mode 100644 index 0000000..fd0d32f --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/util/DateUtils.java @@ -0,0 +1,1089 @@ +package org.jeecg.modules.eam.util; + + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.DecimalFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.DayOfWeek; +import java.time.LocalDate; +import java.time.ZoneId; +import java.time.temporal.ChronoField; +import java.time.temporal.ChronoUnit; +import java.util.*; +import java.util.regex.Pattern; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class DateUtils { + + private final static long DAYTIMESUNSET = 86400; + + /** + * @return 寰楀埌鏄庡ぉ + */ + public static Date getNextDay(Date d1) { + long d2 = d1.getTime() + 86400 * 1000; + return new Date(d2); + } + + /** + * @return 寰楀埌鏄ㄥぉ + */ + public static Date getPreviousDay(Date d1) { + long d2 = d1.getTime() - 86400 * 1000; + return new Date(d2); + } + + /** + * @return 杩斿洖鏃堕棿宸殑璇█鎻忚堪 濡�1澶�2灏忔椂5鍒�6绉� + */ + public static String different(Date d1, Date d2) { + if (d1 == null || d2 == null) { + return ""; + } + StringBuilder strB = new StringBuilder(); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + try { + //姣ms + long diff = d2.getTime() - d1.getTime(); + long diffSeconds = diff / 1000 % 60; + long diffMinutes = diff / (60 * 1000) % 60; + long diffHours = diff / (60 * 60 * 1000) % 24; + long diffDays = diff / (24 * 60 * 60 * 1000); + if (diffDays > 0) { + strB.append(diffDays + " 澶� "); + strB.append(diffHours + " 灏忔椂 "); + strB.append(diffMinutes + " 鍒嗛挓 "); + strB.append(diffSeconds + " 绉� "); + } else if (diffHours > 0) { + strB.append(diffHours + " 灏忔椂 "); + strB.append(diffMinutes + " 鍒嗛挓 "); + strB.append(diffSeconds + " 绉� "); + } else if (diffMinutes > 0) { + strB.append(diffMinutes + " 鍒嗛挓 "); + strB.append(diffSeconds + " 绉� "); + } else { + strB.append(diffSeconds + " 绉� "); + } + } catch (Exception e) { + e.printStackTrace(); + } + return strB.toString(); + } + + /** + * @return 鑾峰彇涓や釜date鐨勬椂闂村樊锛岀粨鏋滀负绉� 闄� + */ + public static long differentSecond(Date startDate, Date endDate) { + return new BigDecimal(endDate.getTime() - startDate.getTime()).divide(new BigDecimal("1000"), 0, BigDecimal.ROUND_HALF_UP).longValue(); +// return (endDate.getTime() - startDate.getTime()) / 1000; + } + + /** + * @return 鑾峰彇涓や釜date鐨勬椂闂村樊锛岀粨鏋滀负鍒嗛挓 + */ + public static Integer differentMinutes(Date startDate, Date endDate) { + return new BigDecimal(endDate.getTime() - startDate.getTime()).divide(new BigDecimal("60000"), 0, RoundingMode.HALF_UP).intValue(); + } + + /** + * @return 杩斿洖浼犲叆鏃堕棿鐨�0鐐�0鍒�0绉� + */ + public static Date getTodayZero(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + cal.set(Calendar.HOUR_OF_DAY, 0); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + return cal.getTime(); + } + + /** + * @return 杩斿洖浼犲叆鏃堕棿鐨�0鐐�0鍒�0绉� + */ + public static Date getTomorrowZero(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + cal.set(Calendar.HOUR_OF_DAY, 0); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + cal.add(Calendar.DAY_OF_MONTH, 1); + return cal.getTime(); + } + + /** + * @return 鍒ゆ柇鏃堕棿鏄惁鏄綋澶� + */ + public static boolean isTaday(Date date) { + Date now = new Date(); + SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd"); + String nowDay = sf.format(now); + String day = sf.format(date); + return day.equals(nowDay); + } + + /** + * @return 鍒ゆ柇涓や釜鏃堕棿鏄惁涓哄悓涓�澶� + */ + public static boolean isOneDay(Date d1, Date d2) { + SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd"); + String d1Str = sf.format(d1); + String d2Str = sf.format(d2); + return d1Str.equals(d2Str); + } + + /** + * @return 鍒ゆ柇涓や釜鏃堕棿鏄惁涓哄悓涓�骞� + */ + public static boolean isOneYear(Date d1, Date d2) { + SimpleDateFormat sf = new SimpleDateFormat("yyyy"); + String d1Str = sf.format(d1); + String d2Str = sf.format(d2); + return d1Str.equals(d2Str); + } + + public static String dateProportion(Date start, Date end) { + float differentSecond = DateUtils.differentSecond(start, end); + float f = differentSecond / DAYTIMESUNSET * 100; + return String.format("%.2f", f) + "%"; + } + + public static Date strToDate(String dateStr, String format) { + SimpleDateFormat sf = new SimpleDateFormat(format); + Date result = null; + try { + result = sf.parse(dateStr); + } catch (ParseException e) { + e.printStackTrace(); + } + return result; + } + + public static final String STR_DATE = "yyyy-MM-dd"; + public static final String STRDATE = "yyyyMMdd"; + public static final String STR_YEAR_MONTH = "yyyy-MM"; + public static final String STRYEARMONTH = "yyyyMM"; + public static final String STR_DATE_TIME = "yyyy-MM-dd HH:mm:ss.SSS"; + public static final String STR_DATE_TIME_SMALL = "yyyy-MM-dd HH:mm:ss"; + public static final String STR_DATE_TIME_MIN = "yyyy-MM-dd HH:mm"; + public static final String STR_DATE_TIME_HOUR = "yyyy-MM-dd HH"; + public static final String STR_DATE_TIME_FULL = "yyyyMMddHHmmssSSS"; + public static final String STR_HHMMSS = "HH:mm:ss"; + public static final String STR_HHMM = "HH:mm"; + public static final String STR_MMDD = "MM-dd"; + + /** + * <p> + * Description: 瀹為檯鎶曟爣鏈堜唤 + * </p> + * + * @param startDate + * @param endDate + * @return obj [0] 瀹為檯鎶曟爣鏈堜唤 渚嬪瀹為檯鎶曟爣鏈堜唤锛�3.86锛夋剰涔夋槸3涓湀鍙�26澶� obj[1] 瀹為檯鍙栨暣鏈堜唤 锛�3锛� + */ + public static Integer getRealMonth(Date startDate, Date endDate) { + Integer month = 0; + Calendar start = Calendar.getInstance(); + start.setTime(startDate); + + Calendar end = Calendar.getInstance(); + end.setTime(endDate); + int year = start.get(Calendar.YEAR); + int year2 = end.get(Calendar.YEAR); + int month2 = start.get(Calendar.MONTH); + int month3 = end.get(Calendar.MONTH); + try { + while (start.before(end)) { + start.add(Calendar.MONTH, 1); + month++; + } + } catch (Exception e) { + e.printStackTrace(); + } + int day2 = start.get(Calendar.DAY_OF_MONTH); + int day3 = end.get(Calendar.DAY_OF_MONTH); + int tmpYear = year2 - year; + if (day2 == day3) { + return (tmpYear * 12) + (month3 - month2); + } + return month == 0 ? month : (month - 1); + } + + public static Date getNow() { + return new Date(System.currentTimeMillis()); + } + + public static int getDayOfMonth() { + Calendar aCalendar = Calendar.getInstance(Locale.CHINA); + int day = aCalendar.getActualMaximum(Calendar.DATE); + return day; + } + + /** + * <p> + * Description: 淇敼鏃堕棿涓烘寚瀹氭椂闂村綋澶╃殑23:59:59.000 + * </p> + * + * @param date 闇�瑕佷慨鏀圭殑鏃堕棿 + * @return 淇敼鍚庣殑鏃堕棿 + */ + public static Date fillTime(Date date) { + Date result = removeTime(date); + result.setTime(result.getTime() + 24 * 60 * 60 * 1000 - 1000); // 鍔犱竴澶� + return result; + } + + /** + * @param date 褰撳墠鏃堕棿 + * @param i 寰�鍓嶅嚑澶� + * @return + */ + public static Date fillBeforeTime(Date date, Integer i) { + Date result = removeTime(date); + Calendar calendar = Calendar.getInstance(); // 寰楀埌鏃ュ巻 + calendar.setTime(result);// 鎶婂綋鍓嶆椂闂磋祴缁欐棩鍘� + calendar.add(Calendar.DAY_OF_MONTH, i); // 璁剧疆涓哄墠涓�澶� + result.setTime(calendar.getTime().getTime() + 24 * 60 * 60 * 1000 + - 1000); // 鍔犱竴澶� + return result; + } + + /** + * <p> + * Description: 淇敼鏃堕棿涓烘寚瀹氭椂闂村墠涓�澶╃殑00:00:00 + * </p> + * + * @param date 闇�瑕佷慨鏀圭殑鏃堕棿 + * @return 淇敼鍚庣殑鏃堕棿 + */ + public static Date plusTime(Date date, Integer i) { + Date result = removeTime(date); + Calendar calendar = Calendar.getInstance(); // 寰楀埌鏃ュ巻 + calendar.setTime(result);// 鎶婂綋鍓嶆椂闂磋祴缁欐棩鍘� + calendar.add(Calendar.DAY_OF_MONTH, i); // 璁剧疆涓哄墠涓�澶� + return calendar.getTime(); + } + + /** + * <p> + * Description: 鍘绘帀鏃ユ湡鏃堕棿涓殑鏃堕棿閮ㄥ垎 + * </p> + * 濡�: 2013-11-11 18:56:33 ---> 2013-11-11 00:00:00 + * + * @param date 闇�瑕佷慨鏀圭殑鏃堕棿 + * @return 淇敼鍚庣殑鏃堕棿 + */ + public static Date removeTime(Date date) { + Date result = null; + try { + SimpleDateFormat df = new SimpleDateFormat(STR_DATE); + String dateStr = df.format(date); + result = df.parse(dateStr); + } catch (ParseException e) { + e.printStackTrace(); + } + return result; + } + + /** + * <p> + * Description: 鎸夐粯璁ゆ牸寮�(yyyy-MM-dd HH:mm:ss.SSS)鑾峰彇鏃堕棿瀛楃涓� + * </p> + * + * @param date 瑕佽浆鎹㈢殑鏃ユ湡 + * @return 杞崲鍚庣殑鏃堕棿瀛楃涓� + */ + public static String format(Date date) { + SimpleDateFormat df = new SimpleDateFormat(STR_DATE_TIME); + return df.format(date); + } + + public static Date parseDate(Date date, String format) { + SimpleDateFormat df = new SimpleDateFormat(format); + try { + date = df.parse(df.format(date)); + } catch (ParseException e) { + e.printStackTrace(); + } + return date; + } + + public static Date getDelayedYear() { + Calendar curr = Calendar.getInstance(); + curr.set(Calendar.YEAR, curr.get(Calendar.YEAR) + 1); + Date date = curr.getTime(); + return date; + } + + /** + * <p> + * Description: 鎸夋寚瀹氭牸寮忚幏鍙栨椂闂村瓧绗︿覆 + * </p> + * + * @param date 瑕佽浆鎹㈢殑鏃ユ湡 + * @param format 鏍煎紡,渚嬪:yyyy-MM-dd HH:mm:ss.SSS + * @return 杞崲鍚庣殑鏃堕棿瀛楃涓� + */ + public static String format(Date date, String format) { + SimpleDateFormat df = new SimpleDateFormat(format); + return df.format(date); + } + + /** + * <p> + * Description: 鍔犳湀鍑芥暟 + * </p> + * + * @param month 鏈堜唤鏁� + * @return + */ + public static Date addMonth(Integer month, Date time) { + Calendar c = Calendar.getInstance(); + c.setTime(time); + c.add(Calendar.MONTH, month); + return c.getTime(); + } + + public static Boolean greater(Date startTime, Date endTime) { + return startTime.getTime() > endTime.getTime(); + } + + public static Boolean less(Date startTime, Date endTime) { + return startTime.getTime() < endTime.getTime(); + } + + public static Boolean equals(Date startTime, Date endTime) { + return startTime.getTime() == endTime.getTime(); + } + + public static Integer getDiffMonth(Calendar c, Calendar c1) { + return (c.get(Calendar.YEAR) - c1.get(Calendar.YEAR)) * 12 + + (c.get(Calendar.MONTH) - c1.get(Calendar.MONTH)); + } + + /** + * 鏄惁涓哄悓涓�澶� + */ + public static boolean equalsDay(Date a, Date b) { + return removeTime(a).getTime() == removeTime(b).getTime(); + } + + public static Integer getDays(Date startTime, Date endTime) { + Calendar c = Calendar.getInstance(); + c.setTime(startTime); + Calendar c1 = Calendar.getInstance(); + c1.setTime(endTime); + long t1 = c.getTimeInMillis(); + long t2 = c1.getTimeInMillis(); + // 璁$畻澶╂暟 + Long days = (t2 - t1) / (24 * 60 * 60 * 1000); + return days.intValue(); + } + + public static Integer getSeconds(Date startTime, Date endTime) { + try { + Calendar c = Calendar.getInstance(); + c.setTime(startTime); + Calendar c1 = Calendar.getInstance(); + c1.setTime(endTime); + long t1 = c.getTimeInMillis(); + long t2 = c1.getTimeInMillis(); + // 璁$畻绉掓暟 + Long days = (t2 - t1) / (1000); + return days.intValue(); + } catch (Exception e) { + return 0; + } + + } + + //鑾峰彇灏忔椂宸� + public static double subHours(Date startTime, Date endTime) { + Calendar c = Calendar.getInstance(); + c.setTime(startTime); + Calendar c1 = Calendar.getInstance(); + c1.setTime(endTime); + double t1 = c.getTimeInMillis(); + double t2 = c1.getTimeInMillis(); + // 璁$畻澶╂暟 + double hours = (t2 - t1) / (1000 * 60 * 60); + return Double.valueOf(new DecimalFormat("#.00").format(hours)); + } + + //鏍规嵁褰撳墠鏃堕棿鍜屽嚭鐢熸棩鏈熻幏鍙栧勾榫� + public static int getAge(Date birthDay) { + Calendar cal = Calendar.getInstance(); + // 鍙栧嚭绯荤粺褰撳墠鏃堕棿鐨勫勾銆佹湀銆佹棩閮ㄥ垎 + int yearNow = cal.get(Calendar.YEAR); + int monthNow = cal.get(Calendar.MONTH); + int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH); + cal.setTime(birthDay); + // 鍙栧嚭鍑虹敓鏃ユ湡鐨勫勾銆佹湀銆佹棩閮ㄥ垎 + int yearBirth = cal.get(Calendar.YEAR); + int monthBirth = cal.get(Calendar.MONTH); + int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH); + // 褰撳墠骞翠唤涓庡嚭鐢熷勾浠界浉鍑忥紝鍒濇璁$畻骞撮緞 + int age = yearNow - yearBirth; + // 褰撳墠鏈堜唤涓庡嚭鐢熸棩鏈熺殑鏈堜唤鐩告瘮锛屽鏋滄湀浠藉皬浜庡嚭鐢熸湀浠斤紝鍒欏勾榫勪笂鍑�1锛岃〃绀轰笉婊″灏戝懆宀� + if (monthNow <= monthBirth) { + // 濡傛灉鏈堜唤鐩哥瓑锛屽湪姣旇緝鏃ユ湡锛屽鏋滃綋鍓嶆棩锛屽皬浜庡嚭鐢熸棩锛屼篃鍑�1锛岃〃绀轰笉婊″灏戝懆宀� + if (monthNow == monthBirth) { + if (dayOfMonthNow < dayOfMonthBirth) { + age--; + } + } else { + age--; + } + + } + return age; + } + + public static Date subDays(Date startTime, Integer day) { + Calendar c = Calendar.getInstance(); + c.setTime(startTime); + c.add(Calendar.DATE, day * -1); + return c.getTime(); + } + + public static Date addDays(Date startTime, Integer day) { + Calendar c = Calendar.getInstance(); + c.setTime(startTime); + c.add(Calendar.DATE, day); + return c.getTime(); + } + /*public static Date addHours(Date startTime, Integer hours) { + Calendar c = Calendar.getInstance(); + c.setTime(startTime); + c.add(Calendar.HOUR, hours ); + return c.getTime(); + }*/ + + public static Date toDate(String date, String format) { + SimpleDateFormat df = new SimpleDateFormat(format); + try { + return df.parse(date); + } catch (ParseException e) { + e.printStackTrace(); + } + return null; + } + + public static Date toDateFull(String date) { + SimpleDateFormat df = new SimpleDateFormat(STR_DATE_TIME); + try { + return df.parse(date); + } catch (ParseException e) { + e.printStackTrace(); + } + return null; + } + + public static Date toDateMedium(String date) { + SimpleDateFormat df = new SimpleDateFormat(STR_DATE_TIME_SMALL); + try { + Date dd = df.parse(date); + return dd; + } catch (ParseException e) { + return null; + } + } + + public static Integer getDate(Date date) { + if (date != null) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + int day = calendar.get(Calendar.DATE); + return day; + } + return null; + } + + public static Integer getYear() { + return getYear(new Date()); + } + + public static Integer getYear(Date date) { + if (date != null) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + int year = calendar.get(Calendar.YEAR); + return year; + } + return null; + } + + public static Integer getMonth() { + return getMonth(new Date()); + } + + public static Integer getMonth(Date date) { + if (date != null) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + int month = calendar.get(Calendar.MONTH); + return month + 1; + } + return null; + } + + public static Integer getDay() { + return getDay(new Date()); + } + + public static Integer getDay(Date date) { + if (date != null) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + int day = calendar.get(Calendar.DAY_OF_MONTH); + return day; + } + return null; + } + + + public static Date[] getMonthStartTimeAndEndTime(Integer month) { + Calendar calendar = Calendar.getInstance(); + Date[] dates = new Date[2]; + Date startTime = null; + Date endsTime = null; + if (month != null) { + calendar.set(Calendar.MONTH, month); + //鑾峰緱鍒版湰鏈堢殑绗竴澶� + calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); + startTime = calendar.getTime(); + startTime = DateUtils.removeTime(startTime); + //鑾峰緱鍒版湰鏈堢殑鏈�鍚庝竴澶� + calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); + endsTime = calendar.getTime(); + endsTime = DateUtils.fillTime(endsTime); + } + dates[0] = startTime; + dates[1] = endsTime; + return dates; + } + + public static Date[] getMonthStartTimeAndEndTime(Date date) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + Integer month = calendar.get(Calendar.MONTH); + Date[] dates = new Date[2]; + Date startTime = null; + Date endsTime = null; + if (month != null) { + calendar.set(Calendar.MONTH, month); + //鑾峰緱鍒版湰鏈堢殑绗竴澶� + calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); + startTime = calendar.getTime(); + startTime = DateUtils.removeTime(startTime); + //鑾峰緱鍒版湰鏈堢殑鏈�鍚庝竴澶� + calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); + endsTime = calendar.getTime(); + endsTime = DateUtils.fillTime(endsTime); + } + dates[0] = startTime; + dates[1] = endsTime; + return dates; + } + + /** + * 鑾峰彇days澶╃殑鏃堕棿鍖洪棿锛宔ndTime 涓哄綋澶╃殑鍚庝竴澶�0鐐癸紝 + * startTime 涓篹ndTime鍓峝ays澶� + * + * @param days + * @return + */ + public static Date[] getDaysStartTimeAndEndTime(Integer days) { + Date[] dates = new Date[2]; + Date endDate = plusTime(removeTime(getNow()), 1); + Date startDate = subDays(endDate, days); + dates[0] = startDate; + dates[1] = endDate; + return dates; + } + + /** + * 鏍规嵁鏌愪竴骞磋幏鍙栨渶鍚庝竴澶╃殑鏃堕棿 + * 2013 ---> 2013-12-31 23:59:59.000 + * + * @param year + * @return + */ + public static Date getYearEndDay(Integer year) { + Calendar calendar = Calendar.getInstance(); + calendar.clear(); + calendar.set(Calendar.YEAR, year); + calendar.roll(Calendar.DAY_OF_YEAR, -1); + Date yearLast = calendar.getTime(); + Date lastYear = DateUtils.fillTime(yearLast); + return lastYear; + } + + /** + * 鑾峰彇start/end鐨勬墍鏈夋棩鏈熷瓧绗︿覆 鏍煎紡yyyy-MM-dd + * + * @param start + * @param end + * @return + */ + public static List<String> getDatesStringList(Date start, Date end, String strDate) { + List<String> list = new ArrayList<>(); + int i = getDays(start, end); + for (int j = 0; j <= i; j++) { + if (j == 0) { + list.add(format(start, strDate)); + } else { + list.add(format(plusTime(start, j), strDate)); + } + } + return list; + } + + /** + * 鑾峰彇start/end鐨勬墍鏈夋棩鏈熷瓧绗︿覆 鏍煎紡yyyy-MM-dd + * + * @param start + * @param end + * @return + */ + public static List<String> getDatesStringList(Date start, Date end) { + List<String> list = new ArrayList<>(); + int i = getDays(start, end); + for (int j = 0; j <= i; j++) { + if (j == 0) { + list.add(format(start, STR_DATE)); + } else { + list.add(format(plusTime(start, j), STR_DATE)); + } + } + return list; + } + + /** + * 鑾峰彇start/end鐨勬墍鏈夋棩鏈熷瓧绗︿覆 鏍煎紡yyyyMMdd + * + * @param start + * @param end + * @return + */ + public static List<String> getDatesStringList2(Date start, Date end) { + List<String> list = new ArrayList<>(); + int i = getDays(start, end); + for (int j = 0; j <= i; j++) { + if (j == 0) { + list.add(format(start, STRDATE)); + } else { + list.add(format(plusTime(start, j), STRDATE)); + } + } + return list; + } + + /** + * 鑾峰彇start/end鐨勬墍鏈夋棩鏈熷瓧绗︿覆 鏍煎紡MM-dd + * + * @param start + * @param end + * @return + */ + public static List<String> getDatesStringLists(Date start, Date end) { + List<String> list = new ArrayList<>(); + int i = getDays(start, end); + for (int j = 0; j <= i; j++) { + if (j == 0) { + list.add(format(start, STR_MMDD)); + } else { + list.add(format(plusTime(start, j), STR_MMDD)); + } + } + return list; + } + + public static List<String> getMonthBetween(Date start, Date end) { + List<String> list = new ArrayList<>(); + Calendar min = Calendar.getInstance(); + Calendar max = Calendar.getInstance(); + min.setTime(start); + min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), 1); + max.setTime(end); + max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), 2); + Calendar curr = min; + while (curr.before(max)) { + list.add(format(curr.getTime(), STR_YEAR_MONTH)); + curr.add(Calendar.MONTH, 1); + } + return list; + } + + /** + * 鑾峰彇dateStr鐨勬棩鏈熸牸寮弝yyy-MM-dd + * + * @param dateStr + * @return + */ + public static Date getShortDate(String dateStr) { + SimpleDateFormat sdf = new SimpleDateFormat(STR_DATE); + Date startTime = null; + try { + startTime = sdf.parse(dateStr); + } catch (ParseException e) { + } + return startTime == null ? removeTime(new Date()) : startTime; + } + + /** + * 鑾峰彇dateStr鐨勬棩鏈熸牸寮弝yyyMMdd + * + * @param dateStr + * @return + */ + public static Date getShortDate2(String dateStr) { + SimpleDateFormat sdf = new SimpleDateFormat(STRDATE); + Date startTime = null; + try { + startTime = sdf.parse(dateStr); + } catch (ParseException e) { + } + return startTime == null ? removeTime(new Date()) : startTime; + } + + public static Date getFormatDate(String dateStr, String format) { + SimpleDateFormat sdf = new SimpleDateFormat(format); + Date startTime = null; + try { + startTime = sdf.parse(dateStr); + } catch (ParseException e) { + } + return startTime == null ? removeTime(new Date()) : startTime; + } + + /** + * @param time + * @param n + * @return 鍦ㄤ竴涓椂闂翠笂鍔犵 + */ + public static Date addSecond(Date time, Integer n) { + Calendar c = Calendar.getInstance(); + c.setTime(time); + c.add(Calendar.SECOND, n); + return c.getTime(); + } + + /** + * @param time + * @param n + * @return 鍦ㄤ竴涓椂闂翠笂鍔犲垎閽� + */ + public static Date addMinute(Date time, Integer n) { + Calendar c = Calendar.getInstance(); + c.setTime(time); + c.add(Calendar.MINUTE, n); + return c.getTime(); + } + + /** + * @param time + * @param n + * @return 鍦ㄤ竴涓椂闂翠笂鍔犲皬鏃� + */ + public static Date addHour(Date time, Integer n) { + Calendar c = Calendar.getInstance(); + c.setTime(time); + c.add(Calendar.HOUR_OF_DAY, n); + return c.getTime(); + } + + /** + * 鑾峰彇start/end鐨勬墍鏈夋棩鏈熷瓧绗︿覆 鏍煎紡yyyy-MM-dd + * + * @param start + * @param end + * @return + */ + public static List<String> getDateMonth(String start, String end) { + List<String> list = new ArrayList<>(); + SimpleDateFormat yyyyMM = new SimpleDateFormat("yyyy-MM"); + Date startyear = null; + try { + startyear = yyyyMM.parse(start); + Date endyear = yyyyMM.parse(end); + Calendar dd = Calendar.getInstance();//瀹氫箟鏃ユ湡瀹炰緥 + dd.setTime(startyear);//璁剧疆鏃ユ湡璧峰鏃堕棿 + while (dd.getTime().before(endyear)) {//鍒ゆ柇鏄惁鍒扮粨鏉熸棩鏈� + String str = yyyyMM.format(dd.getTime()); + dd.add(Calendar.MONTH, 1);//杩涜褰撳墠鏃ユ湡鏈堜唤鍔�1 + list.add(str); + } + list.add(yyyyMM.format(endyear)); + } catch (ParseException e) { + e.printStackTrace(); + } + return list; + } + + /** + * 鑾峰彇start/end鐨勬墍鏈夋棩鏈熷瓧绗︿覆 鏍煎紡yyyy + * + * @param start + * @param end + * @return + */ + public static List<String> getDateYear(String start, String end) { + List<String> list = new ArrayList<>(); + SimpleDateFormat yyyy = new SimpleDateFormat("yyyy"); + Date startyear = null; + try { + startyear = yyyy.parse(start); + Date endyear = yyyy.parse(end); + Calendar dd = Calendar.getInstance();//瀹氫箟鏃ユ湡瀹炰緥 + dd.setTime(startyear);//璁剧疆鏃ユ湡璧峰鏃堕棿 + while (dd.getTime().before(endyear)) {//鍒ゆ柇鏄惁鍒扮粨鏉熸棩鏈� + String str = yyyy.format(dd.getTime()); + dd.add(Calendar.YEAR, 1);//杩涜褰撳墠鏃ユ湡鏈堜唤鍔�1 + list.add(str); + } + list.add(yyyy.format(endyear)); + } catch (ParseException e) { + e.printStackTrace(); + } + return list; + } + + /** + * 鑾峰彇褰撳墠鏃堕棿 瀹氫綅鍒板皬鏃� + * 鏍煎紡涓� yyyy-MM-dd hh:mm + * 渚嬶細2018-02-27 11:00 + * + * @return + */ + public static Date getNowHourDate() { + Date now = getNow(); + Date result; + Calendar calendar = Calendar.getInstance(); + calendar.setTime(now); + int hour = calendar.get(Calendar.HOUR_OF_DAY); + String dateStr = format(now, STR_DATE); + dateStr = dateStr + " " + (hour < 10 ? "0" + hour : hour) + ":00"; + result = toDate(dateStr, STR_DATE_TIME_MIN); + return result; + } + + /** + * 鑾峰彇姣忔棩8:11鎴�11:11鐨勬椂闂寸偣 + * + * @return + */ + public static Date getNowHourDateTo() { + Date now = getNow(); + Date result; + Calendar calendar = Calendar.getInstance(); + calendar.setTime(now); + int hour = calendar.get(Calendar.HOUR_OF_DAY); + if (hour != 8 && hour != 11) { + return null; + } + int minute = calendar.get(Calendar.MINUTE); + if (minute < 11) { + return null; + } + String dateStr = format(now, STR_DATE); + dateStr = dateStr + " " + (hour < 10 ? "0" + hour : hour) + ":11"; + result = toDate(dateStr, STR_DATE_TIME_MIN); + return result; + } + + /** + * 鑾峰彇姣忔棩8:00銆�13:00銆�20:00鐨勬椂闂寸偣 + * + * @return + */ + public static List<Date> getHourDateList(Date time) { + List<Date> result = new ArrayList<>(); + result.add(addHour(time, 8)); + result.add(addHour(time, 13)); + result.add(addHour(time, 20)); + return result; + } + + /** + * 鑾峰彇涓婃湀鐨勬渶鍚庝竴澶� + * + * @return + */ + public static Date getPreviousMonthLastDay() { + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.DAY_OF_MONTH, 0); + return DateUtils.removeTime(calendar.getTime()); + } + + /** + * 鑾峰彇end鏃堕棿鏈堢殑绗竴澶� + * + * @param end 鏈堜唤鏈�鍚庝竴澶� + * @return + */ + public static Date getTheMonthFirstDay(Date end) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(end); + calendar.set(Calendar.DAY_OF_MONTH, 1); + return calendar.getTime(); + } + + public static String secToTimeHour(int time) { + String timeStr = null; + int hour = 0; + if (time <= 0) { + return "0灏忔椂"; + } else { + BigDecimal bigDecimal = new BigDecimal(time); + BigDecimal bigDecimal1 = new BigDecimal(3600); + BigDecimal hourBigDecimal = new BigDecimal(0); + hourBigDecimal = new BigDecimal(String.valueOf(bigDecimal)). + divide(new BigDecimal(String.valueOf(bigDecimal1)), 2, BigDecimal.ROUND_HALF_UP); + timeStr = hourBigDecimal + "灏忔椂"; + } + return timeStr; + } + + public static String secToTime(int time) { + String timeStr = null; + int hour = 0; + int minute = 0; + int second = 0; + if (time <= 0) + return " "; + else { + minute = time / 60; + if (minute < 60) { + second = time % 60; + timeStr = unitFormat(minute) + "鍒�" + unitFormat(second) + " 绉�"; + } else { + hour = minute / 60; + minute = minute % 60; + second = time - hour * 3600 - minute * 60; + timeStr = unitFormat(hour) + "灏忔椂" + unitFormat(minute) + "鍒�" + unitFormat(second) + "绉�"; + } + } + return timeStr; + } + + public static String unitFormat(int i) { + String retStr = null; + if (i >= 0 && i < 10) + retStr = "0" + Integer.toString(i); + else + retStr = "" + i; + return retStr; + } + + /** + * 楠岃瘉鏃堕棿 + * + * @param time 鏃堕棿瀛楃涓� HH:mm + * @return 楠岃瘉鎴愬姛杩斿洖true锛岄獙璇佸け璐ヨ繑鍥瀎alse + */ + public static boolean checkTime(String time) { + String regex = "([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$"; + return Pattern.matches(regex, time); + } + + /** + * 鑾峰彇姣忔棩07:30:00鐨勬椂闂寸偣 + * 鏍煎紡涓� yyyy-MM-dd HH:mm:ss + * 渚嬶細2018-05-28 07:30:00 + * + * @return + */ + public static Date getHourDateTo(Date now, String time) { + String dateStr = format(now, STR_DATE); + dateStr = dateStr + " " + time; + Date result = toDate(dateStr, STR_DATE_TIME_SMALL); + return result; + } + + public static Date setTimeForDay(Date theDate, String planTime) { + Calendar cal = Calendar.getInstance(); + cal.setTime(theDate); + String[] times = planTime.split(":"); + cal.set(Calendar.HOUR_OF_DAY, Integer.parseInt(times[0])); + cal.set(Calendar.MINUTE, Integer.parseInt(times[1])); + cal.set(Calendar.SECOND, Integer.parseInt(times[2])); + return cal.getTime(); + } + + public static long getTimeWithOutDay(Date d) { + return d.getTime() / 1000 % 86400; + } + + /** + * @param lo 姣鏁� + * @return String yyyy-MM-dd HH:mm:ss + * @Description: long绫诲瀷杞崲鎴愭棩鏈� + */ + public static String longToDate(long lo) { + Date date = new Date(lo); + SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + return sd.format(date); + } + + /** + * @param startDate + * @param endDate + * @return + */ + public static List<Date> getWeekDays(LocalDate startDate, LocalDate endDate) { + List<Date> result = new ArrayList<>(); + List<LocalDate> dateList = Stream.iterate(startDate, localDate -> localDate.plusDays(1)) + .limit(ChronoUnit.DAYS.between(startDate, endDate) + 1) + .filter(localDate -> DayOfWeek.SATURDAY.equals(DayOfWeek.of(localDate.get(ChronoField.DAY_OF_WEEK))) || DayOfWeek.SUNDAY.equals(DayOfWeek.of(localDate.get(ChronoField.DAY_OF_WEEK)))) + .collect(Collectors.toList()); + dateList.forEach(localDate -> result.add(Date.from(localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant()))); + return result; + } + + /** + * @param smallDate + * @param bigDate + * @desc 鑾峰彇涓や釜鏃ユ湡涔嬮棿鐨勫ぉ鏁� + */ + public static Integer getDaysBetween(String smallDate, String bigDate) throws ParseException { + // 鏃ユ湡鏍煎紡 + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + // 鑾峰彇涓や釜鏃ユ湡鐨勬椂闂存埑 + Calendar cal = Calendar.getInstance(); + cal.setTime(sdf.parse(smallDate)); + long smallTime = cal.getTimeInMillis(); + cal.setTime(sdf.parse(bigDate)); + long bigTime = cal.getTimeInMillis(); + // 鐩稿樊鐨勬棩鏈� + long days = (bigTime - smallTime) / (1000 * 3600 * 24); + // long杞琲nt 瀛樺湪婧㈠嚭鎯呭喌 鏍规嵁涓氬姟鎯呭喌缂栬緫catch涓繑鍥炲�� + try { + return Integer.parseInt(String.valueOf(days)); + } catch (NumberFormatException e) { + e.printStackTrace(); + return 0; + } + } + + /** + * 鏃ユ湡杞崲锛屽皢鎺ュ彛杩斿洖鐨�20180524杞负2018-05-24 + * + * @param str + * @return + */ + public static String dateConvertion(String str) { + Date parse = null; + String dateString = ""; + try { + parse = new SimpleDateFormat("yyyyMMdd").parse(str); + dateString = new SimpleDateFormat("yyyy-MM-dd").format(parse); + } catch (ParseException e) { + dateString = null; + } + + return dateString; + } +} diff --git a/src/main/java/org/jeecg/modules/eam/util/ExcelUtils.java b/src/main/java/org/jeecg/modules/eam/util/ExcelUtils.java new file mode 100644 index 0000000..87ce100 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/util/ExcelUtils.java @@ -0,0 +1,51 @@ +package org.jeecg.modules.eam.util; + +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellType; +import org.apache.poi.ss.usermodel.DateUtil; +import org.apache.poi.ss.usermodel.Row; + +import java.text.SimpleDateFormat; + +public class ExcelUtils { + // 杈呭姪鏂规硶锛氭牴鎹崟鍏冩牸绫诲瀷瀹夊叏鍦拌幏鍙栧瓧绗︿覆鍊� + public static String getCellValueAsString(Cell cell) { + if (cell == null) { + return null; + } + switch (cell.getCellType()) { + case STRING: + return cell.getStringCellValue(); + case NUMERIC: + if (DateUtil.isCellDateFormatted(cell)) { + // 濡傛灉鏄棩鏈熸牸寮忥紝杩斿洖鏃ユ湡瀛楃涓� + return new SimpleDateFormat("yyyy-MM-dd").format(cell.getDateCellValue()); + } else { + // 鍚﹀垯杩斿洖鏁板�肩殑瀛楃涓插舰寮� + return String.valueOf(cell.getNumericCellValue()); + } + case BOOLEAN: + return String.valueOf(cell.getBooleanCellValue()); + case FORMULA: + try { + return String.valueOf(cell.getNumericCellValue()); // 灏濊瘯瑙f瀽鍏紡缁撴灉 + } catch (Exception e) { + return String.valueOf(cell.getStringCellValue()); // 濡傛灉鍏紡缁撴灉涓哄瓧绗︿覆 + } + default: + return ""; + } + } + + // 鍒ゆ柇鏌愪竴琛屾槸鍚﹀叏涓虹┖(鏈夋晥鏁版嵁琛屽垽鏂�) + public static boolean isRowEmpty(Row row) { + if (row == null) return true; + for (int c = row.getFirstCellNum(); c < row.getLastCellNum(); c++) { + Cell cell = row.getCell(c); + if (cell != null && cell.getCellType() != CellType.BLANK) { + return false; + } + } + return true; + } +} diff --git a/src/main/java/org/jeecg/modules/eam/vo/EamEquipmentTree.java b/src/main/java/org/jeecg/modules/eam/vo/EamEquipmentTree.java new file mode 100644 index 0000000..7d9894f --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/vo/EamEquipmentTree.java @@ -0,0 +1,121 @@ +package org.jeecg.modules.eam.vo; + +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecg.modules.eam.entity.EamEquipment; +//import org.jeecg.modules.system.model.MdcProductionTreeModel; +import org.jeecg.modules.system.model.SysDepartTreeModel; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * 璁惧鏍� + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value = "璁惧鏍戠粨鏋勬暟鎹疄浣�", description = "璁惧") +public class EamEquipmentTree implements Serializable { + + /** + * 鍓嶇鏁版嵁鏍戜腑鐨刱ey + */ + private String key; + + /** + * 鍓嶇鏁版嵁鏍戜腑鐨剉alue + */ + private String value; + + /** + * 鍓嶇鏁版嵁鏍戜腑鐨則itle + */ + private String title; + + /** + * 鏄惁鏄瓙鑺傜偣 + */ + private boolean isLeaf; + + /** + * 璁惧缂栧彿锛堝墠绔畾浣嶇敤锛� + */ + private String equipmentId; + + /** + * 璁惧鍚嶇О锛堝墠绔畾浣嶇敤锛� + */ + private String equipmentName; + + /** + * 鐖剁骇id锛堝墠绔姹傜敤锛� + */ + private String parentId; + + /** + * 杞﹂棿鎻忚堪 + */ + private String memo; + + /** + * 绫诲瀷 1 杞﹂棿 2璁惧 + */ + private Integer type; + + /** + * orgType + */ + private String orgType; + + + private List<EamEquipmentTree> children = new ArrayList<>(); + + /** + * 灏嗚澶囨暟鎹斁鍦ㄨ瀵硅薄涓� + * + * @param mdcEquipment + * @return + */ + public EamEquipmentTree convert(EamEquipment mdcEquipment) { + this.key = mdcEquipment.getId(); + this.value = mdcEquipment.getId(); + this.title = mdcEquipment.getEquipmentCode() + "/" + mdcEquipment.getEquipmentName(); + this.equipmentId = mdcEquipment.getEquipmentCode(); + this.equipmentName = mdcEquipment.getEquipmentName(); + this.isLeaf = true; + return this; + } + + /** + * 灏哠ysDepartTreeModel鐨勯儴鍒嗘暟鎹斁鍦ㄨ瀵硅薄褰撲腑 + * + * @param treeModel + * @return + */ + public EamEquipmentTree convertByDepart(SysDepartTreeModel treeModel) { + this.key = treeModel.getId(); + this.value = treeModel.getId(); + this.title = treeModel.getDepartName(); + return this; + } + + /** + * 灏唌dcProductionTreeModel鐨勯儴鍒嗘暟鎹斁鍦ㄨ瀵硅薄褰撲腑 + * + * @param treeModel + * @return + */ +// public EamEquipmentTree convertByProduction(MdcProductionTreeModel treeModel) { +// this.key = treeModel.getId(); +// this.value = treeModel.getId(); +// this.title = treeModel.getProductionName(); +// this.memo = treeModel.getMemo(); +// this.type = treeModel.getType(); +// this.orgType = treeModel.getOrgType(); +// return this; +// } +} diff --git a/src/main/java/org/jeecg/modules/eam/vo/EquipmentSearchResult.java b/src/main/java/org/jeecg/modules/eam/vo/EquipmentSearchResult.java new file mode 100644 index 0000000..0a27828 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/vo/EquipmentSearchResult.java @@ -0,0 +1,26 @@ +package org.jeecg.modules.eam.vo; + +import lombok.Data; +import org.jeecg.modules.eam.entity.EamEquipment; + +import java.io.Serializable; + +@Data +public class EquipmentSearchResult implements Serializable { + /** + * 瀛楀吀value + */ + private String value; + /** + * 瀛楀吀鏂囨湰 + */ + private String text; + + public EquipmentSearchResult() { + } + + public EquipmentSearchResult(EamEquipment eamEquipment) { + this.value = eamEquipment.getId(); + this.text = eamEquipment.getEquipmentCode() + "[" + eamEquipment.getEquipmentName() + "]"; + } +} diff --git a/src/main/java/org/jeecg/modules/eam/vo/InspectionVo.java b/src/main/java/org/jeecg/modules/eam/vo/InspectionVo.java new file mode 100644 index 0000000..02deb86 --- /dev/null +++ b/src/main/java/org/jeecg/modules/eam/vo/InspectionVo.java @@ -0,0 +1,110 @@ +package org.jeecg.modules.eam.vo; + +import lombok.Data; + +@Data +public class InspectionVo { + + private String seq; + private String operator;//鎿嶄綔 + private String confirmUser;//宸℃煡 + private String inspectionContent; + private String dayTime; + private String inspectionResult; + private String day1; + private String day2; + private String day3; + private String day4; + private String day5; + private String day6; + private String day7; + private String day8; + private String day9; + private String day10; + private String day11; + private String day12; + private String day13; + private String day14; + private String day15; + private String day16; + private String day17; + private String day18; + private String day19; + private String day20; + private String day21; + private String day22; + private String day23; + private String day24; + private String day25; + private String day26; + private String day27; + private String day28; + private String day29; + private String day30; + private String day31; + + private String confirmUser1; + private String confirmUser2; + private String confirmUser3; + private String confirmUser4; + private String confirmUser5; + private String confirmUser6; + private String confirmUser7; + private String confirmUser8; + private String confirmUser9; + private String confirmUser10; + private String confirmUser11; + private String confirmUser12; + private String confirmUser13; + private String confirmUser14; + private String confirmUser15; + private String confirmUser16; + private String confirmUser17; + private String confirmUser18; + private String confirmUser19; + private String confirmUser20; + private String confirmUser21; + private String confirmUser22; + private String confirmUser23; + private String confirmUser24; + private String confirmUser25; + private String confirmUser26; + private String confirmUser27; + private String confirmUser28; + private String confirmUser29; + private String confirmUser30; + private String confirmUser31; + + private String operator1; + private String operator2; + private String operator3; + private String operator4; + private String operator5; + private String operator6; + private String operator7; + private String operator8; + private String operator9; + private String operator10; + private String operator11; + private String operator12; + private String operator13; + private String operator14; + private String operator15; + private String operator16; + private String operator17; + private String operator18; + private String operator19; + private String operator20; + private String operator21; + private String operator22; + private String operator23; + private String operator24; + private String operator25; + private String operator26; + private String operator27; + private String operator28; + private String operator29; + private String operator30; + private String operator31; + +} -- Gitblit v1.9.3