Commit 35a79d4ae4f21de95cbd43e8cd7d508963583b3a

Authored by 谭毅彬
1 parent 728e7ff0

入库追踪提交

Signed-off-by: TanYibin <5491541@qq.com>
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java
@@ -91,6 +91,9 @@ public class WcsServiceImpl implements WcsService { @@ -91,6 +91,9 @@ public class WcsServiceImpl implements WcsService {
91 @Transactional(rollbackFor = Exception.class) 91 @Transactional(rollbackFor = Exception.class)
92 @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'详情分配库位'", extra = "#extraJsonString", 92 @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'详情分配库位'", extra = "#extraJsonString",
93 msg = "'任务ID:' + #warecellDomain.getTaskNo() + ',库位编码:' + #locationCode", condition = "#receiptContainerDetailList.size() > 0", recordReturnValue = true) 93 msg = "'任务ID:' + #warecellDomain.getTaskNo() + ',库位编码:' + #locationCode", condition = "#receiptContainerDetailList.size() > 0", recordReturnValue = true)
  94 + @OperationLog(bizId = "#taskHeader.getId()", bizType = "'任务追踪'", tag = "'分配库位'", extra = "''",
  95 + msg = "'任务类型:' + #taskHeader.getTaskType() + ',起始库位:' + #taskHeader.getFromLocationCode() + ',目标库位:' + #taskHeader.getToLocationCode() + ',容器编码:' + #taskHeader.getContainerCode()",
  96 + recordReturnValue = true)
94 public Result warecellAllocation(WarecellDomain warecellDomain) { 97 public Result warecellAllocation(WarecellDomain warecellDomain) {
95 String warehouseCode = warecellDomain.getWarehouseCode(); 98 String warehouseCode = warecellDomain.getWarehouseCode();
96 String zoneCode = warecellDomain.getZoneCode(); 99 String zoneCode = warecellDomain.getZoneCode();
@@ -241,12 +244,16 @@ public class WcsServiceImpl implements WcsService { @@ -241,12 +244,16 @@ public class WcsServiceImpl implements WcsService {
241 LogRecordContext.putVariable("locationCode", locationCode);// 操作日志收集 244 LogRecordContext.putVariable("locationCode", locationCode);// 操作日志收集
242 LogRecordContext.putVariable("receiptContainerDetailList", receiptContainerDetailList);// 操作日志收集 245 LogRecordContext.putVariable("receiptContainerDetailList", receiptContainerDetailList);// 操作日志收集
243 LogRecordContext.putVariable("extraJsonString", JSON.toJSONString(receiptContainerDetailList));// 操作日志收集 246 LogRecordContext.putVariable("extraJsonString", JSON.toJSONString(receiptContainerDetailList));// 操作日志收集
  247 + LogRecordContext.putVariable("taskHeader", taskHeader);// 操作日志收集
244 return Result.OK(wcsTask); 248 return Result.OK(wcsTask);
245 } 249 }
246 250
247 @Override 251 @Override
248 @Transactional(rollbackFor = Exception.class) 252 @Transactional(rollbackFor = Exception.class)
249 @ApiLogger(apiName = "任务下发", from = "WCS") 253 @ApiLogger(apiName = "任务下发", from = "WCS")
  254 + @OperationLog(bizId = "#taskHeader.getId()", bizType = "'任务追踪'", tag = "'任务下发'", extra = "''",
  255 + msg = "'任务类型:' + #taskHeader.getTaskType() + ',起始库位:' + #taskHeader.getFromLocationCode() + ',目标库位:' + #taskHeader.getToLocationCode() + ',容器编码:' + #taskHeader.getContainerCode()",
  256 + recordReturnValue = true)
250 public Result wcsTaskAssign(TaskHeader taskHeader) { 257 public Result wcsTaskAssign(TaskHeader taskHeader) {
251 if (taskHeader == null) { 258 if (taskHeader == null) {
252 return Result.error("wms任务为空"); 259 return Result.error("wms任务为空");
@@ -400,7 +407,7 @@ public class WcsServiceImpl implements WcsService { @@ -400,7 +407,7 @@ public class WcsServiceImpl implements WcsService {
400 return Result.error(result.getMessage()); 407 return Result.error(result.getMessage());
401 } 408 }
402 } 409 }
403 - 410 + LogRecordContext.putVariable("taskHeader", taskHeader);// 操作日志收集
404 return Result.ok("下发成功"); 411 return Result.ok("下发成功");
405 } 412 }
406 413
@@ -614,6 +621,9 @@ public class WcsServiceImpl implements WcsService { @@ -614,6 +621,9 @@ public class WcsServiceImpl implements WcsService {
614 621
615 @Override 622 @Override
616 @Transactional(rollbackFor = Exception.class) 623 @Transactional(rollbackFor = Exception.class)
  624 + @OperationLog(bizId = "#taskHeader.getId()", bizType = "'任务追踪'", tag = "'到达站台'", extra = "''",
  625 + msg = "'任务类型:' + #taskHeader.getTaskType() + ',起始库位:' + #taskHeader.getFromLocationCode() + ',目标库位:' + #taskHeader.getToLocationCode() + ',容器编码:' + #taskHeader.getContainerCode() + ',目标出入口:' + #taskHeader.getToPortCode()",
  626 + recordReturnValue = true)
617 public Result arrivedNotice(String taskNo, String port) { 627 public Result arrivedNotice(String taskNo, String port) {
618 TaskHeader taskHeader = taskHeaderService.getById(taskNo); 628 TaskHeader taskHeader = taskHeaderService.getById(taskNo);
619 if (taskHeader == null) { 629 if (taskHeader == null) {
@@ -629,6 +639,7 @@ public class WcsServiceImpl implements WcsService { @@ -629,6 +639,7 @@ public class WcsServiceImpl implements WcsService {
629 if (!result) { 639 if (!result) {
630 return Result.error("更新到达站台失败"); 640 return Result.error("更新到达站台失败");
631 } 641 }
  642 + LogRecordContext.putVariable("taskHeader", taskHeader);// 操作日志收集
632 return Result.ok("更新到达站台成功"); 643 return Result.ok("更新到达站台成功");
633 } 644 }
634 645
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&lt;OperationLogMapper, Ope @@ -42,51 +42,85 @@ public class OperationLogServiceImpl extends ServiceImpl&lt;OperationLogMapper, Ope
42 log.debug(">>>>>> create OperationLog:{} <<<<<<", JSON.toJSONString(logDTO)); 42 log.debug(">>>>>> create OperationLog:{} <<<<<<", JSON.toJSONString(logDTO));
43 List<OperationLog> operationLogList = new ArrayList<OperationLog>(); 43 List<OperationLog> operationLogList = new ArrayList<OperationLog>();
44 if (!StringUtils.isEmpty(logDTO.getExtra())) { 44 if (!StringUtils.isEmpty(logDTO.getExtra())) {
45 - if (logDTO.getBizType().equals("物料追踪")) {  
46 - if (logDTO.getTag().equals("入库组盘")) {  
47 - String message = "容器编码:{},物料编码:{},数量:{}";  
48 - operationLogList.addAll(createOperationLogs(logDTO, ReceiptContainerDetail.class, "getUniqueCode", message, "getReferCode", "getReceiptCode",  
49 - "getWarehouseCode", "getContainerCode", "getMaterialCode", "getQty"));  
50 - }  
51 - } else if (logDTO.getBizType().equals("入库单追踪")) {  
52 - if (logDTO.getTag().equals("详情分配库位") || logDTO.getTag().equals("详情组盘") || logDTO.getTag().equals("详情取消组盘") || logDTO.getTag().equals("入库任务生成")  
53 - || logDTO.getTag().equals("入库任务取消")) {  
54 - String message = "容器编码:{},物料编码:{},入库数量:{}";  
55 - operationLogList.addAll(  
56 - createOperationLogs(logDTO, ReceiptContainerDetail.class, "getReceiptCode", message, "getContainerCode", "getMaterialCode", "getQty"));  
57 - } else if (logDTO.getTag().equals("入库任务完成")) {  
58 - String message = "物料编码:{},入库数量:{}";  
59 - operationLogList.addAll(createOperationLogs(logDTO, TaskDetail.class, "getReceiptCode", message, "getMaterialCode", "getQty"));  
60 - } else if (logDTO.getTag().equals("详情入库完成")) {  
61 - Thread.sleep(100);  
62 - String message = "物料编码:{},数量:{}";  
63 - operationLogList.addAll(createOperationLogs(logDTO, ReceiptDetail.class, "getReceiptCode", message, "getMaterialCode", "getQty"));  
64 - } else {  
65 - String message = "物料编码:{},数量:{}";  
66 - operationLogList.addAll(createOperationLogs(logDTO, ReceiptDetail.class, "getReceiptCode", message, "getMaterialCode", "getQty"));  
67 - }  
68 - } else if (logDTO.getBizType().equals("出库单追踪")) {  
69 - if (logDTO.getTag().equals("详情配盘") || logDTO.getTag().equals("详情取消配盘")) {  
70 - String message = "库位编码:{},容器编码:{},物料编码:{},出库数量:{}";  
71 - operationLogList.addAll(createOperationLogs(logDTO, ShipmentContainerDetail.class, "getShipmentCode", message, "getFromLocationCode",  
72 - "getContainerCode", "getMaterialCode", "getQty"));  
73 - } else if (logDTO.getTag().equals("出库任务生成") || logDTO.getTag().equals("出库任务取消")) {  
74 - String message = "物料编码:{},出库数量:{}";  
75 - operationLogList.addAll(createOperationLogs(logDTO, ShipmentContainerDetail.class, "getShipmentCode", message, "getMaterialCode", "getQty"));  
76 - } else if (logDTO.getTag().equals("出库任务完成")) {  
77 - String message = "物料编码:{},出库数量:{}";  
78 - operationLogList.addAll(createOperationLogs(logDTO, TaskDetail.class, "getShipmentCode", message, "getMaterialCode", "getQty"));  
79 - } else if (logDTO.getTag().equals("详情出库完成")) {  
80 - Thread.sleep(100);  
81 - String message = "物料编码:{},数量:{}";  
82 - operationLogList.addAll(createOperationLogs(logDTO, ShipmentDetail.class, "getShipmentCode", message, "getMaterialCode", "getQty"));  
83 - } else {  
84 - String message = "物料编码:{},数量:{}";  
85 - operationLogList.addAll(createOperationLogs(logDTO, ShipmentDetail.class, "getShipmentCode", message, "getMaterialCode", "getQty"));  
86 - } 45 + String message = null;
  46 + switch (logDTO.getBizType()) {
  47 + case "物料追踪":
  48 + switch (logDTO.getTag()) {
  49 + case "入库组盘":
  50 + message = "容器编码:{},物料编码:{},数量:{}";
  51 + operationLogList.addAll(createOperationLogs(logDTO, ReceiptContainerDetail.class, "getUniqueCode", message, "getReferCode",
  52 + "getReceiptCode", "getWarehouseCode", "getContainerCode", "getMaterialCode", "getQty"));
  53 + break;
  54 + }
  55 + break;
  56 + case "入库单追踪":
  57 + switch (logDTO.getTag()) {
  58 + case "详情分配库位":
  59 + case "详情组盘":
  60 + case "详情取消组盘":
  61 + case "入库任务生成":
  62 + case "入库任务取消":
  63 + message = "容器编码:{},物料编码:{},入库数量:{}";
  64 + operationLogList.addAll(createOperationLogs(logDTO, ReceiptContainerDetail.class, "getReceiptCode", message, "getContainerCode",
  65 + "getMaterialCode", "getQty"));
  66 + break;
  67 + case "入库任务完成":
  68 + message = "物料编码:{},入库数量:{}";
  69 + operationLogList.addAll(createOperationLogs(logDTO, TaskDetail.class, "getReceiptCode", message, "getMaterialCode", "getQty"));
  70 + break;
  71 + case "详情入库完成":
  72 + Thread.sleep(200);// 确保日志输出顺序
  73 + message = "物料编码:{},数量:{}";
  74 + operationLogList.addAll(createOperationLogs(logDTO, ReceiptDetail.class, "getReceiptCode", message, "getMaterialCode", "getQty"));
  75 + break;
  76 + default:
  77 + message = "物料编码:{},数量:{}";
  78 + operationLogList.addAll(createOperationLogs(logDTO, ReceiptDetail.class, "getReceiptCode", message, "getMaterialCode", "getQty"));
  79 + break;
  80 + }
  81 + break;
  82 + case "出库单追踪":
  83 + switch (logDTO.getTag()) {
  84 + case "详情配盘":
  85 + case "详情取消配盘":
  86 + message = "库位编码:{},容器编码:{},物料编码:{},出库数量:{}";
  87 + operationLogList.addAll(createOperationLogs(logDTO, ShipmentContainerDetail.class, "getShipmentCode", message, "getFromLocationCode",
  88 + "getContainerCode", "getMaterialCode", "getQty"));
  89 + break;
  90 + case "出库任务生成":
  91 + case "出库任务取消":
  92 + message = "物料编码:{},出库数量:{}";
  93 + operationLogList
  94 + .addAll(createOperationLogs(logDTO, ShipmentContainerDetail.class, "getShipmentCode", message, "getMaterialCode", "getQty"));
  95 + break;
  96 + case "出库任务完成":
  97 + message = "物料编码:{},出库数量:{}";
  98 + operationLogList.addAll(createOperationLogs(logDTO, TaskDetail.class, "getShipmentCode", message, "getMaterialCode", "getQty"));
  99 + break;
  100 + case "详情出库完成":
  101 + Thread.sleep(200);// 确保日志输出顺序
  102 + message = "物料编码:{},数量:{}";
  103 + operationLogList.addAll(createOperationLogs(logDTO, ShipmentDetail.class, "getShipmentCode", message, "getMaterialCode", "getQty"));
  104 + break;
  105 + default:
  106 + message = "物料编码:{},数量:{}";
  107 + operationLogList.addAll(createOperationLogs(logDTO, ShipmentDetail.class, "getShipmentCode", message, "getMaterialCode", "getQty"));
  108 + break;
  109 + }
  110 + break;
  111 + case "任务追踪":
  112 + switch (logDTO.getTag()) {
  113 + case "入库任务生成":
  114 + case "入库任务完成":
  115 + message = "详情ID:{},物料编码:{},物料名称:{},数量:{}";
  116 + operationLogList.addAll(createOperationLogs(logDTO, TaskDetail.class, "getTaskHeaderId", message, "getId", "getMaterialCode",
  117 + "getMaterialName", "getQty"));
  118 + break;
  119 + }
  120 +
87 } 121 }
88 } else { 122 } else {
89 - Thread.sleep(200); 123 + Thread.sleep(1000); // 确保日志输出顺序
90 OperationLog operationLog = new OperationLog(); 124 OperationLog operationLog = new OperationLog();
91 operationLog.setBizId(logDTO.getBizId()); 125 operationLog.setBizId(logDTO.getBizId());
92 operationLog.setOperationMsg(StringUtils.substring(logDTO.getMsg(), 0, 1000)); 126 operationLog.setOperationMsg(StringUtils.substring(logDTO.getMsg(), 0, 1000));
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&lt;ReceiptContai @@ -98,8 +98,11 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl&lt;ReceiptContai
98 98
99 @Override 99 @Override
100 @Transactional(rollbackFor = ServiceException.class) 100 @Transactional(rollbackFor = ServiceException.class)
101 - @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'入库任务生成'", extra = "#extraJsonString", msg = "'任务ID:' + #taskHeaderId", 101 + @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'入库任务生成'", extra = "#extraJsonString1", msg = "'任务ID:' + #taskHeader.getId()",
102 condition = "#receiptContainerDetailList.size() > 0", recordReturnValue = true) 102 condition = "#receiptContainerDetailList.size() > 0", recordReturnValue = true)
  103 + @OperationLog(bizId = "''", bizType = "'任务追踪'", tag = "'入库任务生成'", extra = "#extraJsonString2",
  104 + msg = "'任务类型:' + #taskHeader.getTaskType() + ',起始库位:' + #taskHeader.getFromLocationCode() + ',目标库位:' + #taskHeader.getToLocationCode() + ',容器编码:' + #taskHeader.getContainerCode()",
  105 + condition = "#taskDetailList.size() > 0", recordReturnValue = true)
103 public Result<TaskHeader> createReceiptTask(ReceiptContainerHeader receiptContainerHeader, String warehouseCode) { 106 public Result<TaskHeader> createReceiptTask(ReceiptContainerHeader receiptContainerHeader, String warehouseCode) {
104 if (!receiptContainerHeader.getWarehouseCode().equals(warehouseCode)) { 107 if (!receiptContainerHeader.getWarehouseCode().equals(warehouseCode)) {
105 return Result.error("id:" + receiptContainerHeader.getId() + "的入库组盘不能在" + warehouseCode + "仓库操作"); 108 return Result.error("id:" + receiptContainerHeader.getId() + "的入库组盘不能在" + warehouseCode + "仓库操作");
@@ -216,9 +219,11 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl&lt;ReceiptContai @@ -216,9 +219,11 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl&lt;ReceiptContai
216 throw new ServiceException("更新入库单明细失败"); 219 throw new ServiceException("更新入库单明细失败");
217 } 220 }
218 } 221 }
219 - LogRecordContext.putVariable("taskHeaderId", taskHeaderId);// 操作日志收集 222 + LogRecordContext.putVariable("taskHeader", taskHeader);// 操作日志收集
220 LogRecordContext.putVariable("receiptContainerDetailList", receiptContainerDetailList);// 操作日志收集 223 LogRecordContext.putVariable("receiptContainerDetailList", receiptContainerDetailList);// 操作日志收集
221 - LogRecordContext.putVariable("extraJsonString", JSON.toJSONString(receiptContainerDetailList));// 操作日志收集 224 + LogRecordContext.putVariable("extraJsonString1", JSON.toJSONString(receiptContainerDetailList));// 操作日志收集
  225 + LogRecordContext.putVariable("taskDetailList", taskDetailList);// 操作日志收集
  226 + LogRecordContext.putVariable("extraJsonString2", JSON.toJSONString(taskDetailList));// 操作日志收集
222 return Result.OK("生成入库任务成功", taskHeader); 227 return Result.OK("生成入库任务成功", taskHeader);
223 } 228 }
224 229
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&lt;TaskHeaderMapper, TaskHea @@ -1068,8 +1068,12 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1068 */ 1068 */
1069 @Override 1069 @Override
1070 @Transactional(rollbackFor = Exception.class) 1070 @Transactional(rollbackFor = Exception.class)
  1071 + @OperationLog(bizId = "''", bizType = "'任务追踪'", tag = "'入库任务完成'", extra = "#extraJsonString1",
  1072 + msg = "'任务类型:' + #taskHeader.getTaskType() + ',起始库位:' + #taskHeader.getFromLocationCode() + ',目标库位:' + #taskHeader.getToLocationCode() + ',容器编码:' + #taskHeader.getContainerCode()",
  1073 + condition = "#taskDetailList.size() > 0", recordReturnValue = true)
1071 @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'入库任务完成'", extra = "#extraJsonString1", 1074 @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'入库任务完成'", extra = "#extraJsonString1",
1072 - msg = "'任务ID:' + #taskHeader.getId() + ',库位编码:' + #taskHeader.getToLocationCode() + ',容器编码:' + #taskHeader.getContainerCode()", recordReturnValue = true) 1075 + msg = "'任务ID:' + #taskHeader.getId() + ',库位编码:' + #taskHeader.getToLocationCode() + ',容器编码:' + #taskHeader.getContainerCode()",
  1076 + condition = "#taskDetailList.size() > 0", recordReturnValue = true)
1073 @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'详情入库完成'", extra = "#extraJsonString2", msg = "''", condition = "#receiptDetaiList.size() > 0", 1077 @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'详情入库完成'", extra = "#extraJsonString2", msg = "''", condition = "#receiptDetaiList.size() > 0",
1074 recordReturnValue = true) 1078 recordReturnValue = true)
1075 public Result completeReceiptTask(TaskHeader taskHeader) { 1079 public Result completeReceiptTask(TaskHeader taskHeader) {
@@ -1223,10 +1227,11 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea @@ -1223,10 +1227,11 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1223 } 1227 }
1224 } 1228 }
1225 receiptDetaiList = receiptDetaiList.stream().filter(t -> t.getStatus().equals(QuantityConstant.RECEIPT_HEADER_COMPLETED)).collect(Collectors.toList()); 1229 receiptDetaiList = receiptDetaiList.stream().filter(t -> t.getStatus().equals(QuantityConstant.RECEIPT_HEADER_COMPLETED)).collect(Collectors.toList());
1226 - LogRecordContext.putVariable("receiptDetaiList", receiptDetaiList); 1230 + LogRecordContext.putVariable("taskDetailList", taskDetailList);
1227 LogRecordContext.putVariable("extraJsonString1", JSON.toJSONString(taskDetailList)); 1231 LogRecordContext.putVariable("extraJsonString1", JSON.toJSONString(taskDetailList));
  1232 + LogRecordContext.putVariable("receiptDetaiList", receiptDetaiList);
1228 LogRecordContext.putVariable("extraJsonString2", JSON.toJSONString(receiptDetaiList)); 1233 LogRecordContext.putVariable("extraJsonString2", JSON.toJSONString(receiptDetaiList));
1229 - 1234 + LogRecordContext.putVariable("taskHeader", taskHeader);
1230 return Result.ok("完成入库任务"); 1235 return Result.ok("完成入库任务");
1231 } 1236 }
1232 1237