5c82dd45e3f47f6650cb5d8cefde2391874685d0.svn-base 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. package com.kingdee.shr.customer.gtiit.rpt;
  2. import java.sql.SQLException;
  3. import java.util.ArrayList;
  4. import java.util.Date;
  5. import java.util.HashMap;
  6. import java.util.LinkedHashMap;
  7. import java.util.List;
  8. import java.util.Map;
  9. import javax.servlet.http.HttpServletRequest;
  10. import javax.servlet.http.HttpServletResponse;
  11. import org.apache.commons.lang3.StringUtils;
  12. import org.springframework.ui.ModelMap;
  13. import com.alibaba.fastjson.JSON;
  14. import com.alibaba.fastjson.JSONObject;
  15. import com.kingdee.bos.BOSException;
  16. import com.kingdee.bos.Context;
  17. import com.kingdee.eas.util.app.DbUtil;
  18. import com.kingdee.jdbc.rowset.IRowSet;
  19. import com.kingdee.shr.base.syssetting.context.SHRContext;
  20. import com.kingdee.shr.base.syssetting.exception.SHRWebException;
  21. import com.kingdee.shr.base.syssetting.web.handler.ListHandler;
  22. import com.kingdee.shr.base.syssetting.web.json.JSONUtils;
  23. import com.kingdee.shr.customer.gtiit.util.ContractRptUtil;
  24. import com.kingdee.shr.customer.gtiit.util.DateTimeUtils;
  25. public class EmployeeResignationContractListHandler extends ListHandler {
  26. Context ctx = SHRContext.getInstance().getContext();
  27. private int totalCount;
  28. public EmployeeResignationContractListHandler() {
  29. }
  30. public String getGridColModelAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap)
  31. throws SHRWebException, BOSException, SQLException {
  32. List<String> colNames = this.getcolNamesAction();
  33. List<Map<String, Object>> colModel = this.getcolModelAction();
  34. LinkedHashMap<String, Object> map = new LinkedHashMap<String, Object>();
  35. map.put("colNames", colNames);
  36. map.put("colModel", colModel);
  37. JSONUtils.writeJson(response, map);
  38. return null;
  39. }
  40. public void getGridDataAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap)
  41. throws BOSException, SQLException, SHRWebException {
  42. int rows = Integer.parseInt(request.getParameter("rows"));
  43. int page = Integer.parseInt(request.getParameter("page"));
  44. List<Map<String, Object>> maplist = new ArrayList<Map<String, Object>>();
  45. int num = 0;
  46. // 获取报表查询过滤条件
  47. String parameter = request.getParameter("fastFilterItems");
  48. JSONObject paramJson = JSON.parseObject(parameter);
  49. String personIds = null;
  50. String contractdate = null;
  51. JSONObject personJson = paramJson.getJSONObject("person");
  52. String ids = personJson.getString("values");
  53. if (StringUtils.isNotBlank(ids)) {
  54. personIds = "'" + ids.replace(",", "','") + "'";
  55. }
  56. JSONObject contractdateJson = paramJson.getJSONObject("contractdate");
  57. JSONObject values = contractdateJson.getJSONObject("values");
  58. if (values != null) {
  59. contractdate = values.getString("date");
  60. }
  61. Map<String, Object> params = new HashMap<>();
  62. params.put("personid", personIds);
  63. params.put("contractdate", contractdate);
  64. // 获取报表数据源
  65. String sqlInfo = ContractRptUtil.getContractSql(params);
  66. IRowSet rs = DbUtil.executeQuery(this.ctx, sqlInfo);
  67. while (rs.next()) {
  68. ++num;
  69. if (num >= rows * (page - 1) + 1 && num <= rows * page) {
  70. Map<String, Object> map = new HashMap<String, Object>();
  71. map.put("PersonNumber", rs.getString("PersonNumber"));
  72. map.put("LastName", rs.getString("LastName"));
  73. map.put("FirstName", rs.getString("FirstName"));
  74. map.put("EnglishName", rs.getString("EnglishName"));
  75. map.put("JobName", rs.getString("JobName"));
  76. map.put("WorkerCategory", rs.getString("WorkerCategory"));
  77. map.put("PersonType", rs.getString("PersonType"));
  78. map.put("FullorPartTime", rs.getString("FullorPartTime"));
  79. map.put("HireDate", DateTimeUtils.dateFormat(rs.getDate("HireDate"), "yyyy-MM-dd"));
  80. map.put("ProbationEndDate", DateTimeUtils.dateFormat(rs.getDate("ProbationEndDate"), "yyyy-MM-dd"));
  81. map.put("ContractNo", rs.getString("ContractNo"));
  82. map.put("Type", rs.getString("Type"));
  83. map.put("CommencingDate", DateTimeUtils.dateFormat(rs.getDate("CommencingDate"), "yyyy-MM-dd"));
  84. map.put("ExpiredDate", DateTimeUtils.dateFormat(rs.getDate("ExpiredDate"), "yyyy-MM-dd"));
  85. String YearsOfService = rs.getString("YearsOfService");
  86. YearsOfService = YearsOfService.substring(0, (YearsOfService.indexOf(".") + 2));
  87. map.put("YearsOfService", YearsOfService);
  88. maplist.add(map);
  89. }
  90. }
  91. this.totalCount = num;
  92. Map<String, Object> gridDataMap = new LinkedHashMap<String, Object>();
  93. if (this.totalCount % rows == 0) {
  94. gridDataMap.put("total", this.totalCount / rows);
  95. } else {
  96. gridDataMap.put("total", this.totalCount / rows + 1);
  97. }
  98. gridDataMap.put("page", page);
  99. gridDataMap.put("records", this.totalCount);
  100. gridDataMap.put("rows", maplist);
  101. JSONUtils.writeJson(response, gridDataMap);
  102. }
  103. public ArrayList<String> getcolNamesAction() throws SHRWebException {
  104. ArrayList<String> list = new ArrayList<String>();
  105. list.add("工号");
  106. list.add("姓");
  107. list.add("名");
  108. list.add("英文名");
  109. list.add("职务");
  110. list.add("员工类别");
  111. list.add("人员类型");
  112. list.add("全职或兼职");
  113. list.add("雇佣日期");
  114. list.add("试用期结束日期");
  115. list.add("合同/协议编码");
  116. list.add("类型");
  117. list.add("开始时间");
  118. list.add("结束时间");
  119. list.add("服务年限");
  120. ArrayList<String> englishList = new ArrayList<String>();
  121. englishList.add("PersonNumber");
  122. englishList.add("LastName");
  123. englishList.add("FirstName");
  124. englishList.add("EnglishName");
  125. englishList.add("JobName");
  126. englishList.add("WorkerCategory");
  127. englishList.add("PersonType");
  128. englishList.add("FullorPartTime");
  129. englishList.add("HireDate");
  130. englishList.add("ProbationEndDate");
  131. englishList.add("Contract/AgreementNo");
  132. englishList.add("Type");
  133. englishList.add("CommencingDate");
  134. englishList.add("ExpiredDate");
  135. englishList.add("Yearsofservice");
  136. return englishList;
  137. }
  138. public List<Map<String, Object>> getcolModelAction() {
  139. List<Map<String, Object>> modelColList = new ArrayList<Map<String, Object>>();
  140. modelColList.add(this.buildColModelMap("PersonNumber", "工号", 120));
  141. modelColList.add(this.buildColModelMap("LastName", "姓", 120));
  142. modelColList.add(this.buildColModelMap("FirstName", "名", 120));
  143. modelColList.add(this.buildColModelMap("EnglishName", "英文名", 120));
  144. modelColList.add(this.buildColModelMap("JobName", "职务", 120));
  145. modelColList.add(this.buildColModelMap("WorkerCategory", "员工类别", 120));
  146. modelColList.add(this.buildColModelMap("PersonType", "人员类型", 120));
  147. modelColList.add(this.buildColModelMap("FullorPartTime", "全职或兼职", 120));
  148. modelColList.add(this.buildColModelMap("HireDate", "雇佣日期", 120));
  149. modelColList.add(this.buildColModelMap("ProbationEndDate", "试用期结束日期", 120));
  150. modelColList.add(this.buildColModelMap("ContractNo", "合同/协议编码", 120));
  151. modelColList.add(this.buildColModelMap("Type", "类型", 120));
  152. modelColList.add(this.buildColModelMap("CommencingDate", "开始时间", 120));
  153. modelColList.add(this.buildColModelMap("ExpiredDate", "结束时间", 120));
  154. modelColList.add(this.buildColModelMap("YearsOfService", "服务年限", 120));
  155. return modelColList;
  156. }
  157. private Map<String, Object> buildColModelMap(String index, String label, int width) {
  158. return this.buildColModelMap(index, label, width, false, false, false);
  159. }
  160. private Map<String, Object> buildColModelMap(String index, String label, int width, boolean rowspan, boolean isKey,
  161. boolean isHedden) {
  162. Map<String, Object> gridIdMap = new LinkedHashMap<String, Object>();
  163. gridIdMap.put("index", index);
  164. gridIdMap.put("name", index);
  165. gridIdMap.put("label", label);
  166. gridIdMap.put("width", width);
  167. if (rowspan) {
  168. gridIdMap.put("rowspan", rowspan);
  169. }
  170. if (isKey) {
  171. gridIdMap.put("key", isKey);
  172. }
  173. if (isHedden) {
  174. gridIdMap.put("hidden", isHedden);
  175. }
  176. return gridIdMap;
  177. }
  178. public String getSql(String dateTime, String dept, String line) {
  179. StringBuffer sql = new StringBuffer();
  180. sql.append("SELECT max(emp.FLEFFDT ), emp.fpersonid FROM T_HR_EmpLaborRelationHis emp ");
  181. sql.append("left join T_HR_BDEmployeeType dbe ");
  182. sql.append("on emp.FLABORRELATIONSTATEID = dbe.fid ");
  183. sql.append("where dbe.FNAME_L2 IN ('辞退','辞职','离职') ");
  184. sql.append("group by emp.fpersonid ");
  185. sql.append("");
  186. return sql.toString();
  187. }
  188. }