OAHireSalaryDataListHandler.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. package com.kingdee.eas.custom.hireapproval.handler;
  2. import com.kingdee.bos.BOSException;
  3. import com.kingdee.bos.Context;
  4. import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
  5. import com.kingdee.eas.common.EASBizException;
  6. import com.kingdee.eas.custom.hireapproval.IOAHireSalaryData;
  7. import com.kingdee.eas.custom.hireapproval.OAHireSalaryDataFactory;
  8. import com.kingdee.eas.custom.hireapproval.OAHireSalaryDataInfo;
  9. import com.kingdee.eas.custom.hireapproval.bizEnum.ExecuteStateEnum;
  10. import com.kingdee.eas.custom.hireapproval.task.HireApprovalFacadeFactory;
  11. import com.kingdee.shr.base.syssetting.context.SHRContext;
  12. import com.kingdee.shr.base.syssetting.exception.SHRWebException;
  13. import com.kingdee.shr.base.syssetting.exception.ShrWebBizException;
  14. import com.kingdee.shr.base.syssetting.json.GridDataEntity;
  15. import com.kingdee.shr.base.syssetting.web.handler.ListHandler;
  16. import com.kingdee.util.StringUtils;
  17. import org.springframework.ui.ModelMap;
  18. import javax.servlet.http.HttpServletRequest;
  19. import javax.servlet.http.HttpServletResponse;
  20. import java.util.ArrayList;
  21. import java.util.HashMap;
  22. import java.util.List;
  23. import java.util.Map;
  24. /**
  25. * @Description OA录用定薪数据ListHandler
  26. * @Date 2025/7/31 16:33
  27. * @Created by Heyuan
  28. */
  29. public class OAHireSalaryDataListHandler extends ListHandler {
  30. /**
  31. * 执行入职定薪
  32. *
  33. * @param request
  34. * @param response
  35. * @param modelMap
  36. * @return
  37. * @throws SHRWebException
  38. */
  39. public void executeHireSalaryBillAction(
  40. HttpServletRequest request,
  41. HttpServletResponse response,
  42. ModelMap modelMap
  43. ) throws SHRWebException {
  44. try {
  45. Context ctx = SHRContext.getInstance().getContext();
  46. String billId = getBillId(request);
  47. if (StringUtils.isEmpty(billId)) {
  48. throw new ShrWebBizException("请先选中数据!");
  49. }
  50. IOAHireSalaryData ioaHireSalaryData = OAHireSalaryDataFactory.getLocalInstance(ctx);
  51. OAHireSalaryDataInfo oaHireSalaryDataInfo =
  52. ioaHireSalaryData.getOAHireSalaryDataInfo(new ObjectUuidPK(billId));
  53. ExecuteStateEnum executeStatus = oaHireSalaryDataInfo.getExecuteStatus();
  54. if (ExecuteStateEnum.SUCCESS.equals(executeStatus)) {
  55. throw new ShrWebBizException("成功状态的数据不允许重复执行");
  56. } else if (ExecuteStateEnum.EXECUTEING.equals(executeStatus)) {
  57. throw new ShrWebBizException("执行中状态的数据不允许重复执行");
  58. }
  59. HireApprovalFacadeFactory.getLocalInstance(ctx).createHireSalaryBill(billId);
  60. } catch (BOSException e) {
  61. e.printStackTrace();
  62. throw new ShrWebBizException(e);
  63. } catch (EASBizException e) {
  64. e.printStackTrace();
  65. throw new ShrWebBizException(e);
  66. }
  67. }
  68. @Override
  69. protected void afterGetListData(
  70. HttpServletRequest request,
  71. HttpServletResponse response,
  72. GridDataEntity gridDataEntity
  73. ) throws SHRWebException {
  74. super.afterGetListData(request, response, gridDataEntity);
  75. List<Map<String, Object>> rows = gridDataEntity.getRows();
  76. List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();
  77. Map<String, Map<String, Object>> rowData = new HashMap<String, Map<String, Object>>();
  78. for (int i = 0; i < rows.size(); i++) {
  79. Map<String, Object> map = rows.get(i);
  80. String id = (String) map.get("id");
  81. String cmpItemNumber = (String) map.get("cmpItem.number");
  82. Object money = map.get("entrys.money");
  83. if (rowData.containsKey(id)) {
  84. rowData.get(id).put(cmpItemNumber, money);
  85. } else {
  86. map.put(cmpItemNumber, money);
  87. String idNumber = (String) map.get("idNumber");
  88. String passport = (String) map.get("passport");
  89. if (!StringUtils.isEmpty(idNumber)) {
  90. map.put("identification", idNumber);
  91. } else {
  92. map.put("identification", passport);
  93. }
  94. rowData.put(id, map);
  95. }
  96. }
  97. rowData.entrySet().stream().forEach(entry -> {
  98. data.add(entry.getValue());
  99. });
  100. int rowPage = Integer.parseInt(request.getParameter("rows"));
  101. gridDataEntity.setTotal(data.size() % rowPage == 0 ? data.size() / rowPage : data.size() / rowPage + 1);
  102. gridDataEntity.setRecords(data.size());
  103. gridDataEntity.setRows(data);
  104. }
  105. public void afterGetExportData(
  106. HttpServletRequest request,
  107. HttpServletResponse response,
  108. List listData
  109. ) throws SHRWebException {
  110. List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();
  111. Map<String, Map<String, Object>> rowData = new HashMap<String, Map<String, Object>>();
  112. for (int i = 0; i < listData.size(); i++) {
  113. Map<String, Object> map = (Map<String, Object>) listData.get(i);
  114. String id = (String) map.get("id");
  115. String cmpItemNumber = (String) map.get("cmpItem.number");
  116. Object money = map.get("entrys.money");
  117. if (rowData.containsKey(id)) {
  118. rowData.get(id).put(cmpItemNumber, money);
  119. } else {
  120. map.put(cmpItemNumber, money);
  121. String idNumber = (String) map.get("idNumber");
  122. String passport = (String) map.get("passport");
  123. if (!StringUtils.isEmpty(idNumber)) {
  124. map.put("identification", idNumber);
  125. } else {
  126. map.put("identification", passport);
  127. }
  128. rowData.put(id, map);
  129. }
  130. }
  131. }
  132. }