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