lxzn-module-eam/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,118 @@ package org.jeecg.modules.eam.aspect; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.*; import org.aspectj.lang.reflect.MethodSignature; import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog; import org.jeecg.modules.eam.constant.EquipmentOperationTagEnum; import org.jeecg.modules.eam.entity.EamEquipment; import org.jeecg.modules.eam.entity.EamEquipmentHistoryLog; import org.jeecg.modules.eam.service.IEamEquipmentHistoryLogService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; import java.lang.reflect.Method; import java.util.Arrays; import java.util.Date; /** * 设å¤å±¥å åé¢å®ç° */ @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); 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: break; case SECOND_MAINTENANCE: break; case THIRD_MAINTENANCE: break; case REPORT_REPAIR: break; case REPAIRED: break; case MAJOR_REPAIR: break; case PARTIAL_REPAIR: break; case LEAN_OUT: break; case GIVE_BACK: break; case SEAL_UP: break; case UNSEALED: break; case TRANSFERRED: break; case SCRAPPED: break; default: break; } } // private long calculateExecutionTime(JoinPoint joinPoint) { // // éè¿ç¯ç»éç¥è·å精确æ¶é´ // // ï¼å®é åºä½¿ç¨ç¯ç»éç¥ä¸çstart_timeåend_time计ç®ï¼ // return System.currentTimeMillis() - joinPoint.getArgs()[0].hashCode(); // // æ¤å¤ä» 为示ä¾ï¼æ£ç¡®åæ³åè§ç¯ç»éç¥å®ç° // } } lxzn-module-eam/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 ""; } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/constant/EquipmentOperationTagEnum.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package org.jeecg.modules.eam.constant; /** * 设å¤å±¥å */ public enum EquipmentOperationTagEnum { ACCEPTANCE, //éªæ¶ POINT_INSPECTION, //ç¹æ£ SECOND_MAINTENANCE, //äºä¿ THIRD_MAINTENANCE, //ä¸ä¿ REPORT_REPAIR, //æ¥ä¿® REPAIRED, //ç»´ä¿® MAJOR_REPAIR, //大修 PARTIAL_REPAIR, //项修 LEAN_OUT, //ååº GIVE_BACK, //å½è¿ SEAL_UP, //å°å UNSEALED, //å¯å° TRANSFERRED, //转让 SCRAPPED, //æ¥åº OTHER, //å ¶å® ; } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
@@ -66,8 +66,8 @@ @ApiOperation(value = "设å¤å°è´¦-æ·»å ", notes = "设å¤å°è´¦-æ·»å ") @PostMapping(value = "/add") public Result<?> add(@RequestBody EamEquipment eamEquipment) { boolean b = eamEquipmentService.saveEquipment(eamEquipment); if (!b) { EamEquipment entity = eamEquipmentService.saveEquipment(eamEquipment); if (entity == null) { Result.OK("æ·»å 失败ï¼"); } return Result.OK("æ·»å æåï¼"); lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java
@@ -15,5 +15,5 @@ * å°è´¦è®¾å¤æ·»å * @param eamEquipment */ boolean saveEquipment(EamEquipment eamEquipment); EamEquipment saveEquipment(EamEquipment eamEquipment); } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
@@ -2,8 +2,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.common.constant.CommonConstant; 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; @@ -32,9 +34,10 @@ @Override @Transactional(rollbackFor = Exception.class) public boolean saveEquipment(EamEquipment eamEquipment) { @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.ACCEPTANCE, businessTable = "eam_equipment") public EamEquipment saveEquipment(EamEquipment eamEquipment) { if (eamEquipment == null) { return false; return null; } //èµäº§ç¶æé»è®¤ æ£å¸¸ eamEquipment.setAssetStatus(AssetStatusEnum.NORMAL.name()); @@ -50,6 +53,6 @@ equipmentExtendService.save(eamEquipmentExtend); //æå ¥è®¾å¤å±¥å TODO return true; return eamEquipment; } }