提交修改

This commit is contained in:
quyixiao 2020-10-27 14:58:47 +08:00
commit 8d7cb7dc39
11 changed files with 755 additions and 18 deletions

View File

@ -14,16 +14,11 @@ import com.lz.modules.app.resp.Step;
import com.lz.modules.app.service.DepartmentsService;
import com.lz.modules.app.service.DepartmentsStaffRelateService;
import com.lz.modules.app.service.StaffService;
import com.lz.modules.flow.entity.FlowRecord;
import com.lz.modules.flow.entity.RecordAuth;
import com.lz.modules.flow.entity.RecordFile;
import com.lz.modules.flow.entity.StaffRole;
import com.lz.modules.flow.entity.*;
import com.lz.modules.flow.model.Auth;
import com.lz.modules.flow.model.ResultRecordDetailDto;
import com.lz.modules.flow.req.ResultDetailReq;
import com.lz.modules.flow.service.FlowRecordService;
import com.lz.modules.flow.service.RecordAuthService;
import com.lz.modules.flow.service.RecordFileService;
import com.lz.modules.flow.service.StaffRoleService;
import com.lz.modules.flow.service.*;
import com.lz.modules.sys.controller.AbstractController;
import com.lz.modules.sys.entity.SysUserEntity;
import com.lz.modules.sys.entity.app.ResultComment;
@ -32,15 +27,13 @@ import com.lz.modules.sys.entity.app.ResultRecord;
import com.lz.modules.sys.service.app.ResultCommentService;
import com.lz.modules.sys.service.app.ResultDetailService;
import com.lz.modules.sys.service.app.ResultRecordService;
import io.swagger.annotations.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
@ -58,6 +51,7 @@ import java.util.stream.Collectors;
@RestController
@RequestMapping("user/lzresultrecord")
@Slf4j
@Api("绩效相关-吴林")
public class ResultRecordController extends AbstractController {
@Autowired
private ResultRecordService lzResultRecordService;
@ -82,6 +76,8 @@ public class ResultRecordController extends AbstractController {
@Autowired
private RecordFileService recordFileService;
@Autowired
private EvaluationStartStaffService evaluationStartStaffService;
@ -91,6 +87,9 @@ public class ResultRecordController extends AbstractController {
@Autowired
private RedisCacheUtil redisCacheUtil;
@Autowired
private ResultModelService resultModelService;
/**
* 列表
*/
@ -316,6 +315,29 @@ public class ResultRecordController extends AbstractController {
return R.ok().put("lzResultRecord", lzResultRecord);
}
/**
* 信息
*/
@GetMapping("/getDetail")
@ApiOperation("获取绩效详情")
@ApiResponses({@ApiResponse(code = 200, message = "成功", response = ResultRecordDetailDto.class)})
public R getDetail(@RequestParam @ApiParam("绩效id") Long id) {
ResultRecord resultRecord = lzResultRecordService.selectResultRecordById(id);
SysUserEntity user = getUser();
if(resultRecord.getStaffId().longValue() != user.getUserId().longValue()){
//下面判断权限,是否可读
EvaluationStartStaff evaluationStartStaff =
evaluationStartStaffService.selectManagerEvaluationStartStaff(resultRecord.getEvaluationId(), user.getUserId());
if(evaluationStartStaff == null){//非考核组设置的绩效管理人员下面应在查询其他权限
return R.error("未被授权访问");
}
}
//获取考核维度等信息
List<ResultModel> resultModels = resultModelService.selectResultModelByGroupId(resultRecord.getEvaluationId());
return R.ok().put("data", resultRecord);
}
/**
* 信息
*/

View File

@ -36,4 +36,6 @@ public interface EvaluationStartStaffMapper extends BaseMapper<EvaluationStartSt
Long insertEvaluationStartStaffs(@Param("list") List<EvaluationStartStaff> evaluationStartStaffs);
EvaluationStartStaff selectOneByStartIdAndStaffId(@Param("startId")Long startId,@Param("staffId")Long staffId);
EvaluationStartStaff selectManagerEvaluationStartStaff(@Param("evaluationId") Long evaluationId, @Param("staffId") Long userId);
}

View File

@ -0,0 +1,218 @@
package com.lz.modules.flow.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* <p>
* </p>*业绩详情表
* @author quyixiao
* @since 2020-10-27
*/
@Data
@ApiModel(value = "业绩详情表Dto")
public class ResultDetailDto {
//
@ApiModelProperty(value = "", name = "id")
private Long id;
//1业绩2文化价值观
@ApiModelProperty(value = "1业绩2文化价值观", name = "type")
private Integer type;
//目标
@ApiModelProperty(value = "目标", name = "target")
private String target;
//关键结果
@ApiModelProperty(value = "关键结果", name = "keyResult")
private String keyResult;
//考核权重
@ApiModelProperty(value = "考核权重", name = "checkWeight")
private BigDecimal checkWeight;
//考核结果
@ApiModelProperty(value = "考核结果", name = "checkResult")
private String checkResult;
//直属上级评分
@ApiModelProperty(value = "直属上级评分", name = "superScore")
private String superScore;
//得分
@ApiModelProperty(value = "得分", name = "acquireScore")
private BigDecimal acquireScore;
//评分说明
@ApiModelProperty(value = "评分说明", name = "scoreComment")
private String scoreComment;
//优先级从大到小
@ApiModelProperty(value = "优先级,从大到小", name = "priority")
private Integer priority;
/**
*
* @return
*/
public Long getId() {
return id;
}
/**
*
* @param id
*/
public void setId(Long id) {
this.id = id;
}
/**
* 1业绩2文化价值观
* @return
*/
public Integer getType() {
return type;
}
/**
* 1业绩2文化价值观
* @param type
*/
public void setType(Integer type) {
this.type = type;
}
/**
* 目标
* @return
*/
public String getTarget() {
return target;
}
/**
* 目标
* @param target
*/
public void setTarget(String target) {
this.target = target;
}
/**
* 关键结果
* @return
*/
public String getKeyResult() {
return keyResult;
}
/**
* 关键结果
* @param keyResult
*/
public void setKeyResult(String keyResult) {
this.keyResult = keyResult;
}
/**
* 考核权重
* @return
*/
public BigDecimal getCheckWeight() {
return checkWeight;
}
/**
* 考核权重
* @param checkWeight
*/
public void setCheckWeight(BigDecimal checkWeight) {
this.checkWeight = checkWeight;
}
/**
* 考核结果
* @return
*/
public String getCheckResult() {
return checkResult;
}
/**
* 考核结果
* @param checkResult
*/
public void setCheckResult(String checkResult) {
this.checkResult = checkResult;
}
/**
* 直属上级评分
* @return
*/
public String getSuperScore() {
return superScore;
}
/**
* 直属上级评分
* @param superScore
*/
public void setSuperScore(String superScore) {
this.superScore = superScore;
}
/**
* 得分
* @return
*/
public BigDecimal getAcquireScore() {
return acquireScore;
}
/**
* 得分
* @param acquireScore
*/
public void setAcquireScore(BigDecimal acquireScore) {
this.acquireScore = acquireScore;
}
/**
* 评分说明
* @return
*/
public String getScoreComment() {
return scoreComment;
}
/**
* 评分说明
* @param scoreComment
*/
public void setScoreComment(String scoreComment) {
this.scoreComment = scoreComment;
}
/**
* 优先级从大到小
* @return
*/
public Integer getPriority() {
return priority;
}
/**
* 优先级从大到小
* @param priority
*/
public void setPriority(Integer priority) {
this.priority = priority;
}
@Override
public String toString() {
return "ResultDetailDto{" +
",id=" + id +
",type=" + type +
",target=" + target +
",keyResult=" + keyResult +
",checkWeight=" + checkWeight +
",checkResult=" + checkResult +
",superScore=" + superScore +
",acquireScore=" + acquireScore +
",scoreComment=" + scoreComment +
",priority=" + priority +
"}";
}
}

View File

@ -0,0 +1,301 @@
package com.lz.modules.flow.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* <p>
* </p>*业绩记录表
* @author quyixiao
* @since 2020-10-27
*/
@Data
@ApiModel(value = "业绩详情Dto")
public class ResultRecordDetailDto {
//
@ApiModelProperty(value = "", name = "id")
private Long id;
//0.新建1 提交审批中2 拒绝, 3 侍提交 4 审批通过,5 驳回6申述7 流程终止
@ApiModelProperty(value = "0.新建1 提交审批中2 拒绝, 3 侍提交 4 审批通过,5 驳回6申述7 流程终止", name = "status")
private Integer status;
//最后得分
@ApiModelProperty(value = "最后得分", name = "lastScore")
private BigDecimal lastScore;
//总分
@ApiModelProperty(value = "总分", name = "allScore")
private BigDecimal allScore;
//备注
@ApiModelProperty(value = "备注", name = "remark")
private String remark;
//员工id
@ApiModelProperty(value = "员工id", name = "staffId")
private Long staffId;
//当前审批流转所在员工 id
@ApiModelProperty(value = "当前审批流转所在员工 id", name = "flowStaffIdRole")
private Long flowStaffIdRole;
//员工所在部门 id
@ApiModelProperty(value = "员工所在部门 id", name = "departmentId")
private Long departmentId;
//员工所在部门名称
@ApiModelProperty(value = "员工所在部门名称", name = "departmentName")
private String departmentName;
//员工姓名
@ApiModelProperty(value = "员工姓名", name = "staffName")
private String staffName;
//当前审批的员工 id
@ApiModelProperty(value = "当前审批的员工 id", name = "currentApprovalStaffId")
private Long currentApprovalStaffId;
//当前审批的员工名以逗号隔开
@ApiModelProperty(value = "当前审批的员工名,以逗号隔开", name = "currentApprovalStaffName")
private String currentApprovalStaffName;
//等级
@ApiModelProperty(value = "等级", name = "scoreLevel")
private String scoreLevel;
//当前是目标确认还是评分0目标制定1目标确认2执行中3结果值录入4评分5考核结束
@ApiModelProperty(value = "当前是目标确认还是评分0目标制定1目标确认2执行中3结果值录入4评分5考核结束", name = "flowProcess")
private Integer flowProcess;
List<ResultRecortModelDto> recortModelDtos;
/**
*
* @return
*/
public Long getId() {
return id;
}
/**
*
* @param id
*/
public void setId(Long id) {
this.id = id;
}
/**
* 0.新建1 提交审批中2 拒绝, 3 侍提交 4 审批通过,5 驳回6申述7 流程终止
* @return
*/
public Integer getStatus() {
return status;
}
/**
* 0.新建1 提交审批中2 拒绝, 3 侍提交 4 审批通过,5 驳回6申述7 流程终止
* @param status
*/
public void setStatus(Integer status) {
this.status = status;
}
/**
* 最后得分
* @return
*/
public BigDecimal getLastScore() {
return lastScore;
}
/**
* 最后得分
* @param lastScore
*/
public void setLastScore(BigDecimal lastScore) {
this.lastScore = lastScore;
}
/**
* 总分
* @return
*/
public BigDecimal getAllScore() {
return allScore;
}
/**
* 总分
* @param allScore
*/
public void setAllScore(BigDecimal allScore) {
this.allScore = allScore;
}
/**
* 备注
* @return
*/
public String getRemark() {
return remark;
}
/**
* 备注
* @param remark
*/
public void setRemark(String remark) {
this.remark = remark;
}
/**
* 员工id
* @return
*/
public Long getStaffId() {
return staffId;
}
/**
* 员工id
* @param staffId
*/
public void setStaffId(Long staffId) {
this.staffId = staffId;
}
/**
* 当前审批流转所在员工 id
* @return
*/
public Long getFlowStaffIdRole() {
return flowStaffIdRole;
}
/**
* 当前审批流转所在员工 id
* @param flowStaffIdRole
*/
public void setFlowStaffIdRole(Long flowStaffIdRole) {
this.flowStaffIdRole = flowStaffIdRole;
}
/**
* 员工所在部门 id
* @return
*/
public Long getDepartmentId() {
return departmentId;
}
/**
* 员工所在部门 id
* @param departmentId
*/
public void setDepartmentId(Long departmentId) {
this.departmentId = departmentId;
}
/**
* 员工所在部门名称
* @return
*/
public String getDepartmentName() {
return departmentName;
}
/**
* 员工所在部门名称
* @param departmentName
*/
public void setDepartmentName(String departmentName) {
this.departmentName = departmentName;
}
/**
* 员工姓名
* @return
*/
public String getStaffName() {
return staffName;
}
/**
* 员工姓名
* @param staffName
*/
public void setStaffName(String staffName) {
this.staffName = staffName;
}
/**
* 当前审批的员工 id
* @return
*/
public Long getCurrentApprovalStaffId() {
return currentApprovalStaffId;
}
/**
* 当前审批的员工 id
* @param currentApprovalStaffId
*/
public void setCurrentApprovalStaffId(Long currentApprovalStaffId) {
this.currentApprovalStaffId = currentApprovalStaffId;
}
/**
* 当前审批的员工名以逗号隔开
* @return
*/
public String getCurrentApprovalStaffName() {
return currentApprovalStaffName;
}
/**
* 当前审批的员工名以逗号隔开
* @param currentApprovalStaffName
*/
public void setCurrentApprovalStaffName(String currentApprovalStaffName) {
this.currentApprovalStaffName = currentApprovalStaffName;
}
/**
* 等级
* @return
*/
public String getScoreLevel() {
return scoreLevel;
}
/**
* 等级
* @param scoreLevel
*/
public void setScoreLevel(String scoreLevel) {
this.scoreLevel = scoreLevel;
}
/**
* 当前是目标确认还是评分0目标制定1目标确认2执行中3结果值录入4评分5考核结束
* @return
*/
public Integer getFlowProcess() {
return flowProcess;
}
/**
* 当前是目标确认还是评分0目标制定1目标确认2执行中3结果值录入4评分5考核结束
* @param flowProcess
*/
public void setFlowProcess(Integer flowProcess) {
this.flowProcess = flowProcess;
}
@Override
public String toString() {
return "ResultRecordDto{" +
",id=" + id +
",status=" + status +
",lastScore=" + lastScore +
",allScore=" + allScore +
",remark=" + remark +
",staffId=" + staffId +
",flowStaffIdRole=" + flowStaffIdRole +
",departmentId=" + departmentId +
",departmentName=" + departmentName +
",staffName=" + staffName +
",currentApprovalStaffId=" + currentApprovalStaffId +
",currentApprovalStaffName=" + currentApprovalStaffName +
",scoreLevel=" + scoreLevel +
",flowProcess=" + flowProcess +
"}";
}
}

View File

@ -0,0 +1,183 @@
package com.lz.modules.flow.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* <p>
* </p>*考核维度表
* @author quyixiao
* @since 2020-10-19
*/
@Data
@ApiModel(value = "绩效维度表Dto")
public class ResultRecortModelDto {
//
@ApiModelProperty(value = "", name = "id")
private Long id;
//维度名称
@ApiModelProperty(value = "维度名称", name = "name")
private String name;
//1:业绩 2文化价值观
@ApiModelProperty(value = "1:业绩 2文化价值观", name = "type")
private Integer type;
//权重 0不限权重
@ApiModelProperty(value = "权重 0不限权重", name = "weight")
private BigDecimal weight;
//考核子项目个数最大限制
@ApiModelProperty(value = "考核子项目个数最大限制", name = "maxCount")
private Integer maxCount;
//lz_result_calculate 的id计算法方法id
@ApiModelProperty(value = "lz_result_calculate 的id计算法方法id", name = "calculateId")
private Long calculateId;
//使用的哪个等级等级组idlz_result_grade的group_id
@ApiModelProperty(value = "使用的哪个等级。等级组idlz_result_grade的group_id", name = "gradeGroupId")
private Long gradeGroupId;
//排序
@ApiModelProperty(value = "排序", name = "orderBy")
private Integer orderBy;
@ApiModelProperty(value = "绩效指标", name = "detailDtos")
private List<ResultDetailDto> detailDtos;
/**
*
* @return
*/
public Long getId() {
return id;
}
/**
*
* @param id
*/
public void setId(Long id) {
this.id = id;
}
/**
* 维度名称
* @return
*/
public String getName() {
return name;
}
/**
* 维度名称
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* 1:业绩 2文化价值观
* @return
*/
public Integer getType() {
return type;
}
/**
* 1:业绩 2文化价值观
* @param type
*/
public void setType(Integer type) {
this.type = type;
}
/**
* 权重 0不限权重
* @return
*/
public BigDecimal getWeight() {
return weight;
}
/**
* 权重 0不限权重
* @param weight
*/
public void setWeight(BigDecimal weight) {
this.weight = weight;
}
/**
* 考核子项目个数最大限制
* @return
*/
public Integer getMaxCount() {
return maxCount;
}
/**
* 考核子项目个数最大限制
* @param maxCount
*/
public void setMaxCount(Integer maxCount) {
this.maxCount = maxCount;
}
/**
* lz_result_calculate 的id计算法方法id
* @return
*/
public Long getCalculateId() {
return calculateId;
}
/**
* lz_result_calculate 的id计算法方法id
* @param calculateId
*/
public void setCalculateId(Long calculateId) {
this.calculateId = calculateId;
}
/**
* 使用的哪个等级等级组idlz_result_grade的group_id
* @return
*/
public Long getGradeGroupId() {
return gradeGroupId;
}
/**
* 使用的哪个等级等级组idlz_result_grade的group_id
* @param gradeGroupId
*/
public void setGradeGroupId(Long gradeGroupId) {
this.gradeGroupId = gradeGroupId;
}
/**
* 排序
* @return
*/
public Integer getOrderBy() {
return orderBy;
}
/**
* 排序
* @param orderBy
*/
public void setOrderBy(Integer orderBy) {
this.orderBy = orderBy;
}
@Override
public String toString() {
return "ResultModel{" +
",id=" + id +
",name=" + name +
",type=" + type +
",weight=" + weight +
",maxCount=" + maxCount +
",calculateId=" + calculateId +
",gradeGroupId=" + gradeGroupId +
",orderBy=" + orderBy +
"}";
}
}

View File

@ -35,4 +35,6 @@ public interface EvaluationStartStaffService extends IService<EvaluationStartSta
Long insertEvaluationStartStaffs(List<EvaluationStartStaff> evaluationStartStaffs);
EvaluationStartStaff selectOneByStartIdAndStaffId(Long startId,Long staffId);
EvaluationStartStaff selectManagerEvaluationStartStaff(Long evaluationId, Long userId);
}

View File

@ -93,4 +93,9 @@ public class EvaluationStartStaffServiceImpl extends ServiceImpl<EvaluationStart
public EvaluationStartStaff selectOneByStartIdAndStaffId(Long startId,Long staffId) {
return evaluationStartStaffMapper.selectOneByStartIdAndStaffId(startId,staffId);
}
@Override
public EvaluationStartStaff selectManagerEvaluationStartStaff(Long evaluationId, Long userId){
return evaluationStartStaffMapper.selectManagerEvaluationStartStaff(evaluationId,userId);
}
}

View File

@ -480,7 +480,7 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
}
}
return R.ok("发起成功");
return R.ok("发起成功").put("data", flowStart);
}
@Override

View File

@ -22,9 +22,7 @@ import com.lz.modules.sys.entity.app.ResultDetail;
import com.lz.modules.sys.entity.app.ResultRecord;
import com.lz.modules.sys.service.app.ResultDetailService;
import com.lz.modules.sys.service.app.ResultRecordService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.*;
import org.apache.commons.collections.map.HashedMap;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -69,6 +67,7 @@ public class FlowStartController {
@PostMapping("/save")
@ApiOperation("发起新的考核任务")
@ApiResponses({@ApiResponse(code = 200, message = "成功", response = FlowStart.class)})
public R save(@RequestBody @ApiParam FlowStart flowStart) {
return flowStartService.saveStart(flowStart);
}

View File

@ -118,7 +118,12 @@
<select id="selectOneByStartIdAndStaffId" resultType="EvaluationStartStaff">
select * from lz_evaluation_start_staff where startId=#{startId} AND staffId =#{staffId} and is_delete = 0 limit 1
select * from lz_evaluation_start_staff where start_id=#{startId} AND staff_id =#{staffId} and is_delete = 0 limit 1
</select>
<select id="selectManagerEvaluationStartStaff" resultType="EvaluationStartStaff">
select * from lz_evaluation_start_staff where evaluation_id=#{evaluationId}
AND staff_id =#{staffId} and type = 1 is_delete = 0 and limit 1
</select>
</mapper>

View File

@ -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_result_comment"));
list.add(new TablesBean("lz_result_detail"));
List<TablesBean> list2 = new ArrayList<TablesBean>();
Map<String, String> map = MysqlUtil2ShowCreateTable.getComments();