123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- package com.kingdee.eas.hr.perf.handler;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.kingdee.bos.BOSException;
- import com.kingdee.bos.Context;
- import com.kingdee.bos.rabbitmq.guava.Lists;
- import com.kingdee.eas.common.EASBizException;
- import com.kingdee.eas.framework.CoreBaseInfo;
- import com.kingdee.eas.util.app.DbUtil;
- import com.kingdee.jdbc.rowset.IRowSet;
- import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsBody;
- import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsHeader;
- import com.kingdee.shr.base.syssetting.context.SHRContext;
- import com.kingdee.shr.base.syssetting.exception.SHRWebException;
- import com.kingdee.shr.base.syssetting.web.json.JSONUtils;
- import com.kingdee.shr.compensation.util.CmpStrUtil;
- import com.kingdee.shr.perfweb.app.base.evalplan.EvaResultSummaryAuditBillFactory;
- import com.kingdee.shr.perfweb.app.base.evalplan.IEvaResultSummaryAuditBill;
- import com.kingdee.shr.perfweb.planexecute.handler.EvaresultAuditBillEditHandler;
- import org.apache.commons.lang3.StringUtils;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.ui.ModelMap;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * @BelongsProject: dataImpExp820
- * @BelongsPackage: com.kingdee.eas.hr.perf.handler
- * @Author: lhbj
- * @CreateTime: 2025-01-10 19:09
- * @Description: TODO
- * @Version: 1.0
- */
- public class EvaresultAuditBillEditHandlerEx extends EvaresultAuditBillEditHandler {
- private static Logger logger = LoggerFactory.getLogger(EvaresultAuditBillEditHandlerEx.class);
- /**
- [{"evaResult.pnumber":"0000381","evaResult.pname":"谭梓傲","evaResult.positionName":"物资岗","evaResult.evaObj.perfFile.adminOrgUnit.company.name":"湖南红太阳光电科技有限公司","evaResult.evaObj.perfFile.adminOrgUnit.department.name":"综合管理","evaResult.sumScore":"<span></span>","evaResult.gradeLevel":"","evaResult.auditSumScore":"<span value=\\"86\\">86.00</span>","evaResult.auditGradeLevel":"C","evaResult.auditReason":"<div class=\\"cell-height scrollbarthin\\">正态分布更新结果</div>","evaResult.reviseSumScore":"<span value=\\"86\\">86.00</span>","evaResult.reviseGradeLevel":"C","evaResult.reviseReason":"正态分布更新结果","id":"KQukJy27Skiy1rPPghjkJBdK16Q=","evaResult.id":"Ka7FkRQuTAaPlTaLvJSD3IESG3Q=","bill.id":"m85zTeeDSmaAU2QLbYWMUoZLdW4=","evaResult.evaObj.id":"gjX3giS2RKurkJVjPhnwa4GI54s=","reviseGradeLevelSelect":"[{\\"value\\":\\"S\\",\\"alias\\":\\"S\\"},{\\"value\\":\\"A\\",\\"alias\\":\\"A\\"},{\\"value\\":\\"B\\",\\"alias\\":\\"B\\"},{\\"value\\":\\"C\\",\\"alias\\":\\"C\\"},{\\"value\\":\\"D\\",\\"alias\\":\\"D\\"}]","levelScoreKVInfo":"{\\n \\"90.00~100.00\\": \\"S\\",\\n \\"80.00~90.00\\": \\"A\\",\\n \\"70.00~80.00\\": \\"B\\",\\n \\"60.00~70.00\\": \\"C\\",\\n \\"0.00~60.00\\": \\"D\\"\\n}","scoreLowLimit":"0","scoreUpLimit":"100","evaResult.period.id":"q6myAjHaQLK+wnczfdLCJEUaiOU=","evaResult.reviseFlag":"是","evaResult.auditFlag":"否"}]
- * @param request
- * @param response
- * @param modelMap
- * @throws SHRWebException
- */
- public void verifyBeforeSubmitAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException {
- String entryData = request.getParameter("entryData");
- BatchMessageTipsHeader header = new BatchMessageTipsHeader();
- boolean isExists = true;
- if (!com.kingdee.util.StringUtils.isEmpty(entryData)) {
- int success = 0;
- int fail = 0;
- StringBuilder ids = new StringBuilder();
- List<String> allIdList = new ArrayList<>();
- try {
- Context ctx = SHRContext.getInstance().getContext();
- //明细数据
- JSONArray entryList = JSON.parseArray(entryData);
- for(int i=0;i<entryList.size();i++) {
- JSONObject object = entryList.getJSONObject(i);
- BatchMessageTipsBody body = new BatchMessageTipsBody();
- String id =object.getString("id");
- boolean isSuccess=false;
- String msg="";
- String pnumber = object.getString("evaResult.pnumber");
- String pname = object.getString("evaResult.pname");
- String positionName = object.getString("evaResult.positionName");
- String evaResult = object.getString("evaResult.id");
- //修改后等级
- String auditGradeLevel = object.getString("evaResult.auditGradeLevel");
- body.setId(id);
- ids.append(id).append(",");
- allIdList.add(id);
- //获取跨部门协作绩效等级
- String sql = "select CFDEPGRADELEVEL from T_EVA_EvaResultSummary where fid = ?";
- IRowSet rs = DbUtil.executeQuery(ctx, sql, new String[]{evaResult});
- //当跨部门协作绩效等级为C、D等级的,当期员工绩效不得为高绩效(S、A等级)
- if (rs.next()){
- //跨部门协作绩效等级
- String depgradelevel = rs.getString("CFDEPGRADELEVEL");
- switch (depgradelevel){
- case "S":;
- case "A":;
- case "B":isSuccess=true; msg="校验通过";success+=1;break;
- case "C":
- case "D":
- if("S".equals(auditGradeLevel)||"A".equals(auditGradeLevel)){
- isSuccess=false;
- msg="当跨部门协作绩效等级为C、D等级的,当期员工绩效不得为高绩效(S、A等级)";
- fail+=1;
- } else {
- isSuccess=true; msg="校验通过";success+=1;
- }
- break;
- }
- }else {
- msg="操作失败,数据异常";
- isSuccess=false;
- fail+=1;
- }
- body.setMuitTipsState(isSuccess);
- body.setMuitTipsMessage(msg);
- List<Object> messageListExt = new ArrayList<>();
- messageListExt.add(pnumber);
- messageListExt.add(pname);
- messageListExt.add(positionName);
- body.addMessageListExt(messageListExt);
- header.addResult(body);
- }
- } catch (BOSException | SQLException var7) {
- var7.printStackTrace();
- }
- ids.delete(ids.length()-1,ids.length());
- header.setBillId(ids.toString());
- header.setFailureCount(fail);
- header.setSuccessCount(success);
- }
- this.writeSuccessData(header);
- }
- protected void verifyModel(HttpServletRequest request, HttpServletResponse response, CoreBaseInfo model) throws SHRWebException {
- }
- public String beforeAuditEvaResut(Context ctx, List<String> ids) throws SHRWebException {
- List<String> unIdLIst = Lists.newArrayList();
- StringBuilder err = new StringBuilder();
- try {
- StringBuffer sql = new StringBuffer();
- sql.append(" select ers.fid,ers.FPNAME,ers.FPNUMBER,pp.FPSTARTDATE,ers.CFOrgLevelEveID,pp.FYEAR,pp.FTIMEPERIOD from ");
- sql.append(" T_EVA_EvaResultSummary ers ");
- sql.append(" left join T_EVA_PerfPeriod pp on ers.FPERIODID=pp.fid ");
- sql.append(" where ers.fid in(''");
- for (String id : ids) {
- sql.append(",'").append(id).append("'");
- }
- sql.append(" ) ");
- IRowSet rsSql = DbUtil.executeQuery(ctx, sql.toString());
- while (rsSql.next()){
- String id = rsSql.getString("id");
- String FPNAME = rsSql.getString("FPNAME");
- String FPNUMBER = rsSql.getString("FPNUMBER");
- String orgLevelEveID = rsSql.getString("CFOrgLevelEveID");
- if(StringUtils.isBlank(orgLevelEveID)) {
- err.append("员工:"+FPNAME+"("+FPNUMBER+"),无法获取当前组织绩效考核等级");
- unIdLIst.add(id);
- }
- }
- if(!unIdLIst.isEmpty()) {
- ids.removeAll(unIdLIst);
- err.append("存在无法获取当前组织绩效考核等级的记录");
- }
- }catch (Exception e){
- e.printStackTrace();
- }
- return err.toString();
- }
- }
|