WholeCommentOSFService.java 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. package com.kingdee.eas.hr.perf.osf;
  2. import com.google.common.collect.Maps;
  3. import com.kingdee.bos.BOSException;
  4. import com.kingdee.bos.Context;
  5. import com.kingdee.bos.bsf.service.app.IHRMsfService;
  6. import com.kingdee.bos.rabbitmq.guava.Lists;
  7. import com.kingdee.eas.common.EASBizException;
  8. import com.kingdee.eas.hr.perf.handler.AreaBaseConfig;
  9. import com.kingdee.eas.hr.perf.handler.EvaResultSummaryManagerListHandlerExEx;
  10. import com.kingdee.eas.util.app.DbUtil;
  11. import com.kingdee.jdbc.rowset.IRowSet;
  12. import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsHeader;
  13. import org.apache.commons.lang3.StringUtils;
  14. import java.util.List;
  15. import java.util.Map;
  16. import java.util.Set;
  17. /**
  18. * 考核结果管理列表新增显示“整体评价评语”(取最终等级的整体评价评语)
  19. * description: WholeCommentOSFService <br>
  20. * date: 2025/6/18 15:32 <br>
  21. * author: lhbj <br>
  22. * version: 1.0 <br>
  23. */
  24. public class WholeCommentOSFService implements IHRMsfService {
  25. @Override
  26. public Object process(Context context, Map<String, Object> map) throws EASBizException, BOSException {
  27. try {
  28. System.out.println("WholeCommentOSFService:wholeComment");
  29. this.wholeComment(context, map);
  30. } catch (Exception e) {
  31. e.printStackTrace();
  32. throw new BOSException(e);
  33. }
  34. try {
  35. EvaResultSummaryManagerListHandlerExEx exEx = new EvaResultSummaryManagerListHandlerExEx();
  36. //获取上季度组织等级批量
  37. try {
  38. List<String> idList = Lists.newArrayList();
  39. StringBuffer sql = new StringBuffer();
  40. sql.append(" select ers.fid from ");
  41. sql.append(" T_EVA_EvaResultSummary ers ");
  42. sql.append(" left join T_EVA_PerfPeriod pp on ers.FPERIODID=pp.fid ");
  43. sql.append(" where ers.FBILLSTATE in (0,1,2) ");
  44. System.out.println("WholeCommentOSFService:bindDep:sql:" + sql);
  45. IRowSet rs = DbUtil.executeQuery(context, sql.toString());
  46. while (rs.next()) {
  47. String fid = rs.getString("fid");
  48. try {
  49. exEx.bindDep(context, fid);
  50. } catch (Exception e) {
  51. e.printStackTrace();
  52. }
  53. idList.add(fid);
  54. }
  55. System.out.println("WholeCommentOSFService:bindDep:idList:" + idList);
  56. } catch (Exception e) {
  57. e.printStackTrace();
  58. }
  59. try {
  60. List<String> idList = Lists.newArrayList();
  61. StringBuffer sql = new StringBuffer();
  62. sql.append(" select ers.fid from ");
  63. sql.append(" T_EVA_EvaResultSummary ers ");
  64. sql.append(" left join T_EVA_PerfPeriod pp on ers.FPERIODID=pp.fid ");
  65. sql.append(" where ers.FBILLSTATE in (0,1,2) ");
  66. System.out.println("WholeCommentOSFService:bindProject:sql:" + sql);
  67. IRowSet rs = DbUtil.executeQuery(context, sql.toString());
  68. while (rs.next()) {
  69. idList.add(rs.getString("fid"));
  70. }
  71. System.out.println("WholeCommentOSFService:bindProject:idList:" + idList);
  72. exEx.bindProject(context, StringUtils.join(idList, ","));
  73. } catch (Exception e) {
  74. e.printStackTrace();
  75. }
  76. //获取绩效系数
  77. try {
  78. Map<String, List<String>> maps = Maps.newHashMap();
  79. StringBuilder sqlsel = new StringBuilder();
  80. sqlsel.append(" select fid,FPeriodID,FEvaPlanID from T_EVA_EvaResultSummary where CFPERCOEFFICIENT is null and FBILLSTATE in (0,1,2) ");
  81. System.out.println("WholeCommentOSFService:performanceLevel:sqlsel:" + sqlsel);
  82. IRowSet rs = DbUtil.executeQuery(context, sqlsel.toString());
  83. while (rs.next()) {
  84. String fid = rs.getString("fid");
  85. String FPeriodID = rs.getString("FPeriodID");
  86. String FEvaPlanID = rs.getString("FEvaPlanID");
  87. String key = FEvaPlanID + "," + FPeriodID;
  88. List<String> ids = maps.get(key);
  89. if (null == ids) {
  90. ids = Lists.newArrayList();
  91. maps.put(key, ids);
  92. }
  93. ids.add(fid);
  94. }
  95. System.out.println("WholeCommentOSFService:performanceLevel:maps:" + maps);
  96. for (Map.Entry<String, List<String>> entry : maps.entrySet()) {
  97. List<String> idList = entry.getValue();
  98. String[] keys = entry.getKey().split(",");
  99. String planId = keys[0];
  100. String period = keys[1];
  101. exEx.performanceLevel(context, idList, planId, period, new BatchMessageTipsHeader());
  102. }
  103. } catch (Exception e) {
  104. e.printStackTrace();
  105. }
  106. } catch (
  107. Exception e) {
  108. e.printStackTrace();
  109. }
  110. return "ok";
  111. }
  112. public Object wholeComment(Context context, Map<String, Object> map) throws Exception {
  113. try {
  114. Set<String> areaBases = AreaBaseConfig.getAreaBases(context);
  115. String sql =
  116. "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)";
  117. DbUtil.execute(context, sql);
  118. StringBuilder sql11 = new StringBuilder();
  119. sql11.append(" /*dialect*/MERGE INTO T_EVA_EvaResultSummary ers ");
  120. sql11.append(" USING ( ");
  121. sql11.append(" SELECT DISTINCT ");
  122. sql11.append(" it.FEVAOBJID, ");
  123. sql11.append(" ith.FEXTEND3,it.FSCORE ");
  124. sql11.append(" FROM T_EVA_IndicatorTarget it ");
  125. sql11.append(" INNER JOIN T_EVA_IndicatorExtendHelper ith ON it.FEXTENDID = ith.fid ");
  126. sql11.append(" WHERE ith.FEXTEND3 IS NOT NULL ");
  127. sql11.append(" AND it.FAREABASEID IN ('' ");
  128. for (String abid : areaBases) {
  129. sql11.append(",'");
  130. sql11.append(abid);
  131. sql11.append("'");
  132. }
  133. sql11.append(" ) ");
  134. sql11.append(" ) src ON (ers.FEVAOBJID = src.FEVAOBJID) ");
  135. sql11.append(" WHEN MATCHED THEN ");
  136. sql11.append(" UPDATE SET ers.cfdepGradeLevel = src.FEXTEND3,ers.cfoldSumScore = src.FSCORE ");
  137. System.out.println("WholeCommentOSFService:wholeComment:sql1:" + sql11);
  138. DbUtil.execute(context, sql11.toString());
  139. // StringBuilder sql2 = new StringBuilder();
  140. // sql2.append(" /*dialect*/UPDATE T_EVA_EvaResultSummary ");
  141. // sql2.append(" SET T_EVA_EvaResultSummary.cfoldSumScore = ( ");
  142. // sql2.append(" SELECT it.FSCORE ");
  143. // sql2.append(" FROM T_EVA_IndicatorTarget it ");
  144. // sql2.append(" LEFT JOIN T_EVA_IndicatorExtendHelper ith ON it.FEXTENDID = ith.fid ");
  145. // sql2.append(" WHERE ith.FEXTEND3 IS NOT NULL ");
  146. // sql2.append(" AND FAREABASEID in('' ");
  147. // for (String abid : areaBases) {
  148. // sql2.append(",'");
  149. // sql2.append(abid);
  150. // sql2.append("'");
  151. // }
  152. // sql2.append(" ) ");
  153. // sql2.append(" AND T_EVA_EvaResultSummary.FEVAOBJID = it.FEVAOBJID ");
  154. // sql2.append(" ) ");
  155. // sql2.append(" WHERE T_EVA_EvaResultSummary.FEVAOBJID IN ( ");
  156. // sql2.append(" SELECT it.FEVAOBJID ");
  157. // sql2.append(" FROM T_EVA_IndicatorTarget it ");
  158. // sql2.append(" LEFT JOIN T_EVA_IndicatorExtendHelper ith ON it.FEXTENDID = ith.fid ");
  159. // sql2.append(" WHERE ith.FEXTEND3 IS NOT NULL ");
  160. // sql2.append(" AND FAREABASEID in('' ");
  161. // for (String abid : areaBases) {
  162. // sql2.append(",'");
  163. // sql2.append(abid);
  164. // sql2.append("'");
  165. // }
  166. // sql2.append(" ) ");
  167. // sql2.append(" ) ");
  168. // System.out.println("WholeCommentOSFService:wholeComment:sql2:" + sql2);
  169. // DbUtil.execute(context, sql2.toString());
  170. } catch (Exception e) {
  171. e.printStackTrace();
  172. throw e;
  173. }
  174. return "ok";
  175. }
  176. }