From 49d61c3bc3b18037b33fa23309e7b22ffac5226e Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Thu, 23 Oct 2025 16:40:04 +0800 Subject: [PATCH] =?UTF-8?q?feat(oa):=20=E5=AE=9E=E7=8E=B0=E5=A5=96?= =?UTF-8?q?=E9=87=91=E6=B1=A0=E4=B8=8E=E9=A1=B9=E7=9B=AE=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E5=85=B3=E8=81=94=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增奖金池与项目关联的批量插入接口 - 调整奖金池BO类,增加项目ID集合字段 - 移除旧的奖金池项目关联批量插入逻辑 - 优化项目进度步骤查询排序逻辑 - 在代码生成器中默认添加创建时间降序排序 - 增加排序字段sortNum以支持自定义排序 --- .../resources/vm/java/serviceImpl.java.vm | 1 + .../oa/controller/OaBonusPoolController.java | 9 ++++ .../OaBonusProjectRelController.java | 8 +--- .../oa/domain/OaScheduleTemplateStep.java | 3 ++ .../com/ruoyi/oa/domain/bo/OaBonusPoolBo.java | 6 +++ .../oa/domain/bo/OaBonusProjectRelBo.java | 2 +- .../oa/domain/bo/OaProjectScheduleStepBo.java | 4 ++ .../oa/domain/vo/OaProjectScheduleStepVo.java | 3 ++ .../ruoyi/oa/service/IOaBonusPoolService.java | 3 ++ .../oa/service/IOaBonusProjectRelService.java | 1 - .../service/impl/OaBonusPoolServiceImpl.java | 41 +++++++++++++++++++ .../impl/OaBonusProjectRelServiceImpl.java | 21 ---------- .../OaProjectScheduleStepServiceImpl.java | 2 + 13 files changed, 74 insertions(+), 30 deletions(-) diff --git a/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm b/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm index 7767382..d42d568 100644 --- a/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm @@ -86,6 +86,7 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service { #end #end #end + lqw.orderByDesc(${ClassName}::getCreateTime); return lqw; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaBonusPoolController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaBonusPoolController.java index 1454b1f..87df32c 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaBonusPoolController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaBonusPoolController.java @@ -4,6 +4,7 @@ import java.util.List; import java.util.Arrays; import java.util.concurrent.TimeUnit; +import com.ruoyi.oa.domain.bo.OaBonusProjectRelBo; import lombok.RequiredArgsConstructor; import javax.servlet.http.HttpServletResponse; import javax.validation.constraints.*; @@ -99,5 +100,13 @@ public class OaBonusPoolController extends BaseController { return toAjax(iOaBonusPoolService.deleteWithValidByIds(Arrays.asList(poolIds), true)); } + //使用这个方法批量绑定奖金池id和项目id + @Log(title = "奖金池与项目关联", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping("/batchAdd") + public R batchAdd(@Validated(AddGroup.class) @RequestBody OaBonusPoolBo bo) { + return toAjax(iOaBonusPoolService.batchAdd(bo)); + } + } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaBonusProjectRelController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaBonusProjectRelController.java index bc70df7..85d8560 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaBonusProjectRelController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaBonusProjectRelController.java @@ -99,11 +99,5 @@ public class OaBonusProjectRelController extends BaseController { return toAjax(iOaBonusProjectRelService.deleteWithValidByIds(Arrays.asList(relIds), true)); } - //使用这个方法批量绑定奖金池id和项目id - @Log(title = "奖金池与项目关联", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping("/batchAdd") - public R batchAdd(@Validated(AddGroup.class) @RequestBody OaBonusProjectRelBo bo) { - return toAjax(iOaBonusProjectRelService.batchAdd(bo)); - } + } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaScheduleTemplateStep.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaScheduleTemplateStep.java index 70014b6..5c994f1 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaScheduleTemplateStep.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaScheduleTemplateStep.java @@ -57,4 +57,7 @@ public class OaScheduleTemplateStep extends BaseEntity { */ private String description; + //排序字段 + private Integer sortNum; + } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaBonusPoolBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaBonusPoolBo.java index 7cb1b58..0f8f5db 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaBonusPoolBo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaBonusPoolBo.java @@ -10,6 +10,8 @@ import java.util.Date; import java.math.BigDecimal; import java.util.Date; +import java.util.List; + import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseEntity; @@ -60,4 +62,8 @@ public class OaBonusPoolBo extends BaseEntity { private String remark; + private List projectIds; + + + } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaBonusProjectRelBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaBonusProjectRelBo.java index 78add0b..bf047f3 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaBonusProjectRelBo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaBonusProjectRelBo.java @@ -49,7 +49,7 @@ public class OaBonusProjectRelBo extends BaseEntity { */ private String remark; - private List projectIds; + } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaProjectScheduleStepBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaProjectScheduleStepBo.java index 4cb09de..a505c99 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaProjectScheduleStepBo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaProjectScheduleStepBo.java @@ -151,4 +151,8 @@ public class OaProjectScheduleStepBo extends BaseEntity { */ private String specification; + + //排序字段 + private Integer sortNum; + } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaProjectScheduleStepVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaProjectScheduleStepVo.java index b514bd1..03cc30b 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaProjectScheduleStepVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaProjectScheduleStepVo.java @@ -162,4 +162,7 @@ public class OaProjectScheduleStepVo extends BaseEntity { private String specification; + //排序字段 + private Integer sortNum; + } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaBonusPoolService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaBonusPoolService.java index e2dccb2..e7986a5 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaBonusPoolService.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaBonusPoolService.java @@ -5,6 +5,7 @@ import com.ruoyi.oa.domain.vo.OaBonusPoolVo; import com.ruoyi.oa.domain.bo.OaBonusPoolBo; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.domain.PageQuery; +import liquibase.pro.packaged.B; import java.util.Collection; import java.util.List; @@ -46,4 +47,6 @@ public interface IOaBonusPoolService { * 校验并批量删除奖金池信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + Boolean batchAdd(OaBonusPoolBo bo); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaBonusProjectRelService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaBonusProjectRelService.java index f4a5d2a..31e192b 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaBonusProjectRelService.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaBonusProjectRelService.java @@ -47,5 +47,4 @@ public interface IOaBonusProjectRelService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - boolean batchAdd(OaBonusProjectRelBo bo); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaBonusPoolServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaBonusPoolServiceImpl.java index 65011a0..54b270e 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaBonusPoolServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaBonusPoolServiceImpl.java @@ -1,19 +1,25 @@ package com.ruoyi.oa.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.domain.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.oa.domain.OaBonusProjectRel; +import com.ruoyi.oa.domain.bo.OaBonusProjectRelBo; +import com.ruoyi.oa.mapper.OaBonusProjectRelMapper; import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.oa.domain.bo.OaBonusPoolBo; import com.ruoyi.oa.domain.vo.OaBonusPoolVo; import com.ruoyi.oa.domain.OaBonusPool; import com.ruoyi.oa.mapper.OaBonusPoolMapper; import com.ruoyi.oa.service.IOaBonusPoolService; +import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map; @@ -31,6 +37,9 @@ public class OaBonusPoolServiceImpl implements IOaBonusPoolService { private final OaBonusPoolMapper baseMapper; + @Autowired + private OaBonusProjectRelMapper bonusProjectRelMapper; + /** * 查询奖金池 */ @@ -110,4 +119,36 @@ public class OaBonusPoolServiceImpl implements IOaBonusPoolService { } return baseMapper.deleteBatchIds(ids) > 0; } + + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean batchAdd(OaBonusPoolBo bo) { + // 先插入主表信息 + OaBonusPool pool = BeanUtil.toBean(bo, OaBonusPool.class); + validEntityBeforeSave(pool); + boolean flag = baseMapper.insert(pool) > 0; + if (!flag) { + return false; + } + + // 获取插入后的主键 + Long poolId = pool.getPoolId(); + //批量插入奖金池id和项目id属于一对多的关系 + if (CollUtil.isEmpty(bo.getProjectIds())) { + return false; + } + + boolean success = true; + for (Long projectId : bo.getProjectIds()) { + OaBonusProjectRel rel = new OaBonusProjectRel(); + rel.setPoolId(bo.getPoolId()); + rel.setProjectId(projectId); + int result = bonusProjectRelMapper.insert(rel); + if (result <= 0) { + success = false; + break; + } + } + return success; + } } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaBonusProjectRelServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaBonusProjectRelServiceImpl.java index ad4d83b..692e7d9 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaBonusProjectRelServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaBonusProjectRelServiceImpl.java @@ -111,26 +111,5 @@ public class OaBonusProjectRelServiceImpl implements IOaBonusProjectRelService { return baseMapper.deleteBatchIds(ids) > 0; } - @Override - @Transactional(rollbackFor = Exception.class) - public boolean batchAdd(OaBonusProjectRelBo bo) { - //批量插入奖金池id和项目id属于一对多的关系 - if (CollUtil.isEmpty(bo.getProjectIds())) { - return false; - } - boolean success = true; - for (Long projectId : bo.getProjectIds()) { - OaBonusProjectRel rel = new OaBonusProjectRel(); - rel.setPoolId(bo.getPoolId()); - rel.setProjectId(projectId); - rel.setAllocatedAmount(bo.getAllocatedAmount()); - int result = baseMapper.insert(rel); - if (result <= 0) { - success = false; - break; - } - } - return success; - } } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectScheduleStepServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectScheduleStepServiceImpl.java index cad3be8..4b4851d 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectScheduleStepServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectScheduleStepServiceImpl.java @@ -100,6 +100,8 @@ public class OaProjectScheduleStepServiceImpl implements IOaProjectScheduleStepS lqw.eq(bo.getStepOrder() != null, "opss.step_order", bo.getStepOrder()); lqw.like(StringUtils.isNotBlank(bo.getStepName()), "opss.step_name", bo.getStepName()); lqw.eq(bo.getStatus() != null, "opss.status", bo.getStatus()); + //排序字段sort_num根据这个降序排序 + lqw.orderByDesc("opss.sort_num"); return lqw; }