From 3ec190500044a26e48a3eb4e414e92869595bce8 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期二, 06 五月 2025 13:11:11 +0800 Subject: [PATCH] 单据明细优化 --- rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java | 103 ++++++++++++++++++++++++++++----------------------- 1 files changed, 57 insertions(+), 46 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java index 537556c..d59b56d 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java @@ -254,10 +254,14 @@ // if (dto.getReceiptQty().compareTo(dto.getAnfme()) > 0) { // throw new CoolException("鏀惰揣鏁伴噺涓嶈兘澶т簬閲囪喘鏁伴噺锛侊紒"); // } - AsnOrderItem orderItem = asnOrderItemMapper.selectOne(new LambdaQueryWrapper<AsnOrderItem>() - .eq(AsnOrderItem::getAsnCode, asnCode) - .eq(AsnOrderItem::getTrackCode, dto.getBarcode()) - .eq(AsnOrderItem::getMatnrId, dto.getMatnrId())); +// AsnOrderItem orderItem = asnOrderItemMapper.selectOne(new LambdaQueryWrapper<AsnOrderItem>() +// .eq(AsnOrderItem::getAsnCode, asnCode) +// .eq(AsnOrderItem::getId, dto.getId()) +// .eq(AsnOrderItem::getTrackCode, dto.getBarcode()) +// .eq(AsnOrderItem::getSplrBatch, dto.getSplrBatch())); + + AsnOrderItem orderItem = asnOrderItemMapper.resultById(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getId, dto.getId())); + if (Objects.isNull(orderItem)) { throw new CoolException("閫氱煡鍗曟槑缁嗕笉瀛樺湪锛侊紒"); } @@ -290,47 +294,13 @@ throw new CoolException("閫氱煡鍗曟槑缁嗘暟閲忎慨鏀瑰け璐ワ紒锛�"); } - WarehouseAreasItem item = new WarehouseAreasItem(); -// SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); -// String format = null; -// if (Objects.isNull(dto.getProdTime())) { -// format = dateFormat.format(dto.getProdTime()); -// } - item.setTrackCode(dto.getBarcode()) - .setAreaName(areasItem.getName()) - .setAreaId(areasItem.getId()) - .setAsnItemId(orderItem.getId()) - .setAsnCode(asnOrder.getCode()) - .setAsnId(asnOrder.getId()) - .setProdTime(dto.getProdTime()) - .setWeight(dto.getWeigth()) - //搴撳瓨鍗曚綅涓烘渶灏忓崟浣� - .setUnit(orderItem.getStockUnit()) - .setStockUnit(orderItem.getStockUnit()) - .setBatch(StringUtils.isBlank(orderItem.getBatch()) ? SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_RECEIPT_BATCH, dto) : orderItem.getBatch()) - .setAnfme(dto.getReceiptQty()) - .setSplrBatch(dto.getSplrBatch()) - .setMatnrCode(matnr.getCode()) - .setUpdateBy(loginUserId) - .setCreateBy(loginUserId) - .setMatnrId(matnr.getId()) - .setMaktx(matnr.getName()) - .setWeight(matnr.getWeight()) - .setFieldsIndex(orderItem.getFieldsIndex()) - .setShipperId(matnr.getShipperId()); - //TODO 渚涘簲鍟嗘爣璇嗘湭璁剧疆锛屾爣璇嗙敱PO鍗曚緵搴斿晢缂栫爜杞崲 - - WarehouseAreasItem serviceOne = warehouseAreasItemService.getOne(new LambdaQueryWrapper<WarehouseAreasItem>() - .eq(WarehouseAreasItem::getAsnItemId, item.getAsnItemId()) - .eq(WarehouseAreasItem::getTrackCode, item.getTrackCode()) - .eq(StringUtils.isNotBlank(item.getSplrBatch()), WarehouseAreasItem::getSplrBatch, item.getSplrBatch())); - if (!Objects.isNull(serviceOne)) { - item.setAnfme(item.getAnfme() + serviceOne.getAnfme()); - item.setId(serviceOne.getId()); - } - - if (!warehouseAreasItemService.saveOrUpdate(item)) { - throw new CoolException("鏀惰揣澶辫触锛侊紒"); + List<QlyIsptItem> isptItems = qlyIsptItemService.list(new LambdaQueryWrapper<QlyIsptItem>().eq(QlyIsptItem::getAsnItemId, dto.getId())); + if (isptItems.isEmpty()) { + extracted(loginUserId, dto, areasItem, orderItem, asnOrder, matnr); + } else { + for (QlyIsptItem isptItem : isptItems) { + extracted(loginUserId, dto, areasItem, orderItem, asnOrder, matnr); + } } } @@ -343,6 +313,46 @@ } return R.ok("鏀惰揣鎴愬姛锛侊紒"); + } + + private void extracted(Long loginUserId, ReceiptDetlsDto dto, WarehouseAreas areasItem, AsnOrderItem orderItem, AsnOrder asnOrder, Matnr matnr) { + WarehouseAreasItem item = new WarehouseAreasItem(); + item.setTrackCode(dto.getBarcode()) + .setAreaName(areasItem.getName()) + .setAreaId(areasItem.getId()) + .setAsnItemId(orderItem.getId()) + .setAsnCode(asnOrder.getCode()) + .setAsnId(asnOrder.getId()) + .setProdTime(dto.getProdTime()) + .setWeight(dto.getWeigth()) + //搴撳瓨鍗曚綅涓烘渶灏忓崟浣� + .setUnit(orderItem.getStockUnit()) + .setStockUnit(orderItem.getStockUnit()) + .setBatch(StringUtils.isBlank(orderItem.getBatch()) ? SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_RECEIPT_BATCH, dto) : orderItem.getBatch()) + .setAnfme(dto.getReceiptQty()) + .setSplrBatch(dto.getSplrBatch()) + .setMatnrCode(matnr.getCode()) + .setUpdateBy(loginUserId) + .setCreateBy(loginUserId) + .setMatnrId(matnr.getId()) + .setMaktx(matnr.getName()) + .setWeight(matnr.getWeight()) + .setFieldsIndex(orderItem.getFieldsIndex()) + .setShipperId(matnr.getShipperId()); + //TODO 渚涘簲鍟嗘爣璇嗘湭璁剧疆锛屾爣璇嗙敱PO鍗曚緵搴斿晢缂栫爜杞崲 + + WarehouseAreasItem serviceOne = warehouseAreasItemService.getOne(new LambdaQueryWrapper<WarehouseAreasItem>() + .eq(WarehouseAreasItem::getAsnItemId, item.getAsnItemId()) + .eq(WarehouseAreasItem::getTrackCode, item.getTrackCode()) + .eq(StringUtils.isNotBlank(item.getSplrBatch()), WarehouseAreasItem::getSplrBatch, item.getSplrBatch())); + if (!Objects.isNull(serviceOne)) { + item.setAnfme(item.getAnfme() + serviceOne.getAnfme()); + item.setId(serviceOne.getId()); + } + + if (!warehouseAreasItemService.saveOrUpdate(item)) { + throw new CoolException("鏀惰揣澶辫触锛侊紒"); + } } /** @@ -420,7 +430,7 @@ * @time 2025/4/7 16:58 */ @Override - public R getDeltByCode(Map<String, Object> params ) { + public R getDeltByCode(Map<String, Object> params) { String code = params.get("code").toString(); String batch = null; if (!Objects.isNull(params.get("batch"))) { @@ -938,6 +948,7 @@ ReceiptDetlsDto detlsDto = new ReceiptDetlsDto(); detlsDto.setAsnCode(asnOrderItem.getAsnCode()) + .setId(asnOrderItem.getId()) .setMaktx(asnOrderItem.getMaktx()) .setFieldsIndex(asnOrderItem.getFieldsIndex()) .setBarcode(asnOrderItem.getTrackCode()) -- Gitblit v1.9.1