提交量表列表和发布记录
This commit is contained in:
parent
44be8d8a2f
commit
0ee1a04713
|
@ -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));
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
@ -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<SysScale, SysScaleVo> {
|
||||
|
||||
List<SysScale> findSysScaleByIds(String scaleIds);
|
||||
}
|
||||
|
|
|
@ -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<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());
|
||||
|
@ -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<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;
|
||||
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<SysScalePublish> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(SysScalePublish::getDeptId, null);
|
||||
lqw.eq(SysScalePublish::getStatus, 0);
|
||||
|
|
|
@ -4,4 +4,7 @@ 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="findSysScaleByIds" resultType="org.dromara.scale.domain.SysScale">
|
||||
SELECT * FROM sys_scale t WHERE FIND_IN_SET(t.scale_id, #{scaleIds})
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
Loading…
Reference in New Issue