| | |
| | | return R.error("参数不能为空"); |
| | | } |
| | | boolean dispatchShuttle = shuttleDispatchUtils.dispatchShuttle(null, param.getLocNo(), param.getShuttleNo()); |
| | | apiLogService.insert(new ApiLog( |
| | | null |
| | | , "小车移动任务" |
| | | , "/createMoveTask" |
| | | , null |
| | | , null |
| | | , null |
| | | , JSON.toJSONString(param) |
| | | , null |
| | | , null |
| | | , dispatchShuttle ? 1 : 0 |
| | | , 1 |
| | | , new Date() |
| | | , null |
| | | , null |
| | | )); |
| | | if (dispatchShuttle) { |
| | | return R.ok(); |
| | | } |
| | |
| | | return R.error("参数不能为空"); |
| | | } |
| | | boolean result = commonService.createLocMoveTask(param); |
| | | apiLogService.insert(new ApiLog( |
| | | null |
| | | , "移库任务" |
| | | , "/createLocMoveTask" |
| | | , null |
| | | , null |
| | | , null |
| | | , JSON.toJSONString(param) |
| | | , null |
| | | , null |
| | | , result ? 1 : 0 |
| | | , 1 |
| | | , new Date() |
| | | , null |
| | | , null |
| | | )); |
| | | if (result) { |
| | | return R.ok(); |
| | | } |
| | |
| | | return R.error("参数不能为空"); |
| | | } |
| | | boolean result = commonService.createInTask(param); |
| | | apiLogService.insert(new ApiLog( |
| | | null |
| | | , "入库任务" |
| | | , "/createInTask" |
| | | , null |
| | | , null |
| | | , null |
| | | , JSON.toJSONString(param) |
| | | , null |
| | | , null |
| | | , result ? 1 : 0 |
| | | , 1 |
| | | , new Date() |
| | | , null |
| | | , null |
| | | )); |
| | | if (result) { |
| | | return R.ok(); |
| | | } |
| | |
| | | return R.error("参数不能为空"); |
| | | } |
| | | boolean result = commonService.createOutTask(param); |
| | | apiLogService.insert(new ApiLog( |
| | | null |
| | | , "出库任务" |
| | | , "/createOutTask" |
| | | , null |
| | | , null |
| | | , null |
| | | , JSON.toJSONString(param) |
| | | , null |
| | | , null |
| | | , result ? 1 : 0 |
| | | , 1 |
| | | , new Date() |
| | | , null |
| | | , null |
| | | )); |
| | | if (result) { |
| | | return R.ok(); |
| | | } |
| | |
| | | return R.error("参数不能为空"); |
| | | } |
| | | boolean completeTask = commonService.completeTask(param); |
| | | apiLogService.insert(new ApiLog( |
| | | null |
| | | , "任务完成" |
| | | , "/completeTask" |
| | | , null |
| | | , null |
| | | , null |
| | | , JSON.toJSONString(param) |
| | | , null |
| | | , null |
| | | , completeTask ? 1 : 0 |
| | | , 1 |
| | | , new Date() |
| | | , null |
| | | , null |
| | | )); |
| | | if (completeTask) { |
| | | return R.ok(); |
| | | } |
| | |
| | | return R.error("参数不能为空"); |
| | | } |
| | | boolean completeTask = commonService.cancelTask(param); |
| | | apiLogService.insert(new ApiLog( |
| | | null |
| | | , "任务取消" |
| | | , "/cancelTask" |
| | | , null |
| | | , null |
| | | , null |
| | | , JSON.toJSONString(param) |
| | | , null |
| | | , null |
| | | , completeTask ? 1 : 0 |
| | | , 1 |
| | | , new Date() |
| | | , null |
| | | , null |
| | | )); |
| | | if (completeTask) { |
| | | return R.ok(); |
| | | } |
| | |
| | | @OpenApiLog(memo = "小车集合") |
| | | public R shuttleGather(@RequestBody ShuttleGatherParam param) { |
| | | List<ShuttleGatherResult> shuttleGather = shuttleDispatchUtils.shuttleGather(param); |
| | | |
| | | apiLogService.insert(new ApiLog( |
| | | null |
| | | , "小车集合" |
| | | , "/shuttleGather" |
| | | , null |
| | | , null |
| | | , null |
| | | , JSON.toJSONString(param) |
| | | , JSON.toJSONString(shuttleGather) |
| | | , null |
| | | , null |
| | | , 1 |
| | | , new Date() |
| | | , null |
| | | , null |
| | | )); |
| | | |
| | | return R.ok().add(shuttleGather); |
| | | } |
| | | |
| | |
| | | @OpenApiLog(memo = "小车演示") |
| | | public R shuttleDemo(@RequestBody ShuttleDemoParam param) { |
| | | shuttleDispatchUtils.shuttleDemo(param); |
| | | |
| | | apiLogService.insert(new ApiLog( |
| | | null |
| | | , "小车演示" |
| | | , "/shuttleDemo" |
| | | , null |
| | | , null |
| | | , null |
| | | , JSON.toJSONString(param) |
| | | , null |
| | | , null |
| | | , null |
| | | , 1 |
| | | , new Date() |
| | | , null |
| | | , null |
| | | )); |
| | | |
| | | return R.ok(); |
| | | } |
| | | |
| | |
| | | wrapper.eq("io_type", ioType.id); |
| | | } |
| | | List<WrkMast> wrkMasts = wrkMastService.selectList(wrapper); |
| | | apiLogService.insert(new ApiLog( |
| | | null |
| | | , "查询任务" |
| | | , "/queryTask" |
| | | , null |
| | | , null |
| | | , null |
| | | , JSON.toJSONString(param) |
| | | , JSON.toJSONString(wrkMasts) |
| | | , null |
| | | , null |
| | | , 1 |
| | | , new Date() |
| | | , null |
| | | , null |
| | | )); |
| | | |
| | | return R.ok().add(wrkMasts); |
| | | } |
| | | |
| New file |
| | |
| | | package com.zy.common.config; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.core.common.Cools; |
| | | import com.core.common.R; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.ApiLog; |
| | | import com.zy.asrs.service.ApiLogService; |
| | | import com.zy.common.annotations.OpenApiLog; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | 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.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 org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.lang.reflect.Method; |
| | | import java.util.Arrays; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Optional; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Component |
| | | @Aspect |
| | | @Slf4j |
| | | public class AspectConfig { |
| | | |
| | | @Autowired |
| | | private ApiLogService apiLogService; |
| | | |
| | | @Pointcut("execution(* com.zy.asrs.controller.*(..))") |
| | | private void webLog() { |
| | | } |
| | | |
| | | @Around("@within(org.springframework.web.bind.annotation.RestController)" + |
| | | "||@within(org.springframework.stereotype.Controller)") |
| | | public Object after(ProceedingJoinPoint joinPoint) throws Throwable { |
| | | ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); |
| | | HttpServletRequest request = requestAttributes != null ? requestAttributes.getRequest() : null; |
| | | long start = System.currentTimeMillis(); |
| | | MethodSignature signature = (MethodSignature) joinPoint.getSignature(); |
| | | Method method = signature.getMethod(); |
| | | OpenApiLog annotation = method.isAnnotationPresent(OpenApiLog.class) ? method.getAnnotation(OpenApiLog.class) : null; |
| | | Object result = null; |
| | | Object errorResponse = null; |
| | | try { |
| | | result = joinPoint.proceed(joinPoint.getArgs()); |
| | | if (annotation != null && !Cools.isEmpty(annotation.memo())) { |
| | | saveLog(joinPoint, request, result, annotation.memo()); |
| | | } |
| | | return result; |
| | | } catch (Throwable ex) { |
| | | errorResponse = buildErrorResponse(ex); |
| | | if (annotation != null && !Cools.isEmpty(annotation.memo())) { |
| | | saveErrLog(joinPoint, request, errorResponse, ex, annotation.memo()); |
| | | } |
| | | throw ex; |
| | | } finally { |
| | | long end = System.currentTimeMillis(); |
| | | // log.info("请求日志的打印"); |
| | | // log.info("请求地址:{}", request != null ? Optional.ofNullable(request.getRequestURI()).orElse(null) : null); |
| | | // log.info("请求方式:{}", request != null ? request.getMethod() : null); |
| | | // log.info("请求类方法:{}", joinPoint.getSignature()); |
| | | // log.info("请求类方法参数:{}", JSONObject.toJSONString(filterArgs(joinPoint.getArgs()))); |
| | | // log.info("请求响应参数{}", JSONObject.toJSONString(result != null ? result : errorResponse)); |
| | | // log.info("执行耗时:{}", end - start); |
| | | } |
| | | } |
| | | |
| | | private List<Object> filterArgs(Object[] objects) { |
| | | return Arrays.stream(objects).filter(obj -> !(obj instanceof MultipartFile) |
| | | && !(obj instanceof HttpServletResponse) |
| | | && !(obj instanceof HttpServletRequest)).collect(Collectors.toList()); |
| | | } |
| | | |
| | | private void saveLog(ProceedingJoinPoint joinPoint, HttpServletRequest request, Object result, String memo) { |
| | | apiLogService.insert(new ApiLog( |
| | | null, |
| | | memo, |
| | | request != null ? Optional.ofNullable(String.valueOf(request.getRequestURI())).orElse(null) : null, |
| | | null, |
| | | null, |
| | | null, |
| | | JSONObject.toJSONString(filterArgs(joinPoint.getArgs())), |
| | | JSON.toJSONString(result), |
| | | null, |
| | | 1, |
| | | 1, |
| | | new Date(), |
| | | null, |
| | | null |
| | | )); |
| | | } |
| | | |
| | | private void saveErrLog(ProceedingJoinPoint joinPoint, HttpServletRequest request, Object response, Throwable ex, String memo) { |
| | | apiLogService.insert(new ApiLog( |
| | | null, |
| | | memo, |
| | | request != null ? Optional.ofNullable(String.valueOf(request.getRequestURI())).orElse(null) : null, |
| | | null, |
| | | null, |
| | | null, |
| | | JSONObject.toJSONString(filterArgs(joinPoint.getArgs())), |
| | | JSON.toJSONString(response), |
| | | String.valueOf(ex), |
| | | 0, |
| | | 1, |
| | | new Date(), |
| | | null, |
| | | null |
| | | )); |
| | | } |
| | | |
| | | private Object buildErrorResponse(Throwable ex) { |
| | | if (ex instanceof CoolException) { |
| | | return R.parse(ex.getMessage()); |
| | | } |
| | | return R.error(); |
| | | } |
| | | |
| | | } |