EmployeeListHandlerEx.java 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. package com.kingdee.eas.custom.webbeisen.handler;
  2. import com.google.gson.Gson;
  3. import com.google.gson.GsonBuilder;
  4. import com.kingdee.bos.BOSException;
  5. import com.kingdee.bos.Context;
  6. import com.kingdee.bos.dao.IObjectCollection;
  7. import com.kingdee.bos.dao.IObjectValue;
  8. import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
  9. import com.kingdee.bos.dao.query.BizEnumValueDTO;
  10. import com.kingdee.bos.util.BOSUuid;
  11. import com.kingdee.eas.basedata.org.OrgUnitInfo;
  12. import com.kingdee.eas.basedata.person.PersonFactory;
  13. import com.kingdee.eas.basedata.person.PersonInfo;
  14. import com.kingdee.eas.common.EASBizException;
  15. import com.kingdee.eas.custom.beisen.synchronousorg.SynchronousEmpBillFactory;
  16. import com.kingdee.eas.hr.emp.web.handler.EmployeeListHandler;
  17. import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsBody;
  18. import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsHeader;
  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.json.adapter.*;
  22. import com.kingdee.shr.base.syssetting.web.json.JSONUtils;
  23. import com.kingdee.shr.base.syssetting.web.json.adapter.BOSUuidTypeAdapter;
  24. import com.kingdee.util.StringUtils;
  25. import com.kingdee.util.enums.Enum;
  26. import org.springframework.ui.ModelMap;
  27. import javax.servlet.ServletRequest;
  28. import javax.servlet.ServletResponse;
  29. import javax.servlet.http.HttpServletRequest;
  30. import javax.servlet.http.HttpServletResponse;
  31. import java.io.IOException;
  32. import java.io.PrintWriter;
  33. import java.sql.Timestamp;
  34. import java.util.Date;
  35. public class EmployeeListHandlerEx extends EmployeeListHandler {
  36. public String synBeiSenPersonAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException {
  37. Context ctx = SHRContext.getInstance().getContext();
  38. BatchMessageTipsHeader batchMessageTipsHeader = new BatchMessageTipsHeader();
  39. String ids = request.getParameter("ids");
  40. System.out.println("==========ids:"+ids);
  41. int sucess = 0;
  42. int failure = 0;
  43. if (ids != null && ids.length() > 0) {
  44. String[] personArray = ids.split(",");
  45. for (int i = 0; i < personArray.length; i++) {
  46. BatchMessageTipsBody body = new BatchMessageTipsBody();
  47. try {
  48. PersonInfo personInfo = PersonFactory.getLocalInstance(ctx).getPersonInfo(new ObjectUuidPK(personArray[i]));
  49. String beisenid = personInfo.getString("beisenid");
  50. System.out.println("==========beisenid:"+beisenid);
  51. if (beisenid!=null&&beisenid.length()>0){
  52. try {
  53. Boolean string = personInfo.getBoolean("IsSync");
  54. System.out.println("sssssssssssssss:"+string+"");
  55. if (string==null||!string){
  56. System.out.println("sssssssssssssss:同步");
  57. String s = SynchronousEmpBillFactory.getLocalInstance(ctx).empBill(beisenid, "002", "asdasdasdasdasdasd");
  58. System.out.println("==========s:"+s);
  59. body.setId(personArray[i]);
  60. body.setMuitTipsState(true);
  61. body.setMuitTipsMessage("同步成功【" +personInfo.getName() + "】");
  62. batchMessageTipsHeader.addResult(body);
  63. sucess++;
  64. }else {
  65. System.out.println("sssssssssssssss:已同步");
  66. body.setId(personArray[i]);
  67. body.setMuitTipsState(true);
  68. body.setMuitTipsMessage("已经同步过该数据【" + personInfo.getName() + "】");
  69. batchMessageTipsHeader.addResult(body);
  70. sucess++;
  71. }
  72. }catch (Exception e){
  73. System.out.println("==========personArray[i]1:"+personArray[i]);
  74. body.setId(personArray[i]);
  75. body.setMuitTipsState(false);
  76. body.setMuitTipsMessage("后台事务执行失败【" + personArray[i] + "】");
  77. batchMessageTipsHeader.addResult(body);
  78. e.printStackTrace();
  79. failure++;
  80. }
  81. }else {
  82. failure++;
  83. System.out.println("==========personArray[i]2:"+personArray[i]);
  84. body.setId(personArray[i]);
  85. body.setMuitTipsState(false);
  86. body.setMuitTipsMessage("未查询到北森入职单id【" +personInfo.getName() + "】");
  87. batchMessageTipsHeader.addResult(body);
  88. }
  89. } catch (BOSException e) {
  90. System.out.println("==========personArray[i]3:"+personArray[i]);
  91. body.setId(personArray[i]);
  92. body.setMuitTipsState(false);
  93. body.setMuitTipsMessage("同步失败查询员工失败【" + personArray[i] + "】");
  94. batchMessageTipsHeader.addResult(body);
  95. e.printStackTrace();
  96. } catch (EASBizException e) {
  97. System.out.println("==========personArray[i]4:"+personArray[i]);
  98. body.setId(personArray[i]);
  99. body.setMuitTipsState(false);
  100. body.setMuitTipsMessage("同步失败查询员工失败【" + personArray[i] + "】");
  101. batchMessageTipsHeader.addResult(body);
  102. e.printStackTrace();
  103. }
  104. }
  105. }
  106. batchMessageTipsHeader.setBillId(ids);
  107. batchMessageTipsHeader.setFailureCount(failure);
  108. batchMessageTipsHeader.setSuccessCount(sucess);
  109. System.out.println("=========batchMessageTipsHeader:"+batchMessageTipsHeader.toString());
  110. SUCCESS(batchMessageTipsHeader,request,response,"application/json;charset=UTF-8",ctx);
  111. return null;
  112. }
  113. public static void SUCCESS(Object object,ServletRequest request, ServletResponse response, String contentType,Context context) throws SHRWebException {
  114. response.setContentType(contentType);
  115. PrintWriter pw;
  116. try {
  117. pw = response.getWriter();
  118. } catch (IOException var7) {
  119. throw new SHRWebException("can't open the output stream!");
  120. }
  121. StringBuilder strSuccessJson = new StringBuilder();
  122. strSuccessJson.append("{");
  123. strSuccessJson.append("\"result\":\"");
  124. strSuccessJson.append("success");
  125. strSuccessJson.append("\",\"data\":");
  126. strSuccessJson.append(convertObjectToJson(context, object).toString());
  127. String successMessage = (String)request.getAttribute("successMessage");
  128. if (!StringUtils.isEmpty(successMessage)) {
  129. strSuccessJson.append(",\"successMessage\":\"");
  130. strSuccessJson.append(successMessage);
  131. strSuccessJson.append("\"");
  132. }
  133. strSuccessJson.append("}");
  134. pw.flush();
  135. pw.write(strSuccessJson.toString());
  136. pw.flush();
  137. }
  138. public static String convertObjectToJson(Context ctx, Object object) {
  139. if (object != null && !object.equals("")) {
  140. Gson gson = getGson(ctx);
  141. String result = gson.toJson(object);
  142. if (result == null) {
  143. return "\"\"";
  144. } else {
  145. result = processJsonResult(result);
  146. return result;
  147. }
  148. } else {
  149. return "\"\"";
  150. }
  151. }
  152. public static Gson getGson(Context ctx) {
  153. GsonBuilder builder = new GsonBuilder();
  154. builder.serializeNulls();
  155. builder.disableHtmlEscaping();
  156. builder.serializeSpecialFloatingPointValues();
  157. builder.registerTypeHierarchyAdapter(Date.class, new DateTypeAdapter());
  158. builder.registerTypeHierarchyAdapter(Timestamp.class, new DateTypeAdapter());
  159. builder.registerTypeHierarchyAdapter(BOSUuid.class, new BOSUuidTypeAdapter());
  160. builder.registerTypeHierarchyAdapter(IObjectValue.class, new BosObjectTypeAdapter(ctx));
  161. builder.registerTypeHierarchyAdapter(IObjectCollection.class, new BosObjectCollectionTypeAdapter(ctx));
  162. builder.registerTypeHierarchyAdapter(OrgUnitInfo.class, new BosObjectTypeAdapter(ctx));
  163. builder.registerTypeHierarchyAdapter(BizEnumValueDTO.class, new BizEnumAdapter());
  164. builder.registerTypeHierarchyAdapter(Enum.class, new EnumTypeAdapter());
  165. return builder.create();
  166. }
  167. public static String processJsonResult(String result) {
  168. result = result.replace("${quote_2312415321232}", "\"");
  169. result = result.replace("\"${leftbracket_2312415321232}", "{");
  170. result = result.replace("${leftbracket_2312415321232}", "{");
  171. result = result.replace("${rightbracket_2312415321232}\"", "}");
  172. result = result.replace("${rightbracket_2312415321232}", "}");
  173. return result;
  174. }
  175. }