no message
							parent
							
								
									f4d01455be
								
							
						
					
					
						commit
						c17dc3c01b
					
				| 
						 | 
					@ -56,6 +56,7 @@ public class TaskServiceImpl implements TaskService {
 | 
				
			||||||
    private final PickDetailRepository pickDetailRepository;
 | 
					    private final PickDetailRepository pickDetailRepository;
 | 
				
			||||||
    private final InventoryLogService inventoryLogService;
 | 
					    private final InventoryLogService inventoryLogService;
 | 
				
			||||||
    private final StockRepository stockRepository;
 | 
					    private final StockRepository stockRepository;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public Map<String, Object> queryAll(TaskQueryCriteria criteria, Pageable pageable) {
 | 
					    public Map<String, Object> queryAll(TaskQueryCriteria criteria, Pageable pageable) {
 | 
				
			||||||
        Page<Task> page = taskRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
 | 
					        Page<Task> page = taskRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
 | 
				
			||||||
| 
						 | 
					@ -147,49 +148,40 @@ public class TaskServiceImpl implements TaskService {
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    @Transactional(rollbackFor = Exception.class)
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
    public synchronized void pickConfirm(Long taskId, double pickedQuantity) {
 | 
					    public synchronized void pickConfirm(Long taskId, double pickedQuantity) {
 | 
				
			||||||
        if (taskId > 0) {
 | 
					        TaskDto taskDto = findById(taskId);
 | 
				
			||||||
            TaskDto taskDto = findById(taskId);
 | 
					        Task task = taskMapper.toEntity(taskDto);//Dto转实体
 | 
				
			||||||
            Task task = taskMapper.toEntity(taskDto);//Dto转实体
 | 
					        if (task.getPlanQty() > task.getMoveQty()) {
 | 
				
			||||||
            if (task.getPlanQty() > task.getMoveQty()) {
 | 
					            PickDetail pickDetail = task.getPickDetail();
 | 
				
			||||||
                PickDetail pickDetail = task.getPickDetail();
 | 
					            task.setMoveQty(pickedQuantity);
 | 
				
			||||||
                task.setMoveQty(pickedQuantity);
 | 
					            task.setTaskStatus(BizStatus.FINISH);
 | 
				
			||||||
                task.setTaskStatus(BizStatus.FINISH);
 | 
					            taskRepository.save(task);
 | 
				
			||||||
                taskRepository.save(task);
 | 
					            Inventory inv = inventoryRepository.findById(task.getInvId()).get();
 | 
				
			||||||
                Inventory inv = inventoryRepository.findById(task.getInvId()).get();
 | 
					            if (inv != null) {
 | 
				
			||||||
                if (inv != null) {
 | 
					                inv.setQuantity(inv.getQuantity() - pickedQuantity);
 | 
				
			||||||
                    ItemKey itemKey = inv.getItemKey();
 | 
					                inv.setQueuedQty(inv.getQueuedQty() - pickedQuantity);
 | 
				
			||||||
                    Item item = itemKey.getItem();
 | 
					                inventoryRepository.save(inv);
 | 
				
			||||||
                    Dept dept = item.getDept();
 | 
					                if (inv.getQuantity() <= 0) {
 | 
				
			||||||
                    double srcQty = inv.getQuantity();
 | 
					                    inventoryRepository.delete(inv);
 | 
				
			||||||
                    inv.setQuantity(inv.getQuantity() - pickedQuantity);
 | 
					 | 
				
			||||||
                    inv.setQueuedQty(inv.getQueuedQty() - pickedQuantity);
 | 
					 | 
				
			||||||
                    inventoryRepository.save(inv);
 | 
					 | 
				
			||||||
                    if (inv.getQuantity() <= 0) {
 | 
					 | 
				
			||||||
                        inventoryRepository.delete(inv);
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                    Stock stock = inv.getStock();
 | 
					 | 
				
			||||||
                    stock.setStatus(BaseStatus.FREE);
 | 
					 | 
				
			||||||
                    stockRepository.save(stock);
 | 
					 | 
				
			||||||
                    //添加库存日志
 | 
					 | 
				
			||||||
                    inventoryLogService.storeInventoryLog(BizStatus.PICK_DOWN, BizStatus.REDUCE, task.getPickDetail().getPo(), task.getItemKey(), task.getSrcPoint(), task.getDstPoint(), task.getSrcStock(), task.getDstStock(), srcQty, pickedQuantity, BizStatus.PICK, task.getId(), inv.getId(), "");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    //刷新出库明细上的拣货数量
 | 
					 | 
				
			||||||
                    pickDetail.setPickedQty(pickDetail.getPickedQty() + pickedQuantity);
 | 
					 | 
				
			||||||
                    if (pickDetail.getOrderQty().equals(pickDetail.getPickedQty())) {
 | 
					 | 
				
			||||||
                        pickDetail.setStatus(BizStatus.PICK_ALL);
 | 
					 | 
				
			||||||
                    } else if (pickDetail.getAllocatedQty() > 0 && pickDetail.getOrderQty() - pickDetail.getPickedQty() > 0) {
 | 
					 | 
				
			||||||
                        pickDetail.setStatus(BizStatus.PICKUP);
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                    pickDetailRepository.save(pickDetail);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                } else {
 | 
					 | 
				
			||||||
                    throw new BadRequestException("未找到库存相应记录!");
 | 
					 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					                Stock stock = inv.getStock();
 | 
				
			||||||
 | 
					                stock.setStatus(BaseStatus.FREE);
 | 
				
			||||||
 | 
					                stockRepository.save(stock);
 | 
				
			||||||
 | 
					                //添加库存日志
 | 
				
			||||||
 | 
					                inventoryLogService.storeInventoryLog(BizStatus.PICK_DOWN, BizStatus.REDUCE, task.getPickDetail().getPo(), task.getItemKey(), task.getSrcPoint(), task.getDstPoint(), task.getSrcStock(), task.getDstStock(), inv.getQuantity(), pickedQuantity, BizStatus.PICK, task.getId(), inv.getId(), "");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        } else {
 | 
					
 | 
				
			||||||
            throw new BadRequestException("参数错误或为空");
 | 
					            }
 | 
				
			||||||
 | 
					            //刷新出库明细上的拣货数量
 | 
				
			||||||
 | 
					            pickDetail.setPickedQty(pickDetail.getPickedQty() + pickedQuantity);
 | 
				
			||||||
 | 
					            if (pickDetail.getOrderQty().equals(pickDetail.getPickedQty())) {
 | 
				
			||||||
 | 
					                pickDetail.setStatus(BizStatus.PICK_ALL);
 | 
				
			||||||
 | 
					            } else if (pickDetail.getAllocatedQty() > 0 && pickDetail.getOrderQty() - pickDetail.getPickedQty() > 0) {
 | 
				
			||||||
 | 
					                pickDetail.setStatus(BizStatus.PICKUP);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            pickDetailRepository.save(pickDetail);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue