yuanzhi_kuang 5 months ago
parent
commit
9596ac43b4

+ 122 - 0
websrc/com/kingdee/shr/recuritment/web/handler/RecuritmentDemandListHandlerEx.java

@@ -0,0 +1,122 @@
+package com.kingdee.shr.recuritment.web.handler;
+
+
+import com.kingdee.bos.BOSException;
+import com.kingdee.bos.Context;
+import com.kingdee.eas.base.permission.util.ToolUtils;
+import com.kingdee.eas.common.EASBizException;
+import com.kingdee.eas.custom.recuritment.bizEnum.ExecuteResultEnum;
+import com.kingdee.eas.custom.recuritment.task.IRecuritmentFacade;
+import com.kingdee.eas.custom.recuritment.task.RecuritmentFacadeFactory;
+import com.kingdee.shr.base.syssetting.context.SHRContext;
+import com.kingdee.shr.base.syssetting.exception.SHRWebException;
+import com.kingdee.shr.base.syssetting.web.json.JSONUtils;
+import com.kingdee.shr.recuritment.IRecuritmentDemand;
+import com.kingdee.shr.recuritment.RecuritmentDemandCollection;
+import com.kingdee.shr.recuritment.RecuritmentDemandFactory;
+import com.kingdee.shr.recuritment.RecuritmentDemandInfo;
+
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.ui.ModelMap;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+ 
+
+public class RecuritmentDemandListHandlerEx extends RecuritmentDemandListHandler{
+
+	
+	
+	/**
+	 * 北森手工同步
+	 * @param request
+	 * @param response
+	 * @param modelMap
+	 * @throws SHRWebException 
+	 */
+	public void synBeisenAction(HttpServletRequest request, HttpServletResponse response,
+			ModelMap modelMap) throws SHRWebException {
+		Context ctx = SHRContext.getInstance().getContext();
+		String billIds = request.getParameter("selectedId");
+		String[] billIdArray = billIds.split(",");
+		List<String>  exbills = new ArrayList();
+		int exeCount = 0;
+		int unCount = 0;
+		try {
+			IRecuritmentDemand deIns = RecuritmentDemandFactory.getLocalInstance(ctx);
+			RecuritmentDemandCollection recuritmentDemandCollection = deIns.getRecuritmentDemandCollection
+			( "select  syncStatus  where  id in ("+ToolUtils.aryToStr(billIdArray) +")" ); 
+			for(int i = 0; i<recuritmentDemandCollection.size() ;i ++) {
+				RecuritmentDemandInfo recuritmentDemandInfo = recuritmentDemandCollection.get(i);
+				Object object = recuritmentDemandInfo.get("syncStatus");
+				//为空或失败时再执行;
+				if( !ObjectUtils.isEmpty(object)  ) {
+					if(!StringUtils.equals( String.valueOf(object), ExecuteResultEnum.SUCCESS_VALUE) ) {
+						exbills.add(recuritmentDemandInfo.getId().toString());
+					}
+				}else {
+					exbills.add(recuritmentDemandInfo.getId().toString());
+				}
+			}
+			IRecuritmentFacade localInstance = RecuritmentFacadeFactory.getLocalInstance(ctx);
+			
+			for(int i = 0;i<exbills.size();i++) {
+				String string = exbills.get(i);
+				
+				try {
+					localInstance.syncRecuritmentToBeisen(string);
+					exeCount++;
+				} catch (EASBizException e) {
+					unCount++;
+					e.printStackTrace();
+				}
+			}
+		} catch (BOSException  e) {
+			unCount++;
+			e.printStackTrace();
+		}
+		Map hashMap = new HashMap();
+		hashMap.put("allCount", billIdArray.length);
+		hashMap.put("exeCount", exeCount);
+		hashMap.put("unCount", unCount);
+		JSONUtils.writeJson(response, hashMap);
+	}
+
+
+	@Override
+	public void stopBillAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws EASBizException, BOSException, SHRWebException {
+		super.stopBillAction(request, response, modelMap);
+		extracted(request);
+	}
+
+	@Override
+	public void preStartAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException {
+		super.preStartAction(request, response, modelMap);
+		try {
+			extracted(request);
+		} catch (BOSException | EASBizException e) {
+			throw new SHRWebException(e);
+		}
+	}
+
+
+	/**
+	 * 北森同步
+	 * @param request
+	 * @throws BOSException
+	 * @throws EASBizException
+	 */
+	private static void extracted(HttpServletRequest request) throws BOSException, EASBizException {
+		Context ctx = SHRContext.getInstance().getContext();
+		String billId = request.getParameter("billId");
+		IRecuritmentFacade localInstance = RecuritmentFacadeFactory.getLocalInstance(ctx);
+		localInstance.syncRecuritmentToBeisen(billId);
+	}
+
+
+}