diff --git a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java index df3820e9..3fe8202b 100644 --- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java +++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java @@ -652,17 +652,9 @@ public class ResultRecordController extends AbstractController { */ @RequestMapping("/new/approval") public R approval(ApprovalDto approvalDto) { + approvalDto.setLoginUserId(approvalDto.getLoginUserId()); return resultRecordService.newApproval(approvalDto); - } - - - - - - - - } diff --git a/src/main/java/com/lz/modules/app/controller/TestController.java b/src/main/java/com/lz/modules/app/controller/TestController.java index 33210f66..0b96c350 100644 --- a/src/main/java/com/lz/modules/app/controller/TestController.java +++ b/src/main/java/com/lz/modules/app/controller/TestController.java @@ -6,6 +6,7 @@ import com.dingtalk.api.response.OapiCrmAuthGroupMemberListResponse; import com.lz.common.utils.R; import com.lz.common.utils.StringUtil; import com.lz.modules.app.dao.DepartmentsDao; +import com.lz.modules.app.dto.ApprovalDto; import com.lz.modules.app.entity.DepartmentsEntity; import com.lz.modules.app.entity.DepartmentsStaffRelateEntity; import com.lz.modules.app.entity.StaffEntity; @@ -261,8 +262,21 @@ public class TestController { @RequestMapping("/test/resultrecord") public void resultRecorcd(Long resultRecordId) throws Exception{ R r = resultRecordService.initFlowRecord(resultRecordId); + } + + /** + * 删除 + */ + // http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=1 + @RequestMapping("/new/approval") + public R approval(Long resultRecordId,Integer status ) { + ApprovalDto approvalDto = new ApprovalDto(); + approvalDto.setResultRecordId(resultRecordId); + approvalDto.setStatus(status); + return resultRecordService.newApproval(approvalDto); + } diff --git a/src/main/java/com/lz/modules/app/dto/ApprovalDto.java b/src/main/java/com/lz/modules/app/dto/ApprovalDto.java index 99445590..04629587 100644 --- a/src/main/java/com/lz/modules/app/dto/ApprovalDto.java +++ b/src/main/java/com/lz/modules/app/dto/ApprovalDto.java @@ -7,4 +7,6 @@ public class ApprovalDto { private Long resultRecordId; private Integer status; //1 提交审批,审批通过,2 撤回,3 催办,5 驳回,6 申述,7 流程终止 private Long loginUserId; + private String menuName; //按钮名称 + private String comment; } 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 c6b13553..7739ceca 100644 --- a/src/main/java/com/lz/modules/flow/dao/FlowRecordMapper.java +++ b/src/main/java/com/lz/modules/flow/dao/FlowRecordMapper.java @@ -62,4 +62,6 @@ public interface FlowRecordMapper extends BaseMapper { List selectFlowRecordByRecordIdStatus(@Param("resultRecordId") Long resultRecordId, @Param("status") Integer status); + + FlowRecord selectFlowRecordByRecordIdAndFlowId(@Param("resultRecordId") Long resultRecordId, @Param("flowId") Long flowId); } \ 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 16aeecc4..3bb55b2b 100644 --- a/src/main/java/com/lz/modules/flow/service/FlowRecordService.java +++ b/src/main/java/com/lz/modules/flow/service/FlowRecordService.java @@ -61,4 +61,6 @@ public interface FlowRecordService extends IService { void insertFlowRecords(List flowRecords); List selectFlowRecordByRecordIdStatus(Long resultRecordId,Integer status); + + FlowRecord selectFlowRecordByRecordIdAndFlowId(Long resultRecordId, Long id); } \ 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 56b0e944..66904608 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 @@ -168,4 +168,9 @@ public class FlowRecordServiceImpl extends ServiceImpl selectFlowRecordByRecordIdStatus(Long resultRecordId,Integer status) { return flowRecordMapper.selectFlowRecordByRecordIdStatus(resultRecordId,status); } + + @Override + public FlowRecord selectFlowRecordByRecordIdAndFlowId(Long resultRecordId, Long flowId) { + return flowRecordMapper.selectFlowRecordByRecordIdAndFlowId(resultRecordId,flowId); + } } diff --git a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java index 35028f44..75402cbb 100644 --- a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java +++ b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java @@ -71,8 +71,7 @@ public class AssessManagerController { if(flowStart == null){ return R.error("没有此条记录"); } - resultRecordMapper.batchDeleteByStartId(flowStart.getId()); + assessManagerService.accessDelete(flowStart); return R.ok(); - } } diff --git a/src/main/java/com/lz/modules/performance/enums/ResultFlowProcessEnum.java b/src/main/java/com/lz/modules/performance/enums/ResultFlowProcessEnum.java index 1af5959e..35c082f9 100644 --- a/src/main/java/com/lz/modules/performance/enums/ResultFlowProcessEnum.java +++ b/src/main/java/com/lz/modules/performance/enums/ResultFlowProcessEnum.java @@ -9,6 +9,7 @@ public enum ResultFlowProcessEnum { TARGET(0,"制定目标"), CONFIRM(1,"目标确认"), DO(2,"执行中"), + WRITE(3,"结果值录入"), SCORE(4,"评分"), FINISH(5,"考核结束"), ; @@ -17,6 +18,15 @@ public enum ResultFlowProcessEnum { private String desc; + public static String getDesc(int status){ + for(ResultFlowProcessEnum flowProcessEnum:ResultFlowProcessEnum.values()){ + if(flowProcessEnum.getStatus() == status){ + return flowProcessEnum.getDesc(); + } + } + return ""; + + } ResultFlowProcessEnum(int status, String desc) { this.status = status; diff --git a/src/main/java/com/lz/modules/performance/res/ChartStatistical.java b/src/main/java/com/lz/modules/performance/res/ChartStatistical.java index 077f99aa..9df82d0c 100644 --- a/src/main/java/com/lz/modules/performance/res/ChartStatistical.java +++ b/src/main/java/com/lz/modules/performance/res/ChartStatistical.java @@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; @Data @ApiModel(value = "报表统计实体") @@ -13,4 +14,7 @@ public class ChartStatistical { @ApiModelProperty(value = "人数",name = "num") private int num = 0; + + @ApiModelProperty(value = "是否被选中",name = "check") + private int check; } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/performance/service/AssessManagerService.java b/src/main/java/com/lz/modules/performance/service/AssessManagerService.java index f75bfbfc..c81c29a6 100644 --- a/src/main/java/com/lz/modules/performance/service/AssessManagerService.java +++ b/src/main/java/com/lz/modules/performance/service/AssessManagerService.java @@ -16,4 +16,6 @@ public interface AssessManagerService { PageUtils assessDetail(AssessDetailReq req); + + void accessDelete(FlowStart flowStart); } diff --git a/src/main/java/com/lz/modules/performance/service/impl/AssessManagerServiceImpl.java b/src/main/java/com/lz/modules/performance/service/impl/AssessManagerServiceImpl.java index 4e5eb8d0..cb2a0e6b 100644 --- a/src/main/java/com/lz/modules/performance/service/impl/AssessManagerServiceImpl.java +++ b/src/main/java/com/lz/modules/performance/service/impl/AssessManagerServiceImpl.java @@ -78,4 +78,12 @@ public class AssessManagerServiceImpl implements AssessManagerService { ); return pageUtils; } + + @Override + public void accessDelete(FlowStart flowStart) { + flowStart.setIsDelete(1); + flowStartMapper.updateFlowStartById(flowStart); + resultRecordMapper.batchDeleteByStartId(flowStart.getId()); + return ; + } } 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 index 420823cf..ea8114b0 100644 --- a/src/main/java/com/lz/modules/performance/service/impl/ChartResultServiceImpl.java +++ b/src/main/java/com/lz/modules/performance/service/impl/ChartResultServiceImpl.java @@ -10,12 +10,14 @@ 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.enums.ResultFlowProcessEnum; 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; import com.lz.modules.performance.service.ChartResultService; import com.lz.modules.sys.dao.app.ResultRecordMapper; +import com.lz.modules.sys.entity.app.ResultRecord; import com.lz.modules.sys.service.app.ResultRecordService; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -53,9 +55,10 @@ public class ChartResultServiceImpl implements ChartResultService { ChartStatisticalRes res; List process = resultRecordService.countNumByFlowProcess(startId); + res = new ChartStatisticalRes(); res.setType(0); - res.setStatisticals(process); + res.setStatisticals(buildProcess(process,startId)); res.setDefaultTime(defaultTime); data.add(res); @@ -140,4 +143,34 @@ public class ChartResultServiceImpl implements ChartResultService { return pages; } + + + //构建流程默认人数 + private List buildProcess(List process,Long startId){ + List data = new ArrayList<>(); + Map map = Maps.newHashMap(); + int count = resultRecordService.count(new QueryWrapper() + .eq("is_delete", 0) + .eq("start_id", startId)); + + ChartStatistical all = new ChartStatistical(); + all.setDesc("参与人数"); + all.setNum(count); + data.add(all); + + for(ChartStatistical statistical:process){ + map.put(ResultFlowProcessEnum.getDesc(Integer.valueOf(statistical.getDesc())),statistical.getNum()); + } + for(ResultFlowProcessEnum flowProcessEnum:ResultFlowProcessEnum.values()){ + ChartStatistical statistical = new ChartStatistical(); + statistical.setDesc(flowProcessEnum.getDesc()); + statistical.setNum(0); + Object o = map.get(flowProcessEnum.getDesc()); + if(o!=null){ + statistical.setNum(Integer.valueOf(o.toString())); + } + data.add(statistical); + } + return data; + } } diff --git a/src/main/java/com/lz/modules/sys/entity/app/ResultComment.java b/src/main/java/com/lz/modules/sys/entity/app/ResultComment.java index 754160f5..d9eff989 100644 --- a/src/main/java/com/lz/modules/sys/entity/app/ResultComment.java +++ b/src/main/java/com/lz/modules/sys/entity/app/ResultComment.java @@ -1,41 +1,55 @@ package com.lz.modules.sys.entity.app; -import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** *

-* 菜单权限表 *

*业绩评论表 * @author quyixiao -* @since 2020-09-21 +* @since 2020-10-26 */ @Data @TableName("lz_result_comment") +@ApiModel(value = "业绩评论表") public class ResultComment implements java.io.Serializable { // @TableId(value = "id", type = IdType.AUTO) private Long id; //是否删除状态,1:删除,0:有效 + @ApiModelProperty(value = "是否删除状态,1:删除,0:有效", name = "isDelete") private Integer isDelete; //创建时间 + @ApiModelProperty(value = "创建时间", name = "gmtCreate") private Date gmtCreate; //最后修改时间 + @ApiModelProperty(value = "最后修改时间", name = "gmtModified") private Date gmtModified; //记录id + @ApiModelProperty(value = "记录id", name = "recordId") private Long recordId; //评论用户id + @ApiModelProperty(value = "评论用户id", name = "staffId") private Long staffId; //评论内容 + @ApiModelProperty(value = "评论内容", name = "comment") private String comment; //评论用户名称 + @ApiModelProperty(value = "评论用户名称", name = "staffName") private String staffName; //状态 + @ApiModelProperty(value = "状态", name = "status") private Integer status; //流程id + @ApiModelProperty(value = "流程id", name = "flowRecordId") private Long flowRecordId; + //操作名称 + @ApiModelProperty(value = "操作名称", name = "optDesc") + private String optDesc; /** * * @return @@ -186,6 +200,21 @@ public class ResultComment implements java.io.Serializable { this.flowRecordId = flowRecordId; } + /** + * 操作名称 + * @return + */ + public String getOptDesc() { + return optDesc; + } + /** + * 操作名称 + * @param optDesc + */ + public void setOptDesc(String optDesc) { + this.optDesc = optDesc; + } + @Override public String toString() { return "ResultComment{" + @@ -199,6 +228,7 @@ public class ResultComment implements java.io.Serializable { ",staffName=" + staffName + ",status=" + status + ",flowRecordId=" + flowRecordId + + ",optDesc=" + optDesc + "}"; } } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java b/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java index 4cddc7c0..b6731bf0 100644 --- a/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java +++ b/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java @@ -31,6 +31,7 @@ import com.lz.modules.performance.req.AssessDetailReq; import com.lz.modules.performance.res.ChartStatistical; import com.lz.modules.sys.dao.app.ResultRecordMapper; import com.lz.modules.sys.entity.SysUserEntity; +import com.lz.modules.sys.entity.app.ResultComment; import com.lz.modules.sys.entity.app.ResultDetail; import com.lz.modules.sys.entity.app.ResultRecord; import com.lz.modules.sys.service.app.ResultCommentService; @@ -818,21 +819,38 @@ public class ResultRecordServiceImpl extends ServiceImpl flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(approvalDto.getResultRecordId(), 1); + if(flowRecords!=null && flowRecords.size()>0){ + return R.error("领导己经审批,不能撤回"); + } + return newReject(approvalDto); + } + + public void comment (ApprovalDto approvalDto,FlowChart flowChart){ + ResultRecord resultRecord = resultRecordMapper.selectResultRecordById(approvalDto.getResultRecordId()); + StaffEntity staffEntity = staffService.selectStaffById(resultRecord.getCurrentApprovalStaffId()); + ResultComment resultComment = new ResultComment(); + resultComment.setComment(approvalDto.getComment()); + resultComment.setStaffName(staffEntity.getName()); + resultComment.setRecordId(approvalDto.getResultRecordId()); + resultComment.setOptDesc(approvalDto.getMenuName() + flowChart.getName()); + resultCommentService.insertResultComment(resultComment); + } + private R newSubmit(ApprovalDto approvalDto) { List flowRecords = flowRecordService.selectFlowRecordByRecordId(approvalDto.getResultRecordId()); ResultRecord resultRecord = resultRecordMapper.selectResultRecordById(approvalDto.getResultRecordId()); @@ -858,6 +876,7 @@ public class ResultRecordServiceImpl extends ServiceImpl + - id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, record_id AS recordId, staff_id AS staffId, comment AS comment, staff_name AS staffName, status AS status, flow_record_id AS flowRecordId + id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, record_id AS recordId, staff_id AS staffId, comment AS comment, staff_name AS staffName, status AS status, flow_record_id AS flowRecordId, opt_desc AS optDesc @@ -38,6 +39,7 @@ staff_name, status, flow_record_id, + opt_desc, is_delete, gmt_create, gmt_modified @@ -48,6 +50,7 @@ #{ staffName}, #{ status}, #{ flowRecordId}, + #{ optDesc}, 0, now(), now() @@ -66,7 +69,8 @@ comment = #{comment}, staff_name = #{staffName}, status = #{status}, - flow_record_id = #{flowRecordId} + flow_record_id = #{flowRecordId}, + opt_desc = #{optDesc} ,gmt_modified = now() where id = #{id} @@ -84,7 +88,8 @@ comment = #{comment}, staff_name = #{staffName}, status = #{status}, - flow_record_id = #{flowRecordId} + flow_record_id = #{flowRecordId}, + opt_desc = #{optDesc} ,gmt_modified = now() where id = #{id} diff --git a/src/main/resources/mapper/app/ResultRecordMapper.xml b/src/main/resources/mapper/app/ResultRecordMapper.xml index 3b056758..961f96ab 100644 --- a/src/main/resources/mapper/app/ResultRecordMapper.xml +++ b/src/main/resources/mapper/app/ResultRecordMapper.xml @@ -357,7 +357,7 @@ select * from lz_flow_record where is_delete = 0 and record_id = #{resultRecordId} and status = #{status} - + diff --git a/src/test/java/com/lz/mysql/MysqlMain.java b/src/test/java/com/lz/mysql/MysqlMain.java index b9a6be0a..94d28ea8 100644 --- a/src/test/java/com/lz/mysql/MysqlMain.java +++ b/src/test/java/com/lz/mysql/MysqlMain.java @@ -96,7 +96,7 @@ public class MysqlMain { //list.add(new TablesBean("lz_flow_chart_detail_record")); //list.add(new TablesBean("lz_flow_approval_role")); - list.add(new TablesBean("lz_flow_chart")); + list.add(new TablesBean("lz_result_comment")); List list2 = new ArrayList(); Map map = MysqlUtil2ShowCreateTable.getComments();