package com.kingdee.eas.hr.perf.osf; import com.google.common.collect.Maps; import com.kingdee.bos.BOSException; import com.kingdee.bos.Context; import com.kingdee.bos.bsf.service.app.IHRMsfService; import com.kingdee.bos.rabbitmq.guava.Lists; import com.kingdee.eas.common.EASBizException; import com.kingdee.eas.hr.perf.handler.AreaBaseConfig; import com.kingdee.eas.hr.perf.handler.EvaResultSummaryManagerListHandlerExEx; import com.kingdee.eas.util.app.DbUtil; import com.kingdee.jdbc.rowset.IRowSet; import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsHeader; import org.apache.commons.lang3.StringUtils; import java.util.List; import java.util.Map; import java.util.Set; /** * 考核结果管理列表新增显示“整体评价评语”(取最终等级的整体评价评语) * description: WholeCommentOSFService
* date: 2025/6/18 15:32
* author: lhbj
* version: 1.0
*/ public class WholeCommentOSFService implements IHRMsfService { @Override public Object process(Context context, Map map) throws EASBizException, BOSException { try { System.out.println("WholeCommentOSFService:wholeComment"); this.wholeComment(context, map); } catch (Exception e) { e.printStackTrace(); throw new BOSException(e); } try { EvaResultSummaryManagerListHandlerExEx exEx = new EvaResultSummaryManagerListHandlerExEx(); //获取上季度组织等级批量 try { List idList = Lists.newArrayList(); StringBuffer sql = new StringBuffer(); sql.append(" select ers.fid from "); sql.append(" T_EVA_EvaResultSummary ers "); sql.append(" left join T_EVA_PerfPeriod pp on ers.FPERIODID=pp.fid "); sql.append(" where ers.FBILLSTATE in (0,1,2) "); System.out.println("WholeCommentOSFService:bindDep:sql:" + sql); IRowSet rs = DbUtil.executeQuery(context, sql.toString()); while (rs.next()) { String fid = rs.getString("fid"); try { exEx.bindDep(context, fid); } catch (Exception e) { e.printStackTrace(); } idList.add(fid); } System.out.println("WholeCommentOSFService:bindDep:idList:" + idList); } catch (Exception e) { e.printStackTrace(); } try { List idList = Lists.newArrayList(); StringBuffer sql = new StringBuffer(); sql.append(" select ers.fid from "); sql.append(" T_EVA_EvaResultSummary ers "); sql.append(" left join T_EVA_PerfPeriod pp on ers.FPERIODID=pp.fid "); sql.append(" where ers.FBILLSTATE in (0,1,2) "); System.out.println("WholeCommentOSFService:bindProject:sql:" + sql); IRowSet rs = DbUtil.executeQuery(context, sql.toString()); while (rs.next()) { idList.add(rs.getString("fid")); } System.out.println("WholeCommentOSFService:bindProject:idList:" + idList); exEx.bindProject(context, StringUtils.join(idList, ",")); } catch (Exception e) { e.printStackTrace(); } //获取绩效系数 try { Map> maps = Maps.newHashMap(); StringBuilder sqlsel = new StringBuilder(); sqlsel.append(" select fid,FPeriodID,FEvaPlanID from T_EVA_EvaResultSummary where CFPERCOEFFICIENT is null and FBILLSTATE in (0,1,2) "); System.out.println("WholeCommentOSFService:performanceLevel:sqlsel:" + sqlsel); IRowSet rs = DbUtil.executeQuery(context, sqlsel.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> entry : maps.entrySet()) { List idList = entry.getValue(); String[] keys = entry.getKey().split(","); String planId = keys[0]; String period = keys[1]; exEx.performanceLevel(context, idList, planId, period, new BatchMessageTipsHeader()); } } catch (Exception e) { e.printStackTrace(); } } catch ( Exception e) { e.printStackTrace(); } return "ok"; } public Object wholeComment(Context context, Map map) throws Exception { try { Set areaBases = AreaBaseConfig.getAreaBases(context); String sql = "UPDATE T_EVA_EvaResultSummary SET CFWholeComment = (select to_char(wc.FCOMMENT) FCOMMENT from T_EVA_GradeTaskNodeInst gtni left join T_EVA_WFNodeDef wnf on wnf.fid = gtni.FWFNODEID left join T_PEF_WholeComment wc on wc.FGRADETASKNODEINSTID=gtni.fid where wnf.FISFINALGRADE=1 and wc.FCOMMENT is not null and T_EVA_EvaResultSummary.FEVAOBJID = gtni.FEVAOBJID) WHERE EXISTS (select to_char(wc.FCOMMENT) FCOMMENT from T_EVA_GradeTaskNodeInst gtni left join T_EVA_WFNodeDef wnf on wnf.fid = gtni.FWFNODEID left join T_PEF_WholeComment wc on wc.FGRADETASKNODEINSTID=gtni.fid where wnf.FISFINALGRADE=1 and wc.FCOMMENT is not null and T_EVA_EvaResultSummary.FEVAOBJID = gtni.FEVAOBJID)"; DbUtil.execute(context, sql); StringBuilder sql11 = new StringBuilder(); sql11.append(" /*dialect*/MERGE INTO T_EVA_EvaResultSummary ers "); sql11.append(" USING ( "); sql11.append(" SELECT DISTINCT "); sql11.append(" it.FEVAOBJID, "); sql11.append(" ith.FEXTEND3,it.FSCORE "); sql11.append(" FROM T_EVA_IndicatorTarget it "); sql11.append(" INNER JOIN T_EVA_IndicatorExtendHelper ith ON it.FEXTENDID = ith.fid "); sql11.append(" WHERE ith.FEXTEND3 IS NOT NULL "); sql11.append(" AND it.FAREABASEID IN ('' "); for (String abid : areaBases) { sql11.append(",'"); sql11.append(abid); sql11.append("'"); } sql11.append(" ) "); sql11.append(" ) src ON (ers.FEVAOBJID = src.FEVAOBJID) "); sql11.append(" WHEN MATCHED THEN "); sql11.append(" UPDATE SET ers.cfdepGradeLevel = src.FEXTEND3,ers.cfoldSumScore = src.FSCORE "); System.out.println("WholeCommentOSFService:wholeComment:sql1:" + sql11); DbUtil.execute(context, sql11.toString()); // StringBuilder sql2 = new StringBuilder(); // sql2.append(" /*dialect*/UPDATE T_EVA_EvaResultSummary "); // sql2.append(" SET T_EVA_EvaResultSummary.cfoldSumScore = ( "); // sql2.append(" SELECT it.FSCORE "); // sql2.append(" FROM T_EVA_IndicatorTarget it "); // sql2.append(" LEFT JOIN T_EVA_IndicatorExtendHelper ith ON it.FEXTENDID = ith.fid "); // sql2.append(" WHERE ith.FEXTEND3 IS NOT NULL "); // sql2.append(" AND FAREABASEID in('' "); // for (String abid : areaBases) { // sql2.append(",'"); // sql2.append(abid); // sql2.append("'"); // } // sql2.append(" ) "); // sql2.append(" AND T_EVA_EvaResultSummary.FEVAOBJID = it.FEVAOBJID "); // sql2.append(" ) "); // sql2.append(" WHERE T_EVA_EvaResultSummary.FEVAOBJID IN ( "); // sql2.append(" SELECT it.FEVAOBJID "); // sql2.append(" FROM T_EVA_IndicatorTarget it "); // sql2.append(" LEFT JOIN T_EVA_IndicatorExtendHelper ith ON it.FEXTENDID = ith.fid "); // sql2.append(" WHERE ith.FEXTEND3 IS NOT NULL "); // sql2.append(" AND FAREABASEID in('' "); // for (String abid : areaBases) { // sql2.append(",'"); // sql2.append(abid); // sql2.append("'"); // } // sql2.append(" ) "); // sql2.append(" ) "); // System.out.println("WholeCommentOSFService:wholeComment:sql2:" + sql2); // DbUtil.execute(context, sql2.toString()); } catch (Exception e) { e.printStackTrace(); throw e; } return "ok"; } }