From 8eb93d5740c17f7b30888cc4dc1038f024ab3cb9 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期三, 11 六月 2025 09:22:04 +0800 Subject: [PATCH] DO单导入优化 出库单导入优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockItemServiceImpl.java | 38 ++++++++++++++++---------------------- 1 files changed, 16 insertions(+), 22 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockItemServiceImpl.java index f261049..686c267 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockItemServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockItemServiceImpl.java @@ -10,8 +10,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.framework.exception.CoolException; -import com.vincent.rsf.server.api.entity.enums.OrderType; -import com.vincent.rsf.server.api.entity.enums.OrderWorkType; +import com.vincent.rsf.server.manager.entity.excel.OutStockTemplate; +import com.vincent.rsf.server.manager.enums.AsnExceStatus; +import com.vincent.rsf.server.manager.enums.OrderType; +import com.vincent.rsf.server.manager.enums.OrderWorkType; import com.vincent.rsf.server.common.domain.BaseParam; import com.vincent.rsf.server.common.domain.PageParam; import com.vincent.rsf.server.common.utils.CommonUtil; @@ -98,19 +100,16 @@ @Override @Transactional(rollbackFor = Exception.class) public R excelImport(MultipartFile file, HashMap<String, Object> hashMap, Long loginUserId) throws Exception { - ExcelImportResult result = ExcelImportUtil.importExcelMore(file.getInputStream(), AsnOrderTemplate.class, ExcelUtil.getDefaultImportParams()); - if (result.getList().isEmpty()) { - throw new CoolException("鐗╂枡瀵煎叆澶辫触锛侊紒"); - } + ExcelImportResult result = ExcelImportUtil.importExcelMore(file.getInputStream(), OutStockTemplate.class, ExcelUtil.getDefaultImportParams()); if (result.getList().isEmpty()) { throw new CoolException("琛ㄦ牸鍐呭涓嶈兘涓虹┖锛侊紒"); } - List<AsnOrderTemplate> resultList = result.getList(); - Map<String, List<AsnOrderTemplate>> listMap = resultList.stream().collect(Collectors.groupingBy(AsnOrderTemplate::getCode)); + List<OutStockTemplate> resultList = result.getList(); + Map<String, List<OutStockTemplate>> listMap = resultList.stream().collect(Collectors.groupingBy(OutStockTemplate::getCode)); for (String key : listMap.keySet()) { - AsnOrderTemplate template = listMap.get(key).stream().findFirst().get(); + OutStockTemplate template = listMap.get(key).stream().findFirst().get(); AsnOrder asnOrder = outStockService.getOne(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getCode, template.getCode())); - if (Objects.isNull(asnOrder)) { + if (!Objects.isNull(asnOrder)) { continue; } AsnOrder order = new AsnOrder(); @@ -119,17 +118,16 @@ .setMemo(template.getMemo()) .setUpdateBy(loginUserId) .setCreateBy(loginUserId) - .setPoId(Long.parseLong(template.getPoId())) .setType(OrderType.getTypeVal(template.getType())) .setWkType(OrderWorkType.getWorkType(template.getWkType())); if (!outStockService.save(order)) { throw new CoolException("鍗曟嵁淇濆瓨澶辫触锛侊紒"); } List<AsnOrderItem> items = new ArrayList<>(); - for (AsnOrderTemplate orderTemplate : listMap.get(key)) { + for (OutStockTemplate orderTemplate : listMap.get(key)) { AsnOrderItem orderItem = new AsnOrderItem(); Matnr matnr = null; - if (!Objects.isNull(orderTemplate.getMatnrCode()) || StringUtils.isNotBlank(orderTemplate.getMatnrCode())) { + if (StringUtils.isNotBlank(orderTemplate.getMatnrCode())) { matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>() .eq(Matnr::getCode, orderTemplate.getMatnrCode())); } @@ -137,16 +135,11 @@ .setAsnCode(order.getCode()) .setSplrBatch(orderTemplate.getSplrBatch()) .setAnfme(Double.parseDouble(orderTemplate.getAnfme())) - .setQty(Double.parseDouble(orderTemplate.getQty())) .setSplrName(orderTemplate.getSplrName()) - .setBarcode(orderTemplate.getBarcode()) - .setTrackCode(orderTemplate.getTrackCode()) .setSplrCode(orderTemplate.getSplrCode()) .setPoCode(orderTemplate.getPoCode()) .setMaktx(orderTemplate.getMaktx()) - .setMatnrCode(orderTemplate.getMatnrCode()) - .setPurUnit(orderTemplate.getPurUnit()) - .setPurQty(Double.parseDouble(orderTemplate.getPurQty())); + .setMatnrCode(orderTemplate.getMatnrCode()); if (!Objects.isNull(matnr)) { orderItem.setMaktx(matnr.getName()).setMatnrCode(matnr.getCode()).setMatnrId(matnr.getId()); } @@ -156,9 +149,10 @@ } } if (!items.isEmpty()) { - double qty = items.stream().mapToDouble(AsnOrderItem::getQty).sum(); - double purQty = items.stream().mapToDouble(AsnOrderItem::getPurQty).sum(); - if (!outStockService.update(new LambdaUpdateWrapper<AsnOrder>().set(AsnOrder::getQty, qty).set(AsnOrder::getAnfme, purQty).eq(AsnOrder::getId, order.getId()))) { + double purQty = items.stream().mapToDouble(AsnOrderItem::getAnfme).sum(); + if (!outStockService.update(new LambdaUpdateWrapper<AsnOrder>() + .set(AsnOrder::getExceStatus, AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.val) + .set(AsnOrder::getAnfme, purQty).eq(AsnOrder::getId, order.getId()))) { throw new CoolException("鍗曟嵁鏁伴噺淇敼澶辫触锛侊紒"); } } -- Gitblit v1.9.1