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 3c17fb0..0bcc958 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 @@ -69,8 +69,11 @@ public class OperationLogServiceImpl extends ServiceImpl<OperationLogMapper, Ope String message = "容器编码:{},物料编码:{},出库数量:{}"; operationLogList.addAll( createOperationLogs(logDTO, ShipmentContainerDetail.class, "getShipmentCode", message, "getContainerCode", "getMaterialCode", "getQty")); + } else if (logDTO.getTag().equals("出库任务生成")) { + String message = "物料编码:{},出库数量:{}"; + operationLogList.addAll(createOperationLogs(logDTO, ShipmentContainerDetail.class, "getShipmentCode", message, "getMaterialCode", "getQty")); } else if (logDTO.getTag().equals("详情出库")) { - String message = "物料编码:{},收货数量:{}"; + String message = "物料编码:{},出库数量:{}"; operationLogList.addAll(createOperationLogs(logDTO, ShipmentDetail.class, "getShipmentCode", message, "getMaterialCode", "getTaskQty")); } else if (logDTO.getTag().equals("详情配盘")) { String message = "物料编码:{},数量:{},出库数量:{}"; diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java index 1bf50d6..5bd50cf 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java @@ -146,8 +146,7 @@ public class ReceiptHeaderServiceImpl extends ServiceImpl<ReceiptHeaderMapper, R @Override @Transactional @OperationLog(bizId = "#receiptHeader.getCode()", bizType = "'入库单追踪'", tag = "'入库完成'", - msg = "'上游单号:'+ #receiptHeader.getReferCode() + ',仓库编码:' + #receiptHeader.getWarehouseCode()", condition = "#minStatus == 800 && #maxStatus == 800", - recordReturnValue = true) + msg = "'上游单号:'+ #receiptHeader.getReferCode() + ',仓库编码:' + #receiptHeader.getWarehouseCode()", condition = "#minStatus == 800", recordReturnValue = true) public boolean updateReceiptHeaderStatus(Integer id) { LambdaQueryWrapper<ReceiptDetail> receiptDetailLambdaQueryWrapper = Wrappers.lambdaQuery(); receiptDetailLambdaQueryWrapper.eq(ReceiptDetail::getReceiptId, id); @@ -178,10 +177,9 @@ public class ReceiptHeaderServiceImpl extends ServiceImpl<ReceiptHeaderMapper, R receiptHeader.setFirstStatus(maxStatus); receiptHeader.setLastStatus(minStatus); if (!receiptHeaderService.updateById(receiptHeader)) { - throw new ServiceException("更新入库单:" + receiptHeader.getCode() + " 状态失败"); + throw new ServiceException("更新入库单:" + receiptHeader.getCode() + " 头状态失败"); } LogRecordContext.putVariable("minStatus", minStatus); - LogRecordContext.putVariable("maxStatus", maxStatus); LogRecordContext.putVariable("receiptHeader", receiptHeader); return true; } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java index 646cc62..64e5595 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java @@ -416,6 +416,8 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi @Override @Transactional(rollbackFor = ServiceException.class) + @OperationLog(bizId = "''", bizType = "'出库单追踪'", tag = "'出库任务生成'", extra = "#extraJsonString", msg = "'任务ID:' + #taskHeaderId + ',目标出入口:' + #shipmentContainerHeader.getToPort()", + condition = "#shipmentContainerDetailList.size() > 0", recordReturnValue = true) public Result createShipmentTask(ShipmentContainerHeader shipmentContainerHeader, String warehouseCode, long shipmentOrder, int sequence, int sequenceNumber) { Integer preTaskNo = 0; if (shipmentContainerHeader == null) { @@ -436,7 +438,7 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi String toLocationCode = shipmentContainerHeader.getToLocationCode(); String containerCode = shipmentContainerHeader.getContainerCode(); if (StringUtils.isEmpty(fromLocationCode)) { - return Result.error("生成出库任务时, 出库组盘头没有起始库位号为空"); + return Result.error("生成出库任务时, 出库组盘头没有起始库位号"); } Location location = locationService.getLocationByCode(fromLocationCode, warehouseCode); if (location == null) { @@ -557,6 +559,9 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi throw new ServiceException("生成出库任务时, 更新库存头失败"); } } + LogRecordContext.putVariable("taskHeaderId", taskHeaderId);// 操作日志收集 + LogRecordContext.putVariable("shipmentContainerDetailList", shipmentContainerDetailList);// 操作日志收集 + LogRecordContext.putVariable("extraJsonString", JSON.toJSONString(shipmentContainerDetailList));// 操作日志收集 return Result.OK("生成出库任务成功"); } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentHeaderServiceImpl.java index 69dac3d..0fcd975 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentHeaderServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentHeaderServiceImpl.java @@ -34,6 +34,7 @@ import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import cn.monitor4all.logRecord.annotation.OperationLog; +import cn.monitor4all.logRecord.context.LogRecordContext; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; @@ -162,6 +163,8 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl<ShipmentHeaderMapper, } @Override + @OperationLog(bizId = "#shipmentHeader.getCode()", bizType = "'出库单追踪'", tag = "'出库完成'", + msg = "'上游单号:'+ #shipmentHeader.getReferCode() + ',仓库编码:' + #shipmentHeader.getWarehouseCode()", condition = "#minStatus == 800", recordReturnValue = true) public boolean updateShipmentHeaderStatus(Integer shipmentId) { List<ShipmentDetail> shipmentDetailList = shipmentDetailService.getShipmentDetailListByShipmentId(shipmentId); ShipmentHeader shipmentHeader = shipmentHeaderService.getById(shipmentId); @@ -171,8 +174,8 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl<ShipmentHeaderMapper, int minStatus; int maxStatus; if (shipmentDetailList.size() == 0) { - minStatus = QuantityConstant.RECEIPT_HEADER_BUILD; - maxStatus = QuantityConstant.RECEIPT_HEADER_BUILD; + minStatus = QuantityConstant.SHIPMENT_HEADER_BUILD; + maxStatus = QuantityConstant.SHIPMENT_HEADER_BUILD; } else { minStatus = shipmentDetailList.get(0).getStatus(); maxStatus = shipmentDetailList.get(0).getStatus(); @@ -186,11 +189,16 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl<ShipmentHeaderMapper, } } } - + // 头状态是单据详情中最大的状态 + // 尾状态是单据详情中最小的状态 shipmentHeader.setFirstStatus(maxStatus); shipmentHeader.setLastStatus(minStatus); - boolean result = shipmentHeaderService.updateById(shipmentHeader); - return result; + if (!shipmentHeaderService.updateById(shipmentHeader)) { + throw new ServiceException("更新出库单:" + shipmentHeader.getCode() + " 头状态失败"); + } + LogRecordContext.putVariable("minStatus", minStatus); + LogRecordContext.putVariable("shipmentHeader", shipmentHeader); + return true; } @Override diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/ITaskHeaderService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/ITaskHeaderService.java index 0515966..e697f2a 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/ITaskHeaderService.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/ITaskHeaderService.java @@ -213,4 +213,24 @@ public interface ITaskHeaderService extends IService<TaskHeader> { * @return */ Result handlePickupError(String taskNo); + + Result completeReceiptTask(TaskHeader taskHeader); + + Result completeShipmentTask(TaskHeader taskHeader); + + Result completeCycleCountTask(TaskHeader taskHeader); + + Result completeEmptyInTask(TaskHeader taskHeader); + + Result completeEmptyOutTask(TaskHeader taskHeader); + + Result completeTransferTask(TaskHeader taskHeader); + + Result completeCheckOutTask(TaskHeader taskHeader); + + Result completeOverStationTask(TaskHeader taskHeader); + + Result completeManyEmptyInTask(TaskHeader taskHeader); + + Result completeManyEmptyOutTask(TaskHeader 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 e9d000b..34d02fd 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 @@ -864,35 +864,35 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea // 整盘入库、补充入库 case QuantityConstant.TASK_TYPE_WHOLERECEIPT: case QuantityConstant.TASK_TYPE_SUPPLEMENTRECEIPT: - result = completeReceiptTask(taskHeader); + result = taskHeaderService.completeReceiptTask(taskHeader); break; case QuantityConstant.TASK_TYPE_WHOLESHIPMENT: case QuantityConstant.TASK_TYPE_SORTINGSHIPMENT: - result = completeShipmentTask(taskHeader); + result = taskHeaderService.completeShipmentTask(taskHeader); break; case QuantityConstant.TASK_TYPE_CYCLECOUNT: - result = completeCycleCountTask(taskHeader); + result = taskHeaderService.completeCycleCountTask(taskHeader); break; case QuantityConstant.TASK_TYPE_EMPTYRECEIPT: - result = completeEmptyInTask(taskHeader); + result = taskHeaderService.completeEmptyInTask(taskHeader); break; case QuantityConstant.TASK_TYPE_EMPTYSHIPMENT: - result = completeEmptyOutTask(taskHeader); + result = taskHeaderService.completeEmptyOutTask(taskHeader); break; case QuantityConstant.TASK_TYPE_TRANSFER: - result = completeTransferTask(taskHeader); + result = taskHeaderService.completeTransferTask(taskHeader); break; case QuantityConstant.TASK_TYPE_CHECK_OUT: - result = completeCheckOutTask(taskHeader); + result = taskHeaderService.completeCheckOutTask(taskHeader); break; case QuantityConstant.TASK_TYPE_OVER_STATION: - result = completeOverStationTask(taskHeader); + result = taskHeaderService.completeOverStationTask(taskHeader); break; case QuantityConstant.TASK_TYPE_MANY_EMPTYRECEIPT: - result = completeManyEmptyInTask(taskHeader); + result = taskHeaderService.completeManyEmptyInTask(taskHeader); break; case QuantityConstant.TASK_TYPE_MANY_EMPTYSHIPMENT: - result = completeManyEmptyOutTask(taskHeader); + result = taskHeaderService.completeManyEmptyOutTask(taskHeader); break; default: throw new ServiceException("不支持的任务类型" + taskType); @@ -1094,6 +1094,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea * @param taskHeader 任务 * @return AjaxResult 完成入库任务结果 */ + @Override @Transactional(rollbackFor = Exception.class) @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'详情入库'", extra = "#extraJsonString", msg = "''", recordReturnValue = true) public Result completeReceiptTask(TaskHeader taskHeader) { @@ -1253,7 +1254,9 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea * @param taskHeader 任务 * @return result 完成出库任务 */ + @Override @Transactional(rollbackFor = Exception.class) + @OperationLog(bizId = "''", bizType = "'出库单追踪'", tag = "'详情出库'", extra = "#extraJsonString", msg = "''", recordReturnValue = true) public Result completeShipmentTask(TaskHeader taskHeader) { if (taskHeader == null) { return Result.error("完成出库任务未找到,执行中止"); @@ -1363,10 +1366,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea } containerStatus = QuantityConstant.STATUS_CONTAINER_SOME; } - success = shipmentDetailService.updateBatchById(shipmentDetailList); - if (!success) { - throw new ServiceException("完成出库任务,更新出库详情失败"); - } success = inventoryTransactionService.saveBatch(inventoryTransactionList); if (!success) { throw new ServiceException("完成出库任务,保存库存详情失败"); @@ -1415,10 +1414,18 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea throw new ServiceException("合并入库库存失败"); } } + success = shipmentDetailService.updateBatchById(shipmentDetailList); + if (!success) { + throw new ServiceException("完成出库任务,更新出库详情失败"); + } shipmentIdList = shipmentIdList.stream().distinct().collect(Collectors.toList()); for (Integer shipmentId : shipmentIdList) { - shipmentHeaderService.updateShipmentHeaderStatus(shipmentId); + success = shipmentHeaderService.updateShipmentHeaderStatus(shipmentId); + if (!success) { + throw new ServiceException("完成出库任务,更新出库单头失败"); + } } + LogRecordContext.putVariable("extraJsonString", JSON.toJSONString(shipmentDetailList)); return Result.ok("完成出库任务"); } @@ -1478,6 +1485,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea * @param taskHeader 任务 * @return Result 完成入库任务结果 */ + @Override @Transactional(rollbackFor = Exception.class) public Result completeEmptyInTask(TaskHeader taskHeader) { String warehouseCode = taskHeader.getWarehouseCode(); @@ -1522,6 +1530,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea * @param taskHeader * @return */ + @Override @Transactional(rollbackFor = Exception.class) public Result completeCycleCountTask(TaskHeader taskHeader) { /* @@ -1744,6 +1753,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea * @param taskHeader 任务 * @return Result 完成出库任务结果 */ + @Override @Transactional(rollbackFor = Exception.class) public Result completeEmptyOutTask(TaskHeader taskHeader) { String warehouseCode = taskHeader.getWarehouseCode(); @@ -1798,6 +1808,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea * @param taskHeader 任务 * @return Result 完成移库任务结果 */ + @Override @Transactional(rollbackFor = Exception.class) public Result completeTransferTask(TaskHeader taskHeader) { String warehouseCode = taskHeader.getWarehouseCode(); @@ -1906,6 +1917,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea * @param taskHeader 任务 * @return Result 完成出库查看任务结果 */ + @Override @Transactional(rollbackFor = Exception.class) public Result completeCheckOutTask(TaskHeader taskHeader) { String warehouseCode = taskHeader.getWarehouseCode(); @@ -1975,6 +1987,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea * @param taskHeader 任务 * @return Result 完成跨站任务结果 */ + @Override @Transactional(rollbackFor = Exception.class) public Result completeOverStationTask(TaskHeader taskHeader) { String warehouseCode = taskHeader.getWarehouseCode(); @@ -2022,6 +2035,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea * @param taskHeader 任务 * @return Result 完成空托盘组入库任务结果 */ + @Override @Transactional(rollbackFor = Exception.class) public Result completeManyEmptyInTask(TaskHeader taskHeader) { String warehouseCode = taskHeader.getWarehouseCode(); @@ -2065,6 +2079,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea * @param taskHeader 任务 * @return Result 完成空托盘组出库任务结果 */ + @Override @Transactional(rollbackFor = Exception.class) public Result completeManyEmptyOutTask(TaskHeader taskHeader) { String warehouseCode = taskHeader.getWarehouseCode();