| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- package com.kingdee.eas.custom.webbeisen.handler;
- import com.google.gson.Gson;
- import com.google.gson.GsonBuilder;
- import com.kingdee.bos.BOSException;
- import com.kingdee.bos.Context;
- import com.kingdee.bos.dao.IObjectCollection;
- import com.kingdee.bos.dao.IObjectValue;
- import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
- import com.kingdee.bos.dao.query.BizEnumValueDTO;
- import com.kingdee.bos.util.BOSUuid;
- import com.kingdee.eas.basedata.org.OrgUnitInfo;
- import com.kingdee.eas.basedata.person.PersonFactory;
- import com.kingdee.eas.basedata.person.PersonInfo;
- import com.kingdee.eas.common.EASBizException;
- import com.kingdee.eas.custom.beisen.synchronousorg.SynchronousEmpBillFactory;
- import com.kingdee.eas.hr.emp.web.handler.EmployeeListHandler;
- import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsBody;
- import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsHeader;
- import com.kingdee.shr.base.syssetting.context.SHRContext;
- import com.kingdee.shr.base.syssetting.exception.SHRWebException;
- import com.kingdee.shr.base.syssetting.json.adapter.*;
- import com.kingdee.shr.base.syssetting.web.json.JSONUtils;
- import com.kingdee.shr.base.syssetting.web.json.adapter.BOSUuidTypeAdapter;
- import com.kingdee.util.StringUtils;
- import com.kingdee.util.enums.Enum;
- import org.springframework.ui.ModelMap;
- import javax.servlet.ServletRequest;
- import javax.servlet.ServletResponse;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.sql.Timestamp;
- import java.util.Date;
- public class EmployeeListHandlerEx extends EmployeeListHandler {
- public String synBeiSenPersonAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException {
- Context ctx = SHRContext.getInstance().getContext();
- BatchMessageTipsHeader batchMessageTipsHeader = new BatchMessageTipsHeader();
- String ids = request.getParameter("ids");
- System.out.println("==========ids:"+ids);
- int sucess = 0;
- int failure = 0;
- if (ids != null && ids.length() > 0) {
- String[] personArray = ids.split(",");
- for (int i = 0; i < personArray.length; i++) {
- BatchMessageTipsBody body = new BatchMessageTipsBody();
- try {
- PersonInfo personInfo = PersonFactory.getLocalInstance(ctx).getPersonInfo(new ObjectUuidPK(personArray[i]));
- String beisenid = personInfo.getString("beisenid");
- System.out.println("==========beisenid:"+beisenid);
- if (beisenid!=null&&beisenid.length()>0){
- try {
- Boolean string = personInfo.getBoolean("IsSync");
- System.out.println("sssssssssssssss:"+string+"");
- if (string==null||!string){
- System.out.println("sssssssssssssss:同步");
- String s = SynchronousEmpBillFactory.getLocalInstance(ctx).empBill(beisenid, "002", "asdasdasdasdasdasd");
- System.out.println("==========s:"+s);
- body.setId(personArray[i]);
- body.setMuitTipsState(true);
- body.setMuitTipsMessage("同步成功【" +personInfo.getName() + "】");
- batchMessageTipsHeader.addResult(body);
- sucess++;
- }else {
- System.out.println("sssssssssssssss:已同步");
- body.setId(personArray[i]);
- body.setMuitTipsState(true);
- body.setMuitTipsMessage("已经同步过该数据【" + personInfo.getName() + "】");
- batchMessageTipsHeader.addResult(body);
- sucess++;
- }
- }catch (Exception e){
- System.out.println("==========personArray[i]1:"+personArray[i]);
- body.setId(personArray[i]);
- body.setMuitTipsState(false);
- body.setMuitTipsMessage("后台事务执行失败【" + personArray[i] + "】");
- batchMessageTipsHeader.addResult(body);
- e.printStackTrace();
- failure++;
- }
- }else {
- failure++;
- System.out.println("==========personArray[i]2:"+personArray[i]);
- body.setId(personArray[i]);
- body.setMuitTipsState(false);
- body.setMuitTipsMessage("未查询到北森入职单id【" +personInfo.getName() + "】");
- batchMessageTipsHeader.addResult(body);
- }
- } catch (BOSException e) {
- System.out.println("==========personArray[i]3:"+personArray[i]);
- body.setId(personArray[i]);
- body.setMuitTipsState(false);
- body.setMuitTipsMessage("同步失败查询员工失败【" + personArray[i] + "】");
- batchMessageTipsHeader.addResult(body);
- e.printStackTrace();
- } catch (EASBizException e) {
- System.out.println("==========personArray[i]4:"+personArray[i]);
- body.setId(personArray[i]);
- body.setMuitTipsState(false);
- body.setMuitTipsMessage("同步失败查询员工失败【" + personArray[i] + "】");
- batchMessageTipsHeader.addResult(body);
- e.printStackTrace();
- }
- }
- }
- batchMessageTipsHeader.setBillId(ids);
- batchMessageTipsHeader.setFailureCount(failure);
- batchMessageTipsHeader.setSuccessCount(sucess);
- System.out.println("=========batchMessageTipsHeader:"+batchMessageTipsHeader.toString());
- SUCCESS(batchMessageTipsHeader,request,response,"application/json;charset=UTF-8",ctx);
- return null;
- }
- public static void SUCCESS(Object object,ServletRequest request, ServletResponse response, String contentType,Context context) throws SHRWebException {
- response.setContentType(contentType);
- PrintWriter pw;
- try {
- pw = response.getWriter();
- } catch (IOException var7) {
- throw new SHRWebException("can't open the output stream!");
- }
- StringBuilder strSuccessJson = new StringBuilder();
- strSuccessJson.append("{");
- strSuccessJson.append("\"result\":\"");
- strSuccessJson.append("success");
- strSuccessJson.append("\",\"data\":");
- strSuccessJson.append(convertObjectToJson(context, object).toString());
- String successMessage = (String)request.getAttribute("successMessage");
- if (!StringUtils.isEmpty(successMessage)) {
- strSuccessJson.append(",\"successMessage\":\"");
- strSuccessJson.append(successMessage);
- strSuccessJson.append("\"");
- }
- strSuccessJson.append("}");
- pw.flush();
- pw.write(strSuccessJson.toString());
- pw.flush();
- }
- public static String convertObjectToJson(Context ctx, Object object) {
- if (object != null && !object.equals("")) {
- Gson gson = getGson(ctx);
- String result = gson.toJson(object);
- if (result == null) {
- return "\"\"";
- } else {
- result = processJsonResult(result);
- return result;
- }
- } else {
- return "\"\"";
- }
- }
- public static Gson getGson(Context ctx) {
- GsonBuilder builder = new GsonBuilder();
- builder.serializeNulls();
- builder.disableHtmlEscaping();
- builder.serializeSpecialFloatingPointValues();
- builder.registerTypeHierarchyAdapter(Date.class, new DateTypeAdapter());
- builder.registerTypeHierarchyAdapter(Timestamp.class, new DateTypeAdapter());
- builder.registerTypeHierarchyAdapter(BOSUuid.class, new BOSUuidTypeAdapter());
- builder.registerTypeHierarchyAdapter(IObjectValue.class, new BosObjectTypeAdapter(ctx));
- builder.registerTypeHierarchyAdapter(IObjectCollection.class, new BosObjectCollectionTypeAdapter(ctx));
- builder.registerTypeHierarchyAdapter(OrgUnitInfo.class, new BosObjectTypeAdapter(ctx));
- builder.registerTypeHierarchyAdapter(BizEnumValueDTO.class, new BizEnumAdapter());
- builder.registerTypeHierarchyAdapter(Enum.class, new EnumTypeAdapter());
- return builder.create();
- }
- public static String processJsonResult(String result) {
- result = result.replace("${quote_2312415321232}", "\"");
- result = result.replace("\"${leftbracket_2312415321232}", "{");
- result = result.replace("${leftbracket_2312415321232}", "{");
- result = result.replace("${rightbracket_2312415321232}\"", "}");
- result = result.replace("${rightbracket_2312415321232}", "}");
- return result;
- }
- }
|