WholeCommentOSFService.java 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  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. idList.add(rs.getString("fid"));
  48. }
  49. System.out.println("WholeCommentOSFService:bindDep:idList:"+idList);
  50. exEx.bindDep(context, StringUtils.join(idList,","));
  51. } catch (Exception e) {
  52. e.printStackTrace();
  53. }
  54. try {
  55. List<String> idList = Lists.newArrayList();
  56. StringBuffer sql = new StringBuffer();
  57. sql.append(" select ers.fid from ");
  58. sql.append(" T_EVA_EvaResultSummary ers ");
  59. sql.append(" left join T_EVA_PerfPeriod pp on ers.FPERIODID=pp.fid ");
  60. sql.append(" where ers.FBILLSTATE in (0,1,2) ");
  61. System.out.println("WholeCommentOSFService:bindProject:sql:"+sql);
  62. IRowSet rs = DbUtil.executeQuery(context, sql.toString());
  63. while (rs.next()){
  64. idList.add(rs.getString("fid"));
  65. }
  66. System.out.println("WholeCommentOSFService:bindProject:idList:"+idList);
  67. exEx.bindProject(context, StringUtils.join(idList,","));
  68. } catch (Exception e) {
  69. e.printStackTrace();
  70. }
  71. //获取绩效系数
  72. try {
  73. Map<String,List<String>> maps = Maps.newHashMap();
  74. StringBuilder sqlsel = new StringBuilder();
  75. sqlsel.append(" select fid,FPeriodID,FEvaPlanID from T_EVA_EvaResultSummary where FBILLSTATE in (0,1,2) ");
  76. System.out.println("WholeCommentOSFService:performanceLevel:sqlsel:"+sqlsel);
  77. IRowSet rs = DbUtil.executeQuery(context, sqlsel.toString());
  78. while (rs.next()) {
  79. String fid = rs.getString("fid");
  80. String FPeriodID = rs.getString("FPeriodID");
  81. String FEvaPlanID = rs.getString("FEvaPlanID");
  82. String key = FEvaPlanID+","+FPeriodID;
  83. List<String> ids =maps.get(key);
  84. if(null==ids){
  85. ids=Lists.newArrayList();
  86. maps.put(key,ids);
  87. }
  88. ids.add(fid);
  89. }
  90. System.out.println("WholeCommentOSFService:performanceLevel:maps:"+maps);
  91. for (Map.Entry<String,List<String>> entry : maps.entrySet()){
  92. List<String> idList = entry.getValue();
  93. String[] keys = entry.getKey().split(",");
  94. String planId=keys[0];
  95. String period=keys[1];
  96. exEx.performanceLevel(context,idList,planId,period, new BatchMessageTipsHeader());
  97. }
  98. } catch (Exception e) {
  99. e.printStackTrace();
  100. }
  101. } catch (Exception e) {
  102. e.printStackTrace();
  103. }
  104. return "ok";
  105. }
  106. public Object wholeComment(Context context, Map<String, Object> map) throws Exception {
  107. try {
  108. Set<String> areaBases = AreaBaseConfig.getAreaBases(context);
  109. String sql =
  110. "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)";
  111. DbUtil.execute(context, sql);
  112. StringBuilder sql1 = new StringBuilder();
  113. sql1.append(" /*dialect*/UPDATE T_EVA_EvaResultSummary ");
  114. sql1.append(" SET T_EVA_EvaResultSummary.cfdepGradeLevel = ( ");
  115. sql1.append(" SELECT ith.FEXTEND3 ");
  116. sql1.append(" FROM T_EVA_IndicatorTarget it ");
  117. sql1.append(" LEFT JOIN T_EVA_IndicatorExtendHelper ith ON it.FEXTENDID = ith.fid ");
  118. sql1.append(" WHERE ith.FEXTEND3 IS NOT NULL ");
  119. //sql1.append(" AND it.FNAME_L2 LIKE '%跨部门协作%' ");
  120. sql1.append(" AND FAREABASEID in('' ");
  121. for (String abid : areaBases) {
  122. sql1.append(",'");
  123. sql1.append(abid);
  124. sql1.append("'");
  125. }
  126. sql1.append(" ) ");
  127. sql1.append(" AND T_EVA_EvaResultSummary.FEVAOBJID = it.FEVAOBJID ");
  128. sql1.append(" ) ");
  129. sql1.append(" WHERE T_EVA_EvaResultSummary.FEVAOBJID IN ( ");
  130. sql1.append(" SELECT it.FEVAOBJID ");
  131. sql1.append(" FROM T_EVA_IndicatorTarget it ");
  132. sql1.append(" LEFT JOIN T_EVA_IndicatorExtendHelper ith ON it.FEXTENDID = ith.fid ");
  133. sql1.append(" WHERE ith.FEXTEND3 IS NOT NULL ");
  134. sql1.append(" AND FAREABASEID in('' ");
  135. for (String abid : areaBases) {
  136. sql1.append(",'");
  137. sql1.append(abid);
  138. sql1.append("'");
  139. }
  140. sql1.append(" ) ");
  141. sql1.append(" ) ");
  142. System.out.println("WholeCommentOSFService:wholeComment:sql1:"+sql1);
  143. DbUtil.execute(context, sql1.toString());
  144. StringBuilder sql2 = new StringBuilder();
  145. sql2.append(" /*dialect*/UPDATE T_EVA_EvaResultSummary ");
  146. sql2.append(" SET T_EVA_EvaResultSummary.cfoldSumScore = ( ");
  147. sql2.append(" SELECT it.FSCORE ");
  148. sql2.append(" FROM T_EVA_IndicatorTarget it ");
  149. sql2.append(" LEFT JOIN T_EVA_IndicatorExtendHelper ith ON it.FEXTENDID = ith.fid ");
  150. sql2.append(" WHERE ith.FEXTEND3 IS NOT NULL ");
  151. sql1.append(" AND FAREABASEID in('' ");
  152. for (String abid : areaBases) {
  153. sql1.append(",'");
  154. sql1.append(abid);
  155. sql1.append("'");
  156. }
  157. sql1.append(" ) ");
  158. sql2.append(" AND T_EVA_EvaResultSummary.FEVAOBJID = it.FEVAOBJID ");
  159. sql2.append(" ) ");
  160. sql2.append(" WHERE T_EVA_EvaResultSummary.FEVAOBJID IN ( ");
  161. sql2.append(" SELECT it.FEVAOBJID ");
  162. sql2.append(" FROM T_EVA_IndicatorTarget it ");
  163. sql2.append(" LEFT JOIN T_EVA_IndicatorExtendHelper ith ON it.FEXTENDID = ith.fid ");
  164. sql2.append(" WHERE ith.FEXTEND3 IS NOT NULL ");
  165. sql1.append(" AND FAREABASEID in('' ");
  166. for (String abid : areaBases) {
  167. sql1.append(",'");
  168. sql1.append(abid);
  169. sql1.append("'");
  170. }
  171. sql1.append(" ) ");
  172. sql2.append(" ) ");
  173. System.out.println("WholeCommentOSFService:wholeComment:sql2:"+sql2);
  174. DbUtil.execute(context, sql2.toString());
  175. } catch (Exception e) {
  176. e.printStackTrace();
  177. throw e;
  178. }
  179. return "ok";
  180. }
  181. }