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":"","evaResult.gradeLevel":"","evaResult.auditSumScore":"86.00","evaResult.auditGradeLevel":"C","evaResult.auditReason":"
正态分布更新结果
","evaResult.reviseSumScore":"86.00","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 allIdList = new ArrayList<>();
try {
Context ctx = SHRContext.getInstance().getContext();
//明细数据
JSONArray entryList = JSON.parseArray(entryData);
for(int i=0;i 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 ids) throws SHRWebException {
List 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();
}
}