EmployeeListHandlerEx.java 4.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package com.kingdee.eas.custom.synctask.handler;
  2. import com.kingdee.bos.BOSException;
  3. import com.kingdee.bos.Context;
  4. import com.kingdee.eas.basedata.person.IPerson;
  5. import com.kingdee.eas.basedata.person.PersonCollection;
  6. import com.kingdee.eas.basedata.person.PersonFactory;
  7. import com.kingdee.eas.basedata.person.PersonInfo;
  8. import com.kingdee.eas.common.EASBizException;
  9. import com.kingdee.eas.custom.synctask.SyncTranForOAFacadeFactory;
  10. import com.kingdee.eas.framework.ICoreBase;
  11. import com.kingdee.eas.hr.ats.AtsUtil;
  12. import com.kingdee.eas.hr.emp.web.handler.EmployeeListHandler;
  13. import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsBody;
  14. import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsHeader;
  15. import com.kingdee.shr.base.syssetting.context.SHRContext;
  16. import com.kingdee.shr.base.syssetting.exception.SHRWebException;
  17. import com.kingdee.shr.base.syssetting.exception.ShrWebBizException;
  18. import com.kingdee.util.StringUtils;
  19. import org.apache.log4j.Logger;
  20. import org.springframework.ui.ModelMap;
  21. import javax.servlet.http.HttpServletRequest;
  22. import javax.servlet.http.HttpServletResponse;
  23. import java.util.Map;
  24. /**
  25. * @author qingwu
  26. * @date 2024/10/24
  27. * @apiNote Ô±¹¤ÐÅϢά»¤À©Õ¹
  28. */
  29. public class EmployeeListHandlerEx extends EmployeeListHandler {
  30. public static Logger logger = Logger.getLogger(EmployeeListHandlerEx.class);
  31. private Context ctx = SHRContext.getInstance().getContext();
  32. public void syncPersonToOAAction(HttpServletRequest request,
  33. HttpServletResponse response,
  34. ModelMap modelMap) throws BOSException, EASBizException, SHRWebException {
  35. this.handleEnableWithTips(request, "");
  36. }
  37. protected void handleEnableWithTips(HttpServletRequest request, String methodName) throws SHRWebException {
  38. String billId = this.getBillId(request);
  39. try {
  40. IPerson iPerson = PersonFactory.getLocalInstance(ctx);
  41. if (StringUtils.isEmpty(billId)) {
  42. PersonCollection personCollection = iPerson.getPersonCollection("select id");
  43. StringBuilder sb = new StringBuilder();
  44. for (int i = 0; i < personCollection.size(); i++) {
  45. String personId = personCollection.get(i).getId().toString();
  46. sb.append(personId).append(",");
  47. }
  48. sb.deleteCharAt(sb.lastIndexOf(","));
  49. }
  50. Map<String, Map<String, String>> resultMap = SyncTranForOAFacadeFactory.getLocalInstance(ctx).syncPersonToOA(billId, null);
  51. if (resultMap != null && resultMap.isEmpty()) {
  52. PersonCollection personCollection = iPerson.getPersonCollection("select id,number where id in (" + AtsUtil.getStrFromString(billId) + ")");
  53. int sucess = 0;
  54. int failure = 0;
  55. BatchMessageTipsHeader batchMessageTipsHeader = new BatchMessageTipsHeader();
  56. for (int i = 0; i < personCollection.size(); i++) {
  57. BatchMessageTipsBody body = new BatchMessageTipsBody();
  58. PersonInfo personInfo = personCollection.get(i);
  59. body.setId(personInfo.getId().toString());
  60. String personNumber = personInfo.getNumber();
  61. Map<String, String> map = resultMap.get(personNumber);
  62. if ("success".equals(map.get("state"))) {
  63. ++sucess;
  64. } else {
  65. ++failure;
  66. body.setMuitTipsState(Boolean.FALSE);
  67. body.setMuitTipsMessage(map.get("msg"));
  68. }
  69. batchMessageTipsHeader.addResult(body);
  70. }
  71. batchMessageTipsHeader.setBillId(billId);
  72. batchMessageTipsHeader.setFailureCount(failure);
  73. batchMessageTipsHeader.setSuccessCount(sucess);
  74. request.setAttribute("res_method_data", batchMessageTipsHeader);
  75. this.writeSuccessData(batchMessageTipsHeader);
  76. }
  77. } catch (Exception e) {
  78. e.printStackTrace();
  79. throw new ShrWebBizException(e);
  80. }
  81. }
  82. }