Merge branch 'version_performance_2.0' of http://gitlab.ldxinyong.com/enterpriseManagement/lz_management into version_performance_2.0

This commit is contained in:
wulin 2020-10-14 18:50:57 +08:00
commit 9883cbc9da
15 changed files with 298 additions and 33 deletions

View File

@ -8,7 +8,9 @@ package com.lz.modules.flow.dao;
* @since 2020-08-18
*/
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.lz.modules.flow.entity.FlowRecord;
import com.lz.modules.performance.dto.TaskListDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -52,6 +54,8 @@ public interface FlowRecordMapper extends BaseMapper<FlowRecord> {
Long copyFlowRecord(FlowRecord flowRecord);
//查看自己要审批的记录 status为1代表流程走到了这里
List<Long> selectFlowRecordIdsByApprovalStaffId(@Param("approvalStaffId") Long approvalStaffId);
List<TaskListDto> selectTodoTasksByApprovalStaffId(@Param("approvalStaffId") Long approvalStaffId, @Param("page") IPage page);
List<TaskListDto> selectFinishTasksByApprovalStaffId(@Param("approvalStaffId") Long approvalStaffId, @Param("page") IPage page);
}

View File

@ -1,7 +1,10 @@
package com.lz.modules.flow.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lz.common.utils.PageUtils;
import com.lz.modules.equipment.entity.model.BasePage;
import com.lz.modules.flow.entity.FlowRecord;
import com.lz.modules.performance.req.AssessTaskReq;
import com.lz.modules.sys.entity.app.ResultRecord;
import java.util.List;
@ -53,5 +56,5 @@ public interface FlowRecordService extends IService<FlowRecord> {
Long copyFlowRecord(FlowRecord flowRecord);
List<Long> selectFlowRecordIdsByApprovalStaffId(Long approvalStaffId);
PageUtils selectTaskListByApprovalStaffId(AssessTaskReq req, Long approvalStaffId);
}

View File

@ -1,15 +1,19 @@
package com.lz.modules.flow.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lz.common.utils.Constant;
import com.lz.common.utils.PageUtils;
import com.lz.modules.app.entity.StaffEntity;
import com.lz.modules.app.service.StaffService;
import com.lz.modules.app.utils.t.OneTuple;
import com.lz.modules.equipment.entity.model.BasePage;
import com.lz.modules.flow.dao.FlowRecordMapper;
import com.lz.modules.flow.entity.FlowRecord;
import com.lz.modules.flow.enums.FlowRecordEnum;
import com.lz.modules.flow.model.StaffRoleDto;
import com.lz.modules.flow.service.FlowRecordService;
import com.lz.modules.performance.req.AssessTaskReq;
import com.lz.modules.sys.entity.app.ResultRecord;
import com.lz.modules.sys.service.app.ResultRecordService;
import org.springframework.beans.factory.annotation.Autowired;
@ -139,7 +143,19 @@ public class FlowRecordServiceImpl extends ServiceImpl<FlowRecordMapper, FlowRec
}
@Override
public List<Long> selectFlowRecordIdsByApprovalStaffId(Long approvalStaffId) {
return flowRecordMapper.selectFlowRecordIdsByApprovalStaffId(approvalStaffId);
public PageUtils selectTaskListByApprovalStaffId(AssessTaskReq req, Long approvalStaffId) {
PageUtils pageUtils = new PageUtils();
if(req.getStatus()==0){
pageUtils = PageUtils.startPage(req.getCurrPage(), req.getPageSize()).doSelect(
page -> flowRecordMapper.selectTodoTasksByApprovalStaffId(approvalStaffId,page)
);
}
if(req.getStatus()==1){
pageUtils = PageUtils.startPage(req.getCurrPage(), req.getPageSize()).doSelect(
page -> flowRecordMapper.selectFinishTasksByApprovalStaffId(approvalStaffId,page)
);
}
return pageUtils;
}
}

View File

@ -1,18 +1,29 @@
package com.lz.modules.performance.controller;
import com.lz.common.utils.DateUtils;
import com.lz.common.utils.PageUtils;
import com.lz.common.utils.R;
import com.lz.common.utils.StringUtil;
import com.lz.modules.app.entity.StaffEntity;
import com.lz.modules.app.service.StaffService;
import com.lz.modules.equipment.entity.model.BasePage;
import com.lz.modules.flow.entity.FlowChart;
import com.lz.modules.flow.service.FlowChangeService;
import com.lz.modules.flow.service.FlowRecordService;
import com.lz.modules.performance.dto.TaskListDto;
import com.lz.modules.performance.req.AssessDetailReq;
import com.lz.modules.performance.req.AssessListReq;
import com.lz.modules.performance.req.AssessTaskReq;
import com.lz.modules.performance.req.ChartResultReq;
import com.lz.modules.performance.res.ChartStatisticalRes;
import com.lz.modules.performance.res.TaskListRes;
import com.lz.modules.performance.service.AssessTaskService;
import com.lz.modules.sys.controller.AbstractController;
import com.lz.modules.sys.entity.app.ResultRecord;
import com.lz.modules.sys.service.app.ResultRecordService;
import io.swagger.annotations.*;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -20,6 +31,7 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.function.Consumer;
/**
* @Author: djc
@ -28,46 +40,39 @@ import java.util.Optional;
*/
@RestController
@RequestMapping("/performance")
public class TaskController extends AbstractController{
private FlowRecordService flowRecordService;
private ResultRecordService resultRecordService;
private StaffService staffService;
private FlowChangeService flowChangeService;
@Api(value="智能绩效", tags={"智能绩效部分接口"})
public class SmartPerformanceController extends AbstractController{
@Autowired
private AssessTaskService assessTaskService;
@RequestMapping("task/list")
public R list(int status){
List<TaskListRes> list = new ArrayList<>();
Long userId = getUserId();
List<Long> flowRecordIds = flowRecordService.selectFlowRecordIdsByApprovalStaffId(userId);
if(CollectionUtils.isEmpty(flowRecordIds)){
return R.ok();
}
flowRecordIds.stream().forEach(recordId -> {
TaskListRes res = new TaskListRes();
ResultRecord resultRecord = resultRecordService.selectResultRecordById(recordId);
StaffEntity staffEntity = staffService.selectStaffById(resultRecord.getStaffId());
res.setAvatar(Optional.ofNullable(staffEntity.getAvatar()).orElse(StringUtil.EMPTY));
//res.setTitle(); 根据状态拼接文案
//res.setTime();
//res.setUrl();
list.add(res);
});
@ApiOperation("获取待办/处理事项")
@ApiImplicitParam(name = "status",value = "状态 (0:待办 1已处理)", required = true, dataType = "int",paramType = "query")
@ApiResponses({@ApiResponse(code = 200,message = "成功",response = TaskListRes.class)})
public R list(AssessTaskReq req){
assessTaskService.assessTaskList(req,getUserId());
return R.ok().put("page","");
}
@RequestMapping("chart/result")
public R chartResult(@RequestBody ChartResultReq req){
return R.ok();
}
@RequestMapping("assess/group/list")
public R groupList(@RequestBody AssessListReq req){
ChartStatisticalRes res = new ChartStatisticalRes();
return R.ok();
}
@RequestMapping("assess/group/detail")
public R groupDetail(@RequestBody AssessDetailReq req){
ChartStatisticalRes res = new ChartStatisticalRes();
return R.ok();
}
@RequestMapping("chart/result")
public R chartResult(@RequestBody AssessDetailReq req){
return R.ok();
}
}

View File

@ -0,0 +1,28 @@
package com.lz.modules.performance.dto;
import lombok.Data;
import java.util.Date;
/**
* @Author: djc
* @Desc:
* @Date: 2020/10/14 14:41
*/
@Data
public class TaskListDto {
private Long recordId;
private Long staffId;
private Long currentApprovalStaffId;
private String monthTime;
private Date gmtModified;
private int flowProcess;
private int type;
}

View File

@ -0,0 +1,41 @@
package com.lz.modules.performance.enums;
/**
* @Author: djc
* @Desc:
* @Date: 2020/10/14 17:00
*/
public enum ResultFlowProcessEnum {
TARGET(0,"制定目标"),
CONFIRM(1,"目标确认"),
DO(2,"执行中"),
SCORE(4,"评分"),
FINISH(5,"考核结束"),
;
private int status;
private String desc;
ResultFlowProcessEnum(int status, String desc) {
this.status = status;
this.desc = desc;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}

View File

@ -0,0 +1,14 @@
package com.lz.modules.performance.req;
import com.lz.modules.equipment.entity.model.BasePage;
import lombok.Data;
/**
* @Author: djc
* @Desc:
* @Date: 2020/10/14 11:38
*/
@Data
public class AssessTaskReq extends BasePage{
private int status;
}

View File

@ -0,0 +1,21 @@
package com.lz.modules.performance.req;
import lombok.Data;
/**
* @Author: djc
* @Desc:
* @Date: 2020/10/14 16:50
*/
@Data
public class ChartResultReq {
//考核类型 月度 季度
private int assessType;
private String month;
private String startTime;
private String endTime;
}

View File

@ -8,7 +8,7 @@ import lombok.Data;
* @Date: 2020/10/13 18:25
*/
@Data
public class chartStatisticalRes {
public class ChartStatisticalRes {
private String desc;
//人数

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;
/**
@ -8,13 +10,18 @@ import lombok.Data;
* @Date: 2020/10/13 17:15
*/
@Data
@ApiModel(value = "待办/处理事项列表返回")
public class TaskListRes {
//头像
@ApiModelProperty(value = "头像", name = "avatar")
private String avatar;
//标题
@ApiModelProperty(value = "标题", name = "title")
private String title;
//时间
@ApiModelProperty(value = "时间", name = "time")
private String time;
//跳转路径
@ApiModelProperty(value = "跳转路径url", name = "url")
private String url;
}

View File

@ -0,0 +1,13 @@
package com.lz.modules.performance.service;
import com.lz.common.utils.PageUtils;
import com.lz.modules.performance.req.AssessTaskReq;
/**
* @Author: djc
* @Desc:
* @Date: 2020/10/14 14:58
*/
public interface AssessTaskService {
PageUtils assessTaskList(AssessTaskReq req,Long userId);
}

View File

@ -0,0 +1,12 @@
package com.lz.modules.performance.service;
import com.lz.modules.performance.req.ChartResultReq;
/**
* @Author: djc
* @Desc:
* @Date: 2020/10/14 16:52
*/
public interface ChartResultService {
void ChartReport(ChartResultReq req);
}

View File

@ -0,0 +1,67 @@
package com.lz.modules.performance.service.impl;
import com.lz.common.utils.DateUtils;
import com.lz.common.utils.PageUtils;
import com.lz.common.utils.StringUtil;
import com.lz.modules.app.entity.StaffEntity;
import com.lz.modules.app.service.StaffService;
import com.lz.modules.flow.service.FlowChangeService;
import com.lz.modules.flow.service.FlowRecordService;
import com.lz.modules.performance.dto.TaskListDto;
import com.lz.modules.performance.req.AssessTaskReq;
import com.lz.modules.performance.res.TaskListRes;
import com.lz.modules.performance.service.AssessTaskService;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
/**
* @Author: djc
* @Desc:
* @Date: 2020/10/14 14:59
*/
@Service("assessTaskService")
public class AssessTaskServiceImpl implements AssessTaskService {
@Autowired
private FlowRecordService flowRecordService;
@Autowired
private StaffService staffService;
@Autowired
private FlowChangeService flowChangeService;
@Override
public PageUtils assessTaskList(AssessTaskReq req,Long userId) {
PageUtils data = new PageUtils();
List<TaskListRes> list = new ArrayList<>();
PageUtils pageUtils = flowRecordService.selectTaskListByApprovalStaffId(req,userId);
if(CollectionUtils.isEmpty(pageUtils.getList())){
return data;
}
List<TaskListDto> dtos = pageUtils.getList();
dtos.stream().forEach(taskListDto -> {
TaskListRes res = new TaskListRes();
StaffEntity staffEntity = staffService.selectStaffById(taskListDto.getStaffId());
res.setAvatar(Optional.ofNullable(staffEntity.getAvatar()).orElse(StringUtil.EMPTY));
String name = staffEntity.getName();
if(taskListDto.getStaffId().equals(taskListDto.getCurrentApprovalStaffId())){
name = "";
}
//根据状态拼接文案
res.setTitle(name + "" + taskListDto.getMonthTime() + "");
res.setTime(DateUtils.format(taskListDto.getGmtModified(),DateUtils.DATE_TIME_PATTERN));
//跳转绩效详情页
res.setUrl("?" + taskListDto.getRecordId());
list.add(res);
});
data.setTotalCount(pageUtils.getTotalCount());
data.setTotalPage(pageUtils.getTotalPage());
data.setList(list);
data.setPageSize(req.getPageSize());
data.setCurrPage(req.getCurrPage());
return data;
}
}

View File

@ -0,0 +1,23 @@
package com.lz.modules.performance.service.impl;
import com.lz.modules.performance.req.ChartResultReq;
import com.lz.modules.performance.service.ChartResultService;
import com.lz.modules.sys.service.app.ResultRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @Author: djc
* @Desc:
* @Date: 2020/10/14 16:53
*/
@Service("chartResultService")
public class ChartResultServiceImpl implements ChartResultService {
@Autowired
private ResultRecordService resultRecordService;
@Override
public void ChartReport(ChartResultReq req) {
}
}

View File

@ -200,8 +200,19 @@
select * from lz_flow_record where is_delete = 0 and record_id = #{recordResultId} and type = #{type} and status = #{status}
</select>
<select id="selectFlowRecordIdsByApprovalStaffId" resultType="Long">
select distinct(record_id) from lz_flow_record where is_delete = 0 and approval_staff_id = #{approvalStaffId} and status = 1
<select id="selectFinishTasksByApprovalStaffId" resultType="com.lz.modules.performance.dto.TaskListDto">
SELECT DISTINCT(record_id),flow_process,current_approval_staff_id,staff_id,month_time,r.gmt_modified,f.type from lz_flow_record f
LEFT JOIN lz_result_record r
ON f.record_id = r.id
where f.is_delete=0 and r.is_delete=0
and approval_staff_id = #{approvalStaffId}
and f.status = 1
order by r.gmt_modified desc
</select>
<select id="selectTodoTasksByApprovalStaffId" resultType="com.lz.modules.performance.dto.TaskListDto">
</select>
</mapper>