feat(log): 扩展请求日志服务以支持来源和目标系统参数

This commit is contained in:
liuhanqing
2025-12-12 10:37:45 +08:00
parent 5d66da5c47
commit 0cb96a455c
5 changed files with 29 additions and 57 deletions

View File

@@ -1,7 +1,6 @@
package com.ruoyi.api.service.impl; package com.ruoyi.api.service.impl;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.ruoyi.api.domain.*; import com.ruoyi.api.domain.*;
import com.ruoyi.api.service.IToErpService; import com.ruoyi.api.service.IToErpService;
@@ -13,6 +12,8 @@ import com.ruoyi.in.erp.service.ITransferBillCallbackService;
import com.ruoyi.job.mydojob.service.IMydoJobService; import com.ruoyi.job.mydojob.service.IMydoJobService;
import com.ruoyi.job.mydojobdetail.domain.MydoJobDetail; import com.ruoyi.job.mydojobdetail.domain.MydoJobDetail;
import com.ruoyi.job.mydojobdetail.service.IMydoJobDetailService; import com.ruoyi.job.mydojobdetail.service.IMydoJobDetailService;
import com.ruoyi.log.domain.RequestLog;
import com.ruoyi.log.service.IRequestLogService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -36,6 +37,9 @@ public class ToErpServiceImpl implements IToErpService {
@Autowired @Autowired
private IBasJobIdService basJobIdService; private IBasJobIdService basJobIdService;
@Autowired
private IRequestLogService requestLogService;
private static final String TO_ERP_URL = "http://192.168.1.100:8080/api/"; private static final String TO_ERP_URL = "http://192.168.1.100:8080/api/";
//todo 需要调试 //todo 需要调试
@@ -83,7 +87,8 @@ public class ToErpServiceImpl implements IToErpService {
objectErpParameter.setDatas(List.of(wipTransferDoc)); objectErpParameter.setDatas(List.of(wipTransferDoc));
erpStdData.setParameter(objectErpParameter); erpStdData.setParameter(objectErpParameter);
param.setStd_data(erpStdData); param.setStd_data(erpStdData);
String post = HttpUtil.post(OTHER_IN_OUTBOUND_ORDER_URL, JSONUtil.toJsonStr(param)); RequestLog requestLog = requestLogService.getRequestLog(WORKSHOP_INBOUND_ORDER_URL, JSONUtil.toJsonStr(param), "创建工艺单","wms","erp");
String post = requestLog.getResponseBody();
ErpInterfaceParam bean = JSONUtil.toBean(post, ErpInterfaceParam.class); ErpInterfaceParam bean = JSONUtil.toBean(post, ErpInterfaceParam.class);
if ("0".equals(bean.getStd_data().getExecution().getCode())) { if ("0".equals(bean.getStd_data().getExecution().getCode())) {
return AjaxResult.success(); return AjaxResult.success();
@@ -140,7 +145,8 @@ public class ToErpServiceImpl implements IToErpService {
objectErpParameter.setDatas(list); objectErpParameter.setDatas(list);
erpStdData.setParameter(objectErpParameter); erpStdData.setParameter(objectErpParameter);
param.setStd_data(erpStdData); param.setStd_data(erpStdData);
String post = HttpUtil.post(OTHER_IN_OUTBOUND_ORDER_URL, JSONUtil.toJsonStr(param)); RequestLog requestLog = requestLogService.getRequestLog( OTHER_IN_OUTBOUND_ORDER_URL, JSONUtil.toJsonStr(param), "创建其他入出库单","wms","erp");
String post = requestLog.getResponseBody();
ErpInterfaceParam bean = JSONUtil.toBean(post, ErpInterfaceParam.class); ErpInterfaceParam bean = JSONUtil.toBean(post, ErpInterfaceParam.class);
if ("0".equals(bean.getStd_data().getExecution().getCode())) { if ("0".equals(bean.getStd_data().getExecution().getCode())) {
return AjaxResult.success(); return AjaxResult.success();

View File

@@ -54,7 +54,7 @@ public class ToWcsServiceImpl implements IToWcsService {
mydoJobParam.setInOutIds(list); mydoJobParam.setInOutIds(list);
List<MydoJob> outMydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam); List<MydoJob> outMydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
for (MydoJob outMydoJob : outMydoJobs) { for (MydoJob outMydoJob : outMydoJobs) {
RequestLog requestLog = requestLogService.getRequestLog(PUSH_OUT_MYDO_JOB, JSONUtil.toJsonStr(outMydoJob), "推送出库任务"); RequestLog requestLog = requestLogService.getRequestLog(PUSH_OUT_MYDO_JOB, JSONUtil.toJsonStr(outMydoJob), "推送出库任务","wms","wcs");
if ("1".equals(requestLog.getIsSuccessful())){ if ("1".equals(requestLog.getIsSuccessful())){
outMydoJob.setStatus("3"); outMydoJob.setStatus("3");
outMydoJob.setExecutionPhase("1"); outMydoJob.setExecutionPhase("1");
@@ -67,7 +67,7 @@ public class ToWcsServiceImpl implements IToWcsService {
@Override @Override
public AjaxResult pushAgvMoveJob(AgvMoveParam agvMoveParam) { public AjaxResult pushAgvMoveJob(AgvMoveParam agvMoveParam) {
agvMoveParam.setTaskNo(IdUtil.fastSimpleUUID()); agvMoveParam.setTaskNo(IdUtil.fastSimpleUUID());
RequestLog requestLog = requestLogService.getRequestLog(PUSH_AGV_MOVE_JOB, JSONUtil.toJsonStr(agvMoveParam), "推送搬运任务"); RequestLog requestLog = requestLogService.getRequestLog(PUSH_AGV_MOVE_JOB, JSONUtil.toJsonStr(agvMoveParam), "推送搬运任务","wms","wcs");
if ("1".equals(requestLog.getIsSuccessful())){ if ("1".equals(requestLog.getIsSuccessful())){
AgvContainerTask agvContainerTask = new AgvContainerTask(); AgvContainerTask agvContainerTask = new AgvContainerTask();
agvContainerTask.setContainer(agvMoveParam.getContainerCode()); agvContainerTask.setContainer(agvMoveParam.getContainerCode());
@@ -90,7 +90,7 @@ public class ToWcsServiceImpl implements IToWcsService {
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam); List<MydoJob> mydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
if (CollUtil.isNotEmpty(mydoJobs)){ if (CollUtil.isNotEmpty(mydoJobs)){
for (MydoJob mydoJob : mydoJobs) { for (MydoJob mydoJob : mydoJobs) {
RequestLog requestLog = requestLogService.getRequestLog(PUSH_IN_MYDO_JOB, JSONUtil.toJsonStr(mydoJob), "推送出库任务"); RequestLog requestLog = requestLogService.getRequestLog(PUSH_IN_MYDO_JOB, JSONUtil.toJsonStr(mydoJob), "推送入库任务","wms","wcs");
if ("1".equals(requestLog.getIsSuccessful())){ if ("1".equals(requestLog.getIsSuccessful())){
mydoJob.setStatus("2"); mydoJob.setStatus("2");
mydoJobService.updateMydoJob(mydoJob); mydoJobService.updateMydoJob(mydoJob);
@@ -101,7 +101,7 @@ public class ToWcsServiceImpl implements IToWcsService {
mydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam); mydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
if (CollUtil.isNotEmpty(mydoJobs)){ if (CollUtil.isNotEmpty(mydoJobs)){
for (MydoJob mydoJob : mydoJobs) { for (MydoJob mydoJob : mydoJobs) {
RequestLog requestLog = requestLogService.getRequestLog(PUSH_IN_MYDO_JOB, JSONUtil.toJsonStr(mydoJob), "推送出库任务"); RequestLog requestLog = requestLogService.getRequestLog(PUSH_IN_MYDO_JOB, JSONUtil.toJsonStr(mydoJob), "推送流利架入库任务","wms","wcs");
if ("1".equals(requestLog.getIsSuccessful())){ if ("1".equals(requestLog.getIsSuccessful())){
mydoJob.setStatus("2"); mydoJob.setStatus("2");
mydoJobService.updateMydoJob(mydoJob); mydoJobService.updateMydoJob(mydoJob);
@@ -112,7 +112,7 @@ public class ToWcsServiceImpl implements IToWcsService {
@Override @Override
public AjaxResult outMydojobMakeSure(HashMap<String, String> outMydojobMakeSureParam) { public AjaxResult outMydojobMakeSure(HashMap<String, String> outMydojobMakeSureParam) {
RequestLog requestLog = requestLogService.getRequestLog(OUT_MYDOJOB_MS, JSONUtil.toJsonStr(outMydojobMakeSureParam), "推送出库任务"); RequestLog requestLog = requestLogService.getRequestLog(OUT_MYDOJOB_MS, JSONUtil.toJsonStr(outMydojobMakeSureParam), "推送出库确认消息","wms","wcs");
if ("1".equals(requestLog.getIsSuccessful())){ if ("1".equals(requestLog.getIsSuccessful())){
return AjaxResult.success(); return AjaxResult.success();
} }
@@ -123,7 +123,7 @@ public class ToWcsServiceImpl implements IToWcsService {
public AjaxResult cancelTaskByTaskNo(String taskNo) { public AjaxResult cancelTaskByTaskNo(String taskNo) {
Map<String,String> map = new HashMap<>(); Map<String,String> map = new HashMap<>();
map.put("taskNo", taskNo); map.put("taskNo", taskNo);
RequestLog requestLog = requestLogService.getRequestLog(CANCEL_MYDOJOB, JSONUtil.toJsonStr(map), "取消任务"); RequestLog requestLog = requestLogService.getRequestLog(CANCEL_MYDOJOB, JSONUtil.toJsonStr(map), "取消任务","wms","wcs");
if ("1".equals(requestLog.getIsSuccessful())){ if ("1".equals(requestLog.getIsSuccessful())){
return AjaxResult.success(); return AjaxResult.success();
} }
@@ -133,7 +133,7 @@ public class ToWcsServiceImpl implements IToWcsService {
@Override @Override
public AjaxResult selectWcsPort() { public AjaxResult selectWcsPort() {
Map<String,String> map = new HashMap<>(); Map<String,String> map = new HashMap<>();
RequestLog requestLog = requestLogService.getRequestLog(SELECT_WCS_PORT, JSONUtil.toJsonStr(map), "查询缓存点"); RequestLog requestLog = requestLogService.getRequestLog(SELECT_WCS_PORT, JSONUtil.toJsonStr(map), "查询缓存点","wms","wcs");
if ("1".equals(requestLog.getIsSuccessful())){ if ("1".equals(requestLog.getIsSuccessful())){
//将requestLog中的responseBody转为List<WcsPort> //将requestLog中的responseBody转为List<WcsPort>
AjaxResult bean = JSONUtil.toBean(requestLog.getResponseBody(), AjaxResult.class); AjaxResult bean = JSONUtil.toBean(requestLog.getResponseBody(), AjaxResult.class);
@@ -148,7 +148,7 @@ public class ToWcsServiceImpl implements IToWcsService {
Map<String,String> map = new HashMap<>(); Map<String,String> map = new HashMap<>();
map.put("portCode", wcsPort.getPortCode()); map.put("portCode", wcsPort.getPortCode());
map.put("status", wcsPort.getStatus()); map.put("status", wcsPort.getStatus());
RequestLog requestLog = requestLogService.getRequestLog(UPDATE_WCS_PORT, JSONUtil.toJsonStr(map), "修改缓存点状态"); RequestLog requestLog = requestLogService.getRequestLog(UPDATE_WCS_PORT, JSONUtil.toJsonStr(map), "修改缓存点状态","wms","wcs");
if ("1".equals(requestLog.getIsSuccessful())){ if ("1".equals(requestLog.getIsSuccessful())){
return AjaxResult.success(); return AjaxResult.success();
} }

View File

@@ -68,7 +68,7 @@ public interface IRequestLogService
* @param remark * @param remark
* @return * @return
*/ */
public RequestLog getRequestLog(String url, String param, String remark); public RequestLog getRequestLog(String url, String param, String remark,String source,String target);
/** /**
* 接收接口记录 * 接收接口记录
* *

View File

@@ -113,11 +113,11 @@ public class RequestLogServiceImpl implements IRequestLogService
* @return requestLog * @return requestLog
*/ */
@Override @Override
public RequestLog getRequestLog(String url, String param, String remark) { public RequestLog getRequestLog(String url, String param, String remark,String source,String target) {
RequestLog requestLog = new RequestLog(); RequestLog requestLog = new RequestLog();
requestLog.setRequestTime(DateUtil.formatDateTime(new Date())); requestLog.setRequestTime(DateUtil.formatDateTime(new Date()));
requestLog.setSourceSystem("wcs"); requestLog.setSourceSystem(source);
requestLog.setTargetSystem("wms"); requestLog.setTargetSystem(target);
requestLog.setEndpoint(remark); requestLog.setEndpoint(remark);
requestLog.setRequestMethod("post"); requestLog.setRequestMethod("post");
requestLog.setRequestHeaders(null); requestLog.setRequestHeaders(null);
@@ -126,18 +126,10 @@ public class RequestLogServiceImpl implements IRequestLogService
try { try {
String resStr = HttpUtil.post(url, param); String resStr = HttpUtil.post(url, param);
requestLog.setResponseBody(resStr); requestLog.setResponseBody(resStr);
AjaxResult bean = JSONUtil.toBean(resStr, AjaxResult.class); requestLog.setResponseTime(DateUtil.formatDateTime(new Date()));
if (Convert.toInt(bean.get("code")) == 200) { requestLog.setResponseStatus("1");
requestLog.setResponseTime(DateUtil.formatDateTime(new Date())); requestLog.setDuration(Convert.toStr(DateUtil.between(Convert.toDate(requestLog.getRequestTime()), Convert.toDate(requestLog.getResponseTime()), DateUnit.MS)));
requestLog.setResponseStatus("1"); requestLog.setIsSuccessful("1");
requestLog.setDuration(Convert.toStr(DateUtil.between(Convert.toDate(requestLog.getRequestTime()), Convert.toDate(requestLog.getResponseTime()), DateUnit.MS)));
requestLog.setIsSuccessful("1");
}else {
requestLog.setResponseStatus("0");
requestLog.setErrorDetails(Convert.toStr(bean.get("msg")));
requestLog.setIsSuccessful("0");
}
} catch (Exception e) { } catch (Exception e) {
requestLog.setErrorDetails(e.getMessage()); requestLog.setErrorDetails(e.getMessage());
requestLog.setIsSuccessful("0"); requestLog.setIsSuccessful("0");

View File

@@ -1,47 +1,21 @@
package com.ruoyi.pda.controller; package com.ruoyi.pda.controller;
import cn.hutool.core.util.StrUtil;
import com.ruoyi.api.domain.RequestEnter; import com.ruoyi.api.domain.RequestEnter;
import com.ruoyi.api.domain.WcsPort; import com.ruoyi.api.domain.WcsPort;
import com.ruoyi.api.service.IToWcsService;
import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace;
import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService;
import com.ruoyi.bas.container.domain.BasContainer;
import com.ruoyi.bas.warehouse.domain.BasWarehouse;
import com.ruoyi.bas.warehouse.service.IBasWarehouseService;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysDictData;
import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.MessageUtils;
import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockin.service.IInStockinService;
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
import com.ruoyi.in.stockindetail.service.IInStockinDetailService;
import com.ruoyi.job.mydojob.domain.MydoJob;
import com.ruoyi.job.mydojob.service.IMydoJobService;
import com.ruoyi.job.mydojobdetail.domain.MydoJobDetail;
import com.ruoyi.job.mydojobdetail.service.IMydoJobDetailService;
import com.ruoyi.out.outStockout.domain.OutStockout;
import com.ruoyi.out.outStockout.service.IOutStockoutService;
import com.ruoyi.pda.domain.TrayCodeMakeSure; import com.ruoyi.pda.domain.TrayCodeMakeSure;
import com.ruoyi.pda.domain.TrayCodeMsg;
import com.ruoyi.pda.service.PdaService; import com.ruoyi.pda.service.PdaService;
import com.ruoyi.pda.trayMsg.domain.TrayMsg;
import com.ruoyi.pda.trayMsg.service.ITrayMsgService;
import com.ruoyi.stock.stock.domain.BasStock;
import com.ruoyi.stock.stock.service.IBasStockService;
import com.ruoyi.system.service.ISysDictTypeService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.ArrayList; import org.springframework.web.bind.annotation.RequestMapping;
import java.util.Arrays; import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller @Controller
@RequestMapping("/pda") @RequestMapping("/pda")