OrgUnitListHandlerEx.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. package com.kingdee.eas.custom.synctask.handler;
  2. import com.kingdee.bos.BOSException;
  3. import com.kingdee.bos.Context;
  4. import com.kingdee.bos.metadata.entity.*;
  5. import com.kingdee.bos.metadata.query.util.CompareType;
  6. import com.kingdee.eas.basedata.org.*;
  7. import com.kingdee.eas.common.EASBizException;
  8. import com.kingdee.eas.cp.taskmng.util.StringUtil;
  9. import com.kingdee.eas.custom.synctask.ISyncTranForIOTFacade;
  10. import com.kingdee.eas.custom.synctask.SyncTranForIOTFacadeFactory;
  11. import com.kingdee.eas.custom.synctask.SyncTranForOAFacadeFactory;
  12. import com.kingdee.eas.hr.ats.AtsUtil;
  13. import com.kingdee.eas.hr.org.web.handler.OrgUnitListHandler;
  14. import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsBody;
  15. import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsHeader;
  16. import com.kingdee.shr.base.syssetting.context.SHRContext;
  17. import com.kingdee.shr.base.syssetting.exception.SHRWebException;
  18. import com.kingdee.shr.base.syssetting.exception.ShrWebBizException;
  19. import com.kingdee.shr.base.syssetting.web.json.JSONUtils;
  20. import org.apache.log4j.Logger;
  21. import org.springframework.ui.ModelMap;
  22. import javax.servlet.http.HttpServletRequest;
  23. import javax.servlet.http.HttpServletResponse;
  24. import java.io.FileInputStream;
  25. import java.io.IOException;
  26. import java.util.*;
  27. import org.apache.commons.lang3.StringUtils;
  28. /**
  29. * @author qingwu
  30. * @date 2024/10/21
  31. * @apiNote
  32. */
  33. public class OrgUnitListHandlerEx extends OrgUnitListHandler {
  34. Logger logger = Logger.getLogger(OrgUnitListHandlerEx.class);
  35. private Context ctx = SHRContext.getInstance().getContext();
  36. private Properties propt = new Properties();
  37. private static Map<String, Integer> personStatusMap = new HashMap<String, Integer>();
  38. static {
  39. personStatusMap.put("集团", 1);//集团
  40. personStatusMap.put("公司", 2);//公司
  41. personStatusMap.put("一级组织", 3);//一级组织 区域
  42. personStatusMap.put("二级组织", 4);//二级组织 分公司
  43. personStatusMap.put("三级组织", 5);//三级组织 子公司
  44. personStatusMap.put("四级组织", 6);//四级组织 管理
  45. }
  46. public OrgUnitListHandlerEx() throws BOSException {
  47. String syncOAConfigPath = System.getProperty("EAS_HOME") + "/server/properties/scy/syncIOTConfig.properties";
  48. try {
  49. propt.load(new FileInputStream(syncOAConfigPath));
  50. } catch (IOException e) {
  51. e.printStackTrace();
  52. String errorMsg = "获取配置文件报错,请检查配置:" + syncOAConfigPath + " " + e.getMessage();
  53. throw new BOSException(errorMsg);
  54. }
  55. }
  56. /**
  57. * 获取组织批处理信息
  58. *
  59. * @param request
  60. * @param response
  61. * @param modelMap
  62. * @return
  63. */
  64. public void getAdminOrgBatchInfoAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws BOSException, ShrWebBizException {
  65. try {
  66. IAdminOrgUnit iAdminOrgUnit = AdminOrgUnitFactory.getLocalInstance(ctx);
  67. AdminOrgUnitCollection adminOrgUnitCollection = null;
  68. String ids = request.getParameter("ids");
  69. if (StringUtil.isEmpty(ids)) {
  70. adminOrgUnitCollection = iAdminOrgUnit.getAdminOrgUnitCollection();
  71. } else {
  72. Set<String> adminOrgIds = AtsUtil.toSet(ids);
  73. FilterInfo filterInfo = new FilterInfo();
  74. FilterItemCollection filterItems = filterInfo.getFilterItems();
  75. filterItems.add(new FilterItemInfo("id", adminOrgIds, CompareType.INCLUDE));
  76. EntityViewInfo entityViewInfo = EntityViewInfo.getInstance(filterInfo, null, null);
  77. adminOrgUnitCollection = iAdminOrgUnit.getAdminOrgUnitCollection(entityViewInfo);
  78. }
  79. List list = new ArrayList();
  80. for (int i = 0; i < adminOrgUnitCollection.size(); i++) {
  81. AdminOrgUnitInfo adminOrgUnitInfo = adminOrgUnitCollection.get(i);
  82. list.add(adminOrgUnitInfo);
  83. }
  84. JSONUtils.SUCCESS(list);
  85. } catch (Exception e) {
  86. e.printStackTrace();
  87. throw new ShrWebBizException(e);
  88. }
  89. }
  90. /**
  91. * 同步IOT平台
  92. *
  93. * @param request
  94. * @param response
  95. * @param modelMap
  96. * @return 后续如需部署生产去掉Ex
  97. */
  98. public Map syncOrgUnitToIotAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws BOSException, ShrWebBizException {
  99. try {
  100. String billds = request.getParameter("billIds");
  101. logger.error("_syncOrgUnitToOA---billds: " + billds);
  102. Set<String> adminOrgIds = null;
  103. if (StringUtils.isEmpty(billds)) {
  104. IAdminOrgUnit iAdminOrgUnit = AdminOrgUnitFactory.getLocalInstance(ctx);
  105. AdminOrgUnitCollection adminOrgUnitCollection = iAdminOrgUnit.getAdminOrgUnitCollection("select id ,name,number");
  106. StringBuilder sb = new StringBuilder();
  107. for (int i = 0; i < adminOrgUnitCollection.size(); i++) {
  108. String adminOrgId = adminOrgUnitCollection.get(i).getId().toString();
  109. sb.append(adminOrgId).append(",");
  110. }
  111. sb.deleteCharAt(sb.lastIndexOf(","));
  112. billds = sb.toString();
  113. }
  114. adminOrgIds = AtsUtil.toSet(billds);
  115. ISyncTranForIOTFacade iSyncTranForIOTFacade = SyncTranForIOTFacadeFactory.getLocalInstance(ctx);
  116. Map<String, List<Map<String, String>>> result = iSyncTranForIOTFacade.syncOrgUnitToIot(billds);
  117. logger.error("result---" + result);
  118. List<Map<String, String>> list = result.get("data");
  119. int success = adminOrgIds.size();
  120. int failure = 0;
  121. BatchMessageTipsHeader batchMessageTipsHeader = new BatchMessageTipsHeader();
  122. if (list.size() > 0) {
  123. failure = list.size();
  124. for (int i = 0; i < list.size(); i++) {
  125. BatchMessageTipsBody body = new BatchMessageTipsBody();
  126. Map<String, String> map = list.get(i);
  127. body.setId(map.get("id"));
  128. body.setMuitTipsState(Boolean.FALSE);
  129. body.setMuitTipsMessage(map.get("msg"));
  130. batchMessageTipsHeader.addResult(body);
  131. }
  132. success -= list.size();
  133. }
  134. logger.error("handleEnableWithTips----- >> ");
  135. batchMessageTipsHeader.setBillId(billds);
  136. batchMessageTipsHeader.setFailureCount(failure);
  137. batchMessageTipsHeader.setSuccessCount(success);
  138. logger.error("batchMessageTipsHeader " + batchMessageTipsHeader.getSuccessCount());
  139. request.setAttribute("res_method_data", batchMessageTipsHeader);
  140. this.writeSuccessData(batchMessageTipsHeader);
  141. logger.error("handleEnableWithTips----- end ");
  142. } catch (SHRWebException e) {
  143. e.printStackTrace();
  144. throw new ShrWebBizException(e);
  145. } catch (EASBizException e) {
  146. throw new ShrWebBizException(e);
  147. }
  148. return null;
  149. }
  150. /**
  151. * 同步OA部门
  152. *
  153. * @param request
  154. * @param response
  155. * @param modelMap
  156. * @throws BOSException
  157. * @throws EASBizException
  158. */
  159. public void syncOrgUnitToOAAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws BOSException, EASBizException, ShrWebBizException {
  160. String billIds = request.getParameter("billIds");
  161. //同步组织到OA
  162. //Map map = SyncTranForOAFacadeFactory.getLocalInstance(ctx).syncOrgUnitToOA(billIds, null);
  163. try {
  164. IAdminOrgUnit iAdminOrgUnit = AdminOrgUnitFactory.getLocalInstance(ctx);
  165. String billds = request.getParameter("billIds");
  166. logger.error("_syncOrgUnitToOA---billds: " + billds);
  167. Set<String> adminOrgIds = null;
  168. if (StringUtils.isEmpty(billds)) {
  169. AdminOrgUnitCollection adminOrgUnitCollection = iAdminOrgUnit.getAdminOrgUnitCollection("select id ,name,number");
  170. StringBuilder sb = new StringBuilder();
  171. for (int i = 0; i < adminOrgUnitCollection.size(); i++) {
  172. String adminOrgId = adminOrgUnitCollection.get(i).getId().toString();
  173. sb.append(adminOrgId).append(",");
  174. }
  175. sb.deleteCharAt(sb.lastIndexOf(","));
  176. billds = sb.toString();
  177. }
  178. adminOrgIds = AtsUtil.toSet(billds);
  179. Map<String, List<Map<String, String>>> result = SyncTranForOAFacadeFactory.getLocalInstance(ctx).syncOrgUnitToOA(billIds, null);
  180. if (result != null && !result.isEmpty()) {
  181. logger.error("handleEnableWithTips----- start ");
  182. logger.error("handleEnableWithTips----- billId-- " + billIds);
  183. AdminOrgUnitCollection adminOrgUnitCollection = iAdminOrgUnit.getAdminOrgUnitCollection("select id,number where id in (" + AtsUtil.getStrFromString(billds) + ")");
  184. int sucess = 0;
  185. int failure = 0;
  186. BatchMessageTipsHeader batchMessageTipsHeader = new BatchMessageTipsHeader();
  187. for (int i = 0; i < adminOrgUnitCollection.size(); i++) {
  188. BatchMessageTipsBody body = new BatchMessageTipsBody();
  189. AdminOrgUnitInfo adminOrgUnitInfo = adminOrgUnitCollection.get(i);
  190. body.setId(adminOrgUnitInfo.getId().toString());
  191. String adminOrgNumber = adminOrgUnitInfo.getNumber();
  192. Map<String, String> map = (Map<String, String>) result.get(adminOrgNumber);
  193. logger.error("map----" + map);
  194. if (map == null) {
  195. ++failure;
  196. body.setMuitTipsState(Boolean.FALSE);
  197. body.setMuitTipsMessage("同步数据不能为空或检查是否同步OA字段是否等于否!");
  198. } else {
  199. if ("success".equals(map.get("state"))) {
  200. ++sucess;
  201. body.setMuitTipsState(Boolean.TRUE);
  202. body.setMuitTipsMessage(map.get("msg"));
  203. } else {
  204. ++failure;
  205. body.setMuitTipsState(Boolean.FALSE);
  206. body.setMuitTipsMessage(map.get("msg"));
  207. }
  208. }
  209. batchMessageTipsHeader.addResult(body);
  210. }
  211. logger.error("handleEnableWithTips----- >> ");
  212. batchMessageTipsHeader.setBillId(billds);
  213. batchMessageTipsHeader.setFailureCount(failure);
  214. batchMessageTipsHeader.setSuccessCount(sucess);
  215. logger.error("batchMessageTipsHeader " + batchMessageTipsHeader.getSuccessCount());
  216. request.setAttribute("res_method_data", batchMessageTipsHeader);
  217. this.writeSuccessData(batchMessageTipsHeader);
  218. logger.error("handleEnableWithTips----- end ");
  219. }
  220. } catch (SHRWebException e) {
  221. e.printStackTrace();
  222. throw new ShrWebBizException(e);
  223. }
  224. }
  225. }