| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- 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 <br>
- * date: 17/11/2025 下午 2:09 <br>
- * author: lhbj <br>revisegradelevel
- * version: 1.0 <br>
- */
- 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<String, Object> 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<String, List<String>> 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<String> 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<String, List<String>> entryList : maps.entrySet()) {
- List<String> 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<String> idList,String planId,String period, BatchMessageTipsHeader batchMessageTipsHeader){
- List<String> 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);
- }
- }
- }
|