PositionListHandlerEx.java 3.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package com.kingdee.eas.custom.synctask.handler;
  2. import com.kingdee.bos.Context;
  3. import com.kingdee.eas.basedata.org.*;
  4. import com.kingdee.eas.custom.synctask.ActionTypeEnum;
  5. import com.kingdee.eas.custom.synctask.ISyncTranForIOTFacade;
  6. import com.kingdee.eas.custom.synctask.SyncTranForIOTFacadeFactory;
  7. import com.kingdee.eas.custom.synctask.SyncTranForOAFacadeFactory;
  8. import com.kingdee.eas.hr.ats.AtsUtil;
  9. import com.kingdee.eas.hr.org.web.handler.PositionListHandler;
  10. import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsBody;
  11. import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsHeader;
  12. import com.kingdee.shr.base.syssetting.context.SHRContext;
  13. import com.kingdee.shr.base.syssetting.exception.SHRWebException;
  14. import com.kingdee.shr.base.syssetting.exception.ShrWebBizException;
  15. import org.apache.commons.lang3.StringUtils;
  16. import org.springframework.ui.ModelMap;
  17. import javax.servlet.http.HttpServletRequest;
  18. import javax.servlet.http.HttpServletResponse;
  19. import java.util.*;
  20. /**
  21. * 职位日常维护list OA同步
  22. *
  23. * @date 2024/10/23
  24. * @apiNote
  25. */
  26. public class PositionListHandlerEx extends PositionListHandler {
  27. public void syncOAPositionAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException {
  28. Context ctx = SHRContext.getInstance().getContext();
  29. String billIds = request.getParameter("billIds");
  30. logger.error("syncOAPositionAction---billIds----" + billIds);
  31. try {
  32. Set<String> positionIds = null;
  33. if (StringUtils.isEmpty(billIds)) {
  34. IPosition iPosition = PositionFactory.getLocalInstance(ctx);
  35. PositionCollection positionCollection = iPosition.getPositionCollection("select id ,name,number");
  36. StringBuilder sb = new StringBuilder();
  37. for (int i = 0; i < positionCollection.size(); i++) {
  38. String positionId = positionCollection.get(i).getId().toString();
  39. sb.append(positionId).append(",");
  40. }
  41. sb.deleteCharAt(sb.lastIndexOf(","));
  42. billIds = sb.toString();
  43. }
  44. positionIds = AtsUtil.toSet(billIds);
  45. //部署测试环境需要注释此行
  46. ISyncTranForIOTFacade iSyncTranForIOTFacade = SyncTranForIOTFacadeFactory.getLocalInstance(ctx);
  47. Map<String, List<Map<String, String>>> result = iSyncTranForIOTFacade.syncOrgUnitToIot(billIds);
  48. logger.error("result---" + result);
  49. List<Map<String, String>> list = result.get("data");
  50. int success = positionIds.size();
  51. int failure = 0;
  52. BatchMessageTipsHeader batchMessageTipsHeader = new BatchMessageTipsHeader();
  53. if (list.size() > 0) {
  54. failure = list.size();
  55. for (int i = 0; i < list.size(); i++) {
  56. BatchMessageTipsBody body = new BatchMessageTipsBody();
  57. Map<String, String> map = list.get(i);
  58. body.setId(map.get("id"));
  59. body.setMuitTipsState(Boolean.FALSE);
  60. body.setMuitTipsMessage(map.get("msg"));
  61. batchMessageTipsHeader.addResult(body);
  62. }
  63. success -= list.size();
  64. }
  65. logger.error("handleEnableWithTips----- >> ");
  66. batchMessageTipsHeader.setBillId(billIds);
  67. batchMessageTipsHeader.setFailureCount(failure);
  68. batchMessageTipsHeader.setSuccessCount(success);
  69. logger.error("batchMessageTipsHeader " + batchMessageTipsHeader.getSuccessCount());
  70. request.setAttribute("res_method_data", batchMessageTipsHeader);
  71. this.writeSuccessData(batchMessageTipsHeader);
  72. SyncTranForOAFacadeFactory.getLocalInstance(ctx).syncPositionToOA(billIds, ActionTypeEnum.ADD);
  73. } catch (Exception e) {
  74. e.printStackTrace();
  75. throw new ShrWebBizException(e);
  76. }
  77. }
  78. }