GtiitOrgPositionService.java 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. package com.kingdee.shr.customer.gtiit.osf;
  2. import java.sql.SQLException;
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Map;
  7. import org.slf4j.Logger;
  8. import org.slf4j.LoggerFactory;
  9. import org.apache.commons.lang3.StringUtils;
  10. import com.kingdee.bos.BOSException;
  11. import com.kingdee.bos.Context;
  12. import com.kingdee.bos.bsf.service.app.IHRMsfService;
  13. import com.kingdee.eas.common.EASBizException;
  14. import com.kingdee.eas.util.app.DbUtil;
  15. import com.kingdee.jdbc.rowset.IRowSet;
  16. import com.kingdee.shr.customer.gtiit.osf.util.DateUtils;
  17. /**
  18. * 获取职位的接口
  19. * @author cb
  20. *
  21. */
  22. public class GtiitOrgPositionService implements IHRMsfService {
  23. private static final Logger logger = LoggerFactory.getLogger(GtiitOrgPositionService.class);
  24. @Override
  25. public Object process(Context ctx, Map param) throws EASBizException, BOSException {
  26. // 开始日期
  27. String startDate = (String) param.get("startDate");
  28. // 截止日期
  29. String endDate = (String) param.get("endDate");
  30. String sql="SELECT\r\n" +
  31. " op.FID ID,\r\n" +
  32. " op.fnumber POSITION_CODE,\r\n" +
  33. " op.FNAME_L1 POSITION_NAME_EN,\r\n" +
  34. " op.FNAME_L2 POSITION_NAME_CN,\r\n" +
  35. " op.feffdt EFFECTIVE_START_DATE,\r\n" +
  36. " op.fleffdt EFFECTIVE_END_DATE,\r\n" +
  37. " ob.FNUMBER ORGANIZATION_CODE,\r\n" +
  38. " ob.FNAME_L1 ORGANIZATION_CODE_NAME,\r\n" +
  39. " oj.FNUMBER JOB_CODE,\r\n" +
  40. " oj.FNAME_L1 JOB_NAME_EN,\r\n" +
  41. "CASE\r\n" +
  42. " \r\n" +
  43. " WHEN op.FDELETEDSTATUS= '1' THEN\r\n" +
  44. " '是' \r\n" +
  45. " WHEN op.FDELETEDSTATUS= '2' THEN\r\n" +
  46. " '否' \r\n" +
  47. " END ACTIVE_STATUS,\r\n" +
  48. "CASE\r\n" +
  49. " \r\n" +
  50. " WHEN op.FISRESPPOSITION= '0' THEN\r\n" +
  51. " '否' \r\n" +
  52. " WHEN op.FISRESPPOSITION= '1' THEN\r\n" +
  53. " '是' \r\n" +
  54. " END DEPARTMENT_HEAD,\r\n" +
  55. " op.FCREATETIME ERP_CREATION_DATE,\r\n" +
  56. " op.FLASTUPDATETIME ERP_LAST_UPDATE_DATE \r\n" +
  57. "FROM\r\n" +
  58. " T_ORG_Position op\r\n" +
  59. " LEFT JOIN T_ORG_BaseUnit ob ON op.FADMINORGUNITID = ob.FID\r\n" +
  60. " LEFT JOIN T_ORG_Job oj ON oj.FID = op.FJOBID ";
  61. if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) {
  62. startDate = DateUtils.formatDate(startDate, true);
  63. endDate = DateUtils.formatDate(endDate, false);
  64. sql += " where op.FLASTUPDATETIME >= '" + startDate + "' and op.FLASTUPDATETIME <= '" + endDate + "'";
  65. }
  66. List<String> fieldList = initMappingField();
  67. logger.info("GtiitOrgPositionService->excute->sql->"+sql.toString());
  68. IRowSet rs = DbUtil.executeQuery(ctx, sql.toString());
  69. List<Map<String, String>> dataList = this.getRsListData(fieldList, rs);
  70. return dataList;
  71. }
  72. private List<String> initMappingField() {
  73. List<String> list = new ArrayList<>();
  74. list.add("ID");
  75. list.add("POSITION_CODE");
  76. list.add("POSITION_NAME_EN");
  77. list.add("POSITION_NAME_CN");
  78. list.add("EFFECTIVE_START_DATE");
  79. list.add("EFFECTIVE_END_DATE");
  80. list.add("ORGANIZATION_CODE");
  81. list.add("ORGANIZATION_CODE_NAME");
  82. list.add("JOB_CODE");
  83. list.add("JOB_NAME_EN");
  84. list.add("ACTIVE_STATUS");
  85. list.add("DEPARTMENT_HEAD");
  86. list.add("ERP_CREATION_DATE");
  87. list.add("ERP_LAST_UPDATE_DATE");
  88. return list;
  89. }
  90. private List<Map<String, String>> getRsListData(List<String> fieldList, IRowSet rs) throws BOSException {
  91. List<Map<String, String>> dataList = new ArrayList<>();
  92. try {
  93. while (rs.next()) {
  94. HashMap<String, String> dataMap = new HashMap<>();
  95. int i = 0;
  96. for (int size = fieldList.size(); i < size; ++i) {
  97. String field = fieldList.get(i);
  98. if ("ACTIVE_STATUS".equals(field) || "DEPARTMENT_HEAD".equals(field)) {
  99. dataMap.put(field, "1".equals(rs.getString(field)) ? "是" : "否");
  100. } else {
  101. dataMap.put(field, rs.getString(field));
  102. }
  103. }
  104. dataList.add(dataMap);
  105. }
  106. return dataList;
  107. } catch (SQLException ex) {
  108. throw new BOSException(ex);
  109. }
  110. }
  111. }