| | |
| | | import com.vincent.rsf.server.manager.controller.params.WarehouseAreaParam; |
| | | import com.vincent.rsf.server.manager.entity.*; |
| | | import com.vincent.rsf.server.manager.enums.AsnExceStatus; |
| | | import com.vincent.rsf.server.manager.enums.POExceStatus; |
| | | import com.vincent.rsf.server.manager.enums.PakinIOStatus; |
| | | import com.vincent.rsf.server.manager.enums.WarehouseAreasType; |
| | | import com.vincent.rsf.server.manager.service.*; |
| | |
| | | private WarehouseAreasService warehouseAreasService; |
| | | @Autowired |
| | | private WarehouseAreasItemServiceImpl warehouseAreasItemService; |
| | | |
| | | @Autowired |
| | | private CompanysService companysService; |
| | | |
| | | /** |
| | | * @author Ryan |
| | |
| | | if (Objects.isNull(config)) { |
| | | return; |
| | | } |
| | | |
| | | if (!Boolean.parseBoolean(config.getVal())) { |
| | | return; |
| | | } |
| | |
| | | * @version 1.0 |
| | | */ |
| | | private void extracted(WarehouseAreas areasItem, AsnOrderItem orderItem, AsnOrder asnOrder, Matnr matnr) { |
| | | Companys companys = new Companys(); |
| | | if (StringUtils.isNoneBlank(orderItem.getSplrCode())) { |
| | | companys = companysService.getOne(new LambdaQueryWrapper<Companys>().eq(Companys::getCode, orderItem.getSplrCode())); |
| | | } |
| | | |
| | | WarehouseAreasItem item = new WarehouseAreasItem(); |
| | | item.setTrackCode(orderItem.getBarcode()) |
| | | .setAreaName(areasItem.getName()) |
| | |
| | | .setAsnCode(asnOrder.getCode()) |
| | | .setAsnId(asnOrder.getId()) |
| | | .setProdTime(orderItem.getProdTime()) |
| | | .setPlatItemId(orderItem.getPlatItemId()) |
| | | .setPlatOrderCode(orderItem.getPlatOrderCode()) |
| | | .setPlatWorkCode(orderItem.getPlatWorkCode()) |
| | | .setProjectCode(orderItem.getProjectCode()) |
| | | .setSplrId(companys.getId()) |
| | | //库存单位为最小单位 |
| | | .setUnit(orderItem.getStockUnit()) |
| | | .setStockUnit(orderItem.getStockUnit()) |
| | |
| | | WarehouseAreasItem serviceOne = warehouseAreasItemService.getOne(queryWrapper); |
| | | if (!Objects.isNull(serviceOne)) { |
| | | item.setId(serviceOne.getId()); |
| | | item.setAnfme(item.getAnfme() + serviceOne.getAnfme()); |
| | | Double anfme = Math.round((item.getAnfme() + serviceOne.getAnfme()) * 10000) / 10000.0; |
| | | item.setAnfme(anfme); |
| | | } |
| | | //未质检 |
| | | if (!warehouseAreasItemService.saveOrUpdate(item)) { |
| | |
| | | return; |
| | | } |
| | | //获取未生成ASN单据 |
| | | List<Purchase> purchases = purchaseService.list(new LambdaQueryWrapper<Purchase>().eq(Purchase::getStatus, 0)); |
| | | List<Purchase> purchases = purchaseService.list(new LambdaQueryWrapper<Purchase>().eq(Purchase::getExceStatus, 0)); |
| | | //PO单为空,直接跳出当前任务 |
| | | if (purchases.isEmpty()) { |
| | | return; |
| | |
| | | } |
| | | |
| | | //任务执行完成,修改已完成数量和PO单执行状态 |
| | | purchase.setQty(purchase.getAnfme()).setStatus(1); |
| | | purchase.setQty(purchase.getAnfme()) |
| | | .setExceStatus(POExceStatus.PO_EXCE_STATUS_EXCE_ING.val); |
| | | |
| | | if (!purchaseService.saveOrUpdate(purchase)) { |
| | | throw new CoolException("PO单执行完成后,保存失败!!"); |
| | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void pakinLog() { |
| | | List<WaitPakin> pakinIds = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>() |
| | | .eq(WaitPakin::getIoStatus, Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_TASK_DONE.val)) |
| | | .eq(WaitPakin::getIoStatus, PakinIOStatus.PAKIN_IO_STATUS_TASK_DONE.val) |
| | | .select(WaitPakin::getId)); |
| | | if (pakinIds.isEmpty()) { |
| | | return; |
| | |
| | | if (pakins.isEmpty()) { |
| | | throw new CoolException("组拖单为空!!"); |
| | | } |
| | | List<WaitPakinLog> pakinLogs = new ArrayList<>(); |
| | | pakins.forEach(pakin -> { |
| | | WaitPakinLog log = new WaitPakinLog(); |
| | | BeanUtils.copyProperties(pakin, log); |
| | | log.setPakinId(pakin.getId()).setIoStatus(Short.parseShort("2")); |
| | | pakinLogs.add(log); |
| | | }); |
| | | if (!waitPakinLogService.saveBatch(pakinLogs)) { |
| | | throw new CoolException("历史档保存失败!!"); |
| | | } |
| | | List<WaitPakinItemLog> itemLogs = new ArrayList<>(); |
| | | List<WaitPakinItem> pakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>().in(WaitPakinItem::getPakinId, list)); |
| | | if (pakinItems.isEmpty()) { |
| | | throw new CoolException("组拖明细为空!!"); |
| | | } |
| | | pakinItems.forEach(item -> { |
| | | WaitPakinItemLog itemLog = new WaitPakinItemLog(); |
| | | BeanUtils.copyProperties(item, itemLog); |
| | | itemLog.setPakinItemId(item.getId()) |
| | | .setPakinId(item.getPakinId()); |
| | | itemLogs.add(itemLog); |
| | | log.setPakinId(pakin.getId()).setIoStatus(PakinIOStatus.PAKIN_IO_STATUS_TASK_DONE.val); |
| | | |
| | | if (!waitPakinLogService.save(log)) { |
| | | throw new CoolException("组托日志保存失败!!"); |
| | | } |
| | | List<WaitPakinItem> pakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>().in(WaitPakinItem::getPakinId, pakin.getId())); |
| | | if (pakinItems.isEmpty()) { |
| | | throw new CoolException("组拖明细为空!!"); |
| | | } |
| | | List<WaitPakinItemLog> itemLogs = new ArrayList<>(); |
| | | |
| | | pakinItems.forEach(item -> { |
| | | WaitPakinItemLog itemLog = new WaitPakinItemLog(); |
| | | BeanUtils.copyProperties(item, itemLog); |
| | | itemLog.setPakinItemId(item.getId()) |
| | | .setLogId(log.getId()) |
| | | .setQty(item.getWorkQty()) |
| | | .setWorkQty(0.0) |
| | | .setPakinId(item.getPakinId()); |
| | | itemLogs.add(itemLog); |
| | | }); |
| | | |
| | | if (!waitPakinItemLogService.saveBatch(itemLogs)) { |
| | | throw new CoolException("历史明细档保存失败!!"); |
| | | } |
| | | }); |
| | | |
| | | if (!waitPakinItemLogService.saveBatch(itemLogs)) { |
| | | throw new CoolException("历史明细档保存失败!!"); |
| | | } |
| | | if (!waitPakinService.removeByIds(list)) { |
| | | throw new CoolException("原单据删除失败!!"); |
| | | } |