diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysScaleQuestionController.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysScaleQuestionController.java index 8b19b13..0a414dd 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysScaleQuestionController.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysScaleQuestionController.java @@ -57,6 +57,17 @@ public class SysScaleQuestionController extends BaseController { ExcelUtil.exportExcel(list, "量问题内容", SysScaleQuestionVo.class, response); } + /** + * 查询量表所有问题 + * + * @param bo + * @return + */ + @GetMapping("/findByScaleId") + public R> findByScaleId(SysScaleQuestionBo bo) { + return R.ok(sysScaleQuestionService.queryList(bo)); + } + /** * 获取量问题内容详细信息 * @@ -65,7 +76,7 @@ public class SysScaleQuestionController extends BaseController { @SaCheckPermission("scale:question:query") @GetMapping("/{questionId}") public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long questionId) { + @PathVariable Long questionId) { return R.ok(sysScaleQuestionService.queryById(questionId)); } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysScalePublishBo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysScalePublishBo.java index 06e392b..956eaa4 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysScalePublishBo.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysScalePublishBo.java @@ -1,7 +1,9 @@ package org.dromara.scale.domain.bo; import io.github.linpeilie.annotations.AutoMapper; +import io.github.linpeilie.annotations.AutoMapping; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.Data; import org.dromara.common.core.validate.AddGroup; @@ -9,6 +11,7 @@ import org.dromara.common.core.validate.EditGroup; import org.dromara.scale.domain.SysScalePublish; import java.util.Date; +import java.util.List; /** * 量发布业务对象 sys_scale_publish @@ -29,13 +32,14 @@ public class SysScalePublishBo { /** * 量表id,以逗号隔开 */ - @NotBlank(message = "量表id,以逗号隔开不能为空", groups = { AddGroup.class, EditGroup.class }) - private String scaleIds; + @NotEmpty(message = "量表id,以逗号隔开不能为空", groups = { AddGroup.class, EditGroup.class }) + @AutoMapping(target = "scaleIds", expression = "java(java.lang.String.join(\",\", source.getScaleIds()))") + private List scaleIds; /** * 量表名称 以逗号隔开 */ - @NotBlank(message = "量表名称 以逗号隔开不能为空", groups = { AddGroup.class, EditGroup.class }) +// @NotBlank(message = "量表名称 以逗号隔开不能为空", groups = { AddGroup.class, EditGroup.class }) private String scaleNames; /** @@ -53,7 +57,7 @@ public class SysScalePublishBo { /** * 应参评人数 */ - @NotNull(message = "应参评人数不能为空", groups = { AddGroup.class, EditGroup.class }) +// @NotNull(message = "应参评人数不能为空", groups = { AddGroup.class, EditGroup.class }) private Long partNum; /** diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScaleMapper.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScaleMapper.java index f1d1d33..ea68f6e 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScaleMapper.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScaleMapper.java @@ -5,6 +5,8 @@ import org.dromara.scale.domain.SysScale; import org.dromara.scale.domain.vo.SysScaleVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import java.util.List; + /** * 心理测评量Mapper接口 * @@ -14,4 +16,5 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; @Mapper public interface SysScaleMapper extends BaseMapperPlus { + List findSysScaleByIds(String scaleIds); } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScalePublishServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScalePublishServiceImpl.java index 77b777c..353c230 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScalePublishServiceImpl.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScalePublishServiceImpl.java @@ -1,5 +1,7 @@ package org.dromara.scale.service.impl; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -9,16 +11,20 @@ import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.scale.domain.SysScale; import org.dromara.scale.domain.SysScalePublish; import org.dromara.scale.domain.bo.SysScalePublishBo; import org.dromara.scale.domain.vo.SysScalePublishVo; +import org.dromara.scale.mapper.SysScaleMapper; import org.dromara.scale.mapper.SysScalePublishMapper; import org.dromara.scale.service.ISysScalePublishService; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; import static org.dromara.common.satoken.utils.LoginHelper.getLoginUser; @@ -33,6 +39,7 @@ import static org.dromara.common.satoken.utils.LoginHelper.getLoginUser; public class SysScalePublishServiceImpl implements ISysScalePublishService { private final SysScalePublishMapper baseMapper; + private final SysScaleMapper sysScaleMapper; /** * 查询量发布 @@ -64,7 +71,7 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService { private LambdaQueryWrapper buildQueryWrapper(SysScalePublishBo bo) { //Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(StringUtils.isNotBlank(bo.getScaleIds()), SysScalePublish::getScaleIds, bo.getScaleIds()); +// lqw.eq(StringUtils.isNotBlank(bo.getScaleIds()), SysScalePublish::getScaleIds, bo.getScaleIds()); lqw.eq(StringUtils.isNotBlank(bo.getScaleNames()), SysScalePublish::getScaleNames, bo.getScaleNames()); lqw.like(StringUtils.isNotBlank(bo.getSessionName()), SysScalePublish::getSessionName, bo.getSessionName()); lqw.eq(bo.getDeptId() != null, SysScalePublish::getDeptId, bo.getDeptId()); @@ -85,10 +92,25 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService { add.setCreateBy(loginUser.getUserId()); add.setCreateTime(new Date()); validEntityBeforeSave(add); + + if (CollUtil.isNotEmpty(bo.getScaleIds())) { + List list = sysScaleMapper.findSysScaleByIds(StrUtil.join(StrUtil.COMMA, bo.getScaleIds())); + add.setScaleNames(list.stream().map(SysScale::getScaleName).collect(Collectors.joining(StrUtil.COMMA))); + + List scaleList = new ArrayList<>(bo.getScaleIds().size()); + for (String scaleId : bo.getScaleIds()) { + SysScale sysScale = sysScaleMapper.selectById(scaleId); + sysScale.setPublishNums(sysScale.getPublishNums() + 1); + scaleList.add(sysScale); + } + sysScaleMapper.updateBatchById(scaleList, 100); + } + boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setBatchNo(add.getBatchNo()); } + return flag; } @@ -133,7 +155,7 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService { sysScalePublishVo = baseMapper.selectVoOne(lqw); } //如果没用户组或者有用户组的发布为空,则查针对全部的发布 - if(sysScalePublishVo == null){ + if (sysScalePublishVo == null) { LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.eq(SysScalePublish::getDeptId, null); lqw.eq(SysScalePublish::getStatus, 0); diff --git a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScaleMapper.xml b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScaleMapper.xml index 65a76a5..d6e47a4 100644 --- a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScaleMapper.xml +++ b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScaleMapper.xml @@ -4,4 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +