no message

main
奥德彪本彪\92525 2024-09-09 22:34:51 +08:00
parent f4d01455be
commit c17dc3c01b
1 changed files with 32 additions and 40 deletions

View File

@ -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