From 23855599412c4d61b38d78f0f3abd3430a48b5b1 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期三, 25 六月 2025 11:51:38 +0800
Subject: [PATCH] Merge branch 'mdc_hyjs_master'

---
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java |  217 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 217 insertions(+), 0 deletions(-)

diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java
new file mode 100644
index 0000000..0cae0d9
--- /dev/null
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java
@@ -0,0 +1,217 @@
+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 WEEK_MAINTENANCE:
+                if (result instanceof EamWeekMaintenanceOrder) {
+                    EamWeekMaintenanceOrder order = (EamWeekMaintenanceOrder) result;
+                    if (WeekMaintenanceStatusEnum.COMPLETE.name().equals(order.getMaintenanceStatus())) {
+                        log.setEquipmentId(order.getEquipmentId());
+                        log.setBusinessId(order.getId());
+                        log.setOperator(order.getOperator());
+                        log.setDescription(order.getFinalAcceptanceComment());
+                        log.setCreateTime(order.getActualEndTime());
+                    }
+                }
+                break;
+            case SECOND_MAINTENANCE:
+                if (result instanceof EamSecondMaintenanceOrder) {
+                    EamSecondMaintenanceOrder order = (EamSecondMaintenanceOrder) result;
+                    if (SecondMaintenanceStatusEnum.COMPLETE.name().equals(order.getMaintenanceStatus())) {
+                        log.setEquipmentId(order.getEquipmentId());
+                        log.setBusinessId(order.getId());
+                        log.setOperator(order.getOperator());
+                        log.setDescription(order.getConfirmComment());
+                        log.setCreateTime(order.getActualEndTime());
+                    }
+                }
+                break;
+            case THIRD_MAINTENANCE:
+                if (result instanceof EamThirdMaintenanceOrder) {
+                    EamThirdMaintenanceOrder order = (EamThirdMaintenanceOrder) result;
+                    if (ThirdMaintenanceStatusEnum.COMPLETE.name().equals(order.getMaintenanceStatus())) {
+                        log.setEquipmentId(order.getEquipmentId());
+                        log.setBusinessId(order.getId());
+                        log.setOperator(order.getOperator());
+                        log.setDescription(order.getLeaderConfirmComment());
+                        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;
+            case MAJOR_REPAIR:
+                break;
+            case PARTIAL_REPAIR:
+                break;
+            case LEAN_OUT:
+                if (result instanceof EamEquipmentLeanOut) {
+                    EamEquipmentLeanOut order = (EamEquipmentLeanOut) result;
+                    if (EquipmentLeanOutStatusEnum.COMPLETE.name().equals(order.getLeanStatus())) {
+                        log.setEquipmentId(order.getEquipmentId());
+                        log.setBusinessId(order.getId());
+                        log.setOperator(order.getLeanPerson());
+                        log.setDescription(order.getLeanReason());
+                        log.setCreateTime(order.getLeanStartTime());
+                    }
+                }
+                break;
+            case GIVE_BACK:
+                break;
+            case SEAL_UP:
+                if (result instanceof EamEquipmentSealUp) {
+                    EamEquipmentSealUp order = (EamEquipmentSealUp) result;
+                    if (EquipmentSealUpStatusEnum.COMPLETE.name().equals(order.getSealStatus())) {
+                        log.setEquipmentId(order.getEquipmentId());
+                        log.setBusinessId(order.getId());
+                        log.setOperator(order.getReportUser());
+                        log.setDescription(order.getSealUpReason());
+                        log.setCreateTime(order.getSealEndTime());
+                    }
+                }
+                break;
+            case UNSEALED:
+                break;
+            case TRANSFERRED:
+                if (result instanceof EamEquipmentTransfer) {
+                    EamEquipmentTransfer order = (EamEquipmentTransfer) result;
+                    if (EquipmentTransferStatusEnum.COMPLETE.name().equals(order.getTransferStatus())) {
+                        log.setEquipmentId(order.getEquipmentId());
+                        log.setBusinessId(order.getId());
+                        log.setOperator(order.getReportUser());
+                        log.setDescription(order.getTransferReason());
+                        log.setCreateTime(order.getTransferTime());
+                    }
+                }
+                break;
+            case SCRAPPED:
+                if (result instanceof EamEquipmentScrap) {
+                    EamEquipmentScrap order = (EamEquipmentScrap) result;
+                    if (EquipmentScrapStatusEnum.COMPLETE.name().equals(order.getScrapStatus())) {
+                        log.setEquipmentId(order.getEquipmentId());
+                        log.setBusinessId(order.getId());
+                        log.setOperator(order.getReportUser());
+                        log.setDescription(order.getScrapReason());
+                        log.setCreateTime(order.getScrapTime());
+                    }
+                }
+                break;
+            default:
+                break;
+        }
+    }
+
+//    private long calculateExecutionTime(JoinPoint joinPoint) {
+//        // 閫氳繃鐜粫閫氱煡鑾峰彇绮剧‘鏃堕棿
+//        // 锛堝疄闄呭簲浣跨敤鐜粫閫氱煡涓殑start_time鍜宔nd_time璁$畻锛�
+//        return System.currentTimeMillis() - joinPoint.getArgs()[0].hashCode();
+//        // 姝ゅ浠呬负绀轰緥锛屾纭仛娉曞弬瑙佺幆缁曢�氱煡瀹炵幇
+//    }
+
+
+}

--
Gitblit v1.9.3