GetPersonPartPosOrgInfoServiceEx.java 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. package com.kingdee.shr.customer.gtiit.osf;
  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.common.EASBizException;
  6. import com.kingdee.eas.hr.base.HRBizDefineFactory;
  7. import com.kingdee.eas.hr.base.util.HRUtil;
  8. import com.kingdee.eas.hr.emp.web.service.GetPersonPartPosOrgInfoService;
  9. import com.kingdee.eas.util.app.DbUtil;
  10. import com.kingdee.jdbc.rowset.IRowSet;
  11. import com.kingdee.shr.base.syssetting.util.LocaleUtils;
  12. import com.kingdee.shr.osf.service.ServiceLocator;
  13. import com.kingdee.util.StringUtils;
  14. import java.sql.SQLException;
  15. import java.text.SimpleDateFormat;
  16. import java.util.*;
  17. /**
  18. * description: GetPersonPartPosOrgInfoServiceEx <br>
  19. * date: 2025/4/1 18:39 <br>
  20. * author: lhbj <br>
  21. * version: 1.0 <br>
  22. */
  23. public class GetPersonPartPosOrgInfoServiceEx extends GetPersonPartPosOrgInfoService {
  24. public Object process(Context ctx, Map param) throws EASBizException, BOSException {
  25. String uiClass = (String)param.get("uiClass");
  26. List HRBizDefineList = new ArrayList();
  27. if (!StringUtils.isEmpty(uiClass)) {
  28. IHRMsfService rs = (IHRMsfService) ServiceLocator.getInstance().lookupService(ctx, "getHRBizDefineByUiClass");
  29. HashMap list = new HashMap();
  30. list.put("uiClass", uiClass);
  31. HRBizDefineList = (List)rs.process(ctx, list);
  32. }
  33. IRowSet rs = this.getResult(ctx, param);
  34. List<Map<String, Object>> list = this.assembleData(ctx, rs, (List)HRBizDefineList);
  35. return list;
  36. }
  37. private List<Map<String, Object>> assembleData(Context ctx, IRowSet rs, List HRBizDefineList) throws BOSException, EASBizException {
  38. Map<String, Object> positionDataMap = null;
  39. Map<String, Object> adminOrgDataMap = null;
  40. Map<String, Object> companyDataMap = null;
  41. Map<String, Object> departmentDataMap = null;
  42. Map<String, Object> personDataMap = null;
  43. Map<String, Object> empTypeDataMap = null;
  44. Map<String, Object> ppDataMap = null;
  45. Map<String, Object> oldJobDataMap = null;
  46. Map<String, Object> dataMap = null;
  47. Map<String, Object> empLaborRelationDataMap = null;
  48. Map<String, Object> empPostRankDataMap = null;
  49. Map<String, Object> hrOrgUnitDataMap = null;
  50. Map<String, Object> oldPositionDataMap = null;
  51. Map<String, Object> oldadminOrgDataMap = null;
  52. Map<String, Object> oldCompany = null;
  53. Map<String, Object> oldDepartment = null;
  54. ArrayList list = new ArrayList();
  55. try {
  56. while(rs.next()) {
  57. positionDataMap = new HashMap();
  58. positionDataMap.put("id", rs.getString("id"));
  59. positionDataMap.put("number", rs.getString("posnumber"));
  60. positionDataMap.put("name", rs.getString("name"));
  61. positionDataMap.put("positionTypeName", rs.getString("positionTypeName"));
  62. oldPositionDataMap = new HashMap();
  63. oldPositionDataMap.put("id", rs.getString("parttimeid"));
  64. oldPositionDataMap.put("number", rs.getString("parttimeposnumber"));
  65. oldPositionDataMap.put("name", rs.getString("parttimename"));
  66. oldPositionDataMap.put("positionTypeName", rs.getString("parttimepositionTypeName"));
  67. oldPositionDataMap.put("beginDate", rs.getString("parttimebeginDate"));
  68. oldCompany = new HashMap();
  69. oldCompany.put("name", rs.getString("parttimecompanyName"));
  70. oldDepartment = new HashMap();
  71. oldDepartment.put("name", rs.getString("parttimedepartmentName"));
  72. oldadminOrgDataMap = new HashMap();
  73. oldadminOrgDataMap.put("id", rs.getString("oldAdminOrgId"));
  74. oldadminOrgDataMap.put("number", rs.getString("oldAdminOrgNumber"));
  75. oldadminOrgDataMap.put("longNumber", rs.getString("oldAdminOrgLogNumber"));
  76. oldadminOrgDataMap.put("name", rs.getString("oldAdminOrgName"));
  77. oldadminOrgDataMap.put("displayName", rs.getString("oldAdminDisplayName"));
  78. empTypeDataMap = new HashMap();
  79. empTypeDataMap.put("id", rs.getString("empTypeID"));
  80. empTypeDataMap.put("name", rs.getString("empTypeName"));
  81. empTypeDataMap.put("number", rs.getString("empTypeNumber"));
  82. List HRBizMatchEmpTypeList = new ArrayList();
  83. for(int i = 0; i < HRBizDefineList.size(); ++i) {
  84. HashMap defMap = (HashMap)HRBizDefineList.get(i);
  85. String HRBizDefineId = defMap.get("id").toString();
  86. boolean defineIsOn = false;
  87. try {
  88. defineIsOn = HRBizDefineFactory.getRemoteInstance().exists("where id='" + HRBizDefineId + "' and state=1");
  89. } catch (EASBizException var30) {
  90. var30.printStackTrace();
  91. }
  92. List inEmpTypeList = (List)defMap.get("inEmpType");
  93. boolean canMatchInEmpType = false;
  94. for(int j = 0; j < inEmpTypeList.size(); ++j) {
  95. HashMap inEmpType = (HashMap)inEmpTypeList.get(j);
  96. if (inEmpType.get("id").equals(rs.getString("empTypeID"))) {
  97. canMatchInEmpType = true;
  98. }
  99. }
  100. if (canMatchInEmpType && defineIsOn) {
  101. HRBizMatchEmpTypeList.add(defMap);
  102. }
  103. if (inEmpTypeList.size() == 0) {
  104. HRBizMatchEmpTypeList.add(defMap);
  105. }
  106. }
  107. adminOrgDataMap = new HashMap();
  108. adminOrgDataMap.put("id", rs.getString("adminOrgId"));
  109. adminOrgDataMap.put("number", rs.getString("adminOrgNumber"));
  110. adminOrgDataMap.put("longNumber", rs.getString("adminOrgLogNumber"));
  111. adminOrgDataMap.put("name", rs.getString("adminOrgName"));
  112. adminOrgDataMap.put("displayName", rs.getString("adminDisplayName"));
  113. personDataMap = new HashMap();
  114. personDataMap.put("id", rs.getString("personId"));
  115. personDataMap.put("name", rs.getString("personName"));
  116. personDataMap.put("number", rs.getString("personNumber"));
  117. personDataMap.put("gender", rs.getString("gender"));
  118. personDataMap.put("idCardNO", rs.getString("idCardNO"));
  119. personDataMap.put("nativePlace", rs.getString("nativePlace"));
  120. personDataMap.put("regresidenceName", rs.getString("regresidenceName"));
  121. personDataMap.put("regresidenceId", rs.getString("regresidenceId"));
  122. personDataMap.put("hjAddress", rs.getString("hjAddress"));
  123. personDataMap.put("cell", rs.getString("personCell"));
  124. personDataMap.put("birthday", rs.getString("birthday"));
  125. personDataMap.put("hrPoliticalName", rs.getString("hrPoliticalName"));
  126. personDataMap.put("hrStandingName", rs.getString("hrStandingName"));
  127. ppDataMap = new HashMap();
  128. empLaborRelationDataMap = new HashMap();
  129. empLaborRelationDataMap.put("enterDate", rs.getDate("enterDate"));
  130. empLaborRelationDataMap.put("planFormalDate", rs.getDate("planFormalDate"));
  131. empLaborRelationDataMap.put("formalDate", rs.getDate("planFormalDate"));
  132. empLaborRelationDataMap.put("probation", rs.getInt("tryoutMonth"));
  133. empLaborRelationDataMap.put("employerUnitId", rs.getString("employerUnitId"));
  134. empLaborRelationDataMap.put("employerUnitName", rs.getString("employerUnitName"));
  135. oldJobDataMap = new HashMap();
  136. oldJobDataMap.put("id", rs.getString("jobId"));
  137. oldJobDataMap.put("name", rs.getString("jobName"));
  138. companyDataMap = new HashMap();
  139. companyDataMap.put("id", rs.getString("companyId"));
  140. companyDataMap.put("number", rs.getString("companyNumber"));
  141. companyDataMap.put("longNumber", rs.getString("companyLongNumber"));
  142. companyDataMap.put("name", rs.getString("companyName"));
  143. companyDataMap.put("displayName", rs.getString("companyDisplayName"));
  144. departmentDataMap = new HashMap();
  145. departmentDataMap.put("id", rs.getString("departmentId"));
  146. departmentDataMap.put("number", rs.getString("departmentNumber"));
  147. departmentDataMap.put("longNumber", rs.getString("departmentLongNumber"));
  148. departmentDataMap.put("name", rs.getString("departmentName"));
  149. departmentDataMap.put("displayName", rs.getString("departmentDisplayName"));
  150. departmentDataMap.put("departmentExId", rs.getString("departmentExId"));
  151. departmentDataMap.put("displayExName", rs.getString("departmentExDisplayName"));
  152. adminOrgDataMap.put("department", departmentDataMap);
  153. empPostRankDataMap = new HashMap();
  154. empPostRankDataMap.put("jobGradeId", rs.getString("jobGradeId"));
  155. empPostRankDataMap.put("jobGradeName", rs.getString("jobGradeName"));
  156. empPostRankDataMap.put("jobLevelId", rs.getString("jobLevelId"));
  157. empPostRankDataMap.put("jobLevelName", rs.getString("jobLevelName"));
  158. hrOrgUnitDataMap = new HashMap();
  159. hrOrgUnitDataMap.put("id", rs.getString("hrOrgUnitId"));
  160. hrOrgUnitDataMap.put("name", rs.getString("hrOrgUnitName"));
  161. dataMap = new HashMap();
  162. dataMap.put("adminOrg", adminOrgDataMap);
  163. dataMap.put("company", companyDataMap);
  164. dataMap.put("department", departmentDataMap);
  165. dataMap.put("position", positionDataMap);
  166. dataMap.put("person", personDataMap);
  167. dataMap.put("empType", empTypeDataMap);
  168. dataMap.put("empLaborRelation", empLaborRelationDataMap);
  169. dataMap.put("pp", ppDataMap);
  170. dataMap.put("oldJob", oldJobDataMap);
  171. dataMap.put("hrbizdefine", HRBizMatchEmpTypeList);
  172. dataMap.put("oldEmpPostRank", empPostRankDataMap);
  173. dataMap.put("hrOrgUnit", hrOrgUnitDataMap);
  174. dataMap.put("oldPosition", oldPositionDataMap);
  175. dataMap.put("oldCompany", oldCompany);
  176. dataMap.put("oldDepartment", oldDepartment);
  177. dataMap.put("oldAdminOrg", oldadminOrgDataMap);
  178. list.add(dataMap);
  179. }
  180. return list;
  181. } catch (SQLException var31) {
  182. throw new BOSException(var31);
  183. }
  184. }
  185. private IRowSet getResult(Context ctx, Map param) throws BOSException {
  186. String personID = (String)param.get("personID");
  187. String oldPositionID = (String)param.get("oldPositionID");
  188. String leffdtTS = HRUtil.getMaxEndDateTs();
  189. String l = LocaleUtils.getShortCode(ctx);
  190. StringBuffer sql = new StringBuffer();
  191. sql.append(" select position.fid as id,position.fnumber as posnumber,position.fname_" + l + " as name,").append(" parttimeposition.fid as parttimeid,parttimeposition.fnumber as parttimeposnumber,parttimeposition.fname_" + l + " as parttimename,").append(" parttime.feffdt as parttimebeginDate,").append(" person.fid as personId , person.fname_" + l + " as personName, person.fnumber as personNumber, person.fcell as personCell, ").append(" person.FGender as gender , person.FIdCardNO as idCardNO,person.FBIRTHDAY as birthday,").append(" person.FnativePlace_" + l + " as nativePlace,person.FHJAddress as hjAddress, ").append(" hrPolitical.fname_" + l + " as hrPoliticalName, ").append(" hrStanding.fname_" + l + " as hrStandingName, ").append(" positionType.fname_" + l + " as positionTypeName, ").append(" parttimepositionType.fname_" + l + " as parttimepositionTypeName, ").append(" regresidence.fname_" + l + " as regresidenceName, ").append(" regresidence.fid as regresidenceId, ").append(" adminOrg.fid as adminOrgId , adminOrg.fname_" + l + " as adminOrgName, ").append(" adminOrg.FNUMBER as adminOrgNumber , adminOrg.FLongNumber as adminOrgLogNumber ,").append(" adminOrg.FDISPLAYNAME_" + l + " as adminDisplayName, ").append(" parttimeadminOrg.fid as oldAdminOrgId , parttimeadminOrg.fname_" + l + " as oldAdminOrgName, ").append(" parttimeadminOrg.FNUMBER as oldAdminOrgNumber , parttimeadminOrg.FLongNumber as oldAdminOrgLogNumber ,").append(" parttimeadminOrg.FDISPLAYNAME_" + l + " as oldAdminDisplayName, ").append(" company.fid as companyId , company.fname_" + l + " as companyName, ").append(" company.FNUMBER as companyNumber , company.FLongNumber as companyLongNumber ,").append(" company.FDISPLAYNAME_" + l + " as companyDisplayName, ").append(" parttimecompany.fid as parttimecompanyId , parttimecompany.fname_" + l + " as parttimecompanyName, ").append(" department.fid as departmentId , department.fname_" + l + " as departmentName, ").append(" department.FNUMBER as departmentNumber , department.FLongNumber as departmentLongNumber ,").append(" department.FDISPLAYNAME_" + l + " as departmentDisplayName, ").append(" parttimedepartment.fid as parttimedepartmentId , parttimedepartment.fname_" + l + " as parttimedepartmentName, ").append(" departmentEx.FId as departmentExId, ").append(" departmentEx.FDepDisplayName_" + l + " as departmentExDisplayName, ").append(" hrOrgUnit.fid as hrOrgUnitId, hrOrgUnit.fname_" + l + " as hrOrgUnitName, ").append(" empType.fid as empTypeID, ").append(" empType.fnumber as empTypeNumber, ").append(" empType.fname_" + l + " as empTypeName, ").append(" oldJob.fid as jobId , oldJob.fname_" + l + " as jobName , ").append(" oldJobGrade.fid as jobGradeId , oldJobGrade.fname_" + l + " as jobGradeName ,").append(" oldJobLevel.fid as jobLevelId , oldJobLevel.fname_" + l + " as jobLevelName ,").append(" laborRelation.FEmployerUnitID as employerUnitId, laborRelation.fplanFormalDate planFormalDate, ").append(" laborRelation.FTryoutMonth tryoutMonth,laborRelation.fenterDate enterDate, ").append(" employerUnit.fname_" + l + " employerUnitName ").append(" from t_bd_person person ").append("\tinner join t_hr_emporgrelation relation on person.fid = relation.fpersonid ").append("\tinner join t_hr_emporgrelation parttime on person.fid = parttime.fpersonid ").append("\tleft join t_hr_emplaborRelation laborRelation on relation.FlaborRelationID = laborRelation.fid ").append(" left join t_org_hro employerUnit on laborRelation.FemployerUnitID = employerUnit.fid ").append("\tleft join t_org_position position on relation.FPositionID=position.fid").append("\tleft join t_org_position parttimeposition on parttime.FPositionID=parttimeposition.fid").append("\tleft join T_ORG_Admin adminOrg on relation.FADMINORGID =adminOrg.fid").append("\tleft join T_ORG_Admin company on adminOrg.FCompanyID =company.fid").append("\tleft join T_ORG_Admin department on adminOrg.FDepartmentID =department.fid").append("\tleft join T_ORG_Admin parttimeadminOrg on parttime.FADMINORGID =parttimeadminOrg.fid").append("\tleft join T_ORG_Admin parttimecompany on parttimeadminOrg.FCompanyID =parttimecompany.fid").append("\tleft join T_ORG_Admin parttimedepartment on parttimeadminOrg.FDepartmentID =parttimedepartment.fid").append("\tleft join T_HR_SHRAdminOrgUnitExtend departmentEx on department.fid =departmentEx.FADMINORGUNITID").append("\tleft join T_HR_PersonPosition pp on pp.fpersonid =person.fid").append("\tleft join T_BD_HRPolitical hrPolitical on hrPolitical.fid =person.FPoliticalFaceID").append("\tleft join T_BD_HRStanding hrStanding on hrStanding.fid =person.FStandingID").append("\tleft join T_BD_PositionType positionType on positionType.fid =position.FPositionTypeID").append("\tleft join T_BD_PositionType parttimepositionType on parttimepositionType.fid =parttimeposition.FPositionTypeID").append("\tleft join T_BD_Regpermresidence regresidence on regresidence.fid =person.FRegresidenceID").append("\tleft join T_HR_BDEmployeeType empType on empType.fid =person.FEmployeeTypeID").append("\tleft join T_ORG_Job oldJob on oldJob.fid =position.FJobID").append(" left join T_HR_EmpPostRank empPostRank on empPostRank.fpersonId = person.fid and empPostRank.FLEFFDT=").append(leffdtTS).append("\tleft join T_HR_JobGrade oldJobGrade on oldJobGrade.fid = empPostRank.FJobGradeID ").append(" left join T_HR_JobLevel oldJobLevel on oldJobLevel.fid = empPostRank.FJobLevelID ").append("\tleft join t_hr_emphrorelationhis personBURel on ( personBURel.fpersonid = person.fid and personBURel.FEmpOrgRelationID = relation.fid").append("\tand personBURel.FBizManageTypeID = '").append("SGuJm3nXW0GshQfKRXenomWJ1dE=").append("' and personBURel.Fstate=1)").append("\tleft join T_ORG_HRO hrOrgUnit on personBURel.FHrOrgUnitID = hrOrgUnit.fid").append("\twhere person.fid=").append("?").append("\tand relation.FLEFFDT=").append(leffdtTS).append("\tand relation.FAssignType= ").append(1).append("\tand relation.Fisinner= ").append(1)
  192. .append("\tand parttime.FLEFFDT>=").append(" now() ")
  193. .append("\tand parttime.FAssignType= ").append(0).append("\tand parttime.Fisinner= ").append(1).append("\tand parttime.FPositionID= ").append("?").append("\torder by relation.fAssignType desc");
  194. Object[] params = new Object[]{personID, oldPositionID};
  195. return DbUtil.executeQuery(ctx, sql.toString(), params);
  196. }
  197. }