Commit fd76232831ea6294ca8fef767e6eca5cdc2de7f4

Authored by mahuandong
2 parents d0211cec be934f91

Merge remote-tracking branch 'origin/develop' into develop

src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java
... ... @@ -52,6 +52,8 @@ public class CycleCountDetailController extends BaseController {
52 52 private CycleCountDetailService cycleCountDetailService;
53 53 @Resource
54 54 private CycleCountHeaderService cycleCountHeaderService;
  55 + @Resource
  56 + private InventoryDetailService inventoryDetailService;
55 57  
56 58  
57 59  
... ... @@ -178,11 +180,15 @@ public class CycleCountDetailController extends BaseController {
178 180 for (Integer id : detailsIds)
179 181 {
180 182 //只允许删除新建状态下的盘点明细。
181   - CycleCountDetail cyclecountDetailFor = cycleCountDetailService.getById(id);
182   - if(cyclecountDetailFor.getEnableStatus() > 1){
  183 + CycleCountDetail cyclecountDetails = cycleCountDetailService.getById(id);
  184 + if(cyclecountDetails.getEnableStatus() > 5){
183 185 return AjaxResult.error("盘点已开始执行,不允许删除该盘点明细!");
184 186 }
185 187 cycleCountDetailService.removeById(id);
  188 + //取消库存盘点状态
  189 + InventoryDetail inventoryDetail = inventoryDetailService.getById(cyclecountDetails.getInventoryDetailId());
  190 + inventoryDetail.setLockCode("");
  191 + inventoryDetailService.saveOrUpdate(inventoryDetail);
186 192 }
187 193 return AjaxResult.success("删除成功!");
188 194 }
... ...
src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java
... ... @@ -111,7 +111,7 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap
111 111 ccd.setLastUpdated(new Date());
112 112 ccd.setLastUpdatedBy(ShiroUtils.getLoginName());
113 113 this.save(ccd);
114   - //更新库存
  114 + //更新库存盘点
115 115 inventoryDetail.setLockCode("cyclecount");
116 116 inventoryDetailService.saveOrUpdate(inventoryDetail);
117 117 }
... ... @@ -280,6 +280,8 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap
280 280 cycleCountDetail.setLastUpdated(new Date());
281 281 cycleCountDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
282 282 cycleCountDetail.setEnableStatus(5);
  283 + cycleCountDetail.setTaskHeaderId(task.getId());
  284 + cycleCountDetail.setTaskDetailId(taskDetail.getId());
283 285 this.saveOrUpdate(cycleCountDetail);
284 286  
285 287 //修改主单状态
... ...
src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java
... ... @@ -935,7 +935,8 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
935 935 item.setLastUpdated(new Date()); //更新时间
936 936 list.add(item);
937 937 }
938   - if (taskDetailService.saveOrUpdateBatch(list) == false || taskHeaderService.saveOrUpdate(taskHeader) == false) {
  938 + if (taskDetailService.saveOrUpdateBatch(list) == false ||
  939 + taskHeaderService.saveOrUpdate(taskHeader) == false) {
939 940 throw new ServiceException("任务单据状态更新失败!");
940 941 }
941 942 //释放库位状态
... ... @@ -951,13 +952,49 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
951 952 @Transactional
952 953 @Override
953 954 public AjaxResult completeCycleCountTask(TaskHeader taskHeader){
954   - /*盘点完成,传入任务主单,查出任务明细,通过任务明细查找盘点的明细单,完成任务同时,修改盘点细单和主单的状态*/
955   -
956   -
957   -
  955 + /*盘点完成,传入任务主单,查出任务明细,通过任务明细查找盘点的明细单,
  956 + 完成任务同时,修改盘点细单和主单的状态,完成后库存锁复位*/
  957 + //修改任务主单状态
  958 + taskHeader.setStatus(100);
  959 + taskHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); //更新用户
  960 + taskHeader.setLastUpdated(new Date()); //更新时间
  961 + //task更新明细单状态
  962 + TaskDetail taskDetail = new TaskDetail();
  963 + taskDetail.setWarehouseCode(taskHeader.getWarehouseCode());
  964 + taskDetail.setTaskType(taskHeader.getTaskType());
  965 + taskDetail.setTaskId(taskHeader.getId());
  966 + LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(taskDetail);
  967 + List<TaskDetail> taskDetailList = taskDetailService.list(lambdaQueryWrapper);//查询子单
  968 + List<TaskDetail> list = new CopyOnWriteArrayList<>();
  969 + //修改任务明细状态的同时查找到盘点明细的条目并修改状态,最后修改主单状态
  970 + List<CycleCountDetail> cycleCountDetailList = new CopyOnWriteArrayList<>();
  971 + for(TaskDetail item:taskDetailList){
  972 + item.setStatus(100);
  973 + item.setLastUpdatedBy(ShiroUtils.getLoginName()); //更新用户
  974 + item.setLastUpdated(new Date()); //更新时间
  975 + list.add(item);
958 976  
  977 + CycleCountDetail cycleCountDetail = cycleCountDetailService.getById(item.getBillDetailId());//盘点明细
  978 + cycleCountDetail.setEnableStatus(100);
  979 + cycleCountDetail.setCompletedBy(ShiroUtils.getLoginName());
  980 + cycleCountDetail.setCompletedAt(new Date());
  981 + cycleCountDetailList.add(cycleCountDetail);
  982 + //取消库存盘点锁
  983 + InventoryDetail inventoryDetail = inventoryDetailService.getById(cycleCountDetail.getInventoryDetailId());
  984 + inventoryDetail.setLockCode("");
  985 + inventoryDetailService.saveOrUpdate(inventoryDetail);
  986 + }
  987 + if ( taskHeaderService.saveOrUpdate(taskHeader) == false ||
  988 + taskDetailService.saveOrUpdateBatch(list) == false ||
  989 + cycleCountDetailService.saveOrUpdateBatch(cycleCountDetailList) == false) {
  990 + throw new ServiceException("盘点任务单据状态更新失败!");
  991 + }
  992 + //更新主单状态
  993 + cycleCountHeaderService.updataHeaderStatus(cycleCountDetailList.get(0).getCycleCountHeadCode());
  994 + //释放库位
  995 + locationService.updateStatus(cycleCountDetailList.get(0).getLocationCode(), "empty");
  996 + return AjaxResult.success("完成盘点任务");
959 997  
960   - return null;
961 998 }
962 999  
963 1000 /**
... ...