InterviewResultPrintHelpDataProvider1.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. /* */ package com.kingdee.shr.recuritment.util;
  2. /* */
  3. /* */ import com.kingdee.bos.BOSException;
  4. /* */ import com.kingdee.bos.Context;
  5. /* */ import com.kingdee.bos.ctrl.kdf.data.datasource.BOSQueryDataSource;
  6. /* */ import com.kingdee.bos.ctrl.kdf.data.datasource.DSParam;
  7. /* */ import com.kingdee.bos.dao.query.IQueryExecutor;
  8. /* */ import com.kingdee.bos.dao.query.QueryExecutorFactory;
  9. /* */ import com.kingdee.bos.metadata.IMetaDataPK;
  10. /* */ import com.kingdee.bos.metadata.MetaDataPK;
  11. /* */ import com.kingdee.bos.metadata.entity.EntityViewInfo;
  12. /* */ import com.kingdee.bos.metadata.entity.FilterInfo;
  13. /* */ import com.kingdee.bos.metadata.entity.FilterItemInfo;
  14. /* */ import com.kingdee.bos.metadata.query.util.CompareType;
  15. /* */ import com.kingdee.eas.hr.emp.PrintMetaConfigCollection;
  16. /* */ import com.kingdee.eas.hr.emp.PrintMetaConfigFactory;
  17. /* */ import com.kingdee.eas.hr.emp.PrintMetaConfigInfo;
  18. /* */ import com.kingdee.jdbc.rowset.IRowSet;
  19. /* */ import com.kingdee.shr.base.syssetting.context.SHRContext;
  20. /* */ import com.kingdee.shr.component.report.CommonDataProvider;
  21. /* */ import com.kingdee.shr.recuritment.RecRegisterCollection;
  22. /* */ import com.kingdee.shr.recuritment.RecRegisterFactory;
  23. /* */ import com.kingdee.shr.recuritment.app.util.db.RecDBUtils;
  24. /* */ import com.kingdee.ws.ca.utils.StringUtils;
  25. /* */ import java.sql.ResultSetMetaData;
  26. /* */ import java.sql.SQLException;
  27. /* */ import java.util.ArrayList;
  28. /* */ import java.util.List;
  29. /* */ import org.apache.log4j.Logger;
  30. /* */
  31. /* */
  32. /* */
  33. /* */
  34. /* */
  35. /* */
  36. /* */
  37. /* */
  38. /* */
  39. /* */
  40. /* */
  41. /* */ public class InterviewResultPrintHelpDataProvider1 extends CommonDataProvider {
  42. /* */ private static Logger logger = Logger.getLogger(InterviewResultPrintHelpDataProvider1.class);
  43. /* */ private String billId;
  44. /* */ private String queryPK = null;
  45. /* */
  46. /* */ public InterviewResultPrintHelpDataProvider1(String billId) {
  47. /* 47 */ this.billId = billId;
  48. /* 48 */ }
  49. /* */
  50. /* */
  51. /* */ public InterviewResultPrintHelpDataProvider1() {
  52. /* 52 */ }
  53. /* */
  54. /* */ public InterviewResultPrintHelpDataProvider1(String billId, String queryPK) {
  55. /* 55 */ this.billId = billId;
  56. /* 56 */ this.queryPK = queryPK;
  57. /* 57 */ }
  58. /* */
  59. /* */ public IRowSet execute(BOSQueryDataSource ds) {
  60. if(null == ctx) {
  61. /* 60 */ Context ctx = SHRContext.getInstance().getContext();
  62. }
  63. /* 61 */ IRowSet iRowSet = null;
  64. /* 62 */ String str_ds = ds.getID();
  65. /* 63 */ if ("RecRegisterPersonBaseQuery".equals(str_ds)) {
  66. /* */ try {
  67. /* 65 */ RecRegisterCollection coll = RecRegisterFactory.getLocalInstance(ctx).getRecRegisterCollection("WHERE resumeBaseRec in ( SELECT FResumeBaseRecID FROM T_REC_InterviewResult WHERE FID = '" + this.billId + "')");
  68. /* */
  69. /* 67 */ if (coll.size() > 0 && coll.get(0).getTalent() != null) {
  70. /* 68 */ this.billId = coll.get(0).getTalent().getId().toString();
  71. /* */ }
  72. /* 70 */ } catch (BOSException var15) {
  73. /* 71 */ logger.error(var15.getMessage(), var15);
  74. /* */ } }
  75. /* */
  76. /* */ try {
  77. /* 75 */ String sql = "select * where dynamicQueryName = '" + str_ds + "'";
  78. /* 76 */ PrintMetaConfigInfo printMetaConfigInfo = null;
  79. /* 77 */ PrintMetaConfigCollection coll = PrintMetaConfigFactory.getLocalInstance(ctx).getPrintMetaConfigCollection(sql);
  80. /* 78 */ if (coll == null || coll.size() < 1) {
  81. /* 79 */ return iRowSet;
  82. /* */ }
  83. /* 81 */ printMetaConfigInfo = coll.get(0);
  84. /* */
  85. /* 83 */ IQueryExecutor exec = null;
  86. /* 84 */ IMetaDataPK queryPK = new MetaDataPK(printMetaConfigInfo.getDynamicQueryPath());
  87. if(null == ctx) {
  88. ctx = SHRContext.getInstance().getContext();
  89. }
  90. /* 85 */ exec = QueryExecutorFactory.getLocalInstance(ctx, queryPK);
  91. /* 86 */ exec.option().isAutoTranslateEnum = true;
  92. /* 87 */ EntityViewInfo ev = new EntityViewInfo();
  93. FilterInfo filter ;
  94. /* 88 */ if (printMetaConfigInfo.getOtherDataFilterPattern() == null) {
  95. /* 89 */ ArrayList paramList = ds.getParams();
  96. /* 90 */ if (paramList != null && paramList.size() > 0) {
  97. /* 91 */ DSParam dsParam = (DSParam)paramList.get(0);
  98. /* 92 */ filter = new FilterInfo();
  99. /* 93 */ filter.getFilterItems().add(new FilterItemInfo(dsParam.getColName(), dsParam.getValue().toString(), CompareType.INCLUDE));
  100. /* 94 */ ev.setFilter(filter);
  101. } else {
  102. /* 95 */ if (printMetaConfigInfo.getDataFilterPattern() != null) {
  103. /* 96 */ filter = new FilterInfo();
  104. /* 97 */ filter.getFilterItems().add(new FilterItemInfo(printMetaConfigInfo.getDataFilterPattern(), this.billId, CompareType.INCLUDE));
  105. /* 98 */ ev.setFilter(filter);
  106. /* */ } else {
  107. /* 100 */ filter = new FilterInfo();
  108. /* 101 */ filter.getFilterItems().add(new FilterItemInfo("id", this.billId, CompareType.INCLUDE));
  109. /* 102 */ ev.setFilter(filter);
  110. /* */ } }
  111. /* */ } else {
  112. /* 105 */ if (this.billId.contains(",")) {
  113. /* 106 */ this.billId = this.billId.replaceAll(",", "','");
  114. /* */ }
  115. /* 108 */ String filterSql = printMetaConfigInfo.getOtherDataFilterPattern();
  116. /* 109 */ String fql = printMetaConfigInfo.getDataFilterPattern() + " in ('" + this.billId + "') " + filterSql;
  117. /* 110 */ filter = new FilterInfo(fql);
  118. /* 111 */ ev.setFilter(filter);
  119. /* */ }
  120. /* 113 */ exec.setObjectView(ev);
  121. /* 114 */ iRowSet = exec.executeQuery();
  122. /* 115 */ iRowSet = otherSpecialHandling(ctx, ds, iRowSet, printMetaConfigInfo, this.billId);
  123. /* */
  124. /* 117 */ if (logger.isDebugEnabled()) {
  125. /* 118 */ logger.debug("******************************************test套打测试日志start***********************************");
  126. /* 119 */ logger.debug("testID:" + str_ds);
  127. /* 120 */ logger.debug("testSql:" + exec.getSQL());
  128. /* */ }
  129. /* 122 */ ResultSetMetaData rsmd = iRowSet.getMetaData();
  130. /* 123 */ int count = rsmd.getColumnCount();
  131. /* 124 */ iRowSet.first();
  132. /* 125 */ if (iRowSet != null && iRowSet.next()) {
  133. /* 126 */ for(int i = 0; i < count; ++i) {
  134. /* 127 */ String value = iRowSet.getObject(i + 1) == null ? "" : iRowSet.getObject(i + 1).toString();
  135. /* 128 */ if (logger.isDebugEnabled()) {
  136. /* 129 */ logger.debug("testColumn:" + rsmd.getColumnName(i + 1) + "=(" + value + ")");
  137. /* */ } }
  138. /* */ }
  139. /* */
  140. /* 133 */ if (logger.isDebugEnabled()) {
  141. /* 134 */ logger.debug("******************************************test套打测试日志start***********************************");
  142. /* */ }
  143. /* 136 */ } catch (Exception var16) {
  144. /* 137 */ logger.error(var16.getMessage(), var16);
  145. /* */ }
  146. /* 139 */ return iRowSet;
  147. /* */ }
  148. /* */
  149. /* */
  150. /* */
  151. /* */
  152. /* */
  153. /* */ public static IRowSet otherSpecialHandling(Context ctx, BOSQueryDataSource ds, IRowSet iRowSet, PrintMetaConfigInfo printMetaConfigInfo, String billId) {
  154. /* 147 */ String str_ds = ds.getID();
  155. /* 148 */ if ("com.kingdee.shr.recuritment.app.InterviewPlanUseQuery".equals(printMetaConfigInfo.getDynamicQueryPath()) && iRowSet != null) {
  156. /* */
  157. /* 150 */ iRowSet = getInterviewPlanDetailResult(ctx, printMetaConfigInfo, iRowSet, billId);
  158. /* */ }
  159. /* */
  160. /* 153 */ return iRowSet;
  161. /* */ }
  162. /* */
  163. /* */
  164. /* */
  165. /* */
  166. /* */
  167. /* */
  168. /* */ public static IRowSet getInterviewPlanDetailResult(Context ctx, PrintMetaConfigInfo printMetaConfigInfo, IRowSet iRowSet, String tempName) {
  169. /* 162 */ IRowSet result = null;
  170. /* */ try {
  171. /* 164 */ result = iRowSet.createCopy(); StringBuilder detailEvaluate;
  172. /* 165 */ if (result != null) {
  173. /* 166 */ for(; result.next(); result.updateString("detailEvaluate", detailEvaluate.toString())) {
  174. /* 167 */ String interviewPlan = result.getString("id");
  175. /* */
  176. /* 169 */ List<Object[]> datas = null;
  177. /* 170 */ StringBuilder detailResult = new StringBuilder();
  178. /* 171 */ String sql = "SELECT FInterviewerName,FResult,FScore,JOBGRADE.FName_l2 FJobGrade,FRemark from T_REC_IPISDetailResult as RESULT LEFT OUTER JOIN T_HR_JobGrade AS JOBGRADE ON RESULT.FJobGradeId = JOBGRADE.FID WHERE FInterviewPlanId = ? and FSaveState = 0";
  179. /* */
  180. /* 173 */ datas = RecDBUtils.getQueryData(ctx, sql, new Object[]{interviewPlan});
  181. /* 174 */ if (datas != null && datas.size() > 0) {
  182. /* 175 */ Object[] interviewResult = null;
  183. /* 176 */ for(int i = 0; i < datas.size(); ++i) {
  184. /* 177 */ interviewResult = (Object[])datas.get(i);
  185. /* 178 */ String FResult = "";
  186. /* 179 */ switch(Integer.parseInt((String)interviewResult[1])) {
  187. /* */ case -1:
  188. /* 181 */ FResult = "待录入";
  189. /* */ break;
  190. case 3:
  191. /* 184 */ FResult = "通过";
  192. /* 185 */ break;
  193. /* */ case 4:
  194. /* 187 */ FResult = "不通过";
  195. /* 188 */ break;
  196. /* */ case 0: case 5: case 1:
  197. /* 190 */ FResult = "放弃面试";
  198. /* */ case 2:
  199. /* */ default:
  200. /* 193 */ FResult = "待录入";
  201. /* */ }
  202. /* 195 */ detailResult.append(interviewResult[0]).append("(").append(FResult);
  203. /* 196 */ if (!StringUtils.isEmpty((String)interviewResult[2])) {
  204. /* 197 */ detailResult.append(" ").append(interviewResult[2]);
  205. /* */ }
  206. /* 199 */ if (!StringUtils.isEmpty((String)interviewResult[3])) {
  207. /* 200 */ detailResult.append(" ").append(interviewResult[3]);
  208. /* */ }
  209. /* 202 */ detailResult.append(")");
  210. /* 203 */ if (!StringUtils.isEmpty((String)interviewResult[4])) {
  211. /* 204 */ detailResult.append(": ").append(interviewResult[4]);
  212. /* */ }
  213. /* 206 */ detailResult.append("\n");
  214. /* */ }
  215. /* */ }
  216. /* */
  217. /* 210 */ result.updateString("detailResult", detailResult.toString());
  218. /* */
  219. /* */
  220. /* 213 */ detailEvaluate = new StringBuilder();
  221. /* 214 */ sql = "SELECT FInterviewerName,FResult,FRemark from T_REC_IPISDetailEvaluate WHERE FInterviewPlanId = ? and FSaveState = 0";
  222. /* 215 */ datas = RecDBUtils.getQueryData(ctx, sql, new Object[]{interviewPlan});
  223. /* 216 */ if (datas != null && datas.size() > 0) {
  224. /* 217 */ Object[] evaluateResult = null;
  225. /* 218 */ for(int i=0; i < datas.size(); ++i) {
  226. /* 219 */ evaluateResult = (Object[])datas.get(i);
  227. /* 220 */ detailEvaluate.append(evaluateResult[0]);
  228. /* 221 */ if (!StringUtils.isEmpty((String)evaluateResult[1])) {
  229. /* 222 */ detailEvaluate.append("(").append(evaluateResult[1]).append(")");
  230. /* */ }
  231. /* 224 */ if (!StringUtils.isEmpty((String)evaluateResult[2])) {
  232. /* 225 */ detailEvaluate.append(": ").append(evaluateResult[2]);
  233. /* */ }
  234. /* 227 */ detailEvaluate.append("\n");
  235. /* */
  236. /* */ }
  237. /* */ }
  238. /* */ }
  239. /* */ }
  240. /* 233 */ } catch (SQLException var13) {
  241. /* 234 */ logger.error(var13.getMessage(), var13);
  242. /* 235 */ } catch (BOSException var14) {
  243. /* 236 */ logger.error(var14.getMessage(), var14);
  244. /* */ }
  245. /* 238 */ return result;
  246. /* */ }
  247. /* */ }