From 7b7f4b902efb8ebd40bfd13f9a5bc7e488868df7 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Wed, 17 Jun 2026 10:11:10 +0800 Subject: [PATCH] =?UTF-8?q?feat(cost):=20=E6=B7=BB=E5=8A=A0=E7=94=9F?= =?UTF-8?q?=E4=BA=A7=E6=8C=87=E6=A0=87=E8=AE=A1=E7=AE=97=E7=BB=93=E6=9E=9C?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E4=BF=9D=E5=AD=98=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在CostProdMetricResultBo中新增resultIds和prodMetricResultList字段 - 添加/batch接口支持批量保存生产指标计算结果 - 实现batchSaveWithDelete方法支持先删除再插入操作 - 使用事务注解确保批量操作的数据一致性 - 集成CollUtil工具类处理集合操作 - 完善相关的Service接口定义 --- .../CostProdMetricResultController.java | 10 +++++++++ .../domain/bo/CostProdMetricResultBo.java | 10 +++++++++ .../service/ICostProdMetricResultService.java | 5 +++++ .../impl/CostProdMetricResultServiceImpl.java | 21 +++++++++++++++++++ 4 files changed, 46 insertions(+) diff --git a/klp-cost/src/main/java/com/klp/cost/controller/CostProdMetricResultController.java b/klp-cost/src/main/java/com/klp/cost/controller/CostProdMetricResultController.java index c414b5ad..92402991 100644 --- a/klp-cost/src/main/java/com/klp/cost/controller/CostProdMetricResultController.java +++ b/klp-cost/src/main/java/com/klp/cost/controller/CostProdMetricResultController.java @@ -75,6 +75,16 @@ public class CostProdMetricResultController extends BaseController { return toAjax(iCostProdMetricResultService.insertByBo(bo)); } + /** + * 批量保存生产指标计算结果(先删除再插入) + */ + @Log(title = "生产指标计算结果", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping("/batch") + public R batchSave(@RequestBody CostProdMetricResultBo bo) { + return toAjax(iCostProdMetricResultService.batchSaveWithDelete(bo)); + } + /** * 修改生产指标计算结果 */ diff --git a/klp-cost/src/main/java/com/klp/cost/domain/bo/CostProdMetricResultBo.java b/klp-cost/src/main/java/com/klp/cost/domain/bo/CostProdMetricResultBo.java index c808c5ae..c839cfc8 100644 --- a/klp-cost/src/main/java/com/klp/cost/domain/bo/CostProdMetricResultBo.java +++ b/klp-cost/src/main/java/com/klp/cost/domain/bo/CostProdMetricResultBo.java @@ -7,6 +7,7 @@ import javax.validation.constraints.*; import java.math.BigDecimal; import java.util.Date; +import java.util.List; import com.fasterxml.jackson.annotation.JsonFormat; /** @@ -55,5 +56,14 @@ public class CostProdMetricResultBo extends BaseEntity { */ private String tags; + /** + * 要删除的主键ID集合 + */ + private List resultIds; + + /** + * 要批量插入的数据集合 + */ + private List prodMetricResultList; } diff --git a/klp-cost/src/main/java/com/klp/cost/service/ICostProdMetricResultService.java b/klp-cost/src/main/java/com/klp/cost/service/ICostProdMetricResultService.java index 488f9565..3cc6ee88 100644 --- a/klp-cost/src/main/java/com/klp/cost/service/ICostProdMetricResultService.java +++ b/klp-cost/src/main/java/com/klp/cost/service/ICostProdMetricResultService.java @@ -46,4 +46,9 @@ public interface ICostProdMetricResultService { * 校验并批量删除生产指标计算结果信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 批量保存生产指标计算结果(先删除再插入) + */ + Boolean batchSaveWithDelete(CostProdMetricResultBo bo); } diff --git a/klp-cost/src/main/java/com/klp/cost/service/impl/CostProdMetricResultServiceImpl.java b/klp-cost/src/main/java/com/klp/cost/service/impl/CostProdMetricResultServiceImpl.java index b02e7a2b..eab4a3c6 100644 --- a/klp-cost/src/main/java/com/klp/cost/service/impl/CostProdMetricResultServiceImpl.java +++ b/klp-cost/src/main/java/com/klp/cost/service/impl/CostProdMetricResultServiceImpl.java @@ -1,6 +1,7 @@ package com.klp.cost.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -9,6 +10,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.klp.common.utils.StringUtils; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import com.klp.cost.domain.bo.CostProdMetricResultBo; import com.klp.cost.domain.vo.CostProdMetricResultVo; import com.klp.cost.domain.CostProdMetricResult; @@ -18,6 +20,7 @@ import com.klp.cost.service.ICostProdMetricResultService; import java.util.List; import java.util.Map; import java.util.Collection; +import java.util.stream.Collectors; /** * 生产指标计算结果Service业务层处理 @@ -111,4 +114,22 @@ public class CostProdMetricResultServiceImpl implements ICostProdMetricResultSer } return baseMapper.deleteBatchIds(ids) > 0; } + + /** + * 批量保存(先删除再插入) + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean batchSaveWithDelete(CostProdMetricResultBo bo) { + if (CollUtil.isNotEmpty(bo.getProdMetricResultList())) { + if (CollUtil.isNotEmpty(bo.getResultIds())) { + baseMapper.deleteBatchIds(bo.getResultIds()); + } + List list = bo.getProdMetricResultList().stream() + .map(item -> BeanUtil.toBean(item, CostProdMetricResult.class)) + .collect(Collectors.toList()); + return baseMapper.insertBatch(list); + } + return false; + } }