Merge branch 'dev' into dev.caojiawei

# Conflicts:
#	ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScaleMapper.java
#	ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScalePublishServiceImpl.java
#	ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScaleMapper.xml
This commit is contained in:
cjw 2024-04-11 14:27:47 +08:00
commit b21126950d
5 changed files with 50 additions and 17 deletions

View File

@ -57,6 +57,17 @@ public class SysScaleQuestionController extends BaseController {
ExcelUtil.exportExcel(list, "量问题内容", SysScaleQuestionVo.class, response);
}
/**
* 查询量表所有问题
*
* @param bo
* @return
*/
@GetMapping("/findByScaleId")
public R<List<SysScaleQuestionVo>> 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<SysScaleQuestionVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long questionId) {
@PathVariable Long questionId) {
return R.ok(sysScaleQuestionService.queryById(questionId));
}

View File

@ -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<String> 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;
/**

View File

@ -7,6 +7,8 @@ import org.dromara.scale.domain.vo.SysScaleVo;
import java.util.List;
import java.util.List;
/**
* 心理测评量Mapper接口
*
@ -16,6 +18,6 @@ import java.util.List;
@Mapper
public interface SysScaleMapper extends BaseMapperPlus<SysScale, SysScaleVo> {
List<SysScaleVo> selectPublishListByIds(List<Long> list);
List<SysScaleVo> findSysScaleByIds(String scaleIds);
}

View File

@ -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,6 +11,7 @@ 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.SysEvaluationRecordVo;
@ -21,9 +24,11 @@ import org.dromara.scale.service.ISysScalePublishService;
import org.springframework.stereotype.Service;
import java.util.Arrays;
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;
@ -38,6 +43,7 @@ import static org.dromara.common.satoken.utils.LoginHelper.getLoginUser;
public class SysScalePublishServiceImpl implements ISysScalePublishService {
private final SysScalePublishMapper baseMapper;
private final SysScaleMapper sysScaleMapper;
private final SysScaleMapper scaleMapper;
@ -73,7 +79,7 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
private LambdaQueryWrapper<SysScalePublish> buildQueryWrapper(SysScalePublishBo bo) {
//Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SysScalePublish> 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());
@ -94,10 +100,25 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
add.setCreateBy(loginUser.getUserId());
add.setCreateTime(new Date());
validEntityBeforeSave(add);
if (CollUtil.isNotEmpty(bo.getScaleIds())) {
List<SysScaleVo> list = sysScaleMapper.findSysScaleByIds(StrUtil.join(StrUtil.COMMA, bo.getScaleIds()));
add.setScaleNames(list.stream().map(SysScaleVo::getScaleName).collect(Collectors.joining(StrUtil.COMMA)));
List<SysScale> 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;
}
@ -150,9 +171,8 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
sysScalePublishVo = baseMapper.selectVoOne(lqw);
}
Long batchNo = sysScalePublishVo.getBatchNo();
List<Long> idList = Arrays.stream(sysScalePublishVo.getScaleIds().split(","))
.mapToLong(Long::valueOf).boxed().toList();
List<SysScaleVo> publishScaleVos = scaleMapper.selectPublishListByIds(idList);
String scaleIds = sysScalePublishVo.getScaleIds();
List<SysScaleVo> publishScaleVos = sysScaleMapper.findSysScaleByIds(StrUtil.join(StrUtil.COMMA, scaleIds));
List<SysEvaluationRecordVo> recordVos = recordMapper.selectSclaeRecordListByUserAndBatch(userId, batchNo);
for (SysEvaluationRecordVo recordVo : recordVos) {
publishScaleVos.stream().filter(p -> p.getScaleId().equals(recordVo.getScaleId()))

View File

@ -3,12 +3,8 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.scale.mapper.SysScaleMapper">
<select id="selectPublishListByIds" resultType="org.dromara.scale.domain.vo.SysScaleVo">
SELECT scale_id, scale_name, cover
FROM sys_scale
WHERE scale_id IN
<foreach item="scaleId" collection="list" open="(" separator="," close=")">
#{scaleId}
</foreach>
<select id="findSysScaleByIds" resultType="org.dromara.scale.domain.vo.SysScaleVo">
SELECT * FROM sys_scale t WHERE FIND_IN_SET(t.scale_id, #{scaleIds})
</select>
</mapper>