提交量表列表和发布记录

This commit is contained in:
jiangzhe 2024-04-09 17:29:39 +08:00
parent 44be8d8a2f
commit 0ee1a04713
5 changed files with 50 additions and 7 deletions

View File

@ -57,6 +57,17 @@ public class SysScaleQuestionController extends BaseController {
ExcelUtil.exportExcel(list, "量问题内容", SysScaleQuestionVo.class, response); 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") @SaCheckPermission("scale:question:query")
@GetMapping("/{questionId}") @GetMapping("/{questionId}")
public R<SysScaleQuestionVo> getInfo(@NotNull(message = "主键不能为空") public R<SysScaleQuestionVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long questionId) { @PathVariable Long questionId) {
return R.ok(sysScaleQuestionService.queryById(questionId)); return R.ok(sysScaleQuestionService.queryById(questionId));
} }

View File

@ -1,7 +1,9 @@
package org.dromara.scale.domain.bo; package org.dromara.scale.domain.bo;
import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapper;
import io.github.linpeilie.annotations.AutoMapping;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
import org.dromara.common.core.validate.AddGroup; 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 org.dromara.scale.domain.SysScalePublish;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* 量发布业务对象 sys_scale_publish * 量发布业务对象 sys_scale_publish
@ -29,13 +32,14 @@ public class SysScalePublishBo {
/** /**
* 量表id以逗号隔开 * 量表id以逗号隔开
*/ */
@NotBlank(message = "量表id以逗号隔开不能为空", groups = { AddGroup.class, EditGroup.class }) @NotEmpty(message = "量表id以逗号隔开不能为空", groups = { AddGroup.class, EditGroup.class })
private String scaleIds; @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; 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; private Long partNum;
/** /**

View File

@ -5,6 +5,8 @@ import org.dromara.scale.domain.SysScale;
import org.dromara.scale.domain.vo.SysScaleVo; import org.dromara.scale.domain.vo.SysScaleVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import java.util.List;
/** /**
* 心理测评量Mapper接口 * 心理测评量Mapper接口
* *
@ -14,4 +16,5 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
@Mapper @Mapper
public interface SysScaleMapper extends BaseMapperPlus<SysScale, SysScaleVo> { public interface SysScaleMapper extends BaseMapperPlus<SysScale, SysScaleVo> {
List<SysScale> findSysScaleByIds(String scaleIds);
} }

View File

@ -1,5 +1,7 @@
package org.dromara.scale.service.impl; 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.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; 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.SysScalePublish;
import org.dromara.scale.domain.bo.SysScalePublishBo; import org.dromara.scale.domain.bo.SysScalePublishBo;
import org.dromara.scale.domain.vo.SysScalePublishVo; import org.dromara.scale.domain.vo.SysScalePublishVo;
import org.dromara.scale.mapper.SysScaleMapper;
import org.dromara.scale.mapper.SysScalePublishMapper; import org.dromara.scale.mapper.SysScalePublishMapper;
import org.dromara.scale.service.ISysScalePublishService; import org.dromara.scale.service.ISysScalePublishService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
import static org.dromara.common.satoken.utils.LoginHelper.getLoginUser; 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 { public class SysScalePublishServiceImpl implements ISysScalePublishService {
private final SysScalePublishMapper baseMapper; private final SysScalePublishMapper baseMapper;
private final SysScaleMapper sysScaleMapper;
/** /**
* 查询量发布 * 查询量发布
@ -64,7 +71,7 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
private LambdaQueryWrapper<SysScalePublish> buildQueryWrapper(SysScalePublishBo bo) { private LambdaQueryWrapper<SysScalePublish> buildQueryWrapper(SysScalePublishBo bo) {
//Map<String, Object> params = bo.getParams(); //Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SysScalePublish> lqw = Wrappers.lambdaQuery(); 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.eq(StringUtils.isNotBlank(bo.getScaleNames()), SysScalePublish::getScaleNames, bo.getScaleNames());
lqw.like(StringUtils.isNotBlank(bo.getSessionName()), SysScalePublish::getSessionName, bo.getSessionName()); lqw.like(StringUtils.isNotBlank(bo.getSessionName()), SysScalePublish::getSessionName, bo.getSessionName());
lqw.eq(bo.getDeptId() != null, SysScalePublish::getDeptId, bo.getDeptId()); lqw.eq(bo.getDeptId() != null, SysScalePublish::getDeptId, bo.getDeptId());
@ -85,10 +92,25 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
add.setCreateBy(loginUser.getUserId()); add.setCreateBy(loginUser.getUserId());
add.setCreateTime(new Date()); add.setCreateTime(new Date());
validEntityBeforeSave(add); validEntityBeforeSave(add);
if (CollUtil.isNotEmpty(bo.getScaleIds())) {
List<SysScale> list = sysScaleMapper.findSysScaleByIds(StrUtil.join(StrUtil.COMMA, bo.getScaleIds()));
add.setScaleNames(list.stream().map(SysScale::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; boolean flag = baseMapper.insert(add) > 0;
if (flag) { if (flag) {
bo.setBatchNo(add.getBatchNo()); bo.setBatchNo(add.getBatchNo());
} }
return flag; return flag;
} }
@ -133,7 +155,7 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
sysScalePublishVo = baseMapper.selectVoOne(lqw); sysScalePublishVo = baseMapper.selectVoOne(lqw);
} }
//如果没用户组或者有用户组的发布为空则查针对全部的发布 //如果没用户组或者有用户组的发布为空则查针对全部的发布
if(sysScalePublishVo == null){ if (sysScalePublishVo == null) {
LambdaQueryWrapper<SysScalePublish> lqw = Wrappers.lambdaQuery(); LambdaQueryWrapper<SysScalePublish> lqw = Wrappers.lambdaQuery();
lqw.eq(SysScalePublish::getDeptId, null); lqw.eq(SysScalePublish::getDeptId, null);
lqw.eq(SysScalePublish::getStatus, 0); lqw.eq(SysScalePublish::getStatus, 0);

View File

@ -4,4 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.scale.mapper.SysScaleMapper"> <mapper namespace="org.dromara.scale.mapper.SysScaleMapper">
<select id="findSysScaleByIds" resultType="org.dromara.scale.domain.SysScale">
SELECT * FROM sys_scale t WHERE FIND_IN_SET(t.scale_id, #{scaleIds})
</select>
</mapper> </mapper>