This commit is contained in:
杜建超 2020-10-26 16:19:25 +08:00
parent 1f9c89769c
commit 4681cb93fb
11 changed files with 115 additions and 38 deletions

View File

@ -36,4 +36,8 @@ public interface FlowStartMapper extends BaseMapper<FlowStart> {
List<FlowStart> selectListByTime(@Param("page") IPage page, @Param("cycleType")Integer cycleType,@Param("name")String name);
FlowStart selectFlowStartByName(@Param("name") String name);
List<FlowStart> selectListByPage(@Param("page")IPage page,@Param("cycleType") Integer cycleType);
FlowStart selectRecentlyLimt();
}

View File

@ -33,4 +33,6 @@ public interface FlowStartService extends IService<FlowStart> {
FlowStart selectFlowStartByName(String name);
}

View File

@ -104,6 +104,9 @@ public class EvaluationGroupServiceImpl extends ServiceImpl<EvaluationGroupMappe
@Override
public List<String> selectAllStaffIdsByGroupId(Long id) {
EvaluationGroup evaluationGroup = this.selectEvaluationGroupById(id);
if(evaluationGroup ==null ){
return Collections.EMPTY_LIST;
}
String depIds = evaluationGroup.getDepIds();
Set<String> allDeparmentIds = new HashSet<>();
if(StringUtils.isNotBlank(depIds)){

View File

@ -2,12 +2,19 @@ package com.lz.modules.performance.controller;
import com.lz.common.utils.PageUtils;
import com.lz.common.utils.R;
import com.lz.common.utils.StringUtil;
import com.lz.modules.equipment.entity.model.BasePage;
import com.lz.modules.flow.dao.FlowStartMapper;
import com.lz.modules.flow.entity.FlowStart;
import com.lz.modules.flow.service.FlowStartService;
import com.lz.modules.performance.req.ChartStartsReq;
import com.lz.modules.performance.res.ChartStartsRes;
import com.lz.modules.performance.res.ChartStatisticalRes;
import com.lz.modules.performance.res.ResultRankListRes;
import com.lz.modules.performance.service.ChartResultService;
import com.lz.modules.sys.controller.AbstractController;
import io.swagger.annotations.*;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -24,23 +31,35 @@ import java.util.*;
public class ChartController extends AbstractController{
@Autowired
private ChartResultService chartResultService;
@Autowired
private FlowStartMapper flowStartMapper;
@PostMapping("chart/result")
@GetMapping("chart/result")
@ApiOperation("获取绩效报表统计")
@ApiImplicitParam(name = "startId",value = "考核周期标识id", required = true, dataType = "Long",paramType = "query")
@ApiResponses({@ApiResponse(code = 200,message = "成功",response = ChartStatisticalRes.class)})
public R chartResult(@RequestParam Long startId){
List<ChartStatisticalRes> chartStatisticalRes = chartResultService.chartReport(startId);
public R chartResult(@RequestParam(required = false) @ApiParam(name = "startId",value = "考核周期标识id") Long startId){
String defaultTime = StringUtils.EMPTY;
if(startId==null){
//取最近一条记录
FlowStart flowStart = flowStartMapper.selectRecentlyLimt();
if(flowStart!=null){
startId = flowStart.getId();
defaultTime = flowStart.getName();
}else {
return R.ok();
}
}
List<ChartStatisticalRes> chartStatisticalRes = chartResultService.chartReport(startId,defaultTime);
return R.ok().put("data",chartStatisticalRes);
}
@PostMapping("chart/starts")
@ApiOperation("获取考核类型列表")
@ApiResponses({@ApiResponse(code = 200,message = "成功",response = ChartStatisticalRes.class)})
public R chartStarts(@RequestBody BasePage req){
return R.ok().put("data","");
@ApiResponses({@ApiResponse(code = 200,message = "成功",response = ChartStartsRes.class)})
public R chartStarts(@RequestBody @ApiParam(name = "body",value = "body请求体",required = true)ChartStartsReq req){
PageUtils pageUtils = chartResultService.chartStarts(req);
return R.ok().put("data",pageUtils);
}

View File

@ -0,0 +1,21 @@
package com.lz.modules.performance.req;
import com.lz.modules.equipment.entity.model.BasePage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author: djc
* @Desc:
* @Date: 2020/10/26 15:08
*/
@Data
@ApiModel("获取考核类型列表")
public class ChartStartsReq extends BasePage{
@ApiModelProperty(value = "(必传)类型0 月度 1自定义",name = "cycleType",required = true)
private Integer cycleType;
}

View File

@ -1,12 +0,0 @@
package com.lz.modules.performance.res;
import lombok.Data;
@Data
public class ChartStart{
private String time;
private Long startId;
}

View File

@ -1,5 +1,7 @@
package com.lz.modules.performance.res;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@ -10,10 +12,13 @@ import java.util.List;
* @Date: 2020/10/26 14:21
*/
@Data
@ApiModel("全部考核列表实体")
public class ChartStartsRes {
private int type;
@ApiModelProperty(value = "时间" , name = "time",example = "2020年08月绩效考核")
private String time;
private List<ChartStart> list;
@ApiModelProperty(value = "考核id" , name = "startId")
private Long startId;
}

View File

@ -17,6 +17,9 @@ public class ChartStatisticalRes {
@ApiModelProperty(value = "类型 0节点统计 1等级统计 2:人数统计 ",name = "type")
private int type;
@ApiModelProperty(value = "默认时间 ",name = "defaultTime")
private String defaultTime;
private List<ChartStatistical> statisticals;
}

View File

@ -1,6 +1,9 @@
package com.lz.modules.performance.service;
import com.lz.common.utils.PageUtils;
import com.lz.modules.equipment.entity.model.BasePage;
import com.lz.modules.performance.req.ChartStartsReq;
import com.lz.modules.performance.res.ChartStartsRes;
import com.lz.modules.performance.res.ChartStatistical;
import com.lz.modules.performance.res.ChartStatisticalRes;
@ -13,12 +16,12 @@ import java.util.List;
*/
public interface ChartResultService {
List<ChartStatisticalRes> chartReport(Long startId);
List<ChartStatisticalRes> chartReport(Long startId,String defaultTime);
List<ChartStatistical> countDepartmentAndStaffNum(List<String>staffIds);
//PageUtils resultRankList(ChartResultReq req);
void chartStarts();
PageUtils chartStarts(ChartStartsReq req);
}

View File

@ -6,10 +6,11 @@ import com.lz.common.utils.PageUtils;
import com.lz.modules.app.entity.DepartmentsStaffRelateEntity;
import com.lz.modules.app.service.DepartmentsStaffRelateService;
import com.lz.modules.app.service.StaffService;
import com.lz.modules.flow.dao.FlowStartMapper;
import com.lz.modules.flow.entity.FlowStart;
import com.lz.modules.flow.service.EvaluationGroupService;
import com.lz.modules.flow.service.FlowStartService;
import com.lz.modules.performance.res.ChartStart;
import com.lz.modules.performance.req.ChartStartsReq;
import com.lz.modules.performance.res.ChartStartsRes;
import com.lz.modules.performance.res.ChartStatistical;
import com.lz.modules.performance.res.ChartStatisticalRes;
@ -21,7 +22,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.function.Consumer;
/**
* @Author: djc
@ -43,9 +43,12 @@ public class ChartResultServiceImpl implements ChartResultService {
private StaffService staffService;
@Autowired
private FlowStartService flowStartService;
@Autowired
private FlowStartMapper flowStartMapper;
@Override
public List<ChartStatisticalRes> chartReport(Long startId) {
public List<ChartStatisticalRes> chartReport(Long startId,String defaultTime) {
List<ChartStatisticalRes> data = new ArrayList<>();
ChartStatisticalRes res;
@ -53,12 +56,14 @@ public class ChartResultServiceImpl implements ChartResultService {
res = new ChartStatisticalRes();
res.setType(0);
res.setStatisticals(process);
res.setDefaultTime(defaultTime);
data.add(res);
List<ChartStatistical> scoreLevel = resultRecordService.countNumByScoreLevel(startId);
res = new ChartStatisticalRes();
res.setType(1);
res.setStatisticals(scoreLevel);
res.setDefaultTime(defaultTime);
data.add(res);
List<String> strings = evaluationGroupService.selectAllStaffIdsByGroupId(3L);
@ -66,6 +71,7 @@ public class ChartResultServiceImpl implements ChartResultService {
res = new ChartStatisticalRes();
res.setType(2);
res.setStatisticals(depstaff);
res.setDefaultTime(defaultTime);
data.add(res);
return data;
@ -110,17 +116,28 @@ public class ChartResultServiceImpl implements ChartResultService {
}*/
@Override
public void chartStarts() {
List<ChartStartsRes> res = new ArrayList<>();
List<FlowStart> list = flowStartService.list(new QueryWrapper<FlowStart>().eq("is_delete", 0).orderByAsc("start_time"));
list.forEach(new Consumer<FlowStart>() {
@Override
public void accept(FlowStart flowStart) {
if(flowStart.getCycleType()==0){
ChartStart chartStart = new ChartStart();
}
}
public PageUtils chartStarts(ChartStartsReq req) {
List<ChartStartsRes> data = new ArrayList<>();
PageUtils pageUtils = PageUtils.startPage(req.getCurrPage(), req.getPageSize()).doSelect(
page -> flowStartMapper.selectListByPage(page,req.getCycleType())
);
List<FlowStart> starts = pageUtils.getList();
starts.forEach(flowStart -> {
ChartStartsRes start = new ChartStartsRes();
start.setStartId(flowStart.getId());
start.setTime(flowStart.getName());
data.add(start);
});
PageUtils pages = new PageUtils();
pages.setTotalPage(pageUtils.getTotalPage());
pages.setTotalCount(pageUtils.getTotalCount());
pages.setCurrPage(req.getCurrPage());
pages.setPageSize(req.getPageSize());
pages.setList(data);
return pages;
}
}

View File

@ -101,5 +101,17 @@
<select id="selectFlowStartByName" resultType="FlowStart" >
select * from lz_flow_start where name=#{name} and is_delete = 0 limit 1
</select>
<select id="selectListByPage" resultType="FlowStart">
select * from lz_flow_start where is_delete = 0
<if test="cycleType !=null">
and cycle_type=#{cycleType}
</if>
order by id desc
</select>
<select id="selectRecentlyLimt" resultType="FlowStart">
select * from lz_flow_start where is_delete = 0 order by id desc limit 1
</select>
</mapper>