IndicatorUtilsEx.java 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. package com.kingdee.shr.perfweb.utils;
  2. import com.google.gson.Gson;
  3. import com.kingdee.bos.BOSException;
  4. import com.kingdee.bos.Context;
  5. import com.kingdee.bos.workflow.exception.biz.WfBizException;
  6. import com.kingdee.eas.common.EASBizException;
  7. import com.kingdee.eas.framework.bireport.bimanager.ws.paramCtx.util.Strings;
  8. import java.util.Iterator;
  9. import com.kingdee.shr.perfweb.app.resource.SHRPerfWebResource;
  10. import com.kingdee.shr.perfweb.base.bean.JqGridBean;
  11. import com.kingdee.shr.perfweb.util.SHRPerfWebResourceUtil;
  12. import java.sql.SQLException;
  13. import java.util.HashMap;
  14. import java.util.Map;
  15. import java.util.Set;
  16. import javax.servlet.http.HttpServletRequest;
  17. import org.apache.commons.lang3.StringUtils;
  18. import org.slf4j.Logger;
  19. import org.slf4j.LoggerFactory;
  20. /**
  21. * 二开拓展,根据名称过滤指标
  22. * @author coyle
  23. * 202501
  24. */
  25. public class IndicatorUtilsEx extends IndicatorUtils {
  26. private static Logger logger = LoggerFactory.getLogger(IndicatorUtilsEx.class);
  27. public static Map<String, Object> getIndicatorList(Context ctx, HttpServletRequest request) throws EASBizException, WfBizException {
  28. Map<String, Object> resultMap = new HashMap<>();
  29. Gson gson = new Gson();
  30. try {
  31. String mlFlag = SHRPerfWebResourceUtil.getMlFlag(ctx);
  32. StringBuffer getListSQLBuffer = new StringBuffer();
  33. getListSQLBuffer.append("SELECT baseInfo.FID, baseInfo.FNumber, baseInfo.FName" + mlFlag + " AS FName,baseInfo.FIndecatorDesc" + mlFlag + " AS FIndecatorDesc, baseInfo.FEvalStandard" + mlFlag + " AS FEvalStandard,");
  34. for (String field : multiTBFields4Indicator)
  35. getListSQLBuffer.append("baseInfo." + field + " AS " + field + ",");
  36. getListSQLBuffer.append("baseInfo.FUseStates, baseInfo.FRefStates,");
  37. getListSQLBuffer.append("baseInfo.FIndecatorTypeID, baseInfo.FEFFDT, ");
  38. getListSQLBuffer.append("baseInfo.FQualiOrRation,baseInfo.FUnit,baseInfo.FScoringFormulaID,baseInfo.FRejection ");
  39. getListSQLBuffer.append(" FROM T_PEF_PerfIndecator baseInfo");
  40. getListSQLBuffer.append(" LEFT JOIN T_PEF_PerfIndecatorRelation indecatorRelation");
  41. getListSQLBuffer.append(" ON baseInfo.FID = indecatorRelation.FBaseInfoId");
  42. getListSQLBuffer.append(" WHERE 1=1 ");
  43. getListSQLBuffer.append(" AND baseInfo.FState=1 ");
  44. getListSQLBuffer.append(" AND indecatorRelation.FState=100 ");
  45. //二开拓展
  46. if (null != request.getParameter("areaNameStr") && !"".equals(request.getParameter("areaNameStr"))) {
  47. String areaNameStr = request.getParameter("areaNameStr").toString();
  48. //第二部分:如何达成-Business leadership(至少选择一项)----只显示引用指标
  49. if(areaNameStr.contains("Business leadership")) {
  50. getListSQLBuffer.append(" AND baseInfo.fnumber in ('JXZB0001','JXZB0002','JXZB0003','JXZB0004') ");
  51. }else if(areaNameStr.contains("People leadership")) {
  52. getListSQLBuffer.append(" AND baseInfo.fnumber in ('JXZB0005','JXZB0006','JXZB0007' ) ");
  53. }else if(areaNameStr.contains("Self leadership")) {
  54. getListSQLBuffer.append(" AND baseInfo.fnumber in ('JXZB0008' ) ");
  55. }
  56. getListSQLBuffer.append(" AND indecatorRelation.FState=100 ");
  57. }
  58. if (request.getAttribute("userAdminSQL") != null && !"".equals(request.getAttribute("userAdminSQL"))) {
  59. Set userAdminSet = AdminRangeUtils.getRangeSet(ctx, request.getAttribute("userAdminSQL").toString());
  60. if (userAdminSet.size() > 0) {
  61. StringBuilder sbIdBuilder = new StringBuilder("(''");
  62. Iterator iterator = userAdminSet.iterator();
  63. while (iterator.hasNext())
  64. sbIdBuilder.append(",'").append(iterator.next().toString()).append("'");
  65. sbIdBuilder.append(")");
  66. getListSQLBuffer.append(" AND baseInfo.FID in" + sbIdBuilder.toString());
  67. }
  68. }
  69. if (request.getAttribute("hrOrgUnit") != null && !"".equals(request.getAttribute("hrOrgUnit")))
  70. getListSQLBuffer.append(" AND indecatorRelation.fhrOrgUseId in ('" + request.getAttribute("hrOrgUnit") + "')");
  71. String type = request.getParameter("type");
  72. if (StringUtils.isEmpty(type) && !StringUtils.isEmpty(RequestUtils.getAttribute(request, "type")))
  73. type = RequestUtils.getAttribute(request, "type");
  74. if (!StringUtils.isEmpty(type) && type.equals("002")) {
  75. String selectedIds = request.getParameter("selectedIds");
  76. if (StringUtils.isEmpty(selectedIds) && !StringUtils.isEmpty(RequestUtils.getAttribute(request, "selectedIds")))
  77. selectedIds = RequestUtils.getAttribute(request, "selectedIds");
  78. StringBuffer idBuffer = new StringBuffer("(''");
  79. if (!StringUtils.isEmpty(selectedIds)) {
  80. String[] selectIdsArr = selectedIds.split(",");
  81. for (int i = 0; i < selectIdsArr.length; i++)
  82. idBuffer.append(",'").append(selectIdsArr[i]).append("'");
  83. }
  84. idBuffer.append(")");
  85. getListSQLBuffer.append(" and baseInfo.FID in ").append(idBuffer);
  86. if (!StringUtils.isEmpty(request.getParameter("recordLen"))) {
  87. int i = Integer.parseInt(request.getParameter("recordLen"));
  88. request.setAttribute("rows", Integer.valueOf(i));
  89. }
  90. }
  91. String filterItems = request.getParameter("filterItems");
  92. if (StringUtils.isEmpty(filterItems) && !StringUtils.isEmpty(RequestUtils.getAttribute(request, "filterItems")))
  93. filterItems = RequestUtils.getAttribute(request, "filterItems");
  94. JqGridBean jqGridBean = null;
  95. if (!StringUtils.isEmpty(filterItems)) {
  96. jqGridBean = (JqGridBean)gson.fromJson(filterItems, JqGridBean.class);
  97. if (!StringUtils.isEmpty(jqGridBean.getCustomeFilterItems())) {
  98. String customerFiterItems = jqGridBean.getCustomeFilterItems();
  99. Map<String, String> customerFilterItemsBean = (Map<String, String>)gson.fromJson(customerFiterItems, (new HashMap<>()).getClass());
  100. if (!StringUtils.isEmpty(customerFilterItemsBean.get("rows"))) {
  101. request.setAttribute("rows", customerFilterItemsBean.get("rows"));
  102. } else {
  103. request.setAttribute("rows", jqGridBean.getRows());
  104. }
  105. if (!StringUtils.isEmpty(customerFilterItemsBean.get("page"))) {
  106. request.setAttribute("page", customerFilterItemsBean.get("page"));
  107. } else {
  108. request.setAttribute("page", jqGridBean.getPage());
  109. }
  110. String indecatorType = customerFilterItemsBean.get("indecatorType");
  111. if (!StringUtils.isEmpty(indecatorType))
  112. getListSQLBuffer.append(" and baseInfo.FIndecatorTypeID='").append(indecatorType).append("'");
  113. } else {
  114. if (!StringUtils.isEmpty(jqGridBean.getRows()))
  115. request.setAttribute("rows", jqGridBean.getRows());
  116. if (!StringUtils.isEmpty(jqGridBean.getPage()))
  117. request.setAttribute("page", jqGridBean.getPage());
  118. }
  119. if (!StringUtils.isEmpty(jqGridBean.getIndecatorType()) && !jqGridBean.getIndecatorType().equals("null"))
  120. getListSQLBuffer.append(" and baseInfo.FIndecatorTypeID='").append(jqGridBean.getIndecatorType()).append("'");
  121. }
  122. String rows = request.getParameter("rowsNum");
  123. if (!Strings.isEmpty(rows))
  124. request.setAttribute("rows", rows);
  125. String page = request.getParameter("pageNum");
  126. if (!Strings.isEmpty(page))
  127. request.setAttribute("page", page);
  128. String fastFilterItems = request.getParameter("fastFilterItems");
  129. if (!StringUtils.isEmpty(fastFilterItems))
  130. getListSQLBuffer.append(" AND ")
  131. .append(fastFilterItems.replace("name", "FName" + mlFlag).replace("number", "FNumber"));
  132. resultMap = CustomPageHelper.getPageCallbackData(ctx, request, getListSQLBuffer.toString(), "baseInfo.FNumber asc", new IndicatorUtils(), "001");
  133. } catch (BOSException e) {
  134. logger.error("BOSException", (Throwable)e);
  135. throw new WfBizException(SHRPerfWebResourceUtil.getRes(SHRPerfWebResource.GETLISTDATAERR, ctx));
  136. } catch (SQLException e) {
  137. logger.error("SQLException", e);
  138. throw new WfBizException(SHRPerfWebResourceUtil.getRes(SHRPerfWebResource.EXECUTESQLERR, ctx));
  139. }
  140. return resultMap;
  141. }
  142. }