diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java index 84017a7..e105a86 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java @@ -91,6 +91,9 @@ public class WcsServiceImpl implements WcsService { @Transactional(rollbackFor = Exception.class) @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'详情分配库位'", extra = "#extraJsonString", msg = "'任务ID:' + #warecellDomain.getTaskNo() + ',库位编码:' + #locationCode", condition = "#receiptContainerDetailList.size() > 0", recordReturnValue = true) + @OperationLog(bizId = "#taskHeader.getId()", bizType = "'任务追踪'", tag = "'分配库位'", extra = "''", + msg = "'任务类型:' + #taskHeader.getTaskType() + ',起始库位:' + #taskHeader.getFromLocationCode() + ',目标库位:' + #taskHeader.getToLocationCode() + ',容器编码:' + #taskHeader.getContainerCode()", + recordReturnValue = true) public Result warecellAllocation(WarecellDomain warecellDomain) { String warehouseCode = warecellDomain.getWarehouseCode(); String zoneCode = warecellDomain.getZoneCode(); @@ -241,12 +244,16 @@ public class WcsServiceImpl implements WcsService { LogRecordContext.putVariable("locationCode", locationCode);// 操作日志收集 LogRecordContext.putVariable("receiptContainerDetailList", receiptContainerDetailList);// 操作日志收集 LogRecordContext.putVariable("extraJsonString", JSON.toJSONString(receiptContainerDetailList));// 操作日志收集 + LogRecordContext.putVariable("taskHeader", taskHeader);// 操作日志收集 return Result.OK(wcsTask); } @Override @Transactional(rollbackFor = Exception.class) @ApiLogger(apiName = "任务下发", from = "WCS") + @OperationLog(bizId = "#taskHeader.getId()", bizType = "'任务追踪'", tag = "'任务下发'", extra = "''", + msg = "'任务类型:' + #taskHeader.getTaskType() + ',起始库位:' + #taskHeader.getFromLocationCode() + ',目标库位:' + #taskHeader.getToLocationCode() + ',容器编码:' + #taskHeader.getContainerCode()", + recordReturnValue = true) public Result wcsTaskAssign(TaskHeader taskHeader) { if (taskHeader == null) { return Result.error("wms任务为空"); @@ -400,7 +407,7 @@ public class WcsServiceImpl implements WcsService { return Result.error(result.getMessage()); } } - + LogRecordContext.putVariable("taskHeader", taskHeader);// 操作日志收集 return Result.ok("下发成功"); } @@ -614,6 +621,9 @@ public class WcsServiceImpl implements WcsService { @Override @Transactional(rollbackFor = Exception.class) + @OperationLog(bizId = "#taskHeader.getId()", bizType = "'任务追踪'", tag = "'到达站台'", extra = "''", + msg = "'任务类型:' + #taskHeader.getTaskType() + ',起始库位:' + #taskHeader.getFromLocationCode() + ',目标库位:' + #taskHeader.getToLocationCode() + ',容器编码:' + #taskHeader.getContainerCode() + ',目标出入口:' + #taskHeader.getToPortCode()", + recordReturnValue = true) public Result arrivedNotice(String taskNo, String port) { TaskHeader taskHeader = taskHeaderService.getById(taskNo); if (taskHeader == null) { @@ -629,6 +639,7 @@ public class WcsServiceImpl implements WcsService { if (!result) { return Result.error("更新到达站台失败"); } + LogRecordContext.putVariable("taskHeader", taskHeader);// 操作日志收集 return Result.ok("更新到达站台成功"); } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/operation/service/impl/OperationLogServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/operation/service/impl/OperationLogServiceImpl.java index 35aa882..5b76a45 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/operation/service/impl/OperationLogServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/operation/service/impl/OperationLogServiceImpl.java @@ -42,51 +42,85 @@ public class OperationLogServiceImpl extends ServiceImpl<OperationLogMapper, Ope log.debug(">>>>>> create OperationLog:{} <<<<<<", JSON.toJSONString(logDTO)); List<OperationLog> operationLogList = new ArrayList<OperationLog>(); if (!StringUtils.isEmpty(logDTO.getExtra())) { - if (logDTO.getBizType().equals("物料追踪")) { - if (logDTO.getTag().equals("入库组盘")) { - String message = "容器编码:{},物料编码:{},数量:{}"; - operationLogList.addAll(createOperationLogs(logDTO, ReceiptContainerDetail.class, "getUniqueCode", message, "getReferCode", "getReceiptCode", - "getWarehouseCode", "getContainerCode", "getMaterialCode", "getQty")); - } - } else if (logDTO.getBizType().equals("入库单追踪")) { - if (logDTO.getTag().equals("详情分配库位") || logDTO.getTag().equals("详情组盘") || logDTO.getTag().equals("详情取消组盘") || logDTO.getTag().equals("入库任务生成") - || logDTO.getTag().equals("入库任务取消")) { - String message = "容器编码:{},物料编码:{},入库数量:{}"; - operationLogList.addAll( - createOperationLogs(logDTO, ReceiptContainerDetail.class, "getReceiptCode", message, "getContainerCode", "getMaterialCode", "getQty")); - } else if (logDTO.getTag().equals("入库任务完成")) { - String message = "物料编码:{},入库数量:{}"; - operationLogList.addAll(createOperationLogs(logDTO, TaskDetail.class, "getReceiptCode", message, "getMaterialCode", "getQty")); - } else if (logDTO.getTag().equals("详情入库完成")) { - Thread.sleep(100); - String message = "物料编码:{},数量:{}"; - operationLogList.addAll(createOperationLogs(logDTO, ReceiptDetail.class, "getReceiptCode", message, "getMaterialCode", "getQty")); - } else { - String message = "物料编码:{},数量:{}"; - operationLogList.addAll(createOperationLogs(logDTO, ReceiptDetail.class, "getReceiptCode", message, "getMaterialCode", "getQty")); - } - } else if (logDTO.getBizType().equals("出库单追踪")) { - if (logDTO.getTag().equals("详情配盘") || logDTO.getTag().equals("详情取消配盘")) { - String message = "库位编码:{},容器编码:{},物料编码:{},出库数量:{}"; - operationLogList.addAll(createOperationLogs(logDTO, ShipmentContainerDetail.class, "getShipmentCode", message, "getFromLocationCode", - "getContainerCode", "getMaterialCode", "getQty")); - } else if (logDTO.getTag().equals("出库任务生成") || logDTO.getTag().equals("出库任务取消")) { - String message = "物料编码:{},出库数量:{}"; - operationLogList.addAll(createOperationLogs(logDTO, ShipmentContainerDetail.class, "getShipmentCode", message, "getMaterialCode", "getQty")); - } else if (logDTO.getTag().equals("出库任务完成")) { - String message = "物料编码:{},出库数量:{}"; - operationLogList.addAll(createOperationLogs(logDTO, TaskDetail.class, "getShipmentCode", message, "getMaterialCode", "getQty")); - } else if (logDTO.getTag().equals("详情出库完成")) { - Thread.sleep(100); - String message = "物料编码:{},数量:{}"; - operationLogList.addAll(createOperationLogs(logDTO, ShipmentDetail.class, "getShipmentCode", message, "getMaterialCode", "getQty")); - } else { - String message = "物料编码:{},数量:{}"; - operationLogList.addAll(createOperationLogs(logDTO, ShipmentDetail.class, "getShipmentCode", message, "getMaterialCode", "getQty")); - } + String message = null; + switch (logDTO.getBizType()) { + case "物料追踪": + switch (logDTO.getTag()) { + case "入库组盘": + message = "容器编码:{},物料编码:{},数量:{}"; + operationLogList.addAll(createOperationLogs(logDTO, ReceiptContainerDetail.class, "getUniqueCode", message, "getReferCode", + "getReceiptCode", "getWarehouseCode", "getContainerCode", "getMaterialCode", "getQty")); + break; + } + break; + case "入库单追踪": + switch (logDTO.getTag()) { + case "详情分配库位": + case "详情组盘": + case "详情取消组盘": + case "入库任务生成": + case "入库任务取消": + message = "容器编码:{},物料编码:{},入库数量:{}"; + operationLogList.addAll(createOperationLogs(logDTO, ReceiptContainerDetail.class, "getReceiptCode", message, "getContainerCode", + "getMaterialCode", "getQty")); + break; + case "入库任务完成": + message = "物料编码:{},入库数量:{}"; + operationLogList.addAll(createOperationLogs(logDTO, TaskDetail.class, "getReceiptCode", message, "getMaterialCode", "getQty")); + break; + case "详情入库完成": + Thread.sleep(200);// 确保日志输出顺序 + message = "物料编码:{},数量:{}"; + operationLogList.addAll(createOperationLogs(logDTO, ReceiptDetail.class, "getReceiptCode", message, "getMaterialCode", "getQty")); + break; + default: + message = "物料编码:{},数量:{}"; + operationLogList.addAll(createOperationLogs(logDTO, ReceiptDetail.class, "getReceiptCode", message, "getMaterialCode", "getQty")); + break; + } + break; + case "出库单追踪": + switch (logDTO.getTag()) { + case "详情配盘": + case "详情取消配盘": + message = "库位编码:{},容器编码:{},物料编码:{},出库数量:{}"; + operationLogList.addAll(createOperationLogs(logDTO, ShipmentContainerDetail.class, "getShipmentCode", message, "getFromLocationCode", + "getContainerCode", "getMaterialCode", "getQty")); + break; + case "出库任务生成": + case "出库任务取消": + message = "物料编码:{},出库数量:{}"; + operationLogList + .addAll(createOperationLogs(logDTO, ShipmentContainerDetail.class, "getShipmentCode", message, "getMaterialCode", "getQty")); + break; + case "出库任务完成": + message = "物料编码:{},出库数量:{}"; + operationLogList.addAll(createOperationLogs(logDTO, TaskDetail.class, "getShipmentCode", message, "getMaterialCode", "getQty")); + break; + case "详情出库完成": + Thread.sleep(200);// 确保日志输出顺序 + message = "物料编码:{},数量:{}"; + operationLogList.addAll(createOperationLogs(logDTO, ShipmentDetail.class, "getShipmentCode", message, "getMaterialCode", "getQty")); + break; + default: + message = "物料编码:{},数量:{}"; + operationLogList.addAll(createOperationLogs(logDTO, ShipmentDetail.class, "getShipmentCode", message, "getMaterialCode", "getQty")); + break; + } + break; + case "任务追踪": + switch (logDTO.getTag()) { + case "入库任务生成": + case "入库任务完成": + message = "详情ID:{},物料编码:{},物料名称:{},数量:{}"; + operationLogList.addAll(createOperationLogs(logDTO, TaskDetail.class, "getTaskHeaderId", message, "getId", "getMaterialCode", + "getMaterialName", "getQty")); + break; + } + } } else { - Thread.sleep(200); + Thread.sleep(1000); // 确保日志输出顺序 OperationLog operationLog = new OperationLog(); operationLog.setBizId(logDTO.getBizId()); operationLog.setOperationMsg(StringUtils.substring(logDTO.getMsg(), 0, 1000)); diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java index 23e91aa..2712e12 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java @@ -98,8 +98,11 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai @Override @Transactional(rollbackFor = ServiceException.class) - @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'入库任务生成'", extra = "#extraJsonString", msg = "'任务ID:' + #taskHeaderId", + @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'入库任务生成'", extra = "#extraJsonString1", msg = "'任务ID:' + #taskHeader.getId()", condition = "#receiptContainerDetailList.size() > 0", recordReturnValue = true) + @OperationLog(bizId = "''", bizType = "'任务追踪'", tag = "'入库任务生成'", extra = "#extraJsonString2", + msg = "'任务类型:' + #taskHeader.getTaskType() + ',起始库位:' + #taskHeader.getFromLocationCode() + ',目标库位:' + #taskHeader.getToLocationCode() + ',容器编码:' + #taskHeader.getContainerCode()", + condition = "#taskDetailList.size() > 0", recordReturnValue = true) public Result<TaskHeader> createReceiptTask(ReceiptContainerHeader receiptContainerHeader, String warehouseCode) { if (!receiptContainerHeader.getWarehouseCode().equals(warehouseCode)) { return Result.error("id:" + receiptContainerHeader.getId() + "的入库组盘不能在" + warehouseCode + "仓库操作"); @@ -216,9 +219,11 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai throw new ServiceException("更新入库单明细失败"); } } - LogRecordContext.putVariable("taskHeaderId", taskHeaderId);// 操作日志收集 + LogRecordContext.putVariable("taskHeader", taskHeader);// 操作日志收集 LogRecordContext.putVariable("receiptContainerDetailList", receiptContainerDetailList);// 操作日志收集 - LogRecordContext.putVariable("extraJsonString", JSON.toJSONString(receiptContainerDetailList));// 操作日志收集 + LogRecordContext.putVariable("extraJsonString1", JSON.toJSONString(receiptContainerDetailList));// 操作日志收集 + LogRecordContext.putVariable("taskDetailList", taskDetailList);// 操作日志收集 + LogRecordContext.putVariable("extraJsonString2", JSON.toJSONString(taskDetailList));// 操作日志收集 return Result.OK("生成入库任务成功", taskHeader); } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java index 07fd4bd..b1fe0a0 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java @@ -1068,8 +1068,12 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea */ @Override @Transactional(rollbackFor = Exception.class) + @OperationLog(bizId = "''", bizType = "'任务追踪'", tag = "'入库任务完成'", extra = "#extraJsonString1", + msg = "'任务类型:' + #taskHeader.getTaskType() + ',起始库位:' + #taskHeader.getFromLocationCode() + ',目标库位:' + #taskHeader.getToLocationCode() + ',容器编码:' + #taskHeader.getContainerCode()", + condition = "#taskDetailList.size() > 0", recordReturnValue = true) @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'入库任务完成'", extra = "#extraJsonString1", - msg = "'任务ID:' + #taskHeader.getId() + ',库位编码:' + #taskHeader.getToLocationCode() + ',容器编码:' + #taskHeader.getContainerCode()", recordReturnValue = true) + msg = "'任务ID:' + #taskHeader.getId() + ',库位编码:' + #taskHeader.getToLocationCode() + ',容器编码:' + #taskHeader.getContainerCode()", + condition = "#taskDetailList.size() > 0", recordReturnValue = true) @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'详情入库完成'", extra = "#extraJsonString2", msg = "''", condition = "#receiptDetaiList.size() > 0", recordReturnValue = true) public Result completeReceiptTask(TaskHeader taskHeader) { @@ -1223,10 +1227,11 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea } } receiptDetaiList = receiptDetaiList.stream().filter(t -> t.getStatus().equals(QuantityConstant.RECEIPT_HEADER_COMPLETED)).collect(Collectors.toList()); - LogRecordContext.putVariable("receiptDetaiList", receiptDetaiList); + LogRecordContext.putVariable("taskDetailList", taskDetailList); LogRecordContext.putVariable("extraJsonString1", JSON.toJSONString(taskDetailList)); + LogRecordContext.putVariable("receiptDetaiList", receiptDetaiList); LogRecordContext.putVariable("extraJsonString2", JSON.toJSONString(receiptDetaiList)); - + LogRecordContext.putVariable("taskHeader", taskHeader); return Result.ok("完成入库任务"); }