From df64c34d92cbe8501bbbfe837bc491a47452c0b6 Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期一, 09 六月 2025 10:58:19 +0800 Subject: [PATCH] feat(eims): 新增保养工单批量修改功能并优化相关领域对象 --- eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsSpareInoutServiceImpl.java | 81 +++++++++++++++++++++------------------- 1 files changed, 42 insertions(+), 39 deletions(-) diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsSpareInoutServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsSpareInoutServiceImpl.java index 334eb44..28f0446 100644 --- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsSpareInoutServiceImpl.java +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsSpareInoutServiceImpl.java @@ -136,58 +136,61 @@ if (flag) { bo.setId(add.getId()); } - //鍏ュ簱锛嬪簱瀛� 鍑哄簱-搴撳瓨 锛堥粯璁ゅ叆搴擄級 - int OperationType; - - //鍑哄簱 - if(bo.getType().equals(DictConstants.SPARE_INOUT_TYPE_DETAIL.CK)){ - OperationType = -1; - } else { - OperationType = 1; - } + // 鍏ュ簱锛嬪簱瀛� 鍑哄簱-搴撳瓨 锛堥粯璁ゅ叆搴擄級 + int OperationType = bo.getType().equals(DictConstants.SPARE_INOUT_TYPE_DETAIL.CK) ? -1 : 1; List<EimsSpareBo> spareList = Optional.ofNullable(bo.getSpareList()).orElse(new ArrayList<>()); - // 鎻掑叆鍑哄簱鏄庣粏 - List<EimsSpareInoutdt> dtList = spareList.stream() - .map(eimsSpareBo -> { - EimsSpareInoutdt dt = new EimsSpareInoutdt(); - dt.setInoutId(add.getId()); - dt.setSpareId(eimsSpareBo.getId()); - dt.setBeforeStock(eimsSpareBo.getActualStock()); - // 娉ㄦ剰鍏ュ簱鍑哄簱 - dt.setActualStock(eimsSpareBo.getActualStock() + (eimsSpareBo.getQuantity() * OperationType)); - dt.setQuantity(eimsSpareBo.getQuantity()); - // 璁剧疆鍗曚环鍜岄噾棰� - Optional.ofNullable(eimsSpareBo.getReferPrice()).ifPresent(referPrice -> { - dt.setUnitPrice(referPrice); - dt.setAmount(referPrice.multiply(BigDecimal.valueOf(eimsSpareBo.getQuantity()))); - }); + // 鍚堝苟涓ゆ寰幆涓轰竴娆″惊鐜� + List<EimsSpareInoutdt> dtList = new ArrayList<>(); + List<EimsSpare> updateSpareList = new ArrayList<>(); - return dt; - }) - .toList(); + for (EimsSpareBo eimsSpareBo : spareList) { + EimsSpare spare = spareMapper.selectById(eimsSpareBo.getId()); + if (spare == null) { + spare = new EimsSpare(); + spare.setName(eimsSpareBo.getName()); + spare.setCode(eimsSpareBo.getCode()); + spare.setActualStock(100L); + spareMapper.insert(spare); + eimsSpareBo.setId(spare.getId()); + } + + // 鎻掑叆鍑哄簱鏄庣粏 + EimsSpareInoutdt dt = new EimsSpareInoutdt(); + dt.setInoutId(add.getId()); + dt.setSpareId(spare.getId()); + dt.setBeforeStock(spare.getActualStock()); + dt.setActualStock(spare.getActualStock() + (eimsSpareBo.getQuantity() * OperationType)); + dt.setQuantity(eimsSpareBo.getQuantity()); + + // 璁剧疆鍗曚环鍜岄噾棰� + Optional.ofNullable(spare.getReferPrice()).ifPresent(referPrice -> { + dt.setUnitPrice(referPrice); + dt.setAmount(referPrice.multiply(BigDecimal.valueOf(eimsSpareBo.getQuantity()))); + }); + dtList.add(dt); + + // 鏇存柊澶囦欢搴撳瓨 + EimsSpare updatedSpare = new EimsSpare(); + updatedSpare.setId(spare.getId()); + updatedSpare.setActualStock(spare.getActualStock() + (eimsSpareBo.getQuantity() * OperationType)); + Optional.ofNullable(spare.getReferPrice()).ifPresent(referPrice -> { + updatedSpare.setStockAmount(referPrice.multiply(BigDecimal.valueOf(updatedSpare.getActualStock()))); + }); + updateSpareList.add(updatedSpare); + } // 鎵归噺鎻掑叆鏁版嵁 if (!dtList.isEmpty()) { inoutdtMapper.insertBatch(dtList); } - // 鏇存柊澶囦欢鐨勫簱瀛� - List<EimsSpare> updateSpareList = spareList.stream().map(spareBo -> { - EimsSpare spare = new EimsSpare(); - spare.setId(spareBo.getId()); - spare.setActualStock(spareBo.getActualStock() + (spareBo.getQuantity() * OperationType)); - // 璁剧疆鍗曚环鍜岄噾棰� - Optional.ofNullable(spareBo.getReferPrice()).ifPresent(referPrice -> { - spare.setStockAmount(referPrice.multiply(BigDecimal.valueOf(spare.getActualStock()))); - }); - return spare; - }).toList(); - + // 鎵归噺鏇存柊澶囦欢搴撳瓨 if (!updateSpareList.isEmpty()) { spareMapper.updateBatchById(updateSpareList); } + return flag; } -- Gitblit v1.9.3