diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/StatisticController.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/StatisticController.java index d8a0b73..65143c0 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/StatisticController.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/StatisticController.java @@ -3,6 +3,7 @@ package org.dromara.scale.controller; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; import org.dromara.common.web.core.BaseController; +import org.dromara.scale.domain.bo.BaseQueryBo; import org.dromara.scale.domain.vo.StatisticNumVo; import org.dromara.scale.domain.vo.StatisticWarnVo; import org.dromara.scale.service.IStatisticService; @@ -30,46 +31,46 @@ public class StatisticController extends BaseController { * 获取完成情况统计 */ @GetMapping("/complete/all") - public R getComplete(Long batchNo, Long scaleId) { - return R.ok(statisticService.getComplete4All(batchNo, scaleId)); + public R getComplete(BaseQueryBo query) { + return R.ok(statisticService.getComplete4All(query)); } /** * 获取完成情况统计 */ @GetMapping("/complete/class") - public R> getComplete4Class(Long batchNo, Long scaleId) { - return R.ok(statisticService.getComplete4Class(batchNo, scaleId)); + public R> getComplete4Class(BaseQueryBo query) { + return R.ok(statisticService.getComplete4Class(query)); } /** * 获取预警情况统计 */ @GetMapping("/warn/all") - public R getWarn(Long batchNo, Long scaleId) { - return R.ok(statisticService.getWarn4All(batchNo, scaleId)); + public R getWarn(BaseQueryBo query) { + return R.ok(statisticService.getWarn4All(query)); } /** * 获取预警情况统计 */ @GetMapping("/warn/class") - public R> getWarn4Class(Long batchNo, Long scaleId) { - return R.ok(statisticService.getWarn4Class(batchNo, scaleId)); + public R> getWarn4Class(BaseQueryBo query) { + return R.ok(statisticService.getWarn4Class(query)); } /** * 获取预警情况统计 */ @GetMapping("/factor/all") - public R> getFactor(Long batchNo, Long scaleId) { - return R.ok(statisticService.getFactor4All(batchNo, scaleId)); + public R> getFactor(BaseQueryBo query) { + return R.ok(statisticService.getFactor4All(query)); } /** * 获取预警情况统计 */ @GetMapping("/factor/class") - public R> getFactor4Class(Long batchNo, Long scaleId) { - return R.ok(statisticService.getFactor4Class(batchNo, scaleId)); + public R> getFactor4Class(BaseQueryBo query) { + return R.ok(statisticService.getFactor4Class(query)); } } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysScalePublishController.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysScalePublishController.java index dd8acfc..557e1c1 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysScalePublishController.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/SysScalePublishController.java @@ -13,6 +13,7 @@ import org.dromara.common.log.enums.BusinessType; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.web.core.BaseController; +import org.dromara.scale.domain.bo.BaseQueryBo; import org.dromara.scale.domain.bo.SysScalePublishBo; import org.dromara.scale.domain.vo.EvaluationVo; import org.dromara.scale.domain.vo.SysScalePublishVo; @@ -97,7 +98,7 @@ public class SysScalePublishController extends BaseController { */ @SaCheckPermission("evaluation:record:query") @GetMapping("/evaluation/list") - public R> getEvaluationList(Long batchNo, Long scaleId) { - return R.ok(sysScalePublishService.getEvaluationList(batchNo, scaleId)); + public R> getEvaluationList(BaseQueryBo query) { + return R.ok(sysScalePublishService.getEvaluationList(query)); } } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/BaseQueryBo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/BaseQueryBo.java new file mode 100644 index 0000000..2752501 --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/BaseQueryBo.java @@ -0,0 +1,18 @@ +package org.dromara.scale.domain.bo; + +import lombok.Data; + +/** + *

TODO

+ * + * @author cjw + * @version V1.0.0 + * @date 2024/4/22 10:57 + */ +@Data +public class BaseQueryBo { + + Long batchNo; + Long scaleId; + Long deptId; +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/EvaluationVo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/EvaluationVo.java index 57faf3c..ddc51f7 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/EvaluationVo.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/EvaluationVo.java @@ -33,6 +33,6 @@ public class EvaluationVo implements Serializable { private String deptName; - private Boolean used; + private Integer status; } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/StatisticMapper.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/StatisticMapper.java new file mode 100644 index 0000000..fd3b8cf --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/StatisticMapper.java @@ -0,0 +1,25 @@ +package org.dromara.scale.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.dromara.scale.domain.vo.StatisticNumVo; +import org.dromara.scale.domain.vo.StatisticWarnVo; + +import java.util.List; + +/** + *

TODO

+ * + * @author cjw + * @version V1.0.0 + * @date 2024/4/22 13:55 + */ +@Mapper +public interface StatisticMapper { + + List selectCompleteAvaluation(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId); + + List selectStatisticWarn(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId); + + List selectStatisticFactor(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId); +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScalePublishMapper.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScalePublishMapper.java index 84c338a..8e359ac 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScalePublishMapper.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScalePublishMapper.java @@ -5,8 +5,6 @@ import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.scale.domain.SysScalePublish; import org.dromara.scale.domain.vo.EvaluationVo; -import org.dromara.scale.domain.vo.StatisticNumVo; -import org.dromara.scale.domain.vo.StatisticWarnVo; import org.dromara.scale.domain.vo.SysScalePublishVo; import java.util.List; @@ -20,24 +18,8 @@ import java.util.List; @Mapper public interface SysScalePublishMapper extends BaseMapperPlus { - StatisticNumVo selectSingleAllAvaluation(Long batchNo); + List selectEvaluationVoList(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId, @Param("deptId") Long deptId); - StatisticNumVo selectSingleCompleteAvaluation(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId); + String selectDeptNameByBatchNo(Long batchNo); - - List selectAllAvaluation(Long batchNo); - - List selectCompleteAvaluation(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId); - - List selectEvaluationVoList(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId); - - List selectEvaluationVoList4Parent(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId); - - StatisticWarnVo selectStatisticWarn(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId); - - List selectStatisticWarn4Class(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId); - - List selectStatisticFactor(@Param("batchNo")Long batchNo, @Param("scaleId") Long scaleId); - - List selectStatisticFactor4Class(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId); } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IStatisticService.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IStatisticService.java index a53728c..6eaa304 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IStatisticService.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IStatisticService.java @@ -1,5 +1,6 @@ package org.dromara.scale.service; +import org.dromara.scale.domain.bo.BaseQueryBo; import org.dromara.scale.domain.vo.StatisticNumVo; import org.dromara.scale.domain.vo.StatisticWarnVo; @@ -8,16 +9,16 @@ import java.util.List; public interface IStatisticService { - StatisticNumVo getComplete4All(Long batchNo, Long scaleId); + StatisticNumVo getComplete4All(BaseQueryBo query); - List getComplete4Class(Long batchNo, Long scaleId); + List getComplete4Class(BaseQueryBo query); - StatisticWarnVo getWarn4All(Long batchNo, Long scaleId); + StatisticWarnVo getWarn4All(BaseQueryBo query); - List getWarn4Class(Long batchNo, Long scaleId); + List getWarn4Class(BaseQueryBo query); - List getFactor4All(Long batchNo, Long scaleId); + List getFactor4All(BaseQueryBo query); - List getFactor4Class(Long batchNo, Long scaleId); + List getFactor4Class(BaseQueryBo query); } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysScalePublishService.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysScalePublishService.java index be942c2..7adb405 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysScalePublishService.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysScalePublishService.java @@ -2,6 +2,7 @@ package org.dromara.scale.service; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.scale.domain.bo.BaseQueryBo; import org.dromara.scale.domain.bo.SysScalePublishBo; import org.dromara.scale.domain.vo.EvaluationVo; import org.dromara.scale.domain.vo.SysScalePublishVo; @@ -48,6 +49,6 @@ public interface ISysScalePublishService { Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - List getEvaluationList(Long batchNo,Long scaleId); + List getEvaluationList(BaseQueryBo query); } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/StatisticService.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/StatisticService.java index 511c599..acac05b 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/StatisticService.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/StatisticService.java @@ -1,15 +1,15 @@ package org.dromara.scale.service.impl; import lombok.RequiredArgsConstructor; +import org.dromara.scale.domain.bo.BaseQueryBo; import org.dromara.scale.domain.vo.StatisticNumVo; import org.dromara.scale.domain.vo.StatisticWarnVo; +import org.dromara.scale.mapper.StatisticMapper; import org.dromara.scale.mapper.SysScalePublishMapper; import org.dromara.scale.service.IStatisticService; import org.springframework.stereotype.Service; import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; /** *

TODO

@@ -23,51 +23,73 @@ import java.util.stream.Collectors; @Service public class StatisticService implements IStatisticService { - private final SysScalePublishMapper scalePublishMapper; + private final StatisticMapper statisticMapper; + + private final SysScalePublishMapper publishMapper; + @Override - public StatisticNumVo getComplete4All(Long batchNo, Long scaleId) { - StatisticNumVo all = scalePublishMapper.selectSingleAllAvaluation(batchNo); - int total = all.getValue(); - StatisticNumVo already = scalePublishMapper.selectSingleCompleteAvaluation(batchNo, scaleId); - int alreadyValue = already.getValue(); - all.setSpareValue(total - alreadyValue); - return all; + public StatisticNumVo getComplete4All(BaseQueryBo query) { + Long batchNo = query.getBatchNo(); + Long scaleId = query.getScaleId(); + List list = statisticMapper.selectCompleteAvaluation(batchNo, scaleId); + int complete = list.stream().mapToInt(StatisticNumVo::getValue).sum(); + int uncompleted = list.stream().mapToInt(StatisticNumVo::getSpareValue).sum(); + String deptName = publishMapper.selectDeptNameByBatchNo(batchNo); + StatisticNumVo data = new StatisticNumVo(); + data.setName(deptName); + data.setValue(complete); + data.setSpareValue(uncompleted); + return data; } @Override - public List getComplete4Class(Long batchNo, Long scaleId) { - List all = scalePublishMapper.selectAllAvaluation(batchNo); - Map collect = all.stream().collect(Collectors.groupingBy(StatisticNumVo::getName, - Collectors.collectingAndThen(Collectors.mapping(StatisticNumVo::getValue, Collectors.toList()), - values -> values.get(0)))); - List completeList = scalePublishMapper.selectCompleteAvaluation(batchNo, scaleId); - completeList.forEach(a -> { - String name = a.getName(); - int total = collect.get(name); - a.setSpareValue(total - a.getValue()); - }); - return completeList; + public List getComplete4Class(BaseQueryBo query) { + Long batchNo = query.getBatchNo(); + Long scaleId = query.getScaleId(); + return statisticMapper.selectCompleteAvaluation(batchNo, scaleId); } @Override - public StatisticWarnVo getWarn4All(Long batchNo, Long scaleId) { - return scalePublishMapper.selectStatisticWarn(batchNo, scaleId); + public StatisticWarnVo getWarn4All(BaseQueryBo query) { + Long batchNo = query.getBatchNo(); + Long scaleId = query.getScaleId(); + List list = statisticMapper.selectStatisticWarn(batchNo, scaleId); + int noneNum = list.stream().mapToInt(StatisticWarnVo::getNoneNum).sum(); + int lowNum = list.stream().mapToInt(StatisticWarnVo::getLowNum).sum(); + int middleNum = list.stream().mapToInt(StatisticWarnVo::getMiddleNum).sum(); + int highNum = list.stream().mapToInt(StatisticWarnVo::getHighNum).sum(); + int majorNum = list.stream().mapToInt(StatisticWarnVo::getMajorNum).sum(); + String deptName = publishMapper.selectDeptNameByBatchNo(batchNo); + StatisticWarnVo data = new StatisticWarnVo(); + data.setDeptName(deptName); + data.setNoneNum(noneNum); + data.setLowNum(lowNum); + data.setMiddleNum(middleNum); + data.setHighNum(highNum); + data.setMajorNum(majorNum); + return data; } @Override - public List getWarn4Class(Long batchNo, Long scaleId) { - return scalePublishMapper.selectStatisticWarn4Class(batchNo, scaleId); + public List getWarn4Class(BaseQueryBo query) { + Long batchNo = query.getBatchNo(); + Long scaleId = query.getScaleId(); + return statisticMapper.selectStatisticWarn(batchNo, scaleId); } @Override - public List getFactor4All(Long batchNo, Long scaleId) { + public List getFactor4All(BaseQueryBo query) { + Long batchNo = query.getBatchNo(); + Long scaleId = query.getScaleId(); return null; } @Override - public List getFactor4Class(Long batchNo, Long scaleId) { + public List getFactor4Class(BaseQueryBo query) { + Long batchNo = query.getBatchNo(); + Long scaleId = query.getScaleId(); return null; } } 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 b658ad9..34cf0f9 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 @@ -17,6 +17,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.redis.utils.QueueUtils; import org.dromara.scale.constant.StatusEnum; import org.dromara.scale.domain.SysScalePublish; +import org.dromara.scale.domain.bo.BaseQueryBo; import org.dromara.scale.domain.bo.SysScalePublishBo; import org.dromara.scale.domain.vo.EvaluationVo; import org.dromara.scale.domain.vo.SysScalePublishVo; @@ -170,24 +171,14 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService { return baseMapper.deleteBatchIds(ids) > 0; } + /** + * 获取量测进度 + */ @Override - public List getEvaluationList(Long batchNo, Long scaleId) { - SysScalePublishVo scalePublishVo = baseMapper.selectVoById(batchNo); - Long deptId = scalePublishVo.getDeptId(); - //为父级 - List evaluationVos; - if (deptService.isParent(deptId)) { - evaluationVos = baseMapper.selectEvaluationVoList4Parent(batchNo, scaleId); - } else { - evaluationVos = baseMapper.selectEvaluationVoList(batchNo, scaleId); - } - SysScaleVo sysScaleVo = scaleMapper.selectVoById(scaleId); - evaluationVos.forEach(e -> { - e.setScaleId(scaleId); - e.setScaleName(sysScaleVo.getScaleName()); - e.setUsed(e.getRecordId() != null); - }); - return evaluationVos; + public List getEvaluationList(BaseQueryBo query) { + Long batchNo = query.getBatchNo(); + Long scaleId = query.getScaleId(); + Long deptId = query.getDeptId(); + return baseMapper.selectEvaluationVoList(batchNo, scaleId, deptId); } - } diff --git a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/StatisticMapper.xml b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/StatisticMapper.xml new file mode 100644 index 0000000..20280da --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/StatisticMapper.xml @@ -0,0 +1,47 @@ + + + + + + + + + + diff --git a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScalePublishMapper.xml b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScalePublishMapper.xml index 7d76e50..cde6c0a 100644 --- a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScalePublishMapper.xml +++ b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScalePublishMapper.xml @@ -3,107 +3,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - - - + select d.dept_name from sys_scale_publish sp - left join sys_dept d on d.parent_id = sp.dept_id - left join sys_evaluation_record er on er.batch_no = sp.batch_no - left join sys_evaluation_conclusion ec on ec.record_id = er.record_id - left join sys_scale_factor_range sfr on sfr.range_id = ec.factor_range_id + left join sys_dept d on d.dept_id = sp.dept_id where sp.batch_no = #{batchNo} - and er.scale_id = #{scaleId} - and ec.status = 1 - group by d.dept_id - - - - - diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java index e0d3c39..ced0748 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java @@ -119,6 +119,6 @@ public interface SysUserMapper extends BaseMapperPlus { int updatePasswordBatchById(List list); - List selectStudentListByDeptId(@Param("deptId") Long deptId,@Param("flag") boolean flag); + List selectStudentListByDeptId(@Param("deptId") Long deptId,@Param("isParent") boolean isParent); } diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index 89f5066..ab201ca 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -188,11 +188,12 @@ from sys_dept d left join sys_user u on u.dept_id = d.dept_id + u.user_type = 'student' - - d.parent_id = #{deptId} + + and d.parent_id = #{deptId} - + and d.dept_id = #{deptId}