package com.kingdee.eas.hr.perf.handler; import com.google.common.collect.Maps; import com.kingdee.bos.BOSException; import com.kingdee.bos.Context; import com.kingdee.bos.dao.ormapping.ObjectUuidPK; import com.kingdee.bos.metadata.entity.SelectorItemCollection; import com.kingdee.bos.metadata.entity.SelectorItemInfo; import com.kingdee.bos.rabbitmq.guava.Lists; import com.kingdee.bos.util.BOSUuid; 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.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.perfweb.app.base.evalplan.*; import com.kingdee.shr.perfweb.planexecute.handler.EvaresultSummaryAuditBillListHandler; 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.HashMap; import java.util.List; import java.util.Map; /** * description: EvaresultSummaryAuditBillListHandlerEx
* date: 17/11/2025 下午 2:09
* author: lhbj
revisegradelevel * version: 1.0
*/ public class EvaresultSummaryAuditBillListHandlerEx extends EvaresultSummaryAuditBillListHandler { private static Logger logger = LoggerFactory.getLogger(EvaresultSummaryAuditBillListHandler.class); public void deleteEvaresultBillAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws EASBizException, SHRWebException { Context ctx = SHRContext.getInstance().getContext(); Map res = new HashMap(); String billIds = request.getParameter("billIds"); IEvaResultSummaryAuditBill f = null; try { f = EvaResultSummaryAuditBillFactory.getLocalInstance(ctx); if (StringUtils.isNotEmpty(billIds)) { SelectorItemCollection sel = new SelectorItemCollection(); sel.add(new SelectorItemInfo("id")); sel.add(new SelectorItemInfo("entrys.id")); sel.add(new SelectorItemInfo("entrys.evaResult.id")); String[] billIdArr = billIds.split(","); for (String billid : billIdArr) { EvaResultSummaryAuditBillInfo finfo = f.getEvaResultSummaryAuditBillInfo(new ObjectUuidPK(billid), sel); if (null != finfo) { EvaResultSummaryAuditBillEntryCollection entryCollection = finfo.getEntrys(); if (null != entryCollection) { for (int i = 0; i < entryCollection.size(); i++) { EvaResultSummaryAuditBillEntryInfo entry = entryCollection.get(i); EvaResultSummaryInfo resultSummaryInfo = entry.getEvaResult(); if (null != resultSummaryInfo) { BOSUuid id = resultSummaryInfo.getId(); if (null != id) { String upd = "update T_EVA_EvaResultSummary set FAUDITSUMSCORE=null,FAUDITGRADELEVEL=null,FAUDITREASON=null,cfauditPerCoefficient=cFperCoefficient,cfreviseBfCoefficient=cFperCoefficient where fid=?"; DbUtil.execute(ctx, upd, new String[]{id.toString()}); //获取绩效系数 try { //EvaResultSummaryManagerListHandlerExEx exEx = new EvaResultSummaryManagerListHandlerExEx(); Map> maps = Maps.newHashMap(); StringBuilder sqlsel = new StringBuilder(); sqlsel.append(" select fid,FPeriodID,FEvaPlanID from T_EVA_EvaResultSummary where fid=? "); IRowSet rs = DbUtil.executeQuery(ctx, sqlsel.toString(), new String[]{id.toString()}); while (rs.next()) { String fid = rs.getString("fid"); String FPeriodID = rs.getString("FPeriodID"); String FEvaPlanID = rs.getString("FEvaPlanID"); String key = FEvaPlanID + "," + FPeriodID; List ids = maps.get(key); if (null == ids) { ids = Lists.newArrayList(); maps.put(key, ids); } ids.add(fid); } System.out.println("WholeCommentOSFService:performanceLevel:maps:" + maps); for (Map.Entry> entryList : maps.entrySet()) { List idList = entryList.getValue(); String[] keys = entryList.getKey().split(","); String planId = keys[0]; String period = keys[1]; this.performanceLevel(ctx, idList, planId, period, new BatchMessageTipsHeader()); } } catch (Exception e) { e.printStackTrace(); } } } } } } } } } catch (BOSException var8) { res.put("result", "500"); logger.error("", var8); } finally { try { f.deleteAuditBill(billIds); } catch (BOSException e) { e.printStackTrace(); } res.put("result", "200"); } JSONUtils.writeJson(response, res); } @Override protected void beforeSubmit(HttpServletRequest request, HttpServletResponse response, CoreBaseInfo model) throws SHRWebException { super.beforeSubmit(request, response, model); Context ctx = SHRContext.getInstance().getContext(); try { IEvaResultSummaryAuditBill f = EvaResultSummaryAuditBillFactory.getLocalInstance(ctx); SelectorItemCollection sel = new SelectorItemCollection(); sel.add(new SelectorItemInfo("id")); sel.add(new SelectorItemInfo("entrys.id")); sel.add(new SelectorItemInfo("entrys.evaResult.id")); EvaResultSummaryAuditBillInfo fmodel = (EvaResultSummaryAuditBillInfo) model; EvaResultSummaryAuditBillInfo finfo = f.getEvaResultSummaryAuditBillInfo(new ObjectUuidPK(fmodel.getId()), sel); if (null != finfo) { EvaResultSummaryAuditBillEntryCollection entryCollection = finfo.getEntrys(); if (null != entryCollection) { for (int i = 0; i < entryCollection.size(); i++) { EvaResultSummaryAuditBillEntryInfo entry = entryCollection.get(i); EvaResultSummaryInfo resultSummaryInfo = entry.getEvaResult(); if (null != resultSummaryInfo) { BOSUuid id = resultSummaryInfo.getId(); if (null != id) { String selPer = "select fid from T_EVA_EvaResultSummary where CfauditPerCoefficient is null and fid=?"; IRowSet rs = DbUtil.executeQuery(ctx, selPer, new String[]{id.toString()}); while (rs.next()) { String upd = "update T_EVA_EvaResultSummary set CfauditPerCoefficient=CfperCoefficient where fid=?"; DbUtil.execute(ctx, upd, new String[]{id.toString()}); } } } } } } } catch (SQLException | BOSException | EASBizException throwables) { throwables.printStackTrace(); } } public void performanceLevel(Context ctx,List idList,String planId,String period, BatchMessageTipsHeader batchMessageTipsHeader){ List idsessList = Lists.newArrayList(); StringBuilder selParamId = new StringBuilder("''"); for (int i = 0; i < idList.size(); i++) { selParamId.append(",?"); } try { StringBuilder sqlsel = new StringBuilder(); sqlsel.append(" select fid from T_EVA_EvaResultSummary where FBILLSTATE !=3 and fid in ( "); sqlsel.append(selParamId); sqlsel.append(" ) "); IRowSet rs = DbUtil.executeQuery(ctx, sqlsel.toString(), idList.toArray()); while (rs.next()) { idsessList.add(rs.getString("fid")); } StringBuilder selsessParamId = new StringBuilder("''"); for (int i = 0; i < idsessList.size(); i++) { selsessParamId.append(",?"); } StringBuilder sqlpl = new StringBuilder(); //sqlpl.append(" update T_EVA_EvaResultSummary set CFGROUP=(select CFCOEFFICIENT from CT_PER_PerformanceLevel where CFLEVEL=isnull(FREVISEGRADELEVEL,FGRADELEVEL)) "); sqlpl.append(" update T_EVA_EvaResultSummary set "); sqlpl.append(" CFPERMAXCOEFFICIENT=(select CFMAXCOEFFICIENT from CT_PER_PerformanceLevel where CFLEVEL=isnull(FREVISEGRADELEVEL,FGRADELEVEL)), "); sqlpl.append(" CFPERMINCOEFFICIENT=(select CFMINCOEFFICIENT from CT_PER_PerformanceLevel where CFLEVEL=isnull(FREVISEGRADELEVEL,FGRADELEVEL)), "); sqlpl.append(" CFCOEFFICIENT=(select CFCOEFFICIENT from CT_PER_PerformanceLevel where CFLEVEL=isnull(FREVISEGRADELEVEL,FGRADELEVEL)), "); sqlpl.append(" CFREVISEBFCOEFFICIENT=CFPERCOEFFICIENT "); sqlpl.append(" where FEVAPLANID =? and FPERIODID =? and fid in ( "); sqlpl.append(selsessParamId); sqlpl.append(" ) "); idsessList.add(0, planId); idsessList.add(1, period); System.out.println(":performanceLevel:sqlpl:"+sqlpl); System.out.println(":performanceLevel:idsessList:"+idsessList); DbUtil.execute(ctx, sqlpl.toString(), idsessList.toArray()); idList.removeAll(idsessList); if (idList.size() > 0) { //addBatchMessageTips(idList, "当前已经审核通过获取更新失败", batchMessageTipsHeader); } } catch (Exception e) { e.printStackTrace(); //addBatchMessageTips(idList, e.getMessage(), batchMessageTipsHeader); } } }