量测管理活动统计
This commit is contained in:
parent
76eb40355d
commit
229a22efaf
|
@ -65,4 +65,6 @@ public class SysEvaluationRecordController extends BaseController {
|
||||||
return R.ok(sysEvaluationRecordService.queryById(recordId));
|
return R.ok(sysEvaluationRecordService.queryById(recordId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@ 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.common.web.core.BaseController;
|
import org.dromara.common.web.core.BaseController;
|
||||||
import org.dromara.scale.domain.bo.SysScalePublishBo;
|
import org.dromara.scale.domain.bo.SysScalePublishBo;
|
||||||
|
import org.dromara.scale.domain.vo.StatisticVo;
|
||||||
import org.dromara.scale.domain.vo.SysScalePublishVo;
|
import org.dromara.scale.domain.vo.SysScalePublishVo;
|
||||||
import org.dromara.scale.service.ISysScalePublishService;
|
import org.dromara.scale.service.ISysScalePublishService;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
@ -53,7 +54,7 @@ public class SysScalePublishController extends BaseController {
|
||||||
@SaCheckPermission("scale:publish:query")
|
@SaCheckPermission("scale:publish:query")
|
||||||
@GetMapping("/{batchNo}")
|
@GetMapping("/{batchNo}")
|
||||||
public R<SysScalePublishVo> getInfo(@NotNull(message = "主键不能为空")
|
public R<SysScalePublishVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
@PathVariable Long batchNo) {
|
@PathVariable Long batchNo) {
|
||||||
return R.ok(sysScalePublishService.queryById(batchNo));
|
return R.ok(sysScalePublishService.queryById(batchNo));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,8 +88,25 @@ public class SysScalePublishController extends BaseController {
|
||||||
@SaCheckPermission("scale:publish:remove")
|
@SaCheckPermission("scale:publish:remove")
|
||||||
@Log(title = "量发布", businessType = BusinessType.DELETE)
|
@Log(title = "量发布", businessType = BusinessType.DELETE)
|
||||||
@DeleteMapping("/{batchNo}")
|
@DeleteMapping("/{batchNo}")
|
||||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long batchNos) {
|
||||||
@PathVariable Long batchNos) {
|
|
||||||
return toAjax(sysScalePublishService.deleteWithValidByIds(List.of(batchNos), true));
|
return toAjax(sysScalePublishService.deleteWithValidByIds(List.of(batchNos), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取量测记录统计
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("evaluation:record:query")
|
||||||
|
@GetMapping("/statistic/all")
|
||||||
|
public R<StatisticVo> getStatistic(Long batchNo, Long scale) {
|
||||||
|
return R.ok(sysScalePublishService.getStatistic4All(batchNo, scale));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取量测记录统计
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("evaluation:record:query")
|
||||||
|
@GetMapping("/statistic/class")
|
||||||
|
public R<List<StatisticVo>> getStatistic4Class(Long batchNo, Long scale) {
|
||||||
|
return R.ok(sysScalePublishService.getStatistic4Class(batchNo, scale));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
package org.dromara.scale.domain.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>统计实体<p>
|
||||||
|
*
|
||||||
|
* @author cjw
|
||||||
|
* @version V1.0.0
|
||||||
|
* @date 2024/4/17 15:21
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class StatisticVo {
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
private int value;
|
||||||
|
|
||||||
|
private int spareValue;
|
||||||
|
|
||||||
|
}
|
|
@ -1,9 +1,13 @@
|
||||||
package org.dromara.scale.mapper;
|
package org.dromara.scale.mapper;
|
||||||
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.dromara.scale.domain.SysScalePublish;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.dromara.scale.domain.vo.SysScalePublishVo;
|
|
||||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
|
import org.dromara.scale.domain.SysScalePublish;
|
||||||
|
import org.dromara.scale.domain.vo.StatisticVo;
|
||||||
|
import org.dromara.scale.domain.vo.SysScalePublishVo;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 量发布Mapper接口
|
* 量发布Mapper接口
|
||||||
|
@ -14,4 +18,12 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface SysScalePublishMapper extends BaseMapperPlus<SysScalePublish, SysScalePublishVo> {
|
public interface SysScalePublishMapper extends BaseMapperPlus<SysScalePublish, SysScalePublishVo> {
|
||||||
|
|
||||||
|
StatisticVo selectSingleAllAvaluation(Long batchNo);
|
||||||
|
|
||||||
|
StatisticVo selectSingleAlreadyAvaluation(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId);
|
||||||
|
|
||||||
|
|
||||||
|
List<StatisticVo> selectAllAvaluation(Long batchNo);
|
||||||
|
|
||||||
|
List<StatisticVo> selectAlreadyAvaluation(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,4 +32,6 @@ public interface ISysEvaluationRecordService {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ package org.dromara.scale.service;
|
||||||
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.bo.SysScalePublishBo;
|
import org.dromara.scale.domain.bo.SysScalePublishBo;
|
||||||
|
import org.dromara.scale.domain.vo.StatisticVo;
|
||||||
import org.dromara.scale.domain.vo.SysScalePublishVo;
|
import org.dromara.scale.domain.vo.SysScalePublishVo;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
@ -46,5 +47,7 @@ public interface ISysScalePublishService {
|
||||||
*/
|
*/
|
||||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||||
|
|
||||||
|
StatisticVo getStatistic4All(Long batchNo,Long scale);
|
||||||
|
|
||||||
|
List<StatisticVo> getStatistic4Class(Long batchNo,Long scale);
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,4 +63,5 @@ public class SysEvaluationRecordServiceImpl implements ISysEvaluationRecordServi
|
||||||
return lqw;
|
return lqw;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package org.dromara.scale.service.impl;
|
package org.dromara.scale.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.ArrayUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
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;
|
||||||
|
@ -193,7 +193,7 @@ public class SysScaleFactorServiceImpl implements ISysScaleFactorService {
|
||||||
new LambdaQueryWrapper<SysScaleFactor>().eq(SysScaleFactor::getScaleId, scaleId));
|
new LambdaQueryWrapper<SysScaleFactor>().eq(SysScaleFactor::getScaleId, scaleId));
|
||||||
List<SysScaleFactorRangeVo> scaleFactorRangeVos = scaleFactorRangeMapper.selectVoList(
|
List<SysScaleFactorRangeVo> scaleFactorRangeVos = scaleFactorRangeMapper.selectVoList(
|
||||||
new LambdaQueryWrapper<SysScaleFactorRange>().eq(SysScaleFactorRange::getScaleId, scaleId));
|
new LambdaQueryWrapper<SysScaleFactorRange>().eq(SysScaleFactorRange::getScaleId, scaleId));
|
||||||
if (!ArrayUtil.isEmpty(scaleFactorVos) && !ArrayUtil.isEmpty(scaleFactorRangeVos)) {
|
if (!ObjectUtil.isEmpty(scaleFactorVos) && !ObjectUtil.isEmpty(scaleFactorRangeVos)) {
|
||||||
Map<Long, List<SysScaleFactorRangeVo>> map = scaleFactorRangeVos.stream()
|
Map<Long, List<SysScaleFactorRangeVo>> map = scaleFactorRangeVos.stream()
|
||||||
.collect(Collectors.groupingBy(SysScaleFactorRangeVo::getFactorId));
|
.collect(Collectors.groupingBy(SysScaleFactorRangeVo::getFactorId));
|
||||||
scaleFactorVos.forEach(item -> item.setFactorRangeList(map.get(item.getFactorId())));
|
scaleFactorVos.forEach(item -> item.setFactorRangeList(map.get(item.getFactorId())));
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package org.dromara.scale.service.impl;
|
package org.dromara.scale.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.ArrayUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
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;
|
||||||
|
@ -18,6 +18,7 @@ import org.dromara.common.redis.utils.QueueUtils;
|
||||||
import org.dromara.scale.constant.StatusEnum;
|
import org.dromara.scale.constant.StatusEnum;
|
||||||
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.StatisticVo;
|
||||||
import org.dromara.scale.domain.vo.SysScalePublishVo;
|
import org.dromara.scale.domain.vo.SysScalePublishVo;
|
||||||
import org.dromara.scale.domain.vo.SysScaleVo;
|
import org.dromara.scale.domain.vo.SysScaleVo;
|
||||||
import org.dromara.scale.mapper.SysScaleMapper;
|
import org.dromara.scale.mapper.SysScaleMapper;
|
||||||
|
@ -28,6 +29,7 @@ import org.springframework.stereotype.Service;
|
||||||
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.Map;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@ -101,7 +103,7 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
||||||
//将时间校验移出来,方便后面使用
|
//将时间校验移出来,方便后面使用
|
||||||
Date expireTime = add.getExpireTime();
|
Date expireTime = add.getExpireTime();
|
||||||
long l = DateUtils.differentMillisecond(new Date(), expireTime);
|
long l = DateUtils.differentMillisecond(new Date(), expireTime);
|
||||||
if(l<=1000 * 3600 * 12){
|
if (l <= 1000 * 3600 * 12) {
|
||||||
throw new ServiceException("截止日期必须在六小时后");
|
throw new ServiceException("截止日期必须在六小时后");
|
||||||
}
|
}
|
||||||
if (CollUtil.isNotEmpty(bo.getScaleIds())) {
|
if (CollUtil.isNotEmpty(bo.getScaleIds())) {
|
||||||
|
@ -145,7 +147,7 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
||||||
List<SysScalePublishVo> sysScalePublishVos = baseMapper.selectVoList(new LambdaQueryWrapper<SysScalePublish>()
|
List<SysScalePublishVo> sysScalePublishVos = baseMapper.selectVoList(new LambdaQueryWrapper<SysScalePublish>()
|
||||||
.eq(SysScalePublish::getDeptId, deptId)
|
.eq(SysScalePublish::getDeptId, deptId)
|
||||||
.eq(SysScalePublish::getStatus, StatusEnum.IN_USE.getValue()));
|
.eq(SysScalePublish::getStatus, StatusEnum.IN_USE.getValue()));
|
||||||
if (!ArrayUtil.isEmpty(sysScalePublishVos)) {
|
if (!ObjectUtil.isEmpty(sysScalePublishVos)) {
|
||||||
throw new ServiceException("此年级下已有发布");
|
throw new ServiceException("此年级下已有发布");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -161,4 +163,35 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
||||||
return baseMapper.deleteBatchIds(ids) > 0;
|
return baseMapper.deleteBatchIds(ids) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计本场次
|
||||||
|
*
|
||||||
|
* @param batchNo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public StatisticVo getStatistic4All(Long batchNo, Long scale) {
|
||||||
|
//SysScalePublishVo sysScalePublishVo = baseMapper.selectVoById(batchNo);
|
||||||
|
StatisticVo all = baseMapper.selectSingleAllAvaluation(batchNo);
|
||||||
|
int total = all.getValue();
|
||||||
|
StatisticVo already = baseMapper.selectSingleAlreadyAvaluation(batchNo, scale);
|
||||||
|
int alreadyValue = already.getValue();
|
||||||
|
all.setSpareValue(total - alreadyValue);
|
||||||
|
return all;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<StatisticVo> getStatistic4Class(Long batchNo, Long scale) {
|
||||||
|
List<StatisticVo> all = baseMapper.selectAllAvaluation(batchNo);
|
||||||
|
Map<String, Integer> collect = all.stream().collect(Collectors.groupingBy(StatisticVo::getName,
|
||||||
|
Collectors.collectingAndThen(Collectors.mapping(StatisticVo::getValue, Collectors.toList()),
|
||||||
|
values -> values.get(0))));
|
||||||
|
List<StatisticVo> alreadyList = baseMapper.selectAlreadyAvaluation(batchNo, scale);
|
||||||
|
alreadyList.forEach(a -> {
|
||||||
|
String name = a.getName();
|
||||||
|
int total = collect.get(name);
|
||||||
|
a.setSpareValue(total - a.getValue());
|
||||||
|
});
|
||||||
|
return alreadyList;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package org.dromara.scale.service.impl;
|
package org.dromara.scale.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.util.ArrayUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
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;
|
||||||
|
@ -150,7 +150,7 @@ public class WebServiceImpl implements IWebService {
|
||||||
Map<Long, List<SysScaleAnswerVo>> answerMapByQuestion = scaleAnswerService.getScaleAnswerMap(scaleId);
|
Map<Long, List<SysScaleAnswerVo>> answerMapByQuestion = scaleAnswerService.getScaleAnswerMap(scaleId);
|
||||||
int keySize = answerMapByQuestion.keySet().size();
|
int keySize = answerMapByQuestion.keySet().size();
|
||||||
List<SysEvaluationAnswerBo> answerList = bo.getAnswerList();
|
List<SysEvaluationAnswerBo> answerList = bo.getAnswerList();
|
||||||
if (ArrayUtil.isEmpty(answerList)) {
|
if (ObjectUtil.isEmpty(answerList)) {
|
||||||
throw new ServiceException("请先填写答案,再提交");
|
throw new ServiceException("请先填写答案,再提交");
|
||||||
}
|
}
|
||||||
int answerSize = answerList.size();
|
int answerSize = answerList.size();
|
||||||
|
@ -210,7 +210,7 @@ public class WebServiceImpl implements IWebService {
|
||||||
.eq(SysEvaluationRecord::getBatchNo, entity.getBatchNo())
|
.eq(SysEvaluationRecord::getBatchNo, entity.getBatchNo())
|
||||||
.eq(SysEvaluationRecord::getUserId, entity.getUserId())
|
.eq(SysEvaluationRecord::getUserId, entity.getUserId())
|
||||||
.eq(SysEvaluationRecord::getScaleId, entity.getScaleId()));
|
.eq(SysEvaluationRecord::getScaleId, entity.getScaleId()));
|
||||||
if (!ArrayUtil.isEmpty(recordList)) {
|
if (!ObjectUtil.isEmpty(recordList)) {
|
||||||
throw new ServiceException("本场次中你已做过此量表");
|
throw new ServiceException("本场次中你已做过此量表");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -239,7 +239,7 @@ public class WebServiceImpl implements IWebService {
|
||||||
questionIds.add(q);
|
questionIds.add(q);
|
||||||
Long questionId = Long.parseLong(q);
|
Long questionId = Long.parseLong(q);
|
||||||
List<SysScaleAnswerVo> answerNum = answerMapByQuestion.get(questionId);
|
List<SysScaleAnswerVo> answerNum = answerMapByQuestion.get(questionId);
|
||||||
if (!ArrayUtil.isEmpty(answerNum)) {
|
if (!ObjectUtil.isEmpty(answerNum)) {
|
||||||
//找出分数最大的选项
|
//找出分数最大的选项
|
||||||
BigDecimal s = answerNum.stream()
|
BigDecimal s = answerNum.stream()
|
||||||
.max(Comparator.comparing(SysScaleAnswerVo::getScore)).get().getScore();
|
.max(Comparator.comparing(SysScaleAnswerVo::getScore)).get().getScore();
|
||||||
|
|
|
@ -1,7 +1,43 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
<!DOCTYPE mapper
|
<!DOCTYPE mapper
|
||||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
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.SysScalePublishMapper">
|
<mapper namespace="org.dromara.scale.mapper.SysScalePublishMapper">
|
||||||
|
<select id="selectSingleAllAvaluation" resultType="org.dromara.scale.domain.vo.StatisticVo">
|
||||||
|
select d.dept_name as `name`, count(u.user_id) as `value`
|
||||||
|
from sys_scale_publish sp
|
||||||
|
left join sys_dept d on sp.dept_id = d.dept_id
|
||||||
|
left join sys_user u on d.dept_id = u.dept_id and u.user_type = 'student'
|
||||||
|
where sp.batch_no = #{batchNo}
|
||||||
|
group by d.dept_id
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectSingleAlreadyAvaluation" resultType="org.dromara.scale.domain.vo.StatisticVo">
|
||||||
|
select d.dept_name as `name`, count(er.record_id) as `value`
|
||||||
|
from sys_scale_publish sp
|
||||||
|
left join sys_dept d on sp.dept_id = d.dept_id
|
||||||
|
left join sys_evaluation_record er on er.batch_no = sp.batch_no
|
||||||
|
where sp.batch_no = #{batchNo}
|
||||||
|
and er.scale_id = #{scaleId}
|
||||||
|
group by d.dept_id
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectAllAvaluation" resultType="org.dromara.scale.domain.vo.StatisticVo">
|
||||||
|
select d.dept_name as `name`, count(u.user_id) as `value`
|
||||||
|
from sys_scale_publish sp
|
||||||
|
left join sys_dept d on sp.dept_id = d.parent_id
|
||||||
|
left join sys_user u on d.dept_id = u.dept_id and u.user_type = 'student'
|
||||||
|
where sp.batch_no = #{batchNo}
|
||||||
|
group by d.dept_id
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectAlreadyAvaluation" resultType="org.dromara.scale.domain.vo.StatisticVo">
|
||||||
|
select d.dept_name as `name`, count(er.record_id) as `value`
|
||||||
|
from sys_scale_publish sp
|
||||||
|
left join sys_dept d on sp.dept_id = d.parent_id
|
||||||
|
left join sys_evaluation_record er on er.batch_no = sp.batch_no
|
||||||
|
where sp.batch_no = #{batchNo}
|
||||||
|
and er.scale_id = #{scaleId}
|
||||||
|
group by d.dept_id
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
Loading…
Reference in New Issue