人员考核结果;等级统计;整改统计
parent
9613abd60d
commit
af09279ac3
|
|
@ -2,6 +2,7 @@ package com.gunshi.project.xyt.controller;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.gunshi.core.result.R;
|
import com.gunshi.core.result.R;
|
||||||
|
import com.gunshi.db.dto.MonthRangeSo;
|
||||||
import com.gunshi.project.xyt.entity.so.AssessTaskPageSo;
|
import com.gunshi.project.xyt.entity.so.AssessTaskPageSo;
|
||||||
import com.gunshi.project.xyt.entity.vo.AssessResultVo;
|
import com.gunshi.project.xyt.entity.vo.AssessResultVo;
|
||||||
import com.gunshi.project.xyt.model.AssessTask;
|
import com.gunshi.project.xyt.model.AssessTask;
|
||||||
|
|
@ -18,6 +19,7 @@ import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 描述: 考核任务
|
* 描述: 考核任务
|
||||||
|
|
@ -111,6 +113,18 @@ public class AssessTaskController extends AbstractCommonFileController{
|
||||||
service.resultExport(id,response);
|
service.resultExport(id,response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "人员考核结果")
|
||||||
|
@PostMapping("/result/stat")
|
||||||
|
public R<List<AssessTask>> resultStat(@Validated @RequestBody MonthRangeSo monthRangeSo) {
|
||||||
|
return R.ok(service.resultStat(monthRangeSo));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "等级统计")
|
||||||
|
@PostMapping("/level/stat")
|
||||||
|
public R<Map<Integer,Long>> levelStat(@Validated @RequestBody MonthRangeSo monthRangeSo) {
|
||||||
|
return R.ok(service.levelStat(monthRangeSo));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getGroupId() {
|
public String getGroupId() {
|
||||||
return "assessTask";
|
return "assessTask";
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.gunshi.project.xyt.controller;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.gunshi.core.result.R;
|
import com.gunshi.core.result.R;
|
||||||
|
import com.gunshi.db.dto.MonthRangeSo;
|
||||||
import com.gunshi.project.xyt.entity.so.AssessTaskPageSo;
|
import com.gunshi.project.xyt.entity.so.AssessTaskPageSo;
|
||||||
import com.gunshi.project.xyt.entity.vo.AssessRatingVo;
|
import com.gunshi.project.xyt.entity.vo.AssessRatingVo;
|
||||||
import com.gunshi.project.xyt.entity.vo.AssessRectifyVo;
|
import com.gunshi.project.xyt.entity.vo.AssessRectifyVo;
|
||||||
|
|
@ -68,6 +69,12 @@ public class AssessTeamRatingController extends AbstractCommonFileController{
|
||||||
return R.ok(service.rectify(rating));
|
return R.ok(service.rectify(rating));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "整改统计")
|
||||||
|
@PostMapping("/rectify/stat")
|
||||||
|
public R<Map<Integer,Long>> rectifyStat(@Validated @RequestBody MonthRangeSo monthRangeSo) {
|
||||||
|
return R.ok(service.rectifyStat(monthRangeSo));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getGroupId() {
|
public String getGroupId() {
|
||||||
return "assessTeamRating";
|
return "assessTeamRating";
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.gunshi.project.xyt.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.gunshi.db.dto.MonthRangeSo;
|
||||||
import com.gunshi.project.xyt.entity.so.AssessTaskPageSo;
|
import com.gunshi.project.xyt.entity.so.AssessTaskPageSo;
|
||||||
import com.gunshi.project.xyt.entity.vo.AssessResultVo;
|
import com.gunshi.project.xyt.entity.vo.AssessResultVo;
|
||||||
import com.gunshi.project.xyt.model.AssessObject;
|
import com.gunshi.project.xyt.model.AssessObject;
|
||||||
|
|
@ -100,4 +101,14 @@ public interface AssessTaskMapper extends BaseMapper<AssessTask> {
|
||||||
</script>
|
</script>
|
||||||
""")
|
""")
|
||||||
List<Long> myDoneTask(@Param("userId") Long userId);
|
List<Long> myDoneTask(@Param("userId") Long userId);
|
||||||
|
|
||||||
|
@Select("""
|
||||||
|
<script>
|
||||||
|
select t.* from public.assess_task t
|
||||||
|
where t.status = 3
|
||||||
|
and date_trunc('MONTH', t.start_date) <![CDATA[>=]]> #{obj.start}
|
||||||
|
and date_trunc('MONTH', t.start_date) <![CDATA[<=]]> #{obj.end}
|
||||||
|
</script>
|
||||||
|
""")
|
||||||
|
List<AssessTask> resultStat(MonthRangeSo monthRangeSo);
|
||||||
}
|
}
|
||||||
|
|
@ -2,6 +2,7 @@ package com.gunshi.project.xyt.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.gunshi.db.dto.MonthRangeSo;
|
||||||
import com.gunshi.project.xyt.entity.so.AssessTaskPageSo;
|
import com.gunshi.project.xyt.entity.so.AssessTaskPageSo;
|
||||||
import com.gunshi.project.xyt.entity.vo.AssessRatingVo;
|
import com.gunshi.project.xyt.entity.vo.AssessRatingVo;
|
||||||
import com.gunshi.project.xyt.entity.vo.AssessRectifyVo;
|
import com.gunshi.project.xyt.entity.vo.AssessRectifyVo;
|
||||||
|
|
@ -47,13 +48,13 @@ public interface AssessTeamRatingMapper extends BaseMapper<AssessTeamRating> {
|
||||||
|
|
||||||
@Select("""
|
@Select("""
|
||||||
<script>
|
<script>
|
||||||
select t.*,t1.object_id,t2.object_user_name,t2.assess_level,t3.indicator_name,t4.name,t5.task_name from public.assess_team_rating t\s
|
select t.*,t1.object_id,t2.object_user_name,t2.assess_level,t3.indicator_name,t4.name,t5.task_name from public.assess_team_rating t
|
||||||
left join public.assess_team t1 on t.team_id = t1.id
|
left join public.assess_team t1 on t.team_id = t1.id
|
||||||
left join public.assess_object t2 on t1.object_id = t2.id
|
left join public.assess_object t2 on t1.object_id = t2.id
|
||||||
left join public.assess_indicator t3 on t.indicator_id = t3.id
|
left join public.assess_indicator t3 on t.indicator_id = t3.id
|
||||||
left join public.assess_category t4 on t3.category_id = t4.id
|
left join public.assess_category t4 on t3.category_id = t4.id
|
||||||
left join public.assess_task t5 on t1.task_id = t5.id
|
left join public.assess_task t5 on t1.task_id = t5.id
|
||||||
where t.is_need_rectify = 1
|
where t.is_need_rectify = 1 and t5.status = 3
|
||||||
<if test="obj.userId != null">
|
<if test="obj.userId != null">
|
||||||
and t.object_id = #{obj.userId}
|
and t.object_id = #{obj.userId}
|
||||||
</if>
|
</if>
|
||||||
|
|
@ -72,4 +73,16 @@ public interface AssessTeamRatingMapper extends BaseMapper<AssessTeamRating> {
|
||||||
</script>
|
</script>
|
||||||
""")
|
""")
|
||||||
Page<AssessRectifyVo> listPage(Page<AssessRectifyVo> page,@Param("obj") AssessTaskPageSo page1);
|
Page<AssessRectifyVo> listPage(Page<AssessRectifyVo> page,@Param("obj") AssessTaskPageSo page1);
|
||||||
|
|
||||||
|
@Select("""
|
||||||
|
<script>
|
||||||
|
select t.id,t.rectify_status from public.assess_team_rating t
|
||||||
|
left join public.assess_team t1 on t.team_id = t1.id
|
||||||
|
left join public.assess_task t5 on t1.task_id = t5.id
|
||||||
|
where t.is_need_rectify = 1 and t5.status = 3
|
||||||
|
and date_trunc('MONTH', t5.start_date) <![CDATA[>=]]> #{obj.start}
|
||||||
|
and date_trunc('MONTH', t5.start_date) <![CDATA[<=]]> #{obj.end}
|
||||||
|
</script>
|
||||||
|
""")
|
||||||
|
List<AssessTeamRating> rectifyStat(@Param("obj") MonthRangeSo monthRangeSo);
|
||||||
}
|
}
|
||||||
|
|
@ -73,8 +73,8 @@ public class AssessTask implements Serializable {
|
||||||
private Long templateId;
|
private Long templateId;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
@Schema(description="模板名称")
|
@Schema(description="模板信息")
|
||||||
private String templateName;
|
private AssessTemplate template;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 考核批次
|
* 考核批次
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,20 @@
|
||||||
package com.gunshi.project.xyt.service;
|
package com.gunshi.project.xyt.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
||||||
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;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.gunshi.db.dto.MonthRangeSo;
|
||||||
import com.gunshi.project.xyt.entity.so.AssessTaskPageSo;
|
import com.gunshi.project.xyt.entity.so.AssessTaskPageSo;
|
||||||
import com.gunshi.project.xyt.entity.vo.AssessResultVo;
|
import com.gunshi.project.xyt.entity.vo.AssessResultVo;
|
||||||
|
import com.gunshi.project.xyt.mapper.AssessObjectRatingMapper;
|
||||||
import com.gunshi.project.xyt.mapper.AssessTaskMapper;
|
import com.gunshi.project.xyt.mapper.AssessTaskMapper;
|
||||||
import com.gunshi.project.xyt.mapper.AssessTemplateMapper;
|
import com.gunshi.project.xyt.mapper.AssessTemplateMapper;
|
||||||
import com.gunshi.project.xyt.model.AssessObject;
|
import com.gunshi.project.xyt.model.*;
|
||||||
import com.gunshi.project.xyt.model.AssessTask;
|
|
||||||
import com.gunshi.project.xyt.model.AssessTeam;
|
|
||||||
import com.gunshi.project.xyt.model.AssessTemplate;
|
|
||||||
import com.gunshi.project.xyt.util.ExcelUtil;
|
import com.gunshi.project.xyt.util.ExcelUtil;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
@ -23,9 +23,7 @@ import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -47,6 +45,9 @@ public class AssessTaskService extends ServiceImpl<AssessTaskMapper, AssessTask>
|
||||||
@Autowired
|
@Autowired
|
||||||
private AssessTemplateMapper templateMapper;
|
private AssessTemplateMapper templateMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AssessObjectRatingMapper objectRatingMapper;
|
||||||
|
|
||||||
public AssessTask saveData(AssessTask dto) {
|
public AssessTask saveData(AssessTask dto) {
|
||||||
dto.setId(IdWorker.getId());
|
dto.setId(IdWorker.getId());
|
||||||
dto.setStatus(0);
|
dto.setStatus(0);
|
||||||
|
|
@ -89,7 +90,7 @@ public class AssessTaskService extends ServiceImpl<AssessTaskMapper, AssessTask>
|
||||||
public AssessTask detail(Long id) {
|
public AssessTask detail(Long id) {
|
||||||
AssessTask task = this.getById(id);
|
AssessTask task = this.getById(id);
|
||||||
AssessTemplate template = templateMapper.selectById(task.getTemplateId());
|
AssessTemplate template = templateMapper.selectById(task.getTemplateId());
|
||||||
task.setTemplateName(template.getTemplateName());
|
task.setTemplate(template);
|
||||||
task.setFiles(fileService.getFiles(getGroupId(),id.toString()));
|
task.setFiles(fileService.getFiles(getGroupId(),id.toString()));
|
||||||
task.setAssessTeams(assessObjectService.getTeam(id));
|
task.setAssessTeams(assessObjectService.getTeam(id));
|
||||||
task.setAssessObjects(assessObjectService.getObject(id));
|
task.setAssessObjects(assessObjectService.getObject(id));
|
||||||
|
|
@ -110,6 +111,7 @@ public class AssessTaskService extends ServiceImpl<AssessTaskMapper, AssessTask>
|
||||||
if(page.getDateRangeSo() != null && page.getDateRangeSo().getEnd() != null){
|
if(page.getDateRangeSo() != null && page.getDateRangeSo().getEnd() != null){
|
||||||
queryWrapper.le(AssessTask::getStartDate,page.getDateRangeSo().getEnd());
|
queryWrapper.le(AssessTask::getStartDate,page.getDateRangeSo().getEnd());
|
||||||
}
|
}
|
||||||
|
queryWrapper.orderByDesc(AssessTask::getCreateTime);
|
||||||
Page<AssessTask> res = this.page(page.getPageSo().toPage(), queryWrapper);
|
Page<AssessTask> res = this.page(page.getPageSo().toPage(), queryWrapper);
|
||||||
if (res.getRecords() != null && res.getRecords().size() > 0) {
|
if (res.getRecords() != null && res.getRecords().size() > 0) {
|
||||||
for (AssessTask record : res.getRecords()) {
|
for (AssessTask record : res.getRecords()) {
|
||||||
|
|
@ -181,8 +183,10 @@ public class AssessTaskService extends ServiceImpl<AssessTaskMapper, AssessTask>
|
||||||
this.updateById(task);
|
this.updateById(task);
|
||||||
//任务中的考核对象
|
//任务中的考核对象
|
||||||
List<AssessObject> objects = assessObjectService.getObject(id);
|
List<AssessObject> objects = assessObjectService.getObject(id);
|
||||||
objects.stream().forEach(o->o.setStatus(1));
|
objects.stream().forEach(o->o.setStatus(9));
|
||||||
assessObjectService.updateBatchById(objects);
|
assessObjectService.updateBatchById(objects);
|
||||||
|
List<Long> objectIds = objects.stream().map(AssessObject::getId).collect(Collectors.toList());
|
||||||
|
objectRatingMapper.delete(new QueryWrapper<AssessObjectRating>().in("object_id",objectIds));
|
||||||
//任务中的考核成员
|
//任务中的考核成员
|
||||||
List<AssessTeam> teams = assessObjectService.getTeam(id);
|
List<AssessTeam> teams = assessObjectService.getTeam(id);
|
||||||
teams.stream().forEach(o->o.setStatus(1));
|
teams.stream().forEach(o->o.setStatus(1));
|
||||||
|
|
@ -200,6 +204,25 @@ public class AssessTaskService extends ServiceImpl<AssessTaskMapper, AssessTask>
|
||||||
List<AssessResultVo> list = this.result(id);
|
List<AssessResultVo> list = this.result(id);
|
||||||
ExcelUtil.exportExcel(list,"考核结果",AssessResultVo.class,1,new int[]{0,4},response,"考核结果");
|
ExcelUtil.exportExcel(list,"考核结果",AssessResultVo.class,1,new int[]{0,4},response,"考核结果");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<AssessTask> resultStat(MonthRangeSo monthRangeSo) {
|
||||||
|
List<AssessTask> list = this.baseMapper.resultStat(monthRangeSo);
|
||||||
|
if (CollectionUtils.isNotEmpty(list)) {
|
||||||
|
for (AssessTask record : list) {
|
||||||
|
record.setAssessObjects(assessObjectService.getObject(record.getId()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<Integer, Long> levelStat(MonthRangeSo monthRangeSo) {
|
||||||
|
List<AssessTask> list = this.resultStat(monthRangeSo);
|
||||||
|
if(CollectionUtils.isEmpty(list)){
|
||||||
|
return new HashMap<>();
|
||||||
|
}
|
||||||
|
List<AssessObject> objectList = list.stream().map(AssessTask::getAssessObjects).flatMap(List::stream).collect(Collectors.toList());
|
||||||
|
return objectList.stream().collect(Collectors.groupingBy(AssessObject::getAssessLevel,Collectors.counting()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.gunshi.db.dto.MonthRangeSo;
|
||||||
import com.gunshi.project.xyt.entity.so.AssessTaskPageSo;
|
import com.gunshi.project.xyt.entity.so.AssessTaskPageSo;
|
||||||
import com.gunshi.project.xyt.entity.vo.AssessRatingVo;
|
import com.gunshi.project.xyt.entity.vo.AssessRatingVo;
|
||||||
import com.gunshi.project.xyt.entity.vo.AssessRectifyVo;
|
import com.gunshi.project.xyt.entity.vo.AssessRectifyVo;
|
||||||
|
|
@ -59,6 +60,7 @@ public class AssessTeamRatingService extends ServiceImpl<AssessTeamRatingMapper,
|
||||||
this.delData(teamId);
|
this.delData(teamId);
|
||||||
for(AssessTeamRating rating : ratings){
|
for(AssessTeamRating rating : ratings){
|
||||||
rating.setId(IdWorker.getId());
|
rating.setId(IdWorker.getId());
|
||||||
|
rating.setRectifyStatus(0);
|
||||||
fileService.save(rating.getFiles(), rating.getId().toString(), getGroupId(),getScoreType());
|
fileService.save(rating.getFiles(), rating.getId().toString(), getGroupId(),getScoreType());
|
||||||
}
|
}
|
||||||
AssessTask task = taskMapper.selectById(vo.getTaskId());
|
AssessTask task = taskMapper.selectById(vo.getTaskId());
|
||||||
|
|
@ -179,6 +181,7 @@ public class AssessTeamRatingService extends ServiceImpl<AssessTeamRatingMapper,
|
||||||
List<AssessTeamRating> ratings = vo.getRatings();
|
List<AssessTeamRating> ratings = vo.getRatings();
|
||||||
for(AssessTeamRating rating : ratings){
|
for(AssessTeamRating rating : ratings){
|
||||||
rating.setId(IdWorker.getId());
|
rating.setId(IdWorker.getId());
|
||||||
|
rating.setRectifyStatus(0);
|
||||||
fileService.save(rating.getFiles(), rating.getId().toString(), getGroupId(),getScoreType());
|
fileService.save(rating.getFiles(), rating.getId().toString(), getGroupId(),getScoreType());
|
||||||
}
|
}
|
||||||
Long teamId = ratings.get(0).getTeamId();
|
Long teamId = ratings.get(0).getTeamId();
|
||||||
|
|
@ -212,6 +215,11 @@ public class AssessTeamRatingService extends ServiceImpl<AssessTeamRatingMapper,
|
||||||
fileService.save(rating.getRectifyFiles(),rating.getId().toString(),getGroupId(),getRectifyType());
|
fileService.save(rating.getRectifyFiles(),rating.getId().toString(),getGroupId(),getRectifyType());
|
||||||
return "整改成功";
|
return "整改成功";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Map<Integer,Long> rectifyStat(MonthRangeSo monthRangeSo) {
|
||||||
|
List<AssessTeamRating> list = this.baseMapper.rectifyStat(monthRangeSo);
|
||||||
|
return list.stream().collect(Collectors.groupingBy(AssessTeamRating::getRectifyStatus, Collectors.counting()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue