From d3c44bb9a25c42bba6e2dfd85ac7d04863112dc8 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期三, 30 四月 2025 10:48:38 +0800 Subject: [PATCH] 收货单改入修改 单位带入修改 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java | 132 ++++++++++++++++++++++++++++--------------- 1 files changed, 86 insertions(+), 46 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java index 75bdb0e..ee36323 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java @@ -2,7 +2,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.manager.controller.params.PakinItem; import com.vincent.rsf.server.manager.controller.params.WaitPakinParam; @@ -16,7 +15,6 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.core.parameters.P; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -41,16 +39,17 @@ private LocService locService; /** + * @param + * @param userId + * @return * @author Ryan * @description 缁勬嫋 - * @param - * @return * @time 2025/3/29 14:42 */ @Override @Transactional(rollbackFor = Exception.class) - public WaitPakin mergeItems(WaitPakinParam waitPakin) { - if (waitPakin.getItems().isEmpty()) { + public WaitPakin mergeItems(WaitPakinParam waitPakin, Long userId) { + if (Objects.isNull(waitPakin.getItems()) || waitPakin.getItems().isEmpty()) { throw new CoolException("鍙傛暟閿欒锛氱墿鏂欒窡韪爜涓虹┖锛�"); } if (StringUtils.isBlank(waitPakin.getBarcode())) { @@ -84,6 +83,8 @@ //鐘舵�佷慨鏀逛负鍏ュ簱涓� .setIoStatus(Short.parseShort(PakinIOStatus.PAKIN_IO_STATUS_DONE.val)) .setAnfme(sum) + .setUpdateBy(userId) + .setCreateBy(userId) .setBarcode(waitPakin.getBarcode()); if (!this.save(waitPakin1)) { throw new CoolException("涓诲崟淇濆瓨澶辫触锛侊紒"); @@ -107,48 +108,84 @@ throw new CoolException("鍘熷崟鎹竻闄ゅけ璐ワ紒锛�"); } } - - LambdaQueryWrapper<WarehouseAreasItem> queryWrapper = new QueryWrapper<WarehouseAreasItem>() - .select("SUM(anfme) as anfme, track_code, asn_code, id, splr_batch, ispt_result, plat_item_id, batch, qty, work_qty, matnr_code, matnr_id, maktx") - .lambda() - .in(WarehouseAreasItem::getTrackCode, tracks) - .groupBy(WarehouseAreasItem::getSplrBatch, - WarehouseAreasItem::getTrackCode); - List<WarehouseAreasItem> warehouseAreasItems = warehouseAreasItemService.list(queryWrapper); - if (Objects.isNull(warehouseAreasItems) || warehouseAreasItems.isEmpty()) { - throw new CoolException("鐗╂枡鏈�佽嚦鏀惰揣鍖猴紒锛�"); - } List<WaitPakinItem> items = new ArrayList<>(); - for (WarehouseAreasItem item : warehouseAreasItems) { - WaitPakinItem pakinItem = new WaitPakinItem(); - pakinItem.setAnfme(item.getAnfme()) - .setPakinId(waitPakin1.getId()) - .setAsnId(item.getAsnId()) - .setAsnCode(item.getAsnCode()) - .setAsnItemId(item.getId()) - .setBatch(item.getSplrBatch()) - .setUnit(item.getStockUnit()) - .setFieldsIndex(item.getFieldsIndex()) - .setMatnrId(item.getMatnrId()) - .setMaktx(item.getMaktx()) - .setMatnrCode(item.getMatnrCode()); - for (PakinItem waitPakinItem : waitPakin.getItems()) { - if (waitPakinItem.getTrackCode().equals(item.getTrackCode())) { - if (waitPakinItem.getReceiptQty() > item.getAnfme()) { - throw new CoolException("缁勬嫋鏁伴噺涓嶈兘澶т簬鏀惰揣鏁伴噺锛侊紒"); - } - pakinItem - .setAnfme(waitPakinItem.getReceiptQty()) - .setTrackCode(waitPakinItem.getTrackCode()); - /**鏇存柊鍗曟嵁鎵ц涓簱瀛�*/ -// if (v.compareTo(item.getAnfme()) > 0) {throw new CoolException("鎵ц涓暟閲忓ぇ浜庢敹璐ф暟閲忥紒锛�");} -// if (!asnOrderItemService.update(new LambdaUpdateWrapper<AsnOrderItem>() -// .eq(AsnOrderItem::getTrackCode, waitPakinItem.getTrackCode()).set(AsnOrderItem::getWorkQty, v))) { -// throw new CoolException("鎵ц涓簱瀛樻洿鏂板け璐ワ紒锛�"); -// } - } + if (!Objects.isNull(waitPakin.getType()) && waitPakin.getType().equals("defective")) { + List<AsnOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().in(AsnOrderItem::getTrackCode, tracks)); + if (Objects.isNull(orderItems) || orderItems.isEmpty()) { + throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�"); } - items.add(pakinItem); + for (AsnOrderItem item : orderItems) { + WaitPakinItem pakinItem = new WaitPakinItem(); + pakinItem.setAnfme(item.getAnfme()) + .setPakinId(waitPakin1.getId()) + .setAsnId(item.getAsnId()) + .setAsnCode(item.getAsnCode()) + .setAsnItemId(item.getId()) + .setBatch(item.getSplrBatch()) + .setUnit(item.getStockUnit()) + .setFieldsIndex(item.getFieldsIndex()) + .setMatnrId(item.getMatnrId()) + .setMaktx(item.getMaktx()) + .setUpdateBy(userId) + .setCreateBy(userId) + .setMatnrCode(item.getMatnrCode()); + AsnOrder order = asnOrderService.getById(item.getAsnId()); + if (!Objects.isNull(order)) { + pakinItem.setType(null == order.getType() ? null :order.getType()) + .setWkType(null == order.getWkType() ? null : Short.parseShort(order.getWkType()) ); + } + for (PakinItem waitPakinItem : waitPakin.getItems()) { + if (waitPakinItem.getTrackCode().equals(item.getTrackCode())) { + if (waitPakinItem.getReceiptQty() > item.getAnfme() || waitPakinItem.getReceiptQty().compareTo(0.0) >= 0) { + throw new CoolException("缁勬嫋鏁伴噺涓嶈兘澶т簬鏀惰揣鏁伴噺锛侊紒"); + } + pakinItem.setAnfme(waitPakinItem.getReceiptQty()).setTrackCode(waitPakinItem.getTrackCode()); + } + } + items.add(pakinItem); + } + } else { + LambdaQueryWrapper<WarehouseAreasItem> queryWrapper = new QueryWrapper<WarehouseAreasItem>() + .select("SUM(anfme) as anfme, track_code, asn_code, id, splr_batch, ispt_result, plat_item_id, batch, qty, work_qty, matnr_code, matnr_id, maktx") + .lambda() + .in(WarehouseAreasItem::getTrackCode, tracks) + .groupBy(WarehouseAreasItem::getSplrBatch, + WarehouseAreasItem::getTrackCode); + List<WarehouseAreasItem> warehouseAreasItems = warehouseAreasItemService.list(queryWrapper); + if (Objects.isNull(warehouseAreasItems) || warehouseAreasItems.isEmpty()) { + throw new CoolException("鐗╂枡鏈�佽嚦鏀惰揣鍖猴紒锛�"); + } + for (WarehouseAreasItem item : warehouseAreasItems) { + WaitPakinItem pakinItem = new WaitPakinItem(); + pakinItem.setAnfme(item.getAnfme()) + .setPakinId(waitPakin1.getId()) + .setAsnId(item.getAsnId()) + .setAsnCode(item.getAsnCode()) + .setAsnItemId(item.getId()) + .setBatch(item.getSplrBatch()) + .setUnit(item.getStockUnit()) + .setFieldsIndex(item.getFieldsIndex()) + .setMatnrId(item.getMatnrId()) + .setMaktx(item.getMaktx()) + .setUpdateBy(userId) + .setCreateBy(userId) + .setMatnrCode(item.getMatnrCode()); + AsnOrder order = asnOrderService.getById(item.getAsnId()); + if (!Objects.isNull(order)) { + pakinItem.setType(null == order.getType() ? null :order.getType()) + .setWkType(null == order.getWkType() ? null : Short.parseShort(order.getWkType()) ); + } + + for (PakinItem waitPakinItem : waitPakin.getItems()) { + if (waitPakinItem.getTrackCode().equals(item.getTrackCode())) { + if (waitPakinItem.getReceiptQty() > item.getAnfme() || waitPakinItem.getReceiptQty().compareTo(0.0) <= 0) { + throw new CoolException("缁勬嫋鏁伴噺涓嶈兘澶т簬鏀惰揣鏁伴噺涓斾笉鑳藉皬浜庨浂锛侊紒"); + } + pakinItem.setAnfme(waitPakinItem.getReceiptQty()).setTrackCode(waitPakinItem.getTrackCode()); + } + } + items.add(pakinItem); + } } double sum1 = items.stream().mapToDouble(WaitPakinItem::getAnfme).sum(); if (!waitPakinItemService.saveBatch(items)) { @@ -158,6 +195,9 @@ if (!this.updateById(waitPakin1)) { throw new CoolException("缁勬嫋鏁伴噺淇敼澶辫触锛侊紒"); } + + //TODO 缁勬嫋瀹屾垚鍚庯紝鎵e噺鏀惰揣鍖哄簱瀛� + return pakin; } -- Gitblit v1.9.1