EvaresultSummaryAuditBillListHandlerEx.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. package com.kingdee.eas.hr.perf.handler;
  2. import com.google.common.collect.Maps;
  3. import com.kingdee.bos.BOSException;
  4. import com.kingdee.bos.Context;
  5. import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
  6. import com.kingdee.bos.metadata.entity.SelectorItemCollection;
  7. import com.kingdee.bos.metadata.entity.SelectorItemInfo;
  8. import com.kingdee.bos.rabbitmq.guava.Lists;
  9. import com.kingdee.bos.util.BOSUuid;
  10. import com.kingdee.eas.common.EASBizException;
  11. import com.kingdee.eas.framework.CoreBaseInfo;
  12. import com.kingdee.eas.util.app.DbUtil;
  13. import com.kingdee.jdbc.rowset.IRowSet;
  14. import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsHeader;
  15. import com.kingdee.shr.base.syssetting.context.SHRContext;
  16. import com.kingdee.shr.base.syssetting.exception.SHRWebException;
  17. import com.kingdee.shr.base.syssetting.web.json.JSONUtils;
  18. import com.kingdee.shr.perfweb.app.base.evalplan.*;
  19. import com.kingdee.shr.perfweb.planexecute.handler.EvaresultSummaryAuditBillListHandler;
  20. import org.apache.commons.lang3.StringUtils;
  21. import org.slf4j.Logger;
  22. import org.slf4j.LoggerFactory;
  23. import org.springframework.ui.ModelMap;
  24. import javax.servlet.http.HttpServletRequest;
  25. import javax.servlet.http.HttpServletResponse;
  26. import java.sql.SQLException;
  27. import java.util.HashMap;
  28. import java.util.List;
  29. import java.util.Map;
  30. /**
  31. * description: EvaresultSummaryAuditBillListHandlerEx <br>
  32. * date: 17/11/2025 下午 2:09 <br>
  33. * author: lhbj <br>revisegradelevel
  34. * version: 1.0 <br>
  35. */
  36. public class EvaresultSummaryAuditBillListHandlerEx extends EvaresultSummaryAuditBillListHandler {
  37. private static Logger logger = LoggerFactory.getLogger(EvaresultSummaryAuditBillListHandler.class);
  38. public void deleteEvaresultBillAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws EASBizException, SHRWebException {
  39. Context ctx = SHRContext.getInstance().getContext();
  40. Map<String, Object> res = new HashMap();
  41. String billIds = request.getParameter("billIds");
  42. IEvaResultSummaryAuditBill f = null;
  43. try {
  44. f = EvaResultSummaryAuditBillFactory.getLocalInstance(ctx);
  45. if (StringUtils.isNotEmpty(billIds)) {
  46. SelectorItemCollection sel = new SelectorItemCollection();
  47. sel.add(new SelectorItemInfo("id"));
  48. sel.add(new SelectorItemInfo("entrys.id"));
  49. sel.add(new SelectorItemInfo("entrys.evaResult.id"));
  50. String[] billIdArr = billIds.split(",");
  51. for (String billid : billIdArr) {
  52. EvaResultSummaryAuditBillInfo finfo = f.getEvaResultSummaryAuditBillInfo(new ObjectUuidPK(billid), sel);
  53. if (null != finfo) {
  54. EvaResultSummaryAuditBillEntryCollection entryCollection = finfo.getEntrys();
  55. if (null != entryCollection) {
  56. for (int i = 0; i < entryCollection.size(); i++) {
  57. EvaResultSummaryAuditBillEntryInfo entry = entryCollection.get(i);
  58. EvaResultSummaryInfo resultSummaryInfo = entry.getEvaResult();
  59. if (null != resultSummaryInfo) {
  60. BOSUuid id = resultSummaryInfo.getId();
  61. if (null != id) {
  62. String upd = "update T_EVA_EvaResultSummary set FAUDITSUMSCORE=null,FAUDITGRADELEVEL=null,FAUDITREASON=null,cfauditPerCoefficient=cFperCoefficient,cfreviseBfCoefficient=cFperCoefficient where fid=?";
  63. DbUtil.execute(ctx, upd, new String[]{id.toString()});
  64. //获取绩效系数
  65. try {
  66. //EvaResultSummaryManagerListHandlerExEx exEx = new EvaResultSummaryManagerListHandlerExEx();
  67. Map<String, List<String>> maps = Maps.newHashMap();
  68. StringBuilder sqlsel = new StringBuilder();
  69. sqlsel.append(" select fid,FPeriodID,FEvaPlanID from T_EVA_EvaResultSummary where fid=? ");
  70. IRowSet rs = DbUtil.executeQuery(ctx, sqlsel.toString(), new String[]{id.toString()});
  71. while (rs.next()) {
  72. String fid = rs.getString("fid");
  73. String FPeriodID = rs.getString("FPeriodID");
  74. String FEvaPlanID = rs.getString("FEvaPlanID");
  75. String key = FEvaPlanID + "," + FPeriodID;
  76. List<String> ids = maps.get(key);
  77. if (null == ids) {
  78. ids = Lists.newArrayList();
  79. maps.put(key, ids);
  80. }
  81. ids.add(fid);
  82. }
  83. System.out.println("WholeCommentOSFService:performanceLevel:maps:" + maps);
  84. for (Map.Entry<String, List<String>> entryList : maps.entrySet()) {
  85. List<String> idList = entryList.getValue();
  86. String[] keys = entryList.getKey().split(",");
  87. String planId = keys[0];
  88. String period = keys[1];
  89. this.performanceLevel(ctx, idList, planId, period, new BatchMessageTipsHeader());
  90. }
  91. } catch (Exception e) {
  92. e.printStackTrace();
  93. }
  94. }
  95. }
  96. }
  97. }
  98. }
  99. }
  100. }
  101. } catch (BOSException var8) {
  102. res.put("result", "500");
  103. logger.error("", var8);
  104. } finally {
  105. try {
  106. f.deleteAuditBill(billIds);
  107. } catch (BOSException e) {
  108. e.printStackTrace();
  109. }
  110. res.put("result", "200");
  111. }
  112. JSONUtils.writeJson(response, res);
  113. }
  114. @Override
  115. protected void beforeSubmit(HttpServletRequest request, HttpServletResponse response, CoreBaseInfo model) throws SHRWebException {
  116. super.beforeSubmit(request, response, model);
  117. Context ctx = SHRContext.getInstance().getContext();
  118. try {
  119. IEvaResultSummaryAuditBill f = EvaResultSummaryAuditBillFactory.getLocalInstance(ctx);
  120. SelectorItemCollection sel = new SelectorItemCollection();
  121. sel.add(new SelectorItemInfo("id"));
  122. sel.add(new SelectorItemInfo("entrys.id"));
  123. sel.add(new SelectorItemInfo("entrys.evaResult.id"));
  124. EvaResultSummaryAuditBillInfo fmodel = (EvaResultSummaryAuditBillInfo) model;
  125. EvaResultSummaryAuditBillInfo finfo = f.getEvaResultSummaryAuditBillInfo(new ObjectUuidPK(fmodel.getId()), sel);
  126. if (null != finfo) {
  127. EvaResultSummaryAuditBillEntryCollection entryCollection = finfo.getEntrys();
  128. if (null != entryCollection) {
  129. for (int i = 0; i < entryCollection.size(); i++) {
  130. EvaResultSummaryAuditBillEntryInfo entry = entryCollection.get(i);
  131. EvaResultSummaryInfo resultSummaryInfo = entry.getEvaResult();
  132. if (null != resultSummaryInfo) {
  133. BOSUuid id = resultSummaryInfo.getId();
  134. if (null != id) {
  135. String selPer = "select fid from T_EVA_EvaResultSummary where CfauditPerCoefficient is null and fid=?";
  136. IRowSet rs = DbUtil.executeQuery(ctx, selPer, new String[]{id.toString()});
  137. while (rs.next()) {
  138. String upd = "update T_EVA_EvaResultSummary set CfauditPerCoefficient=CfperCoefficient where fid=?";
  139. DbUtil.execute(ctx, upd, new String[]{id.toString()});
  140. }
  141. }
  142. }
  143. }
  144. }
  145. }
  146. } catch (SQLException | BOSException | EASBizException throwables) {
  147. throwables.printStackTrace();
  148. }
  149. }
  150. public void performanceLevel(Context ctx,List<String> idList,String planId,String period, BatchMessageTipsHeader batchMessageTipsHeader){
  151. List<String> idsessList = Lists.newArrayList();
  152. StringBuilder selParamId = new StringBuilder("''");
  153. for (int i = 0; i < idList.size(); i++) {
  154. selParamId.append(",?");
  155. }
  156. try {
  157. StringBuilder sqlsel = new StringBuilder();
  158. sqlsel.append(" select fid from T_EVA_EvaResultSummary where FBILLSTATE !=3 and fid in ( ");
  159. sqlsel.append(selParamId);
  160. sqlsel.append(" ) ");
  161. IRowSet rs = DbUtil.executeQuery(ctx, sqlsel.toString(), idList.toArray());
  162. while (rs.next()) {
  163. idsessList.add(rs.getString("fid"));
  164. }
  165. StringBuilder selsessParamId = new StringBuilder("''");
  166. for (int i = 0; i < idsessList.size(); i++) {
  167. selsessParamId.append(",?");
  168. }
  169. StringBuilder sqlpl = new StringBuilder();
  170. //sqlpl.append(" update T_EVA_EvaResultSummary set CFGROUP=(select CFCOEFFICIENT from CT_PER_PerformanceLevel where CFLEVEL=isnull(FREVISEGRADELEVEL,FGRADELEVEL)) ");
  171. sqlpl.append(" update T_EVA_EvaResultSummary set ");
  172. sqlpl.append(" CFPERMAXCOEFFICIENT=(select CFMAXCOEFFICIENT from CT_PER_PerformanceLevel where CFLEVEL=isnull(FREVISEGRADELEVEL,FGRADELEVEL)), ");
  173. sqlpl.append(" CFPERMINCOEFFICIENT=(select CFMINCOEFFICIENT from CT_PER_PerformanceLevel where CFLEVEL=isnull(FREVISEGRADELEVEL,FGRADELEVEL)), ");
  174. sqlpl.append(" CFCOEFFICIENT=(select CFCOEFFICIENT from CT_PER_PerformanceLevel where CFLEVEL=isnull(FREVISEGRADELEVEL,FGRADELEVEL)), ");
  175. sqlpl.append(" CFREVISEBFCOEFFICIENT=CFPERCOEFFICIENT ");
  176. sqlpl.append(" where FEVAPLANID =? and FPERIODID =? and fid in ( ");
  177. sqlpl.append(selsessParamId);
  178. sqlpl.append(" ) ");
  179. idsessList.add(0, planId);
  180. idsessList.add(1, period);
  181. System.out.println(":performanceLevel:sqlpl:"+sqlpl);
  182. System.out.println(":performanceLevel:idsessList:"+idsessList);
  183. DbUtil.execute(ctx, sqlpl.toString(), idsessList.toArray());
  184. idList.removeAll(idsessList);
  185. if (idList.size() > 0) {
  186. //addBatchMessageTips(idList, "当前已经审核通过获取更新失败", batchMessageTipsHeader);
  187. }
  188. } catch (Exception e) {
  189. e.printStackTrace();
  190. //addBatchMessageTips(idList, e.getMessage(), batchMessageTipsHeader);
  191. }
  192. }
  193. }