GetAtsCusService.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. package com.kingdee.shr.ats.service;
  2. import com.kingdee.bos.BOSException;
  3. import com.kingdee.bos.Context;
  4. import com.kingdee.bos.bsf.service.app.IHRMsfService;
  5. import com.kingdee.eas.basedata.org.AdminOrgUnitCollection;
  6. import com.kingdee.eas.basedata.org.AdminOrgUnitFactory;
  7. import com.kingdee.eas.basedata.org.AdminOrgUnitInfo;
  8. import com.kingdee.eas.common.EASBizException;
  9. import com.kingdee.eas.hr.ats.AttendanceProjectCollection;
  10. import com.kingdee.eas.hr.ats.AttendanceProjectFactory;
  11. import com.kingdee.eas.hr.ats.AttendanceProjectInfo;
  12. import com.kingdee.eas.hr.ats.util.common.AtsCommonUtile;
  13. import com.kingdee.eas.util.app.DbUtil;
  14. import com.kingdee.jdbc.rowset.IRowSet;
  15. import java.sql.SQLException;
  16. import java.util.ArrayList;
  17. import java.util.HashMap;
  18. import java.util.List;
  19. import java.util.Map;
  20. import org.apache.commons.lang3.ObjectUtils;
  21. import org.apache.commons.lang3.StringUtils;
  22. import org.apache.log4j.Logger;
  23. public class GetAtsCusService implements IHRMsfService {
  24. private static Logger logger = Logger.getLogger(GetAtsCusService.class);
  25. public Object process(Context ctx, Map param) throws EASBizException, BOSException {
  26. List<HashMap<String, String>> successResList = new ArrayList();
  27. List<HashMap<String, String>> errorResList = new ArrayList();
  28. String personIds = AtsCommonUtile.decodeEmpBase64((String)param.get("personIds"));
  29. String companyLongNumber = "";
  30. if(ObjectUtils.anyNotNull(param.get("companyLongNumber"))) {
  31. param.get("companyLongNumber");
  32. companyLongNumber = AtsCommonUtile.decodeEmpBase64((String)param.get("companyLongNumber"));
  33. }
  34. Boolean haveSubOrg = (Boolean)param.get("haveSubOrg");
  35. String periodYear = (String)param.get("year");
  36. String periodMonth = (String)param.get("month");
  37. String periodTimes = (String)param.get("times");
  38. String attendProject = (String)param.get("attendProject");
  39. StringBuffer sqlBuffer = new StringBuffer();
  40. AttendanceProjectCollection attendanceProjectColl = AttendanceProjectFactory.getLocalInstance(ctx).getAttendanceProjectCollection("SELECT ID,COLUMNNO where NAME = '" + attendProject + "' or number ='" + attendProject + "'");
  41. if (attendanceProjectColl != null && attendanceProjectColl.size() > 0) {
  42. AttendanceProjectInfo oldModel = attendanceProjectColl.get(0);
  43. if (oldModel == null) {
  44. return null;
  45. } else {
  46. String columnName = "S" + oldModel.getColumnNO();
  47. String salaryPeriod = periodYear + "-" + periodMonth + "-" + periodTimes;
  48. Map<String, String> errorResMap = new HashMap();
  49. if (StringUtils.isEmpty(personIds)) {
  50. return null;
  51. } else if (StringUtils.isEmpty(attendProject)) {
  52. return null;
  53. } else {
  54. errorResList.add((HashMap)errorResMap);
  55. sqlBuffer.append("select FPROPOSERID, sum(" + columnName + ") sumResult from T_HR_ATS_AttendanceResult where FProposerID in (" + personIds + ")");
  56. if (!StringUtils.isEmpty(companyLongNumber)) {
  57. String sql = "select * from t_org_admin where FLONGNUMBER in (" + companyLongNumber + ") and fid = FCOMPANYID";
  58. IRowSet executeQuery = DbUtil.executeQuery(ctx, sql);
  59. Boolean isCompany = false;
  60. try {
  61. if (executeQuery.next()) {
  62. isCompany = true;
  63. }
  64. } catch (SQLException var26) {
  65. var26.printStackTrace();
  66. }
  67. AdminOrgUnitCollection adminOrgColl = AdminOrgUnitFactory.getLocalInstance(ctx).getAdminOrgUnitCollection(" where longNumber in (" + companyLongNumber + ")");
  68. String companyID = "";
  69. String adminOrgUnitId = "";
  70. AdminOrgUnitInfo row;
  71. if (adminOrgColl != null && adminOrgColl.size() > 0) {
  72. row = adminOrgColl.get(0);
  73. companyLongNumber = row.getLongNumber();
  74. adminOrgUnitId = row.getId().toString();
  75. }
  76. if (haveSubOrg) {
  77. sqlBuffer.append(" and FADMINORGUNITID in (SELECT FID FROM T_ORG_ADMIN where FlongNumber like '" + companyLongNumber + "%')");
  78. } else {
  79. sqlBuffer.append(" and FADMINORGUNITID in ('" + adminOrgUnitId + "')");
  80. }
  81. }
  82. sqlBuffer.append(" and FAttenceDate ='" + salaryPeriod + "'");
  83. sqlBuffer.append(" group by FPROPOSERID");
  84. IRowSet rowset = DbUtil.executeQuery(ctx, sqlBuffer.toString());
  85. try {
  86. while(rowset.next()) {
  87. rowset.getString("FPROPOSERID");
  88. rowset.getString("sumResult");
  89. Map<String, String> successResMap = new HashMap();
  90. successResMap.put(attendProject, rowset.getString("sumResult"));
  91. successResMap.put("personId", rowset.getString("FPROPOSERID"));
  92. successResList.add((HashMap)successResMap);
  93. }
  94. } catch (SQLException var27) {
  95. var27.printStackTrace();
  96. }
  97. return successResList;
  98. }
  99. }
  100. } else {
  101. return null;
  102. }
  103. }
  104. }