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;
import cn.hutool.core.date.DateUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil;
import com.ruoyi.api.domain.*;
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.mydojobdetail.domain.MydoJobDetail;
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.stereotype.Service;
@@ -36,6 +37,9 @@ public class ToErpServiceImpl implements IToErpService {
@Autowired
private IBasJobIdService basJobIdService;
@Autowired
private IRequestLogService requestLogService;
private static final String TO_ERP_URL = "http://192.168.1.100:8080/api/";
//todo 需要调试
@@ -83,7 +87,8 @@ public class ToErpServiceImpl implements IToErpService {
objectErpParameter.setDatas(List.of(wipTransferDoc));
erpStdData.setParameter(objectErpParameter);
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);
if ("0".equals(bean.getStd_data().getExecution().getCode())) {
return AjaxResult.success();
@@ -140,7 +145,8 @@ public class ToErpServiceImpl implements IToErpService {
objectErpParameter.setDatas(list);
erpStdData.setParameter(objectErpParameter);
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);
if ("0".equals(bean.getStd_data().getExecution().getCode())) {
return AjaxResult.success();

View File

@@ -54,7 +54,7 @@ public class ToWcsServiceImpl implements IToWcsService {
mydoJobParam.setInOutIds(list);
List<MydoJob> outMydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
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())){
outMydoJob.setStatus("3");
outMydoJob.setExecutionPhase("1");
@@ -67,7 +67,7 @@ public class ToWcsServiceImpl implements IToWcsService {
@Override
public AjaxResult pushAgvMoveJob(AgvMoveParam agvMoveParam) {
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())){
AgvContainerTask agvContainerTask = new AgvContainerTask();
agvContainerTask.setContainer(agvMoveParam.getContainerCode());
@@ -90,7 +90,7 @@ public class ToWcsServiceImpl implements IToWcsService {
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
if (CollUtil.isNotEmpty(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())){
mydoJob.setStatus("2");
mydoJobService.updateMydoJob(mydoJob);
@@ -101,7 +101,7 @@ public class ToWcsServiceImpl implements IToWcsService {
mydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
if (CollUtil.isNotEmpty(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())){
mydoJob.setStatus("2");
mydoJobService.updateMydoJob(mydoJob);
@@ -112,7 +112,7 @@ public class ToWcsServiceImpl implements IToWcsService {
@Override
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())){
return AjaxResult.success();
}
@@ -123,7 +123,7 @@ public class ToWcsServiceImpl implements IToWcsService {
public AjaxResult cancelTaskByTaskNo(String taskNo) {
Map<String,String> map = new HashMap<>();
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())){
return AjaxResult.success();
}
@@ -133,7 +133,7 @@ public class ToWcsServiceImpl implements IToWcsService {
@Override
public AjaxResult selectWcsPort() {
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())){
//将requestLog中的responseBody转为List<WcsPort>
AjaxResult bean = JSONUtil.toBean(requestLog.getResponseBody(), AjaxResult.class);
@@ -148,7 +148,7 @@ public class ToWcsServiceImpl implements IToWcsService {
Map<String,String> map = new HashMap<>();
map.put("portCode", wcsPort.getPortCode());
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())){
return AjaxResult.success();
}

View File

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

View File

@@ -1,47 +1,21 @@
package com.ruoyi.pda.controller;
import cn.hutool.core.util.StrUtil;
import com.ruoyi.api.domain.RequestEnter;
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.core.controller.BaseController;
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.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.TrayCodeMsg;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping("/pda")