| | |
| | | if (Objects.isNull(warehouseAreasItems)) { |
| | | throw new CoolException("物料未送至收货区或已组托完成移出收货区!!"); |
| | | } |
| | | if (item.getFieldsIndex().equals(warehouseAreasItems.getFieldsIndex())) { |
| | | throw new CoolException("票号:" + item.getExtendFields().get("crushNo") + "已组托,不可重复组托!!"); |
| | | // 只在票号不为空时才进行重复检查 |
| | | if (!Objects.isNull(item.getFieldsIndex()) && !Objects.isNull(warehouseAreasItems.getFieldsIndex()) |
| | | && item.getFieldsIndex().equals(warehouseAreasItems.getFieldsIndex())) { |
| | | String crushNo = item.getExtendFields() != null ? item.getExtendFields().get("crushNo") : ""; |
| | | throw new CoolException("票号:" + crushNo + "已组托,不可重复组托!!"); |
| | | } |
| | | } |
| | | }); |
| | |
| | | if (Objects.isNull(one)) { |
| | | throw new CoolException("收货区数据错误!!"); |
| | | } |
| | | Double workQty = Math.round((one.getWorkQty() + pakinItem.getAnfme()) * 100) / 100.0; |
| | | Double qty = Math.round((workQty + one.getQty()) * 100) / 100.0; |
| | | Double workQty = Math.round((one.getWorkQty() + pakinItem.getAnfme()) * 1000000) / 1000000.0; |
| | | Double qty = Math.round((workQty + one.getQty()) * 1000000) / 1000000.0; |
| | | one.setWorkQty(workQty); |
| | | if (qty.compareTo(one.getAnfme()) > 0) { |
| | | throw new CoolException("组托数量不能大于收货数量!!"); |
| | |
| | | if (item.getReceiptQty().compareTo(0.00) == 0) { |
| | | throw new CoolException("解绑数量不能为零!!"); |
| | | } |
| | | Double reslt = Math.round((pakinItems.get(i1).getAnfme() - pakinItems.get(i1).getWorkQty() - pakinItems.get(i1).getQty()) * 10000) / 10000.0; |
| | | Double reslt = Math.round((pakinItems.get(i1).getAnfme() - pakinItems.get(i1).getWorkQty() - pakinItems.get(i1).getQty()) * 1000000) / 1000000.0; |
| | | if (item.getReceiptQty().compareTo(reslt) > 0) { |
| | | throw new CoolException("解绑数量不能大于剩余可执行数!!"); |
| | | } |
| | | |
| | | Double anfme = Math.round((pakinItems.get(i1).getAnfme() - item.getReceiptQty()) * 100) / 100.0; |
| | | Double anfme = Math.round((pakinItems.get(i1).getAnfme() - item.getReceiptQty()) * 1000000) / 1000000.0; |
| | | pakinItems.get(i1).setAnfme(anfme); |
| | | if (!waitPakinItemService.updateById(pakinItems.get(i1))) { |
| | | throw new CoolException("组托明细数量修改失败!!"); |
| | |
| | | } |
| | | for (int i = 0; i < warehouseAreasItems.size(); i++) { |
| | | if (warehouseAreasItems.get(i).getId().equals(pakinItems.get(i1).getSource())) { |
| | | double v = Math.round((warehouseAreasItems.get(i).getWorkQty() - item.getReceiptQty()) * 100) / 100.0; |
| | | double v = Math.round((warehouseAreasItems.get(i).getWorkQty() - item.getReceiptQty()) * 1000000) / 1000000.0; |
| | | warehouseAreasItems.get(i).setWorkQty(v); |
| | | if (!warehouseAreasItemService.updateById(warehouseAreasItems.get(i))) { |
| | | throw new CoolException("收货区数量修改失败!!"); |
| | |
| | | throw new CoolException("组托删除失败!!"); |
| | | } |
| | | } else { |
| | | Double anfme = Math.round((waitPakins.getAnfme() - anfmes) * 100) / 100.0; |
| | | Double anfme = Math.round((waitPakins.getAnfme() - anfmes) * 1000000) / 1000000.0; |
| | | waitPakins.setAnfme(anfme); |
| | | if (!waitPakinService.updateById(waitPakins)) { |
| | | throw new CoolException("组托数据修改失败!!"); |
| | |
| | | continue; |
| | | } |
| | | double sum = pakin.stream().mapToDouble(WaitPakinItem::getAnfme).sum(); |
| | | Double workQty = Math.round((item.getWorkQty() - sum) * 100) / 100.0; |
| | | Double workQty = Math.round((item.getWorkQty() - sum) * 1000000) / 1000000.0; |
| | | item.setWorkQty(workQty); |
| | | if (!warehouseAreasItemService.updateById(item)) { |
| | | throw new CoolException("收货区数据回滚失败!!"); |