人员考核结果;等级统计;整改统计
parent
9613abd60d
commit
af09279ac3
|
|
@ -2,6 +2,7 @@ package com.gunshi.project.xyt.controller;
|
|||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
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.vo.AssessResultVo;
|
||||
import com.gunshi.project.xyt.model.AssessTask;
|
||||
|
|
@ -18,6 +19,7 @@ import org.springframework.validation.annotation.Validated;
|
|||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 描述: 考核任务
|
||||
|
|
@ -111,6 +113,18 @@ public class AssessTaskController extends AbstractCommonFileController{
|
|||
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
|
||||
public String getGroupId() {
|
||||
return "assessTask";
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.gunshi.project.xyt.controller;
|
|||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
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.vo.AssessRatingVo;
|
||||
import com.gunshi.project.xyt.entity.vo.AssessRectifyVo;
|
||||
|
|
@ -68,6 +69,12 @@ public class AssessTeamRatingController extends AbstractCommonFileController{
|
|||
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
|
||||
public String getGroupId() {
|
||||
return "assessTeamRating";
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.gunshi.project.xyt.mapper;
|
|||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
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.vo.AssessResultVo;
|
||||
import com.gunshi.project.xyt.model.AssessObject;
|
||||
|
|
@ -100,4 +101,14 @@ public interface AssessTaskMapper extends BaseMapper<AssessTask> {
|
|||
</script>
|
||||
""")
|
||||
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.extension.plugins.pagination.Page;
|
||||
import com.gunshi.db.dto.MonthRangeSo;
|
||||
import com.gunshi.project.xyt.entity.so.AssessTaskPageSo;
|
||||
import com.gunshi.project.xyt.entity.vo.AssessRatingVo;
|
||||
import com.gunshi.project.xyt.entity.vo.AssessRectifyVo;
|
||||
|
|
@ -47,13 +48,13 @@ public interface AssessTeamRatingMapper extends BaseMapper<AssessTeamRating> {
|
|||
|
||||
@Select("""
|
||||
<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_object t2 on t1.object_id = t2.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_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">
|
||||
and t.object_id = #{obj.userId}
|
||||
</if>
|
||||
|
|
@ -72,4 +73,16 @@ public interface AssessTeamRatingMapper extends BaseMapper<AssessTeamRating> {
|
|||
</script>
|
||||
""")
|
||||
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;
|
||||
|
||||
@TableField(exist = false)
|
||||
@Schema(description="模板名称")
|
||||
private String templateName;
|
||||
@Schema(description="模板信息")
|
||||
private AssessTemplate template;
|
||||
|
||||
/**
|
||||
* 考核批次
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
package com.gunshi.project.xyt.service;
|
||||
|
||||
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.IdWorker;
|
||||
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
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.vo.AssessResultVo;
|
||||
import com.gunshi.project.xyt.mapper.AssessObjectRatingMapper;
|
||||
import com.gunshi.project.xyt.mapper.AssessTaskMapper;
|
||||
import com.gunshi.project.xyt.mapper.AssessTemplateMapper;
|
||||
import com.gunshi.project.xyt.model.AssessObject;
|
||||
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.model.*;
|
||||
import com.gunshi.project.xyt.util.ExcelUtil;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -23,9 +23,7 @@ import org.springframework.stereotype.Service;
|
|||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
|
|
@ -47,6 +45,9 @@ public class AssessTaskService extends ServiceImpl<AssessTaskMapper, AssessTask>
|
|||
@Autowired
|
||||
private AssessTemplateMapper templateMapper;
|
||||
|
||||
@Autowired
|
||||
private AssessObjectRatingMapper objectRatingMapper;
|
||||
|
||||
public AssessTask saveData(AssessTask dto) {
|
||||
dto.setId(IdWorker.getId());
|
||||
dto.setStatus(0);
|
||||
|
|
@ -89,7 +90,7 @@ public class AssessTaskService extends ServiceImpl<AssessTaskMapper, AssessTask>
|
|||
public AssessTask detail(Long id) {
|
||||
AssessTask task = this.getById(id);
|
||||
AssessTemplate template = templateMapper.selectById(task.getTemplateId());
|
||||
task.setTemplateName(template.getTemplateName());
|
||||
task.setTemplate(template);
|
||||
task.setFiles(fileService.getFiles(getGroupId(),id.toString()));
|
||||
task.setAssessTeams(assessObjectService.getTeam(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){
|
||||
queryWrapper.le(AssessTask::getStartDate,page.getDateRangeSo().getEnd());
|
||||
}
|
||||
queryWrapper.orderByDesc(AssessTask::getCreateTime);
|
||||
Page<AssessTask> res = this.page(page.getPageSo().toPage(), queryWrapper);
|
||||
if (res.getRecords() != null && res.getRecords().size() > 0) {
|
||||
for (AssessTask record : res.getRecords()) {
|
||||
|
|
@ -181,8 +183,10 @@ public class AssessTaskService extends ServiceImpl<AssessTaskMapper, AssessTask>
|
|||
this.updateById(task);
|
||||
//任务中的考核对象
|
||||
List<AssessObject> objects = assessObjectService.getObject(id);
|
||||
objects.stream().forEach(o->o.setStatus(1));
|
||||
objects.stream().forEach(o->o.setStatus(9));
|
||||
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);
|
||||
teams.stream().forEach(o->o.setStatus(1));
|
||||
|
|
@ -200,6 +204,25 @@ public class AssessTaskService extends ServiceImpl<AssessTaskMapper, AssessTask>
|
|||
List<AssessResultVo> list = this.result(id);
|
||||
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.extension.plugins.pagination.Page;
|
||||
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.vo.AssessRatingVo;
|
||||
import com.gunshi.project.xyt.entity.vo.AssessRectifyVo;
|
||||
|
|
@ -59,6 +60,7 @@ public class AssessTeamRatingService extends ServiceImpl<AssessTeamRatingMapper,
|
|||
this.delData(teamId);
|
||||
for(AssessTeamRating rating : ratings){
|
||||
rating.setId(IdWorker.getId());
|
||||
rating.setRectifyStatus(0);
|
||||
fileService.save(rating.getFiles(), rating.getId().toString(), getGroupId(),getScoreType());
|
||||
}
|
||||
AssessTask task = taskMapper.selectById(vo.getTaskId());
|
||||
|
|
@ -179,6 +181,7 @@ public class AssessTeamRatingService extends ServiceImpl<AssessTeamRatingMapper,
|
|||
List<AssessTeamRating> ratings = vo.getRatings();
|
||||
for(AssessTeamRating rating : ratings){
|
||||
rating.setId(IdWorker.getId());
|
||||
rating.setRectifyStatus(0);
|
||||
fileService.save(rating.getFiles(), rating.getId().toString(), getGroupId(),getScoreType());
|
||||
}
|
||||
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());
|
||||
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