diff --git a/src/main/java/com/lz/modules/flow/dao/FlowRecordMapper.java b/src/main/java/com/lz/modules/flow/dao/FlowRecordMapper.java index d0a33b7b..ca0ebd15 100644 --- a/src/main/java/com/lz/modules/flow/dao/FlowRecordMapper.java +++ b/src/main/java/com/lz/modules/flow/dao/FlowRecordMapper.java @@ -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 { Long copyFlowRecord(FlowRecord flowRecord); //查看自己要审批的记录 status为1代表流程走到了这里 - List selectFlowRecordIdsByApprovalStaffId(@Param("approvalStaffId") Long approvalStaffId); + List selectTodoTasksByApprovalStaffId(@Param("approvalStaffId") Long approvalStaffId, @Param("page") IPage page); + + List selectFinishTasksByApprovalStaffId(@Param("approvalStaffId") Long approvalStaffId, @Param("page") IPage page); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/FlowRecordService.java b/src/main/java/com/lz/modules/flow/service/FlowRecordService.java index b4cc0c42..6f8086d9 100644 --- a/src/main/java/com/lz/modules/flow/service/FlowRecordService.java +++ b/src/main/java/com/lz/modules/flow/service/FlowRecordService.java @@ -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 { Long copyFlowRecord(FlowRecord flowRecord); - List selectFlowRecordIdsByApprovalStaffId(Long approvalStaffId); + PageUtils selectTaskListByApprovalStaffId(AssessTaskReq req, Long approvalStaffId); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/impl/FlowRecordServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/FlowRecordServiceImpl.java index 3eed82ec..73664d5d 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/FlowRecordServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/FlowRecordServiceImpl.java @@ -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 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; } } diff --git a/src/main/java/com/lz/modules/performance/controller/TaskController.java b/src/main/java/com/lz/modules/performance/controller/SmartPerformanceController.java similarity index 51% rename from src/main/java/com/lz/modules/performance/controller/TaskController.java rename to src/main/java/com/lz/modules/performance/controller/SmartPerformanceController.java index 2de967ab..49019058 100644 --- a/src/main/java/com/lz/modules/performance/controller/TaskController.java +++ b/src/main/java/com/lz/modules/performance/controller/SmartPerformanceController.java @@ -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 list = new ArrayList<>(); - Long userId = getUserId(); - List 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(); - } } diff --git a/src/main/java/com/lz/modules/performance/dto/TaskListDto.java b/src/main/java/com/lz/modules/performance/dto/TaskListDto.java new file mode 100644 index 00000000..4d68962f --- /dev/null +++ b/src/main/java/com/lz/modules/performance/dto/TaskListDto.java @@ -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; +} diff --git a/src/main/java/com/lz/modules/performance/enums/ResultFlowProcessEnum.java b/src/main/java/com/lz/modules/performance/enums/ResultFlowProcessEnum.java new file mode 100644 index 00000000..1af5959e --- /dev/null +++ b/src/main/java/com/lz/modules/performance/enums/ResultFlowProcessEnum.java @@ -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; + } +} diff --git a/src/main/java/com/lz/modules/performance/req/AssessTaskReq.java b/src/main/java/com/lz/modules/performance/req/AssessTaskReq.java new file mode 100644 index 00000000..41bfd27c --- /dev/null +++ b/src/main/java/com/lz/modules/performance/req/AssessTaskReq.java @@ -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; +} diff --git a/src/main/java/com/lz/modules/performance/req/ChartResultReq.java b/src/main/java/com/lz/modules/performance/req/ChartResultReq.java new file mode 100644 index 00000000..0b879684 --- /dev/null +++ b/src/main/java/com/lz/modules/performance/req/ChartResultReq.java @@ -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; + +} diff --git a/src/main/java/com/lz/modules/performance/res/chartStatisticalRes.java b/src/main/java/com/lz/modules/performance/res/ChartStatisticalRes.java similarity index 87% rename from src/main/java/com/lz/modules/performance/res/chartStatisticalRes.java rename to src/main/java/com/lz/modules/performance/res/ChartStatisticalRes.java index 8eb3ac05..3bb6e1dc 100644 --- a/src/main/java/com/lz/modules/performance/res/chartStatisticalRes.java +++ b/src/main/java/com/lz/modules/performance/res/ChartStatisticalRes.java @@ -8,7 +8,7 @@ import lombok.Data; * @Date: 2020/10/13 18:25 */ @Data -public class chartStatisticalRes { +public class ChartStatisticalRes { private String desc; //人数 diff --git a/src/main/java/com/lz/modules/performance/res/TaskListRes.java b/src/main/java/com/lz/modules/performance/res/TaskListRes.java index e034df09..da8e681e 100644 --- a/src/main/java/com/lz/modules/performance/res/TaskListRes.java +++ b/src/main/java/com/lz/modules/performance/res/TaskListRes.java @@ -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; } diff --git a/src/main/java/com/lz/modules/performance/service/AssessTaskService.java b/src/main/java/com/lz/modules/performance/service/AssessTaskService.java new file mode 100644 index 00000000..d9b27994 --- /dev/null +++ b/src/main/java/com/lz/modules/performance/service/AssessTaskService.java @@ -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); +} diff --git a/src/main/java/com/lz/modules/performance/service/ChartResultService.java b/src/main/java/com/lz/modules/performance/service/ChartResultService.java new file mode 100644 index 00000000..d72790eb --- /dev/null +++ b/src/main/java/com/lz/modules/performance/service/ChartResultService.java @@ -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); +} diff --git a/src/main/java/com/lz/modules/performance/service/impl/AssessTaskServiceImpl.java b/src/main/java/com/lz/modules/performance/service/impl/AssessTaskServiceImpl.java new file mode 100644 index 00000000..6036c886 --- /dev/null +++ b/src/main/java/com/lz/modules/performance/service/impl/AssessTaskServiceImpl.java @@ -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 list = new ArrayList<>(); + PageUtils pageUtils = flowRecordService.selectTaskListByApprovalStaffId(req,userId); + if(CollectionUtils.isEmpty(pageUtils.getList())){ + return data; + } + List 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; + } +} diff --git a/src/main/java/com/lz/modules/performance/service/impl/ChartResultServiceImpl.java b/src/main/java/com/lz/modules/performance/service/impl/ChartResultServiceImpl.java new file mode 100644 index 00000000..00f120ae --- /dev/null +++ b/src/main/java/com/lz/modules/performance/service/impl/ChartResultServiceImpl.java @@ -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) { + + + } +} diff --git a/src/main/resources/mapper/flow/FlowRecordMapper.xml b/src/main/resources/mapper/flow/FlowRecordMapper.xml index 6bf94bed..47e6523c 100644 --- a/src/main/resources/mapper/flow/FlowRecordMapper.xml +++ b/src/main/resources/mapper/flow/FlowRecordMapper.xml @@ -200,8 +200,19 @@ select * from lz_flow_record where is_delete = 0 and record_id = #{recordResultId} and type = #{type} and status = #{status} - + 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 + + +