diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryHeaderService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryHeaderService.java index cb9ca4e..28e9f1e 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryHeaderService.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryHeaderService.java @@ -34,4 +34,6 @@ public interface IInventoryHeaderService extends IService<InventoryHeader> { boolean updateContainerStatusById(String containerStatus, Integer id); boolean updateContainerStatusAndLocationCode(String containerStatus, String locationCode, Integer id); + + boolean updateLocationCodeById(String locationCode, Integer id); } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryHeaderServiceImpl.java index 10e8925..37da9a3 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryHeaderServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryHeaderServiceImpl.java @@ -125,4 +125,13 @@ public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMappe return success; } + @Override + public boolean updateLocationCodeById(String locationCode, Integer id) { + InventoryHeader inventoryHeader = new InventoryHeader(); + inventoryHeader.setId(id); + inventoryHeader.setLocationCode(locationCode); + boolean success = inventoryHeaderService.updateById(inventoryHeader); + return success; + } + } 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 1936da0..75bb0c8 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 @@ -182,6 +182,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea @Override @Transactional(rollbackFor = Exception.class) public Result createTransferTask(String fromLocationCode, String toLocationCode, String warehouseCode) { + log.info("开始创建移库任务,起始库位" + fromLocationCode + ",目标库位" + toLocationCode); if (StringUtils.isEmpty(fromLocationCode)) { return Result.error("创建移库任务时,起始库位为空"); } @@ -245,15 +246,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea return Result.error("创建移库任务时,目标库位和源库位不在同一个区域"); } - // 2023-04-11 托盘状态与填充状态分离 无需再更新字段 -// // 2. 记住移库前的容器类型,因为空托盘组无法区分 -// Container container = containerService.getContainerByCode(fromLocation.getContainerCode(), warehouseCode); -// container.setLastStatus(container.getStatus()); -// boolean success = containerService.updateById(container); -// if (!success) { -// throw new JeecgBootException("创建移库任务时,更新容器状态失败,容器编码" + fromLocation.getContainerCode()); -// } - // 3. 判断源库位旁边有托盘但是没有任务,那么不允许移库 if (fromLocation.getRowFlag() == QuantityConstant.ROW_OUT) { // 内侧库位 @@ -299,6 +291,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea throw new JeecgBootException("创建移库任务时, 终点库位" + toLocationCode + "更新失败"); } success = containerService.updateStatus(fromLocation.getContainerCode(), QuantityConstant.STATUS_CONTAINER_LOCK, warehouseCode); + log.info("完成创建移库任务,起始库位" + fromLocationCode + ",目的库位" + toLocationCode); if (!success) { throw new JeecgBootException("创建移库任务时,容器" + fromLocation.getContainerCode() + "更新失败"); } @@ -308,6 +301,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea @Override @Transactional(rollbackFor = Exception.class) public Result createCheckOutTask(String containerCode, String toPortCode, String warehouseCode) { + log.info("开始创建出库查看任务,容器编码" + containerCode + "目标站台号" + toPortCode); if (StringUtils.isEmpty(containerCode)) { return Result.error("创建出库查看任务时,容器编码为空"); } @@ -342,11 +336,16 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea inventoryDetailLambdaQueryWrapper.eq(InventoryDetail::getContainerCode, containerCode).eq(InventoryDetail::getWarehouseCode, warehouseCode) .eq(InventoryDetail::getLocationCode, fromLocationCode); List<InventoryDetail> inventoryDetailList = inventoryDetailService.list(inventoryDetailLambdaQueryWrapper); + List<InventoryDetail> inventoryDetailList1 = new ArrayList<>(); if (inventoryDetailList.size() != 0) { for (InventoryDetail inventoryDetail : inventoryDetailList) { inventoryDetail.setTaskQty(inventoryDetail.getQty()); + InventoryDetail inventoryDetail1 = new InventoryDetail(); + inventoryDetail1.setId(inventoryDetail.getId()); + inventoryDetail1.setTaskQty(inventoryDetail.getQty()); + inventoryDetailList1.add(inventoryDetail1); } - success = inventoryDetailService.updateBatchById(inventoryDetailList); + success = inventoryDetailService.updateBatchById(inventoryDetailList1); if (!success) { throw new JeecgBootException("创建出库查看任务时,更新库存详情失败"); } @@ -374,6 +373,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea } taskHeader.setStatus(QuantityConstant.TASK_STATUS_BUILD); success = taskHeaderService.save(taskHeader); + log.info("完成创建出库查看任务,容器编码" + containerCode + "目标站台号" + toPortCode); if (!success) { throw new JeecgBootException("创建出库查看任务时, 创建任务失败"); } @@ -383,6 +383,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea @Override @Transactional(rollbackFor = Exception.class) public Result createOverStationTask(String containerCode, String fromPortCode, String toPortCode, String warehouseCode) { + log.info("开始创建跨站任务,容器号" + containerCode + ",起始站台号" + fromPortCode + ",目标站台号" + toPortCode); if (StringUtils.isEmpty(containerCode)) { return Result.error("创建跨站任务时,容器编码为空"); } @@ -427,6 +428,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea return Result.error("创建跨站任务时, 创建任务失败"); } success = containerService.updateStatus(containerCode, QuantityConstant.STATUS_CONTAINER_LOCK, warehouseCode); + log.info("完成创建跨站任务,容器号" + containerCode + ",起始站台号" + fromPortCode + ",目标站台号" + toPortCode); if (!success) { return Result.error("创建跨站任务时, 更新容器状态失败"); } @@ -507,6 +509,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea if (StringUtils.isEmpty(warehouseCode)) { return Result.error("创建空托盘组入库任务时,仓库编码为空"); } + log.info("开始创建空托盘组入库任务,容器编码" + containerCode + ",库位编码" + toLocationCode); String zoneCode = null; Container container = containerService.getContainerByCode(containerCode, warehouseCode); if (container == null) { @@ -548,6 +551,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea taskHeader.setZoneCode(zoneCode); taskHeader.setStatus(QuantityConstant.TASK_STATUS_BUILD); success = taskHeaderService.save(taskHeader); + log.info("完成创建空托盘组入库任务,容器编码" + containerCode + ",库位编码" + toLocationCode); if (!success) { throw new JeecgBootException("创建空托盘组入库任务时, 创建任务失败"); } @@ -557,6 +561,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea @Override @Transactional(rollbackFor = Exception.class) public Result createManyEmptyOut(String containerCode, String toPortCode, String warehouseCode) { + log.info("开始创建空托盘组出库任务,容器编码" + containerCode + ",去向位置编码" + toPortCode); if (StringUtils.isEmpty(containerCode)) { return Result.error("创建空托盘组出库任务时,托盘号为空"); } @@ -606,6 +611,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea taskHeader.setToPortCode(toPortCode); taskHeader.setStatus(QuantityConstant.TASK_STATUS_BUILD); success = taskHeaderService.save(taskHeader); + log.info("完成创建空托盘组出库任务,容器编码" + containerCode + ",去向位置编码" + toPortCode); if (!success) { throw new JeecgBootException("创建空托盘组出库任务时,生成任务失败"); } @@ -889,6 +895,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea if (taskHeader == null) { return Result.error("任务" + taskId + "未找到,执行中止"); } + log.info("开始取消任务" + taskHeader.getId()); if (taskHeader.getStatus().equals(QuantityConstant.TASK_STATUS_COMPLETED)) { return Result.ok("任务(" + taskId + ")任务已经是完成的!"); } @@ -929,6 +936,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea break; } taskHeaderService.cancelLocationAndContainerStatus(taskHeader); + log.info("完成取消任务" + taskHeader.getId()); return result; } @@ -1920,6 +1928,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea @Override @Transactional(rollbackFor = Exception.class) public Result completeTransferTask(TaskHeader taskHeader) { + log.info("开始完成移库任务" + taskHeader.getId()); String warehouseCode = taskHeader.getWarehouseCode(); String containerCode = taskHeader.getContainerCode(); String fromLocationCode = taskHeader.getFromLocationCode(); @@ -1979,13 +1988,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea if (!success) { throw new JeecgBootException("完成移库任务时, 更新容器状态失败"); } - // 2023-04-11 托盘状态与填充状态分离 无需再更新字段 -// Container container = containerService.getContainerByCode(containerCode, warehouseCode); -// container.setLastStatus(QuantityConstant.EMPTY_STRING); -// success = containerService.updateById(container); -// if (!success) { -// throw new JeecgBootException("完成移库任务时, 更新容器状态失败"); -// } success = locationService.updateContainerCodeAndStatus(fromLocationCode, QuantityConstant.EMPTY_STRING, QuantityConstant.STATUS_LOCATION_EMPTY, warehouseCode); if (!success) { @@ -2012,6 +2014,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea throw new JeecgBootException("完成移库任务时, 更新库存详情失败"); } } + log.info("完成移库任务" + taskHeader.getId()); return Result.OK("完成移库任务成功"); } @@ -2023,6 +2026,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea @Override @Transactional(rollbackFor = Exception.class) public Result completeCheckOutTask(TaskHeader taskHeader) { + log.info("开始完成出库查看任务" + taskHeader.getId()); String warehouseCode = taskHeader.getWarehouseCode(); String containerCode = taskHeader.getContainerCode(); String fromLocationCode = taskHeader.getFromLocationCode(); @@ -2051,11 +2055,17 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea .eq(InventoryDetail::getLocationCode, fromLocationCode); List<InventoryDetail> inventoryDetailList = inventoryDetailService.list(inventoryDetailLambdaQueryWrapper); if (inventoryDetailList.size() != 0) { + List<InventoryDetail> inventoryDetailList1 = new ArrayList<>(); for (InventoryDetail inventoryDetail : inventoryDetailList) { inventoryDetail.setTaskQty(BigDecimal.ZERO); inventoryDetail.setLocationCode(toLocationCode); + InventoryDetail inventoryDetail1 = new InventoryDetail(); + inventoryDetail1.setId(inventoryDetail.getId()); + inventoryDetail1.setLocationCode(toLocationCode); + inventoryDetail1.setTaskQty(BigDecimal.ZERO); + inventoryDetailList1.add(inventoryDetail1); } - success = inventoryDetailService.updateBatchById(inventoryDetailList); + success = inventoryDetailService.updateBatchById(inventoryDetailList1); if (!success) { throw new JeecgBootException("完成出库查看任务时,更新库存详情失败"); } @@ -2064,7 +2074,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea throw new JeecgBootException("完成出库查看任务时,没有找到库存头"); } inventoryHeader.setLocationCode(toLocationCode); - success = inventoryHeaderService.updateById(inventoryHeader); + success = inventoryHeaderService.updateLocationCodeById(toLocationCode, inventoryHeader.getId()); if (!success) { throw new JeecgBootException("完成出库查看任务时,更新库存头失败"); } @@ -2096,7 +2106,8 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea throw new JeecgBootException("完成出库查看任务时,更新目标库位状态失败"); } taskHeader.setStatus(QuantityConstant.TASK_STATUS_COMPLETED); - success = taskHeaderService.updateById(taskHeader); + success = taskHeaderService.updateStatusById(QuantityConstant.TASK_STATUS_COMPLETED, taskHeader.getId()); + log.info("完成出库查看任务" + taskHeader.getId()); if (!success) { throw new JeecgBootException("完成出库查看任务时,保存任务失败"); } @@ -2111,6 +2122,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea @Override @Transactional(rollbackFor = Exception.class) public Result completeOverStationTask(TaskHeader taskHeader) { + log.info("完成跨站任务" + taskHeader.getId()); String warehouseCode = taskHeader.getWarehouseCode(); String containerCode = taskHeader.getContainerCode(); String fromPortCode = taskHeader.getFromPortCode(); @@ -2140,11 +2152,12 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea return Result.error("创建跨站任务时,目标站台为空"); } taskHeader.setStatus(QuantityConstant.TASK_STATUS_COMPLETED); - boolean success = taskHeaderService.updateById(taskHeader); + boolean success = taskHeaderService.updateStatusById(QuantityConstant.TASK_STATUS_COMPLETED, taskHeader.getId()); if (!success) { throw new JeecgBootException("创建跨站任务时, 更新任务失败"); } success = containerService.updateStatus(containerCode, QuantityConstant.STATUS_CONTAINER_EMPTY, warehouseCode); + log.info("完成跨站任务" + taskHeader.getId()); if (!success) { throw new JeecgBootException("创建跨站任务时, 更新容器状态失败"); } @@ -2162,6 +2175,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea String warehouseCode = taskHeader.getWarehouseCode(); String containerCode = taskHeader.getContainerCode(); String toLocationCode = taskHeader.getToLocationCode(); + log.info("开始完成空托盘组入库任务" + taskHeader.getId()); if (StringUtils.isEmpty(containerCode)) { return Result.error("完成空托盘组入库任务时, 托盘号为空"); } @@ -2180,7 +2194,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea return Result.error("完成空托盘组入库任务时,没有找到库位" + toLocationCode); } taskHeader.setStatus(QuantityConstant.TASK_STATUS_COMPLETED); - boolean success = taskHeaderService.updateById(taskHeader); + boolean success = taskHeaderService.updateStatusById(QuantityConstant.TASK_STATUS_COMPLETED, taskHeader.getId()); if (!success) { throw new JeecgBootException("完成空托盘组入库任务时, 更新任务失败"); } @@ -2190,6 +2204,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea throw new JeecgBootException("完成空托盘组入库任务时, 更新容器失败"); } success = locationService.updateContainerCodeAndStatus(toLocationCode, containerCode, QuantityConstant.STATUS_LOCATION_EMPTY, warehouseCode); + log.info("完成空托盘组入库任务" + taskHeader.getId()); if (!success) { throw new JeecgBootException("完成空托盘组入库任务时, 更新库位失败"); } @@ -2207,6 +2222,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea String warehouseCode = taskHeader.getWarehouseCode(); String containerCode = taskHeader.getContainerCode(); String toPortCode = taskHeader.getToPortCode(); + log.info("开始完成空托盘组出库任务" + taskHeader.getId()); if (StringUtils.isEmpty(containerCode)) { return Result.error("完成空托盘组出库任务时, 托盘号为空"); } @@ -2229,7 +2245,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea return Result.error("完成空托盘组出库任务时,没有找到出入口" + toPortCode); } taskHeader.setStatus(QuantityConstant.TASK_STATUS_COMPLETED); - boolean success = taskHeaderService.updateById(taskHeader); + boolean success = taskHeaderService.updateStatusById(QuantityConstant.TASK_STATUS_COMPLETED, taskHeader.getId()); if (!success) { throw new JeecgBootException("完成空托盘组出库任务时, 更新任务失败"); } @@ -2239,6 +2255,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea throw new JeecgBootException("完成空托盘组出库任务时, 更新容器失败"); } success = locationService.updateContainerCodeAndStatus(toLocationCode, QuantityConstant.EMPTY_STRING, QuantityConstant.STATUS_LOCATION_EMPTY, warehouseCode); + log.info("开始完成空托盘组出库任务" + taskHeader.getId()); if (!success) { throw new JeecgBootException("完成空托盘组出库任务时, 更新库位失败"); }