diff --git a/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java b/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java index 45f170a..bc7bd60 100644 --- a/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java +++ b/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java @@ -52,6 +52,8 @@ public class CycleCountDetailController extends BaseController { private CycleCountDetailService cycleCountDetailService; @Resource private CycleCountHeaderService cycleCountHeaderService; + @Resource + private InventoryDetailService inventoryDetailService; @@ -178,11 +180,15 @@ public class CycleCountDetailController extends BaseController { for (Integer id : detailsIds) { //只允许删除新建状态下的盘点明细。 - CycleCountDetail cyclecountDetailFor = cycleCountDetailService.getById(id); - if(cyclecountDetailFor.getEnableStatus() > 1){ + CycleCountDetail cyclecountDetails = cycleCountDetailService.getById(id); + if(cyclecountDetails.getEnableStatus() > 5){ return AjaxResult.error("盘点已开始执行,不允许删除该盘点明细!"); } cycleCountDetailService.removeById(id); + //取消库存盘点状态 + InventoryDetail inventoryDetail = inventoryDetailService.getById(cyclecountDetails.getInventoryDetailId()); + inventoryDetail.setLockCode(""); + inventoryDetailService.saveOrUpdate(inventoryDetail); } return AjaxResult.success("删除成功!"); } diff --git a/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java b/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java index 5903736..87a1b29 100644 --- a/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java +++ b/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java @@ -111,7 +111,7 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap ccd.setLastUpdated(new Date()); ccd.setLastUpdatedBy(ShiroUtils.getLoginName()); this.save(ccd); - //更新库存锁 + //更新库存盘点锁 inventoryDetail.setLockCode("cyclecount"); inventoryDetailService.saveOrUpdate(inventoryDetail); } @@ -280,6 +280,8 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap cycleCountDetail.setLastUpdated(new Date()); cycleCountDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); cycleCountDetail.setEnableStatus(5); + cycleCountDetail.setTaskHeaderId(task.getId()); + cycleCountDetail.setTaskDetailId(taskDetail.getId()); this.saveOrUpdate(cycleCountDetail); //修改主单状态 diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java index 65625bb..1116ed7 100644 --- a/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java +++ b/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java @@ -935,7 +935,8 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea item.setLastUpdated(new Date()); //更新时间 list.add(item); } - if (taskDetailService.saveOrUpdateBatch(list) == false || taskHeaderService.saveOrUpdate(taskHeader) == false) { + if (taskDetailService.saveOrUpdateBatch(list) == false || + taskHeaderService.saveOrUpdate(taskHeader) == false) { throw new ServiceException("任务单据状态更新失败!"); } //释放库位状态 @@ -951,13 +952,49 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea @Transactional @Override public AjaxResult completeCycleCountTask(TaskHeader taskHeader){ - /*盘点完成,传入任务主单,查出任务明细,通过任务明细查找盘点的明细单,完成任务同时,修改盘点细单和主单的状态*/ - - - + /*盘点完成,传入任务主单,查出任务明细,通过任务明细查找盘点的明细单, + 完成任务同时,修改盘点细单和主单的状态,完成后库存锁复位*/ + //修改任务主单状态 + taskHeader.setStatus(100); + taskHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); //更新用户 + taskHeader.setLastUpdated(new Date()); //更新时间 + //task更新明细单状态 + TaskDetail taskDetail = new TaskDetail(); + taskDetail.setWarehouseCode(taskHeader.getWarehouseCode()); + taskDetail.setTaskType(taskHeader.getTaskType()); + taskDetail.setTaskId(taskHeader.getId()); + LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(taskDetail); + List<TaskDetail> taskDetailList = taskDetailService.list(lambdaQueryWrapper);//查询子单 + List<TaskDetail> list = new CopyOnWriteArrayList<>(); + //修改任务明细状态的同时查找到盘点明细的条目并修改状态,最后修改主单状态 + List<CycleCountDetail> cycleCountDetailList = new CopyOnWriteArrayList<>(); + for(TaskDetail item:taskDetailList){ + item.setStatus(100); + item.setLastUpdatedBy(ShiroUtils.getLoginName()); //更新用户 + item.setLastUpdated(new Date()); //更新时间 + list.add(item); + CycleCountDetail cycleCountDetail = cycleCountDetailService.getById(item.getBillDetailId());//盘点明细 + cycleCountDetail.setEnableStatus(100); + cycleCountDetail.setCompletedBy(ShiroUtils.getLoginName()); + cycleCountDetail.setCompletedAt(new Date()); + cycleCountDetailList.add(cycleCountDetail); + //取消库存盘点锁 + InventoryDetail inventoryDetail = inventoryDetailService.getById(cycleCountDetail.getInventoryDetailId()); + inventoryDetail.setLockCode(""); + inventoryDetailService.saveOrUpdate(inventoryDetail); + } + if ( taskHeaderService.saveOrUpdate(taskHeader) == false || + taskDetailService.saveOrUpdateBatch(list) == false || + cycleCountDetailService.saveOrUpdateBatch(cycleCountDetailList) == false) { + throw new ServiceException("盘点任务单据状态更新失败!"); + } + //更新主单状态 + cycleCountHeaderService.updataHeaderStatus(cycleCountDetailList.get(0).getCycleCountHeadCode()); + //释放库位 + locationService.updateStatus(cycleCountDetailList.get(0).getLocationCode(), "empty"); + return AjaxResult.success("完成盘点任务"); - return null; } /**