Commit bc7eba2a by tangzhaoqian Committed by chenzg

绩效管理优化、bug修复、测试

parent fc873d2f
...@@ -66,6 +66,12 @@ public class JxglAppraisal extends Model<JxglAppraisal> { ...@@ -66,6 +66,12 @@ public class JxglAppraisal extends Model<JxglAppraisal> {
@ApiModelProperty(value = "状态 0目标填写 1目标确认 2自评 3上级评分 4 结果确认 5考核完成 6终止考核 7归档", example = "0") @ApiModelProperty(value = "状态 0目标填写 1目标确认 2自评 3上级评分 4 结果确认 5考核完成 6终止考核 7归档", example = "0")
private Integer sts; private Integer sts;
@ApiModelProperty(value = "总分", example = "0")
private Double total;
@ApiModelProperty(value = "等级", example = "0")
private String level;
// 已归档绩效 // 已归档绩效
@TableField(exist = false) @TableField(exist = false)
private Integer archivedPNum; private Integer archivedPNum;
...@@ -99,9 +105,10 @@ public class JxglAppraisal extends Model<JxglAppraisal> { ...@@ -99,9 +105,10 @@ public class JxglAppraisal extends Model<JxglAppraisal> {
@TableField(exist = false) @TableField(exist = false)
private String executorName; private String executorName;
@TableField(exist = false) @TableField(exist = false)
private Double comprehensiveScore; private Integer executorId;
@TableField(exist = false) @TableField(exist = false)
private String level; private Integer noteSts;
@TableField(exist = false) @TableField(exist = false)
private String confirmor; private String confirmor;
......
...@@ -55,7 +55,7 @@ public class JxglAppraisalAssessment extends Model<JxglAppraisalAssessment> { ...@@ -55,7 +55,7 @@ public class JxglAppraisalAssessment extends Model<JxglAppraisalAssessment> {
@NotBlank(message = ValidationMsg.NOTBLANK) @NotBlank(message = ValidationMsg.NOTBLANK)
@ApiModelProperty(value = "综合评分", example = "综合评分") @ApiModelProperty(value = "综合评分", example = "综合评分")
private String comprehensiveScore; private Double comprehensiveScore;
@ApiModelProperty(value = "评语", example = "评语") @ApiModelProperty(value = "评语", example = "评语")
private String remarks; private String remarks;
......
...@@ -48,6 +48,9 @@ public class JxglAppraisalIndicators extends Model<JxglAppraisalIndicators> { ...@@ -48,6 +48,9 @@ public class JxglAppraisalIndicators extends Model<JxglAppraisalIndicators> {
@ApiModelProperty(value = "标题", example = "标题") @ApiModelProperty(value = "标题", example = "标题")
private String title; private String title;
@ApiModelProperty(value = "内容", example = "内容")
private String content;
@ApiModelProperty(value = "权重 整数,单位%", example = "10") @ApiModelProperty(value = "权重 整数,单位%", example = "10")
private Integer weight; private Integer weight;
......
...@@ -49,6 +49,9 @@ public class JxglAppraisalIndicatorsT extends Model<JxglAppraisalIndicatorsT> { ...@@ -49,6 +49,9 @@ public class JxglAppraisalIndicatorsT extends Model<JxglAppraisalIndicatorsT> {
@ApiModelProperty(value = "标题", example = "标题") @ApiModelProperty(value = "标题", example = "标题")
private String title; private String title;
@ApiModelProperty(value = "内容", example = "内容")
private String content;
@ApiModelProperty(value = "权重 整数,单位%", example = "10") @ApiModelProperty(value = "权重 整数,单位%", example = "10")
private Integer weight; private Integer weight;
......
...@@ -66,6 +66,8 @@ public class JxglAppraisalT extends Model<JxglAppraisalT> { ...@@ -66,6 +66,8 @@ public class JxglAppraisalT extends Model<JxglAppraisalT> {
@ApiModelProperty(value = "更新时间", example = "2020-10-10 10:10:10") @ApiModelProperty(value = "更新时间", example = "2020-10-10 10:10:10")
private Date updateTime; private Date updateTime;
@Min(value = 0,message = ValidationMsg.MIN)
@Max(value = 1,message = ValidationMsg.MAX)
@ApiModelProperty(value = "是否可编辑 限制员工的权限", example = "0") @ApiModelProperty(value = "是否可编辑 限制员工的权限", example = "0")
private Integer isEdit; private Integer isEdit;
......
...@@ -66,9 +66,12 @@ public class JxglPerformanceAppraisal extends Model<JxglPerformanceAppraisal> { ...@@ -66,9 +66,12 @@ public class JxglPerformanceAppraisal extends Model<JxglPerformanceAppraisal> {
@ApiModelProperty(value="范围",example="部门名称、被考核人名称") @ApiModelProperty(value="范围",example="部门名称、被考核人名称")
private String scope; private String scope;
@ApiModelProperty(value="考核模板名称",example="考评组名称") @ApiModelProperty(value="考核模板名称",example="考核模板名称")
private String appraisalTName; private String appraisalTName;
@ApiModelProperty(value="考核模板id",example="考核模板id")
private Integer appraisalTId;
@ApiModelProperty(value="考核人数 考核人数",example="10") @ApiModelProperty(value="考核人数 考核人数",example="10")
private Integer appraisalPersonNum; private Integer appraisalPersonNum;
...@@ -98,6 +101,24 @@ public class JxglPerformanceAppraisal extends Model<JxglPerformanceAppraisal> { ...@@ -98,6 +101,24 @@ public class JxglPerformanceAppraisal extends Model<JxglPerformanceAppraisal> {
@TableField(exist = false) @TableField(exist = false)
private Integer performanceArchive; private Integer performanceArchive;
/**
* 考核完成
*/
@TableField(exist = false)
private Integer assessmentComplete;
/**
* 终止考核
*/
@TableField(exist = false)
private Integer terminationAssessment;
/**
* 考核节点状态
*/
@TableField(exist = false)
private Integer noteSts;
@TableField(exist = false) @TableField(exist = false)
private JxglAppraisal appraisal; private JxglAppraisal appraisal;
......
...@@ -29,7 +29,9 @@ import cn.hutool.core.bean.BeanUtil; ...@@ -29,7 +29,9 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil; import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.timer.api.aspect.lang.annotation.Log;
import cn.timer.api.aspect.lang.annotation.Role; import cn.timer.api.aspect.lang.annotation.Role;
import cn.timer.api.aspect.lang.enums.BusinessType;
import cn.timer.api.bean.jxgl.JxglAppraisal; import cn.timer.api.bean.jxgl.JxglAppraisal;
import cn.timer.api.bean.jxgl.JxglAppraisalAssessment; import cn.timer.api.bean.jxgl.JxglAppraisalAssessment;
import cn.timer.api.bean.jxgl.JxglAppraisalIndicators; import cn.timer.api.bean.jxgl.JxglAppraisalIndicators;
...@@ -60,6 +62,7 @@ import cn.timer.api.config.enuminterface.JxglEnumInterface.ProcessNodeSts; ...@@ -60,6 +62,7 @@ import cn.timer.api.config.enuminterface.JxglEnumInterface.ProcessNodeSts;
import cn.timer.api.config.enuminterface.JxglEnumInterface.ProcessType; import cn.timer.api.config.enuminterface.JxglEnumInterface.ProcessType;
import cn.timer.api.config.exception.CustomException; import cn.timer.api.config.exception.CustomException;
import cn.timer.api.config.validation.ValidList; import cn.timer.api.config.validation.ValidList;
import cn.timer.api.controller.jxgl.service.JxglService;
import cn.timer.api.controller.yggl.service.YgglService; import cn.timer.api.controller.yggl.service.YgglService;
import cn.timer.api.controller.zzgl.service.ZzglBmgwMService; import cn.timer.api.controller.zzgl.service.ZzglBmgwMService;
import cn.timer.api.dao.jxgl.JxglAppraisalAssessmentMapper; import cn.timer.api.dao.jxgl.JxglAppraisalAssessmentMapper;
...@@ -189,7 +192,7 @@ public class JxglController { ...@@ -189,7 +192,7 @@ public class JxglController {
basicSetting.setOrgCode(orgCode); basicSetting.setOrgCode(orgCode);
basicSetting.insert(); basicSetting.insert();
if (listPr != null && listPr.size() > 0) { if (listPr != null && !listPr.isEmpty()) {
listPr.stream().forEach(pr -> pr.setBasicSettingId(basicSetting.getId())); listPr.stream().forEach(pr -> pr.setBasicSettingId(basicSetting.getId()));
int i = jxglPerformanceRatingMapper.insertList(listPr); int i = jxglPerformanceRatingMapper.insertList(listPr);
} }
...@@ -198,6 +201,9 @@ public class JxglController { ...@@ -198,6 +201,9 @@ public class JxglController {
} }
@Autowired
JxglService jxglService;
/** /**
* 查询-基础设置 * 查询-基础设置
*/ */
...@@ -207,7 +213,7 @@ public class JxglController { ...@@ -207,7 +213,7 @@ public class JxglController {
@Role @Role
public Result<Object> selectAT(@CurrentUser UserBean userBean) { public Result<Object> selectAT(@CurrentUser UserBean userBean) {
JxglBasicSetting bS = jxglBasicSettingMapper.selectAll(userBean.getOrgCode()); JxglBasicSetting bS = jxglService.selectAT(userBean.getOrgCode());
return ResultUtil.data(bS); return ResultUtil.data(bS);
...@@ -254,12 +260,13 @@ public class JxglController { ...@@ -254,12 +260,13 @@ public class JxglController {
if (aITs != null && aITs.size() > 0) { if (aITs != null && aITs.size() > 0) {
for (JxglAppraisalIndicatorsT aIT : aITs) { for (JxglAppraisalIndicatorsT aIT : aITs) {
if (aIT.getIsEditWeight() == null) { // if (aIT.getIsEditWeight() == null) {
throw new CustomException("权重编辑权限未设置"); // throw new CustomException("权重编辑权限未设置");
} // }
if (aIT.getType() == null) { if (aIT.getType() == null) {
throw new CustomException("指标类型未设置"); throw new CustomException("指标类型未设置");
} }
aIT.setWeight(aIT.getWeight() == null ? 0 : aIT.getWeight());
aIT.setAppraisalTId(jxglAppraisalT.getId()); aIT.setAppraisalTId(jxglAppraisalT.getId());
// 新增 考核指标模板 // 新增 考核指标模板
if (aIT.insert()) { if (aIT.insert()) {
...@@ -339,10 +346,11 @@ public class JxglController { ...@@ -339,10 +346,11 @@ public class JxglController {
@Validated @RequestBody PerformanceAppraisal performanceAppraisal) throws Exception { @Validated @RequestBody PerformanceAppraisal performanceAppraisal) throws Exception {
Integer orgCode = userBean.getOrgCode(); Integer orgCode = userBean.getOrgCode();
JxglPerformanceAppraisal pA = JxglPerformanceAppraisal.builder().build(); JxglPerformanceAppraisal pA = JxglPerformanceAppraisal.builder().build();
BeanUtil.copyProperties(performanceAppraisal, pA, "processNode", "beingAppraisalPerson", "appraisalTId"); BeanUtil.copyProperties(performanceAppraisal, pA, "processNode", "beingAppraisalPerson");
List<ProcessNode> listPN = performanceAppraisal.getProcessNode(); List<ProcessNode> listPN = performanceAppraisal.getProcessNode();
List<BeingAppraisalPerson> listBAP = performanceAppraisal.getBeingAppraisalPerson(); List<BeingAppraisalPerson> listBAP = performanceAppraisal.getBeingAppraisalPerson();
pA.setSts(PerformanceAppraisalSts.TARGET_SETING.getType());
pA.setOrgCode(orgCode); pA.setOrgCode(orgCode);
pA.setProcessNode(ObjectUtil.serialize(listPN)); pA.setProcessNode(ObjectUtil.serialize(listPN));
pA.setBeingAppraisalPerson(ObjectUtil.serialize(listBAP)); pA.setBeingAppraisalPerson(ObjectUtil.serialize(listBAP));
...@@ -398,6 +406,7 @@ public class JxglController { ...@@ -398,6 +406,7 @@ public class JxglController {
// 考核 // 考核
appraisal.setPerformanceAppraisalId(pA.getId()); appraisal.setPerformanceAppraisalId(pA.getId());
appraisal.setEmpNum(bAP); appraisal.setEmpNum(bAP);
appraisal.setIsEdit(aT.getIsEdit());
appraisal.setName(aT.getName()); appraisal.setName(aT.getName());
appraisal.setAppraisalExplain(aT.getAppraisalExplain()); appraisal.setAppraisalExplain(aT.getAppraisalExplain());
appraisal.setSts(AppraisalSts.TARGET_FILL_IN.getType()); appraisal.setSts(AppraisalSts.TARGET_FILL_IN.getType());
...@@ -405,6 +414,19 @@ public class JxglController { ...@@ -405,6 +414,19 @@ public class JxglController {
appraisal.insert(); appraisal.insert();
System.out.println("新增 考核:" + appraisal); System.out.println("新增 考核:" + appraisal);
List<Integer> pNWeights = listPN.stream().filter(p -> p.getProcessType() == 2 || p.getProcessType() == 3 ).map(ProcessNode::getWeight).collect(Collectors.toList());
Integer sum = 0;
for (Integer w : pNWeights) {
if (w < 0) {
throw new CustomException("评分权重不能小于0");
}
sum += w;
}
if (sum != 100) {
throw new CustomException("权重总和必须等于100");
}
listPN.stream().forEach(pN -> { listPN.stream().forEach(pN -> {
Integer executeType = pN.getExecuteType(); Integer executeType = pN.getExecuteType();
// 流程节点 // 流程节点
...@@ -675,26 +697,10 @@ public class JxglController { ...@@ -675,26 +697,10 @@ public class JxglController {
listPN = jxglProcessNodeMapper.selectList( listPN = jxglProcessNodeMapper.selectList(
new QueryWrapper<JxglProcessNode>().lambda().in(JxglProcessNode::getAppraisalId, aIds) new QueryWrapper<JxglProcessNode>().lambda().in(JxglProcessNode::getAppraisalId, aIds)
.eq(JxglProcessNode::getProcessType, ProcessType.RESULT_VERIFICATION.getType()) .eq(JxglProcessNode::getProcessType, ProcessType.RESULT_VERIFICATION.getType())
.eq(JxglProcessNode::getSts, ProcessNodeSts.EXECUTED.getType())); .in(JxglProcessNode::getSts, ProcessNodeSts.NON_EXECUTION.getType(),ProcessNodeSts.IN_EXECUTION.getType()));
if (listPN != null && listPN.size() > 0) {
aIds = listPN.stream().map(JxglProcessNode::getAppraisalId).collect(Collectors.toList());
listPN = jxglProcessNodeMapper.selectList(
new QueryWrapper<JxglProcessNode>().lambda().in(JxglProcessNode::getAppraisalId, aIds)
.eq(JxglProcessNode::getProcessType, ProcessType.TARGET_CONFIRMED.getType())
.eq(JxglProcessNode::getSts, ProcessNodeSts.NON_EXECUTION.getType()));
if (listPN != null && listPN.size() > 0) { if (listPN != null && listPN.size() > 0) {
pNIds = listPN.stream().map(JxglProcessNode::getId).collect(Collectors.toList()); throw new CustomException("所有考核 确认结果后才能 归档");
aIds = listPN.stream().map(JxglProcessNode::getAppraisalId).collect(Collectors.toList());
JxglProcessNode.builder().sts(ProcessNodeSts.IN_EXECUTION.getType()).build().update(
new UpdateWrapper<JxglProcessNode>().lambda().in(JxglProcessNode::getId, pNIds));
JxglAppraisal.builder().sts(AppraisalSts.SELF_ASSESSMENT.getType()).build()
.update(new UpdateWrapper<JxglAppraisal>().lambda().in(JxglAppraisal::getId, aIds));
}
} }
} }
break; break;
...@@ -706,12 +712,38 @@ public class JxglController { ...@@ -706,12 +712,38 @@ public class JxglController {
jxglPerformanceAppraisalMapper jxglPerformanceAppraisalMapper
.updateById(JxglPerformanceAppraisal.builder().id(appraisalUpdateSts.getId()).sts(sts).build()); .updateById(JxglPerformanceAppraisal.builder().id(appraisalUpdateSts.getId()).sts(sts).build());
return ResultUtil.success();
}
/**
* 终止-绩效考核
*/
@PutMapping(value = "/termination_performance_appraisal")
@ApiOperation(value = "8.终止-绩效考核", httpMethod = "PUT", notes = "终止-绩效考核")
@ApiOperationSupport(order = 8)
public Result<Object> terminationPA(@CurrentUser UserBean userBean,@NotNull @RequestParam Integer id) {
JxglPerformanceAppraisal performanceAppraisal = jxglPerformanceAppraisalMapper
.selectOne(new QueryWrapper<JxglPerformanceAppraisal>().lambda()
.eq(JxglPerformanceAppraisal::getId, id));
if (performanceAppraisal == null) {
return ResultUtil.error("绩效考核不存在");
}
if (performanceAppraisal.getSts() == PerformanceAppraisalSts.TERMINATION_ASSESSMENT.getType()) {
return ResultUtil.error("考核已终止");
}
// 修改 绩效考核状态
jxglPerformanceAppraisalMapper
.updateById(JxglPerformanceAppraisal.builder().id(id).sts(PerformanceAppraisalSts.TERMINATION_ASSESSMENT.getType()).build());
// 修改 考核状态 // 修改 考核状态
jxglAppraisalMapper.update( jxglAppraisalMapper.update(
JxglAppraisal.builder().performanceAppraisalId(appraisalUpdateSts.getId()).sts(sts).build(), JxglAppraisal.builder().performanceAppraisalId(id).sts(PerformanceAppraisalSts.TERMINATION_ASSESSMENT.getType()).build(),
new UpdateWrapper<JxglAppraisal>().lambda() new UpdateWrapper<JxglAppraisal>().lambda()
.eq(JxglAppraisal::getPerformanceAppraisalId, appraisalUpdateSts.getId()) .eq(JxglAppraisal::getPerformanceAppraisalId, id)
.eq(JxglAppraisal::getSts, AppraisalSts.TARGET_CONFIRMED.getType())); );
return ResultUtil.success(); return ResultUtil.success();
} }
...@@ -804,7 +836,6 @@ public class JxglController { ...@@ -804,7 +836,6 @@ public class JxglController {
@GetMapping(value = "/select_appraisal/{id}") @GetMapping(value = "/select_appraisal/{id}")
@ApiOperation(value = "11.查询-考核-详情", httpMethod = "GET", notes = "查询-考核-详情") @ApiOperation(value = "11.查询-考核-详情", httpMethod = "GET", notes = "查询-考核-详情")
@ApiOperationSupport(order = 11) @ApiOperationSupport(order = 11)
@Role
public Result<Object> selectA(@CurrentUser UserBean userBean, @PathVariable Integer id) { public Result<Object> selectA(@CurrentUser UserBean userBean, @PathVariable Integer id) {
AppraisalDetail aD = jxglAppraisalMapper.selectDetailById(userBean.getOrgCode(), id); AppraisalDetail aD = jxglAppraisalMapper.selectDetailById(userBean.getOrgCode(), id);
...@@ -814,6 +845,8 @@ public class JxglController { ...@@ -814,6 +845,8 @@ public class JxglController {
.selectOne(new QueryWrapper<JxglPerformanceAppraisal>().lambda().eq(JxglPerformanceAppraisal::getId, .selectOne(new QueryWrapper<JxglPerformanceAppraisal>().lambda().eq(JxglPerformanceAppraisal::getId,
aD.getPerformanceAppraisalId())); aD.getPerformanceAppraisalId()));
if (pA != null && pA.getIsVisible() == 0) { if (pA != null && pA.getIsVisible() == 0) {
return ResultUtil.data(aD); return ResultUtil.data(aD);
} else { } else {
...@@ -909,6 +942,26 @@ public class JxglController { ...@@ -909,6 +942,26 @@ public class JxglController {
IPage<JxglAppraisal> page = new Page<JxglAppraisal>(query.getCurrentPage(), query.getTotalPage()); IPage<JxglAppraisal> page = new Page<JxglAppraisal>(query.getCurrentPage(), query.getTotalPage());
query.setOrgCode(userBean.getOrgCode()); query.setOrgCode(userBean.getOrgCode());
List<Integer> empNums = CollUtil.toList();
if (query.getBmId() != null) {
List<YgglMainEmp> usersQuery = zzglBmgwMService.selectOtherlistent(userBean.getOrgCode(), query.getBmId());
if (usersQuery != null) {
empNums = usersQuery.stream().map(YgglMainEmp::getEmpNum).collect(Collectors.toList());
}else {
return ResultUtil.data(null);
}
if (empNums == null || empNums.size() == 0) {
return ResultUtil.data(null);
}
}
query.setEmpNums(empNums);
IPage<JxglAppraisal> pageA = jxglAppraisalMapper.selectListEmpByQuery(page, query); IPage<JxglAppraisal> pageA = jxglAppraisalMapper.selectListEmpByQuery(page, query);
List<JxglAppraisal> listA = pageA.getRecords(); List<JxglAppraisal> listA = pageA.getRecords();
...@@ -939,6 +992,27 @@ public class JxglController { ...@@ -939,6 +992,27 @@ public class JxglController {
} }
/** /**
* 查询-我的绩效-考核我的-列表
*/
@PostMapping(value = "/selects_my_appraisal")
@ApiOperation(value = "15.查询-我的绩效-考核我的-列表", httpMethod = "POST", notes = "查询-我的绩效-考核我的-列表")
@ApiOperationSupport(order = 15)
public Result<Object> selectsMA(@CurrentUser UserBean userBean,@Validated @RequestBody EmpAppraisalQuery query) {
IPage<JxglPerformanceAppraisal> page = new Page<JxglPerformanceAppraisal>(query.getCurrentPage(),
query.getTotalPage());
query.setOrgCode(userBean.getOrgCode());
query.setId(userBean.getEmpNum());
IPage<JxglPerformanceAppraisal> pagePA = jxglPerformanceAppraisalMapper.selectListEmpByQuery(page, query);
List<JxglPerformanceAppraisal> listPA = pagePA.getRecords();
return ResultUtil.data(pagePA, listPA);
}
/**
* 查询-绩效考核-方案 * 查询-绩效考核-方案
*/ */
@GetMapping(value = "/selects_performance_appraisal/{id}") @GetMapping(value = "/selects_performance_appraisal/{id}")
...@@ -951,21 +1025,27 @@ public class JxglController { ...@@ -951,21 +1025,27 @@ public class JxglController {
if (pA == null) { if (pA == null) {
return ResultUtil.error("方案不存在"); return ResultUtil.error("方案不存在");
} }
PerformanceAppraisal paDto = PerformanceAppraisal.builder().name(pA.getName()).period(pA.getPeriod()) PerformanceAppraisal paDto = PerformanceAppraisal.builder()
.appraisalStartTime(pA.getAppraisalStartTime()).appraisalEndTime(pA.getAppraisalEndTime()) .name(pA.getName())
.isVisible(pA.getIsVisible()).scope(pA.getScope()).appraisalTName(pA.getAppraisalTName()) .period(pA.getPeriod())
.appraisalStartTime(pA.getAppraisalStartTime())
.appraisalEndTime(pA.getAppraisalEndTime())
.isVisible(pA.getIsVisible())
.scope(pA.getScope())
.appraisalTName(pA.getAppraisalTName())
.appraisalTId(pA.getAppraisalTId())
.processNode(ObjectUtil.deserialize(pA.getProcessNode())) .processNode(ObjectUtil.deserialize(pA.getProcessNode()))
.beingAppraisalPerson(ObjectUtil.deserialize(pA.getBeingAppraisalPerson())).build(); .beingAppraisalPerson(ObjectUtil.deserialize(pA.getBeingAppraisalPerson()))
.build();
return ResultUtil.data(paDto); return ResultUtil.data(paDto);
} }
/** /**
* 查询-我的绩效-列表 * 查询-目标待填写/目标待确认/评分/结果待确认-列表
*/ */
@PostMapping(value = "/selects_my_performance") @PostMapping(value = "/selects_my_performance")
@ApiOperation(value = "17.查询-我的绩效-列表", httpMethod = "POST", notes = "查询-我的绩效-列表") @ApiOperation(value = "17.查询-目标待填写/目标待确认/评分/结果待确认-列表", httpMethod = "POST", notes = "查询")
@ApiOperationSupport(order = 17) @ApiOperationSupport(order = 17)
public Result<Object> selects(@CurrentUser UserBean userBean,@Validated @RequestBody MyPerformance query) { public Result<Object> selects(@CurrentUser UserBean userBean,@Validated @RequestBody MyPerformance query) {
...@@ -1025,7 +1105,9 @@ public class JxglController { ...@@ -1025,7 +1105,9 @@ public class JxglController {
// 查找 非固定 考核指标 // 查找 非固定 考核指标
List<JxglAppraisalIndicators> listAI = jxglAppraisalIndicatorsMapper List<JxglAppraisalIndicators> listAI = jxglAppraisalIndicatorsMapper
.selectList(new QueryWrapper<JxglAppraisalIndicators>().lambda().select(JxglAppraisalIndicators::getId) .selectList(new QueryWrapper<JxglAppraisalIndicators>().lambda().select(JxglAppraisalIndicators::getId,
JxglAppraisalIndicators::getWeight,
JxglAppraisalIndicators::getIsEditWeight)
.eq(JxglAppraisalIndicators::getType, IndicatorsType.NOT_FIXATION.getType()) .eq(JxglAppraisalIndicators::getType, IndicatorsType.NOT_FIXATION.getType())
.eq(JxglAppraisalIndicators::getAppraisalId, id)); .eq(JxglAppraisalIndicators::getAppraisalId, id));
...@@ -1118,6 +1200,7 @@ public class JxglController { ...@@ -1118,6 +1200,7 @@ public class JxglController {
Integer weightSum = 0; Integer weightSum = 0;
if (listWeight != null && listWeight.size() > 0) { if (listWeight != null && listWeight.size() > 0) {
for (Integer i : listWeight) { for (Integer i : listWeight) {
i = i == null ? 0 : i;
weightSum += i; weightSum += i;
} }
if (!weightSum.equals(100)) if (!weightSum.equals(100))
...@@ -1456,13 +1539,13 @@ public class JxglController { ...@@ -1456,13 +1539,13 @@ public class JxglController {
} }
/** /**
* 评分提交-(缺-评分最大分数限制) * 评分提交
*/ */
@PostMapping(value = "/save_score") @PostMapping(value = "/save_score")
@ApiOperation(value = "22.评分提交", httpMethod = "POST", notes = "评分提交") @ApiOperation(value = "22.评分提交", httpMethod = "POST", notes = "评分提交")
@ApiOperationSupport(order = 22) @ApiOperationSupport(order = 22)
public Result<Object> saveScore(@CurrentUser UserBean userBean, public Result<Object> saveScore(@CurrentUser UserBean userBean,
@Validated @RequestBody ValidList<AppraisalAssessment> appraisalAssessments) { @Validated @RequestBody ValidList<AppraisalAssessment> appraisalAssessments) throws Exception{
Integer appraisalId = appraisalAssessments.get(0).getAppraisalId(); Integer appraisalId = appraisalAssessments.get(0).getAppraisalId();
...@@ -1490,6 +1573,9 @@ public class JxglController { ...@@ -1490,6 +1573,9 @@ public class JxglController {
return ResultUtil.error("流程不存在"); return ResultUtil.error("流程不存在");
} }
JxglBasicSetting bS = jxglService.selectAT(userBean.getOrgCode());
Integer maxScore = bS.getMaxScore();
if (ProcessType.SELF_ASSESSMENT.getType() == processNode.getProcessType() if (ProcessType.SELF_ASSESSMENT.getType() == processNode.getProcessType()
|| ProcessType.SUPERIOR_SCORE.getType() == processNode.getProcessType()) { || ProcessType.SUPERIOR_SCORE.getType() == processNode.getProcessType()) {
...@@ -1497,28 +1583,37 @@ public class JxglController { ...@@ -1497,28 +1583,37 @@ public class JxglController {
return ResultUtil.error("无权限操作该流程"); return ResultUtil.error("无权限操作该流程");
} }
appraisalAssessments.stream().forEach(a -> { boolean hasAppraisalAssessment = false;
for (AppraisalAssessment a : appraisalAssessments) {
Integer type = ProcessType.SELF_ASSESSMENT.getType() == processNode.getProcessType() Integer type = ProcessType.SELF_ASSESSMENT.getType() == processNode.getProcessType()
? AssessmentType.SELF_ASSESSMENT.getType() ? AssessmentType.SELF_ASSESSMENT.getType()
: AssessmentType.SUPERIOR_SCORE.getType(); : AssessmentType.SUPERIOR_SCORE.getType();
if (Double.valueOf(a.getScore()) > maxScore) {
throw new CustomException("评分值不能大于最高分");
}
if (a.getAppraisalIndicatorsId() != null) { if (a.getAppraisalIndicatorsId() != null) {
JxglAppraisalIndicatorsAssessment.builder().appraisalIndicatorsId(a.getAppraisalIndicatorsId()) JxglAppraisalIndicatorsAssessment.builder().appraisalIndicatorsId(a.getAppraisalIndicatorsId())
.assessorId(userBean.getEmpNum()).assessorName(userBean.getUserInfo().getName()) .assessorId(userBean.getEmpNum()).assessorName(userBean.getUserInfo().getName())
.score(a.getScore()).remarks(a.getRemarks()).type(type).build().insert(); .score(a.getScore()).remarks(a.getRemarks()).type(type).build().insert();
jxglAppraisalMapper.updateById(JxglAppraisal.builder().id(appraisal.getId())
.sts(AppraisalSts.SUPERIOR_SCORE.getType()).build());
} else { } else {
JxglAppraisalAssessment.builder().appraisalId(a.getAppraisalId()).assessorId(userBean.getEmpNum()) JxglAppraisalAssessment.builder().appraisalId(a.getAppraisalId()).assessorId(userBean.getEmpNum())
.assessorName(userBean.getUserInfo().getName()).comprehensiveScore(a.getScore()) .assessorName(userBean.getUserInfo().getName()).comprehensiveScore(Double.valueOf(a.getScore()))
.remarks(a.getRemarks()).type(type).level(a.getLevel()).build().insert(); .remarks(a.getRemarks()).type(type).level(a.getLevel()).build().insert();
// jxglAppraisalMapper.updateById(JxglAppraisal.builder().id(appraisal.getId()).sts(AppraisalSts.RESULT_VERIFICATION.getType()).build()); hasAppraisalAssessment = true;
} }
}); };
if (!hasAppraisalAssessment) {
throw new CustomException("必须填写综合评分");
}
// 修改 状态 // 修改 状态
JxglProcessNode.builder().sts(ProcessNodeSts.EXECUTED.getType()).build() JxglProcessNode.builder().sts(ProcessNodeSts.EXECUTED.getType()).build()
...@@ -1526,22 +1621,79 @@ public class JxglController { ...@@ -1526,22 +1621,79 @@ public class JxglController {
.eq(JxglProcessNode::getAppraisalId, appraisal.getId()) .eq(JxglProcessNode::getAppraisalId, appraisal.getId())
.eq(JxglProcessNode::getSts, ProcessNodeSts.IN_EXECUTION.getType())); .eq(JxglProcessNode::getSts, ProcessNodeSts.IN_EXECUTION.getType()));
if (ProcessType.SELF_ASSESSMENT.getType() == processNode.getProcessType()) {
JxglProcessNode.builder().sts(ProcessNodeSts.IN_EXECUTION.getType()).build() JxglProcessNode.builder().sts(ProcessNodeSts.IN_EXECUTION.getType()).build()
.update(new UpdateWrapper<JxglProcessNode>().lambda() .update(new UpdateWrapper<JxglProcessNode>().lambda()
.eq(JxglProcessNode::getAppraisalId, appraisal.getId()) .eq(JxglProcessNode::getAppraisalId, appraisal.getId())
.eq(ProcessType.SUPERIOR_SCORE.getType() == processNode.getProcessType(), .eq(JxglProcessNode::getProcessType, ProcessType.SUPERIOR_SCORE.getType()));
JxglProcessNode::getProcessType, ProcessType.RESULT_VERIFICATION.getType())
.eq(ProcessType.SELF_ASSESSMENT.getType() == processNode.getProcessType(), jxglAppraisalMapper.updateById(JxglAppraisal.builder().id(appraisal.getId())
JxglProcessNode::getProcessType, ProcessType.SUPERIOR_SCORE.getType())); .sts(AppraisalSts.SUPERIOR_SCORE.getType()).build());
}else if(ProcessType.SUPERIOR_SCORE.getType() == processNode.getProcessType()) {
JxglPerformanceAppraisal pA = jxglPerformanceAppraisalMapper JxglPerformanceAppraisal pA = jxglPerformanceAppraisalMapper
.selectById(appraisal.getPerformanceAppraisalId()); .selectById(appraisal.getPerformanceAppraisalId());
if (pA != null && pA.getSts() > PerformanceAppraisalSts.PERFORMANCE_SCORE.getType()) { if (pA != null && pA.getSts() > PerformanceAppraisalSts.PERFORMANCE_SCORE.getType()) {
if (ProcessType.SUPERIOR_SCORE.getType() == processNode.getProcessType()) { JxglProcessNode.builder().sts(ProcessNodeSts.IN_EXECUTION.getType()).build()
.update(new UpdateWrapper<JxglProcessNode>().lambda()
.eq(JxglProcessNode::getAppraisalId, appraisal.getId())
.eq(JxglProcessNode::getProcessType, ProcessType.RESULT_VERIFICATION.getType()));
jxglAppraisalMapper.updateById(JxglAppraisal.builder().id(appraisal.getId()) jxglAppraisalMapper.updateById(JxglAppraisal.builder().id(appraisal.getId())
.sts(AppraisalSts.RESULT_VERIFICATION.getType()).build()); .sts(AppraisalSts.RESULT_VERIFICATION.getType()).build());
}
// 算 总评分 ---- 自评权重*自评分 + 上级评分权重*上级评分 = 总评分
List<JxglProcessNode> listProcessNode = jxglProcessNodeMapper.selectList(new QueryWrapper<JxglProcessNode>().lambda()
.select(JxglProcessNode::getWeight,JxglProcessNode::getProcessType)
.orderByAsc(JxglProcessNode::getProcessType)
.in(JxglProcessNode::getProcessType, ProcessType.SELF_ASSESSMENT.getType(),ProcessType.SUPERIOR_SCORE.getType()));
List<JxglAppraisalAssessment> listAppraisalAssessment = jxglAppraisalAssessmentMapper.selectList(new QueryWrapper<JxglAppraisalAssessment>().lambda()
.select(JxglAppraisalAssessment::getType,JxglAppraisalAssessment::getComprehensiveScore)
.orderByAsc(JxglAppraisalAssessment::getType)
);
Double selfAssessment = 0D;
Double superiorAssessment = 0D;
Integer aWeights = 0;
Integer bWeights = 0;
Double total = 0D;
String level = null;
if (listProcessNode != null && listProcessNode.size() > 0) {
aWeights = listProcessNode.stream().filter(p -> p.getProcessType() == ProcessType.SELF_ASSESSMENT.getType()).map(JxglProcessNode::getWeight).findFirst().orElse(null);
bWeights = listProcessNode.stream().filter(p -> p.getProcessType() == ProcessType.SUPERIOR_SCORE.getType()).map(JxglProcessNode::getWeight).findFirst().orElse(null);
}
if (listAppraisalAssessment != null && listAppraisalAssessment.size() > 0) {
selfAssessment = listAppraisalAssessment.stream().filter(a -> a.getType() == AssessmentType.SELF_ASSESSMENT.getType()).map(JxglAppraisalAssessment::getComprehensiveScore).findFirst().orElse(null) ;
superiorAssessment = listAppraisalAssessment.stream().filter(a -> a.getType() == AssessmentType.SUPERIOR_SCORE.getType()).map(JxglAppraisalAssessment::getComprehensiveScore).findFirst().orElse(null);
}
if (selfAssessment != null && superiorAssessment != null) {
System.out.println(aWeights);
System.out.println(selfAssessment);
System.out.println(bWeights);
System.out.println(superiorAssessment);
total = aWeights*0.01*selfAssessment + bWeights*0.01*superiorAssessment;
List<JxglPerformanceRating> listPR = bS.getPerformanceRatings();
for (JxglPerformanceRating pR : listPR) {
level = pR.getSectionMaxScore() <= total && pR.getSectionMinScore() < total ? pR.getName() : null;
}
// 更新 考核-总分 等级
jxglAppraisalMapper.updateById(JxglAppraisal.builder().id(appraisal.getId())
.total(total).level(level).build());
}else {
throw new CustomException("评分数据存在异常");
} }
} }
...@@ -1604,8 +1756,7 @@ public class JxglController { ...@@ -1604,8 +1756,7 @@ public class JxglController {
.eq(JxglProcessNode::getAppraisalId, appraisal.getId()) .eq(JxglProcessNode::getAppraisalId, appraisal.getId())
.eq(JxglProcessNode::getSts, ProcessNodeSts.IN_EXECUTION.getType())); .eq(JxglProcessNode::getSts, ProcessNodeSts.IN_EXECUTION.getType()));
jxglAppraisalMapper jxglAppraisalMapper.updateById(JxglAppraisal.builder().id(id).sts(AppraisalSts.ASSESSMENT_COMPLETE.getType()).build());
.updateById(JxglAppraisal.builder().id(id).sts(AppraisalSts.ASSESSMENT_COMPLETE.getType()).build());
JxglAppraisalLog appraisalLog = JxglAppraisalLog.builder().build(); JxglAppraisalLog appraisalLog = JxglAppraisalLog.builder().build();
appraisalLog.setAppraisalId(appraisal.getId()); appraisalLog.setAppraisalId(appraisal.getId());
...@@ -1627,6 +1778,7 @@ public class JxglController { ...@@ -1627,6 +1778,7 @@ public class JxglController {
@PostMapping(value = "/change_score") @PostMapping(value = "/change_score")
@ApiOperation(value = "24.结果确认-改分", httpMethod = "POST", notes = "结果确认-改分") @ApiOperation(value = "24.结果确认-改分", httpMethod = "POST", notes = "结果确认-改分")
@ApiOperationSupport(order = 24) @ApiOperationSupport(order = 24)
@Log(title = "绩效管理-结果确认-改分", businessType = BusinessType.UPDATE)
public Result<Object> changeScore(@CurrentUser UserBean userBean, public Result<Object> changeScore(@CurrentUser UserBean userBean,
@Validated @RequestBody AppraisalAssessment appraisalAssessment) { @Validated @RequestBody AppraisalAssessment appraisalAssessment) {
...@@ -1653,15 +1805,22 @@ public class JxglController { ...@@ -1653,15 +1805,22 @@ public class JxglController {
return ResultUtil.error("流程不存在"); return ResultUtil.error("流程不存在");
} }
JxglBasicSetting bS = jxglService.selectAT(userBean.getOrgCode());
Integer maxScore = bS.getMaxScore();
if (Double.valueOf(appraisalAssessment.getScore()) > maxScore) {
throw new CustomException("评分值不能大于最高分");
}
if (ProcessType.RESULT_VERIFICATION.getType() == processNode.getProcessType()) { if (ProcessType.RESULT_VERIFICATION.getType() == processNode.getProcessType()) {
if (!userBean.getEmpNum().equals(processNode.getExecutorId())) { if (!userBean.getEmpNum().equals(processNode.getExecutorId())) {
return ResultUtil.error("无权限操作该流程"); return ResultUtil.error("无权限操作该流程");
} }
JxglAppraisalAssessment.builder().id(appraisalAssessment.getAppraisalAssessmentId()) // 更新 考核-总分 等级
.comprehensiveScore(appraisalAssessment.getScore()).level(appraisalAssessment.getLevel()).build() jxglAppraisalMapper.updateById(JxglAppraisal.builder().id(appraisal.getId())
.updateById(); .total(Double.valueOf(appraisalAssessment.getScore())).level(appraisalAssessment.getLevel()).build());
JxglAppraisalLog appraisalLog = JxglAppraisalLog.builder().build(); JxglAppraisalLog appraisalLog = JxglAppraisalLog.builder().build();
appraisalLog.setRemarks(appraisalAssessment.getRemarks()); appraisalLog.setRemarks(appraisalAssessment.getRemarks());
...@@ -1685,24 +1844,43 @@ public class JxglController { ...@@ -1685,24 +1844,43 @@ public class JxglController {
@ApiOperation(value = "25.查询-我的绩效-员工绩效", httpMethod = "POST", notes = "查询-我的绩效-员工绩效") @ApiOperation(value = "25.查询-我的绩效-员工绩效", httpMethod = "POST", notes = "查询-我的绩效-员工绩效")
@ApiOperationSupport(order = 25) @ApiOperationSupport(order = 25)
@Role @Role
@Log(title = "绩效管理-查询-我的绩效-员工绩效")
public Result<Object> selectsMEP(@CurrentUser UserBean userBean, @RequestBody EmpPerformanceQuery query) { public Result<Object> selectsMEP(@CurrentUser UserBean userBean, @RequestBody EmpPerformanceQuery query) {
Integer orgCode = userBean.getOrgCode(); Integer orgCode = userBean.getOrgCode();
Integer empNum = userBean.getEmpNum(); Integer empNum = userBean.getEmpNum();
IPage<JxglAppraisal> page = new Page<JxglAppraisal>(query.getCurrentPage(), query.getTotalPage()); IPage<JxglAppraisal> page = new Page<JxglAppraisal>(query.getCurrentPage(), query.getTotalPage());
query.setOrgCode(orgCode); query.setOrgCode(orgCode);
List<ZzglBmgwM> listBM = zzglBmgwMMapper.selectList(new QueryWrapper<ZzglBmgwM>().lambda().select(ZzglBmgwM::getId) List<ZzglBmgwM> listBM = zzglBmgwMMapper.selectList(new QueryWrapper<ZzglBmgwM>().lambda()
.eq(ZzglBmgwM::getOrgCode, userBean.getOrgCode()).eq(ZzglBmgwM::getLeader, empNum)); .select(ZzglBmgwM::getId)
.eq(ZzglBmgwM::getOrgCode, userBean.getOrgCode())
.eq(ZzglBmgwM::getLeader, empNum));
System.out.println("listBM-----"+ listBM);
ZzglBmgwM ZzglBmgwM = CollUtil.getFirst(listBM); ZzglBmgwM ZzglBmgwM = CollUtil.getFirst(listBM);
if (ZzglBmgwM == null) { if (ZzglBmgwM == null) {
return ResultUtil.success(); return ResultUtil.success();
} }
List<YgglMainEmp> users = zzglBmgwMService.selectOtherlistent(orgCode, ZzglBmgwM.getId()); List<YgglMainEmp> users = zzglBmgwMService.selectOtherlistent(orgCode, ZzglBmgwM.getId());
List<Integer> empNums = null; List<Integer> empNums = CollUtil.toList();
if (users != null) { if (users != null) {
empNums = users.stream().map(YgglMainEmp::getEmpNum).collect(Collectors.toList()); empNums = users.stream().map(YgglMainEmp::getEmpNum).collect(Collectors.toList());
} }
if (query.getBmId() != null) {
List<YgglMainEmp> usersQuery = zzglBmgwMService.selectOtherlistent(orgCode, query.getBmId());
if (usersQuery != null) {
List<Integer> empNumsQuery = usersQuery.stream().map(YgglMainEmp::getEmpNum).collect(Collectors.toList());
empNums = empNums.stream().filter(e -> empNumsQuery.contains(e)).collect(Collectors.toList());
}else {
return ResultUtil.data(null);
}
}
if (empNums == null || empNums.size() == 0) {
return ResultUtil.data(null);
}
query.setEmpNums(empNums); query.setEmpNums(empNums);
IPage<JxglAppraisal> pageA = jxglAppraisalMapper.selectMyEmpByQuery(page, query); IPage<JxglAppraisal> pageA = jxglAppraisalMapper.selectMyEmpByQuery(page, query);
......
package cn.timer.api.controller.jxgl.service; package cn.timer.api.controller.jxgl.service;
import cn.timer.api.bean.jxgl.JxglBasicSetting;
public interface JxglService { public interface JxglService {
public JxglBasicSetting selectAT(Integer orgCode);
} }
package cn.timer.api.controller.jxgl.service; package cn.timer.api.controller.jxgl.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import cn.timer.api.bean.jxgl.JxglBasicSetting;
import cn.timer.api.dao.jxgl.JxglBasicSettingMapper;
@Service
public class JxglServiceImpl implements JxglService { public class JxglServiceImpl implements JxglService {
@Autowired
private JxglBasicSettingMapper jxglBasicSettingMapper;
@Override
public JxglBasicSetting selectAT(Integer orgCode) {
// TODO Auto-generated method stub
return jxglBasicSettingMapper.selectAll(orgCode);
}
} }
...@@ -68,12 +68,14 @@ import cn.timer.api.dto.spmk.ApprovingDto; ...@@ -68,12 +68,14 @@ import cn.timer.api.dto.spmk.ApprovingDto;
import cn.timer.api.dto.spmk.FlowChildren; import cn.timer.api.dto.spmk.FlowChildren;
import cn.timer.api.dto.spmk.FromData; import cn.timer.api.dto.spmk.FromData;
import cn.timer.api.dto.spmk.MySummaryQueryDto; import cn.timer.api.dto.spmk.MySummaryQueryDto;
import cn.timer.api.dto.spmk.Relation;
import cn.timer.api.dto.spmk.Router; import cn.timer.api.dto.spmk.Router;
import cn.timer.api.dto.spmk.SpmkApprovalTemplateDto; import cn.timer.api.dto.spmk.SpmkApprovalTemplateDto;
import cn.timer.api.dto.spmk.SpmkApproveDetailDto; import cn.timer.api.dto.spmk.SpmkApproveDetailDto;
import cn.timer.api.dto.spmk.SpmkApproveSummaryDto; import cn.timer.api.dto.spmk.SpmkApproveSummaryDto;
import cn.timer.api.dto.spmk.SpmkCustomApprovalDto; import cn.timer.api.dto.spmk.SpmkCustomApprovalDto;
import cn.timer.api.dto.spmk.SummaryQueryDto; import cn.timer.api.dto.spmk.SummaryQueryDto;
import cn.timer.api.dto.spmk.User;
import cn.timer.api.utils.Result; import cn.timer.api.utils.Result;
import cn.timer.api.utils.ResultUtil; import cn.timer.api.utils.ResultUtil;
import cn.timer.api.utils.router.RouterUtils; import cn.timer.api.utils.router.RouterUtils;
...@@ -473,8 +475,25 @@ public class SpmkController { ...@@ -473,8 +475,25 @@ public class SpmkController {
// List<SpmkApprovalG> saG = spmkService.selectListAg(userBean); // List<SpmkApprovalG> saG = spmkService.selectListAg(userBean);
Router router = spmkApproveSummaryDto.getRouter();
List<Router> routers = router.getChildren();
if (routers != null && routers.size() > 0) {
List<Relation> relations = routers.get(0).getRelation();
if (relations == null || relations.size() < 1) {
return ResultUtil.error("无法发起,请完善审批流程");
}
List<User> users = relations.get(0).getUsers();
if (users == null || users.size() < 1) {
return ResultUtil.error("无法发起,请完善审批流程");
}
}else {
return ResultUtil.error("无法发起,请完善审批流程");
}
List<Router> listRouter = new ArrayList<Router>(); List<Router> listRouter = new ArrayList<Router>();
listRouter.add(spmkApproveSummaryDto.getRouter()); listRouter.add(router);
JSONObject jSONObject = spmkApproveSummaryDto.getRequestData() JSONObject jSONObject = spmkApproveSummaryDto.getRequestData()
.set("orgCode", FromData.builder().value(String.valueOf(userBean.getOrgCode())).build()) .set("orgCode", FromData.builder().value(String.valueOf(userBean.getOrgCode())).build())
.set("initiator", FromData.builder().value(ygglMainEmp.getName()).build()) .set("initiator", FromData.builder().value(ygglMainEmp.getName()).build())
...@@ -599,8 +618,6 @@ public class SpmkController { ...@@ -599,8 +618,6 @@ public class SpmkController {
.select(SpmkApproveSummary::getSts) .select(SpmkApproveSummary::getSts)
.eq(SpmkApproveSummary::getId, approvingDto.getAsId())); .eq(SpmkApproveSummary::getId, approvingDto.getAsId()));
if (aSummary.getSts() > SpmkEnumInterface.ApproveSummarySts.IN.ordinal()) { if (aSummary.getSts() > SpmkEnumInterface.ApproveSummarySts.IN.ordinal()) {
return ResultUtil.error("该审批已结束!"); return ResultUtil.error("该审批已结束!");
} }
...@@ -621,7 +638,6 @@ public class SpmkController { ...@@ -621,7 +638,6 @@ public class SpmkController {
return ResultUtil.error("非当前审批人,无法审批!"); return ResultUtil.error("非当前审批人,无法审批!");
} }
if (aSummary.getSts() == 0) { if (aSummary.getSts() == 0) {
List<FlowChildren> listFlowChildren = ObjectUtil.deserialize(ad.getFlowChildren()); List<FlowChildren> listFlowChildren = ObjectUtil.deserialize(ad.getFlowChildren());
// 审批逻辑 // 审批逻辑
......
...@@ -49,8 +49,14 @@ public class AppraisalDetail implements Serializable{ ...@@ -49,8 +49,14 @@ public class AppraisalDetail implements Serializable{
private String name; private String name;
@ApiModelProperty(value = "考核说明", example = "考核说明") @ApiModelProperty(value = "考核说明", example = "考核说明")
private String appraisalExplain; private String appraisalExplain;
@ApiModelProperty(value = "总分", example = "0")
private Integer total;
@ApiModelProperty(value = "等级", example = "0")
private String level;
@TableField(fill = FieldFill.INSERT) @TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建时间", example = "2020-10-10 10:10:10") @ApiModelProperty(value = "创建时间", example = "2020-10-10 10:10:10")
private Date createTime; private Date createTime;
...@@ -62,8 +68,12 @@ public class AppraisalDetail implements Serializable{ ...@@ -62,8 +68,12 @@ public class AppraisalDetail implements Serializable{
@ApiModelProperty(value = "状态 0目标填写 1目标确认 2自评 3上级评分 4 结果确认 5考核完成 6终止考核 7归档", example = "0") @ApiModelProperty(value = "状态 0目标填写 1目标确认 2自评 3上级评分 4 结果确认 5考核完成 6终止考核 7归档", example = "0")
private Integer sts; private Integer sts;
private Integer isEdit;
private String appraisalName; private String appraisalName;
private String headUrl;
private List<JxglProcessNode> processNodes; private List<JxglProcessNode> processNodes;
private List<JxglAppraisalAssessment> appraisalAssessments; private List<JxglAppraisalAssessment> appraisalAssessments;
......
package cn.timer.api.dto.jxgl; package cn.timer.api.dto.jxgl;
import javax.validation.constraints.NotNull;
import cn.timer.api.config.exception.ValidationMsg;
import cn.timer.api.utils.Page; import cn.timer.api.utils.Page;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
...@@ -16,7 +13,6 @@ import lombok.NoArgsConstructor; ...@@ -16,7 +13,6 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor @AllArgsConstructor
public class EmpAppraisalQuery extends Page { public class EmpAppraisalQuery extends Page {
@NotNull(message = ValidationMsg.NOTNULL)
@ApiModelProperty(value = "员工id", example = "") @ApiModelProperty(value = "员工id", example = "")
private Integer id; private Integer id;
......
...@@ -18,10 +18,6 @@ import lombok.NoArgsConstructor; ...@@ -18,10 +18,6 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor @AllArgsConstructor
public class EmpPerformanceQuery extends Page { public class EmpPerformanceQuery extends Page {
@NotNull(message = ValidationMsg.NOTNULL)
@ApiModelProperty(value = "绩效考核id", example = "")
private Integer id;
@ApiModelProperty(value = "企业id", example = "") @ApiModelProperty(value = "企业id", example = "")
private Integer orgCode; private Integer orgCode;
......
...@@ -67,9 +67,9 @@ public class PerformanceAppraisal implements Serializable{ ...@@ -67,9 +67,9 @@ public class PerformanceAppraisal implements Serializable{
@ApiModelProperty(value="是否可见 0是 1否。评分及评分结果能否被员工看见",example="1") @ApiModelProperty(value="是否可见 0是 1否。评分及评分结果能否被员工看见",example="1")
private Integer isVisible; private Integer isVisible;
@NotNull(message = ValidationMsg.NOTNULL) // @NotNull(message = ValidationMsg.NOTNULL)
@Min(value = 0,message = ValidationMsg.MIN) // @Min(value = 0,message = ValidationMsg.MIN)
@Max(value = 4,message = ValidationMsg.MAX) // @Max(value = 4,message = ValidationMsg.MAX)
@ApiModelProperty(value="状态 0目标制定 1绩效评分 2结果确认 3绩效归档 4终止考核",example="10") @ApiModelProperty(value="状态 0目标制定 1绩效评分 2结果确认 3绩效归档 4终止考核",example="10")
private Integer sts; private Integer sts;
...@@ -87,7 +87,7 @@ public class PerformanceAppraisal implements Serializable{ ...@@ -87,7 +87,7 @@ public class PerformanceAppraisal implements Serializable{
@ApiModelProperty(value="考核人数 考核人数",example="10") @ApiModelProperty(value="考核人数 考核人数",example="10")
private Integer appraisalPersonNum; private Integer appraisalPersonNum;
@NotNull(message = ValidationMsg.NOTNULL) @Valid
@ApiModelProperty(value="流程节点",example="") @ApiModelProperty(value="流程节点",example="")
private List<ProcessNode> processNode; private List<ProcessNode> processNode;
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
<id column="id" property="id" /> <id column="id" property="id" />
<result column="appraisal_id" property="appraisalId" /> <result column="appraisal_id" property="appraisalId" />
<result column="title" property="title" /> <result column="title" property="title" />
<result column="content" property="content" />
<result column="weight" property="weight" /> <result column="weight" property="weight" />
<result column="create_time" property="createTime" /> <result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" /> <result column="update_time" property="updateTime" />
...@@ -18,6 +19,7 @@ ...@@ -18,6 +19,7 @@
id, id,
appraisal_id, appraisal_id,
title, title,
content,
weight, weight,
create_time, create_time,
update_time, update_time,
...@@ -29,6 +31,7 @@ ...@@ -29,6 +31,7 @@
id JxglAppraisalIndicators_id, id JxglAppraisalIndicators_id,
appraisal_id JxglAppraisalIndicators_appraisal_id, appraisal_id JxglAppraisalIndicators_appraisal_id,
title JxglAppraisalIndicators_title, title JxglAppraisalIndicators_title,
content JxglAppraisalIndicators_content,
weight JxglAppraisalIndicators_weight, weight JxglAppraisalIndicators_weight,
create_time JxglAppraisalIndicators_create_time, create_time JxglAppraisalIndicators_create_time,
update_time JxglAppraisalIndicators_update_time, update_time JxglAppraisalIndicators_update_time,
...@@ -47,6 +50,9 @@ ...@@ -47,6 +50,9 @@
<if test ='null != title'> <if test ='null != title'>
title, title,
</if> </if>
<if test ='null != content'>
content,
</if>
<if test ='null != weight'> <if test ='null != weight'>
weight, weight,
</if> </if>
...@@ -70,6 +76,9 @@ ...@@ -70,6 +76,9 @@
<if test ='null != title'> <if test ='null != title'>
#{title}, #{title},
</if> </if>
<if test ='null != content'>
#{content},
</if>
<if test ='null != weight'> <if test ='null != weight'>
#{weight}, #{weight},
</if> </if>
...@@ -98,6 +107,7 @@ ...@@ -98,6 +107,7 @@
<set> <set>
<if test ='null != appraisalId'>appraisal_id = #{appraisalId},</if> <if test ='null != appraisalId'>appraisal_id = #{appraisalId},</if>
<if test ='null != title'>title = #{title},</if> <if test ='null != title'>title = #{title},</if>
<if test ='null != content'>content = #{content},</if>
<if test ='null != weight'>weight = #{weight},</if> <if test ='null != weight'>weight = #{weight},</if>
<if test ='null != createTime'>create_time = #{createTime},</if> <if test ='null != createTime'>create_time = #{createTime},</if>
<if test ='null != updateTime'>update_time = #{updateTime},</if> <if test ='null != updateTime'>update_time = #{updateTime},</if>
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
<id column="id" property="id" /> <id column="id" property="id" />
<result column="appraisal_t_id" property="appraisalTId" /> <result column="appraisal_t_id" property="appraisalTId" />
<result column="title" property="title" /> <result column="title" property="title" />
<result column="content" property="content" />
<result column="weight" property="weight" /> <result column="weight" property="weight" />
<result column="create_time" property="createTime" /> <result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" /> <result column="update_time" property="updateTime" />
...@@ -18,6 +19,7 @@ ...@@ -18,6 +19,7 @@
id, id,
appraisal_t_id, appraisal_t_id,
title, title,
content,
weight, weight,
create_time, create_time,
update_time, update_time,
...@@ -29,6 +31,7 @@ ...@@ -29,6 +31,7 @@
id JxglAppraisalIndicatorsT_id, id JxglAppraisalIndicatorsT_id,
appraisal_t_id JxglAppraisalIndicatorsT_appraisal_t_id, appraisal_t_id JxglAppraisalIndicatorsT_appraisal_t_id,
title JxglAppraisalIndicatorsT_title, title JxglAppraisalIndicatorsT_title,
content JxglAppraisalIndicatorsT_content,
weight JxglAppraisalIndicatorsT_weight, weight JxglAppraisalIndicatorsT_weight,
create_time JxglAppraisalIndicatorsT_create_time, create_time JxglAppraisalIndicatorsT_create_time,
update_time JxglAppraisalIndicatorsT_update_time, update_time JxglAppraisalIndicatorsT_update_time,
...@@ -47,6 +50,9 @@ ...@@ -47,6 +50,9 @@
<if test ='null != title'> <if test ='null != title'>
title, title,
</if> </if>
<if test ='null != title'>
content,
</if>
<if test ='null != weight'> <if test ='null != weight'>
weight, weight,
</if> </if>
...@@ -70,6 +76,9 @@ ...@@ -70,6 +76,9 @@
<if test ='null != title'> <if test ='null != title'>
#{title}, #{title},
</if> </if>
<if test ='null != content'>
#{content},
</if>
<if test ='null != weight'> <if test ='null != weight'>
#{weight}, #{weight},
</if> </if>
...@@ -98,6 +107,7 @@ ...@@ -98,6 +107,7 @@
<set> <set>
<if test ='null != appraisalTId'>appraisal_t_id = #{appraisalTId},</if> <if test ='null != appraisalTId'>appraisal_t_id = #{appraisalTId},</if>
<if test ='null != title'>title = #{title},</if> <if test ='null != title'>title = #{title},</if>
<if test ='null != content'>content = #{content},</if>
<if test ='null != weight'>weight = #{weight},</if> <if test ='null != weight'>weight = #{weight},</if>
<if test ='null != createTime'>create_time = #{createTime},</if> <if test ='null != createTime'>create_time = #{createTime},</if>
<if test ='null != updateTime'>update_time = #{updateTime},</if> <if test ='null != updateTime'>update_time = #{updateTime},</if>
......
...@@ -25,9 +25,12 @@ ...@@ -25,9 +25,12 @@
<result column="update_time" property="updateTime" /> <result column="update_time" property="updateTime" />
<result column="sts" property="sts" /> <result column="sts" property="sts" />
<result column="is_edit" property="isEdit" /> <result column="is_edit" property="isEdit" />
<result column="executor_name" property="executorName" /> <result column="user_name" property="userName" />
<result column="phone" property="phone" /> <result column="phone" property="phone" />
<result column="bm_name" property="bmName" /> <result column="bm_name" property="bmName" />
<result column="executor_name" property="executorName" />
<result column="executor_id" property="executorId" />
<result column="note_sts" property="noteSts" />
</resultMap> </resultMap>
<resultMap id="BaseResultMap_All" type="cn.timer.api.bean.jxgl.JxglAppraisal" > <resultMap id="BaseResultMap_All" type="cn.timer.api.bean.jxgl.JxglAppraisal" >
...@@ -43,7 +46,7 @@ ...@@ -43,7 +46,7 @@
<result column="phone" property="phone" /> <result column="phone" property="phone" />
<result column="bm_name" property="bmName" /> <result column="bm_name" property="bmName" />
<result column="executor_name" property="executorName" /> <result column="executor_name" property="executorName" />
<result column="comprehensive_score" property="comprehensiveScore" /> <result column="total" property="total" />
<result column="level" property="level" /> <result column="level" property="level" />
<result column="confirmor" property="confirmor" /> <result column="confirmor" property="confirmor" />
</resultMap> </resultMap>
...@@ -74,6 +77,7 @@ ...@@ -74,6 +77,7 @@
<id column="id" property="id" /> <id column="id" property="id" />
<result column="appraisal_id" property="appraisalId" /> <result column="appraisal_id" property="appraisalId" />
<result column="title" property="title" /> <result column="title" property="title" />
<result column="content" property="content" />
<result column="weight" property="weight" /> <result column="weight" property="weight" />
<result column="create_time" property="createTime" /> <result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" /> <result column="update_time" property="updateTime" />
...@@ -93,10 +97,14 @@ ...@@ -93,10 +97,14 @@
<result column="emp_num" property="empNum" /> <result column="emp_num" property="empNum" />
<result column="name" property="name" /> <result column="name" property="name" />
<result column="appraisal_explain" property="appraisalExplain" /> <result column="appraisal_explain" property="appraisalExplain" />
<result column="total" property="total" />
<result column="level" property="level" />
<result column="create_time" property="createTime" /> <result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" /> <result column="update_time" property="updateTime" />
<result column="sts" property="sts" /> <result column="sts" property="sts" />
<result column="is_edit" property="isEdit" />
<result column="appraisal_name" property="appraisalName" /> <result column="appraisal_name" property="appraisalName" />
<result column="head_url" property="headUrl" />
<collection column="JxglProcessNode_id" property="processNodes" ofType="cn.timer.api.bean.jxgl.JxglProcessNode" <collection column="JxglProcessNode_id" property="processNodes" ofType="cn.timer.api.bean.jxgl.JxglProcessNode"
resultMap="cn.timer.api.dao.jxgl.JxglProcessNodeMapper.BaseResultMap" columnPrefix="JxglProcessNode_"> resultMap="cn.timer.api.dao.jxgl.JxglProcessNodeMapper.BaseResultMap" columnPrefix="JxglProcessNode_">
</collection> </collection>
...@@ -131,6 +139,8 @@ ...@@ -131,6 +139,8 @@
a.emp_num, a.emp_num,
a.name, a.name,
a.appraisal_explain, a.appraisal_explain,
a.total,
a.level,
a.create_time, a.create_time,
a.update_time, a.update_time,
a.sts, a.sts,
...@@ -178,6 +188,7 @@ ...@@ -178,6 +188,7 @@
e.id e_id, e.id e_id,
e.appraisal_id e_id, e.appraisal_id e_id,
e.title e_title, e.title e_title,
e.content e_content,
e.weight e_weight, e.weight e_weight,
e.create_time e_create_time, e.create_time e_create_time,
e.update_time e_update_time, e.update_time e_update_time,
...@@ -210,6 +221,8 @@ ...@@ -210,6 +221,8 @@
emp_num JxglAppraisal_emp_num, emp_num JxglAppraisal_emp_num,
name JxglAppraisal_name, name JxglAppraisal_name,
appraisal_explain JxglAppraisal_appraisal_explain, appraisal_explain JxglAppraisal_appraisal_explain,
total JxglAppraisal_total,
level JxglAppraisal_level,
create_time JxglAppraisal_create_time, create_time JxglAppraisal_create_time,
update_time JxglAppraisal_update_time, update_time JxglAppraisal_update_time,
sts JxglAppraisal_sts, sts JxglAppraisal_sts,
...@@ -221,13 +234,10 @@ ...@@ -221,13 +234,10 @@
<include refid="Base_Column_List_a" />, <include refid="Base_Column_List_a" />,
b.name user_name, b.phone, b.name user_name, b.phone,
(SELECT name FROM zzgl_bmgw_m WHERE id = (SELECT up_id FROM zzgl_bmgw_m WHERE id = b.bmgw_id limit 1) limit 1) as bm_name, (SELECT name FROM zzgl_bmgw_m WHERE id = (SELECT up_id FROM zzgl_bmgw_m WHERE id = b.bmgw_id limit 1) limit 1) as bm_name,
(SELECT name FROM yggl_main_emp WHERE emp_num = c.executor_id AND org_code = #{param.orgCode}) as executor_name, (SELECT name FROM yggl_main_emp WHERE emp_num = c.executor_id AND org_code = #{param.orgCode}) as executor_name
<!-- (SELECT executor_name FROM jxgl_process_node WHERE sts = 1 LIMIT 1) as confirmor, -->
d.comprehensive_score ,d.level
FROM jxgl_appraisal a FROM jxgl_appraisal a
LEFT JOIN yggl_main_emp b ON a.emp_num = b.emp_num AND b.org_code = #{param.orgCode} LEFT JOIN yggl_main_emp b ON a.emp_num = b.emp_num AND b.org_code = #{param.orgCode}
LEFT JOIN jxgl_process_node c ON a.id = c.appraisal_id AND c.sts = 1 LEFT JOIN jxgl_process_node c ON a.id = c.appraisal_id AND c.sts = 1
LEFT JOIN jxgl_appraisal_assessment d ON a.id = d.appraisal_id AND d.type = 1
<!-- 缺部门 搜索 --> <!-- 缺部门 搜索 -->
WHERE a.performance_appraisal_id = #{param.id} WHERE a.performance_appraisal_id = #{param.id}
<if test="param.query != null and param.query != ''"> <if test="param.query != null and param.query != ''">
...@@ -248,15 +258,12 @@ ...@@ -248,15 +258,12 @@
<include refid="Base_Column_List_a" />, <include refid="Base_Column_List_a" />,
b.name user_name, b.phone, b.name user_name, b.phone,
(SELECT name FROM zzgl_bmgw_m WHERE id = (SELECT up_id FROM zzgl_bmgw_m WHERE id = b.bmgw_id limit 1) limit 1) as bm_name, (SELECT name FROM zzgl_bmgw_m WHERE id = (SELECT up_id FROM zzgl_bmgw_m WHERE id = b.bmgw_id limit 1) limit 1) as bm_name,
(SELECT name FROM yggl_main_emp WHERE emp_num = c.executor_id AND org_code = #{param.orgCode}) as executor_name, (SELECT name FROM yggl_main_emp WHERE emp_num = c.executor_id AND org_code = #{param.orgCode}) as executor_name
<!-- (SELECT executor_name FROM jxgl_process_node WHERE sts = 1 LIMIT 1) as confirmor, -->
d.comprehensive_score ,d.level
FROM jxgl_appraisal a FROM jxgl_appraisal a
LEFT JOIN yggl_main_emp b ON a.emp_num = b.emp_num AND b.org_code = #{param.orgCode} LEFT JOIN yggl_main_emp b ON a.emp_num = b.emp_num AND b.org_code = #{param.orgCode}
LEFT JOIN jxgl_process_node c ON a.id = c.appraisal_id AND c.sts = 1 LEFT JOIN jxgl_process_node c ON a.id = c.appraisal_id AND c.sts = 1
LEFT JOIN jxgl_appraisal_assessment d ON a.id = d.appraisal_id AND d.type = 1
<!-- 缺部门 搜索 --> <where>
WHERE a.performance_appraisal_id = #{param.id}
<if test="param.empNums != null and param.empNums.size() > 0"> <if test="param.empNums != null and param.empNums.size() > 0">
<choose> <choose>
<when test="param.empNums.size() > 1"> <when test="param.empNums.size() > 1">
...@@ -279,9 +286,7 @@ ...@@ -279,9 +286,7 @@
b.phone like CONCAT('%',#{param.query},'%') b.phone like CONCAT('%',#{param.query},'%')
) )
</if> </if>
<if test="param.sts != null"> </where>
AND a.sts = #{param.sts}
</if>
ORDER BY a.id DESC ORDER BY a.id DESC
</select> </select>
...@@ -308,6 +313,21 @@ ...@@ -308,6 +313,21 @@
b.phone like CONCAT('%',#{param.query},'%') b.phone like CONCAT('%',#{param.query},'%')
) )
</if> </if>
<if test="param.empNums != null and param.empNums.size() > 0">
<choose>
<when test="param.empNums.size() > 1">
AND b.emp_num IN
(
<foreach item="it" index="index" collection="param.empNums" separator="," close="" >
#{it}
</foreach>
)
</when>
<otherwise>
AND asso_id = #{param.empNums[0]}
</otherwise>
</choose>
</if>
</where> </where>
GROUP BY a.emp_num GROUP BY a.emp_num
ORDER BY a.id DESC ORDER BY a.id DESC
...@@ -317,6 +337,7 @@ ...@@ -317,6 +337,7 @@
<select id="selectDetailById" resultMap="BaseResultMap_Detail"> <select id="selectDetailById" resultMap="BaseResultMap_Detail">
SELECT SELECT
<include refid="Base_Column_List_a" />, <include refid="Base_Column_List_a" />,
j.head_url head_url,
<include refid="Base_Column_List_Alias_b" />, <include refid="Base_Column_List_Alias_b" />,
i.name JxglProcessNode_executor_name, i.name JxglProcessNode_executor_name,
<include refid="Base_Column_List_Alias_c" />, <include refid="Base_Column_List_Alias_c" />,
...@@ -335,6 +356,7 @@ ...@@ -335,6 +356,7 @@
LEFT JOIN jxgl_appraisal_item g ON e.id = g.appraisal_indicators_id LEFT JOIN jxgl_appraisal_item g ON e.id = g.appraisal_indicators_id
LEFT JOIN jxgl_performance_appraisal h ON a.performance_appraisal_id = h.id LEFT JOIN jxgl_performance_appraisal h ON a.performance_appraisal_id = h.id
LEFT JOIN yggl_main_emp i ON b.executor_id = i.emp_num AND i.org_code = #{orgCode} LEFT JOIN yggl_main_emp i ON b.executor_id = i.emp_num AND i.org_code = #{orgCode}
LEFT JOIN yggl_main_emp j ON a.emp_num = j.emp_num AND j.org_code = #{orgCode}
WHERE a.id = #{id} WHERE a.id = #{id}
ORDER BY c.id , d.id , b.process_type ORDER BY c.id , d.id , b.process_type
</select> </select>
...@@ -356,6 +378,12 @@ ...@@ -356,6 +378,12 @@
<if test ='null != appraisalExplain'> <if test ='null != appraisalExplain'>
appraisal_explain, appraisal_explain,
</if> </if>
<if test ='null != total'>
total,
</if>
<if test ='null != level'>
level,
</if>
<if test ='null != createTime'> <if test ='null != createTime'>
create_time, create_time,
</if> </if>
...@@ -379,6 +407,12 @@ ...@@ -379,6 +407,12 @@
<if test ='null != appraisalExplain'> <if test ='null != appraisalExplain'>
#{appraisalExplain}, #{appraisalExplain},
</if> </if>
<if test ='null != total'>
#{total},
</if>
<if test ='null != level'>
#{level},
</if>
<if test ='null != createTime'> <if test ='null != createTime'>
#{createTime}, #{createTime},
</if> </if>
...@@ -403,6 +437,8 @@ ...@@ -403,6 +437,8 @@
<if test ='null != empNum'>emp_num = #{empNum},</if> <if test ='null != empNum'>emp_num = #{empNum},</if>
<if test ='null != name'>name = #{name},</if> <if test ='null != name'>name = #{name},</if>
<if test ='null != appraisalExplain'>appraisal_explain = #{appraisalExplain},</if> <if test ='null != appraisalExplain'>appraisal_explain = #{appraisalExplain},</if>
<if test ='null != total'>total = #{total},</if>
<if test ='null != level'>level = #{level},</if>
<if test ='null != createTime'>create_time = #{createTime},</if> <if test ='null != createTime'>create_time = #{createTime},</if>
<if test ='null != updateTime'>update_time = #{updateTime},</if> <if test ='null != updateTime'>update_time = #{updateTime},</if>
<if test ='null != sts'>sts = #{sts}</if> <if test ='null != sts'>sts = #{sts}</if>
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
<id column="id" property="id" /> <id column="id" property="id" />
<result column="appraisal_t_id" property="appraisalTId" /> <result column="appraisal_t_id" property="appraisalTId" />
<result column="title" property="title" /> <result column="title" property="title" />
<result column="content" property="content" />
<result column="weight" property="weight" /> <result column="weight" property="weight" />
<result column="create_time" property="createTime" /> <result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" /> <result column="update_time" property="updateTime" />
...@@ -84,6 +85,7 @@ ...@@ -84,6 +85,7 @@
b.id JxglAppraisalIndicatorsT_id, b.id JxglAppraisalIndicatorsT_id,
b.appraisal_t_id JxglAppraisalIndicatorsT_appraisal_t_id, b.appraisal_t_id JxglAppraisalIndicatorsT_appraisal_t_id,
b.title JxglAppraisalIndicatorsT_title, b.title JxglAppraisalIndicatorsT_title,
b.content JxglAppraisalIndicatorsT_content,
b.weight JxglAppraisalIndicatorsT_weight, b.weight JxglAppraisalIndicatorsT_weight,
b.create_time JxglAppraisalIndicatorsT_create_time, b.create_time JxglAppraisalIndicatorsT_create_time,
b.update_time JxglAppraisalIndicatorsT_update_time, b.update_time JxglAppraisalIndicatorsT_update_time,
......
...@@ -42,6 +42,10 @@ ...@@ -42,6 +42,10 @@
<result column="performance_score" property="performanceScore" /> <result column="performance_score" property="performanceScore" />
<result column="result_verification" property="resultVerification" /> <result column="result_verification" property="resultVerification" />
<result column="performance_archive" property="performanceArchive" /> <result column="performance_archive" property="performanceArchive" />
<result column="assessment_complete" property="assessmentComplete" />
<result column="termination_assessment" property="terminationAssessment" />
<result column="note_sts" property="noteSts" />
<association property="appraisal" column="b_id" javaType="cn.timer.api.bean.jxgl.JxglAppraisal" columnPrefix="b_" <association property="appraisal" column="b_id" javaType="cn.timer.api.bean.jxgl.JxglAppraisal" columnPrefix="b_"
resultMap="cn.timer.api.dao.jxgl.JxglAppraisalMapper.BaseResultMap_My"> resultMap="cn.timer.api.dao.jxgl.JxglAppraisalMapper.BaseResultMap_My">
</association> </association>
...@@ -162,7 +166,9 @@ ...@@ -162,7 +166,9 @@
SUM((CASE WHEN b.sts in (0,1) THEN 1 ELSE 0 END)) AS target_seting, SUM((CASE WHEN b.sts in (0,1) THEN 1 ELSE 0 END)) AS target_seting,
SUM((CASE WHEN b.sts in (2,3) THEN 1 ELSE 0 END)) AS performance_score, SUM((CASE WHEN b.sts in (2,3) THEN 1 ELSE 0 END)) AS performance_score,
SUM((CASE WHEN b.sts in (4,5) THEN 1 ELSE 0 END)) AS result_verification, SUM((CASE WHEN b.sts in (4,5) THEN 1 ELSE 0 END)) AS result_verification,
SUM((CASE WHEN b.sts = 7 THEN 1 ELSE 0 END)) AS performance_archive SUM((CASE WHEN b.sts = 7 THEN 1 ELSE 0 END)) AS performance_archive,
SUM((CASE WHEN b.sts = 5 THEN 1 ELSE 0 END)) AS assessment_complete,
SUM((CASE WHEN b.sts = 6 THEN 1 ELSE 0 END)) AS termination_assessment
FROM jxgl_performance_appraisal a FROM jxgl_performance_appraisal a
LEFT JOIN jxgl_appraisal b ON a.id = b.performance_appraisal_id LEFT JOIN jxgl_appraisal b ON a.id = b.performance_appraisal_id
WHERE a.org_code = #{param.orgCode} AND a.sts = 3 WHERE a.org_code = #{param.orgCode} AND a.sts = 3
...@@ -185,14 +191,19 @@ ...@@ -185,14 +191,19 @@
<select id="selectListEmpByQuery" resultMap="BaseResultMap_ALl" > <select id="selectListEmpByQuery" resultMap="BaseResultMap_ALl" >
SELECT SELECT
a.name,a.appraisal_start_time,a.appraisal_end_time, a.name,a.appraisal_start_time,a.appraisal_end_time,
e.name b_user_name, e.phone b_phone,
(SELECT name FROM zzgl_bmgw_m WHERE id = (SELECT up_id FROM zzgl_bmgw_m WHERE id = e.bmgw_id limit 1) limit 1) as b_bm_name,
b.id b_id, b.sts b_sts, b.id b_id, b.sts b_sts,
(SELECT name FROM yggl_main_emp WHERE emp_num = d.executor_id AND org_code = a.org_code) as b_executor_name, (SELECT name FROM yggl_main_emp WHERE emp_num = d.executor_id AND org_code = a.org_code) as b_executor_name,
d.executor_id b_executor_id,
d.sts b_note_sts,
c.comprehensive_score c_comprehensive_score, c.comprehensive_score c_comprehensive_score,
c.level c_level c.level c_level
FROM jxgl_performance_appraisal a FROM jxgl_performance_appraisal a
LEFT JOIN jxgl_appraisal b ON b.performance_appraisal_id = a.id LEFT JOIN jxgl_appraisal b ON b.performance_appraisal_id = a.id
LEFT JOIN jxgl_appraisal_assessment c ON b.id = c.appraisal_id AND c.type = 1 LEFT JOIN jxgl_appraisal_assessment c ON b.id = c.appraisal_id AND c.type = 1
LEFT JOIN jxgl_process_node d ON b.id = d.appraisal_id AND d.sts = 1 LEFT JOIN jxgl_process_node d ON b.id = d.appraisal_id AND b.sts = d.process_type
LEFT JOIN yggl_main_emp e ON b.emp_num = e.emp_num AND a.org_code = e.org_code
WHERE a.org_code = #{param.orgCode} AND b.emp_num = #{param.id} WHERE a.org_code = #{param.orgCode} AND b.emp_num = #{param.id}
</select> </select>
...@@ -203,16 +214,18 @@ ...@@ -203,16 +214,18 @@
b.id b_id,b.sts b_sts, b.id b_id,b.sts b_sts,
c.comprehensive_score c_comprehensive_score, c.comprehensive_score c_comprehensive_score,
c.level c_level, c.level c_level,
e.name b_executor_name, e.phone b_phone, d.sts note_sts,
e.name b_user_name, e.phone b_phone,
(SELECT name FROM zzgl_bmgw_m WHERE id = (SELECT up_id FROM zzgl_bmgw_m WHERE id = e.bmgw_id limit 1) limit 1) as b_bm_name (SELECT name FROM zzgl_bmgw_m WHERE id = (SELECT up_id FROM zzgl_bmgw_m WHERE id = e.bmgw_id limit 1) limit 1) as b_bm_name
FROM jxgl_performance_appraisal a FROM jxgl_performance_appraisal a
LEFT JOIN jxgl_appraisal b ON b.performance_appraisal_id = a.id LEFT JOIN jxgl_appraisal b ON b.performance_appraisal_id = a.id
LEFT JOIN jxgl_appraisal_assessment c ON b.id = c.appraisal_id AND c.type = 1 LEFT JOIN jxgl_appraisal_assessment c ON b.id = c.appraisal_id AND c.type = 1
LEFT JOIN jxgl_process_node d ON b.id = d.appraisal_id AND d.sts = 1 LEFT JOIN jxgl_process_node d ON b.id = d.appraisal_id AND d.process_type = b.sts
LEFT JOIN yggl_main_emp e ON b.emp_num = e.emp_num AND a.org_code = e.org_code LEFT JOIN yggl_main_emp e ON b.emp_num = e.emp_num AND a.org_code = e.org_code
<where> <where>
AND a.org_code = #{param.orgCode} AND a.org_code = #{param.orgCode}
AND d.executor_id = #{param.id} AND d.executor_id = #{param.id}
AND d.sts != 0
<if test="param.sts != null and param.sts == 0"> <if test="param.sts != null and param.sts == 0">
AND b.sts = 0 AND b.sts = 0
</if> </if>
......
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
leader_tier, leader_tier,
</if> </if>
<if test ='null != weight'> <if test ='null != weight'>
weight, weight,W
</if> </if>
<if test ='null != sts'> <if test ='null != sts'>
sts, sts,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment