Procházet zdrojové kódy

增加列表按钮

zqy před 5 měsíci
rodič
revize
adfe0e9e59

+ 53 - 10
websrc/com/kingdee/eas/custom/beisen/synchronouspos/handler/StaffManageProjectListHandlerEx.java

@@ -1,26 +1,32 @@
 package com.kingdee.eas.custom.beisen.synchronouspos.handler;
 
 import com.google.common.collect.Maps;
+import com.kingdee.bos.BOSException;
 import com.kingdee.bos.Context;
+import com.kingdee.eas.common.EASBizException;
+import com.kingdee.shr.base.syssetting.IMSFServiceFacade;
 import com.kingdee.shr.base.syssetting.MSFServiceFacadeFactory;
 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.ml.SHRWebResource;
+import com.kingdee.shr.base.syssetting.exception.ShrWebBizException;
 import com.kingdee.shr.staffcontrol.web.handler.StaffManageProjectListHandler;
+import org.apache.log4j.Logger;
 import org.springframework.ui.ModelMap;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 
 public class StaffManageProjectListHandlerEx extends StaffManageProjectListHandler {
+    private static Logger log = Logger.getLogger(StaffManageProjectListHandlerEx.class);
 
-    public void batchEnableAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException {
-
-
+    public void batchDisableAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException {
         try {
             Context ctx = SHRContext.getInstance().getContext();
             int successCount = 0;
@@ -30,7 +36,8 @@ public class StaffManageProjectListHandlerEx extends StaffManageProjectListHandl
             Map<String, Object> map = Maps.newHashMap();
             StringBuilder billIds = new StringBuilder("CFOriginalId,");
             //同步编制,返回参数,以及同步结果
-            Map<String,List<Map<String,Object>>> result = (Map<String,List<Map<String,Object>>>) MSFServiceFacadeFactory.getLocalInstance(ctx).processService("syncStaffManageOSF", map);
+
+            Map<String, List<Map<String, Object>>> result = (Map<String, List<Map<String, Object>>>) MSFServiceFacadeFactory.getLocalInstance(ctx).processService("syncStaffManageOSF", map);
             //同步参数
             List<Map<String, Object>> list = result.get("list");
             //同步结果
@@ -45,11 +52,11 @@ public class StaffManageProjectListHandlerEx extends StaffManageProjectListHandl
                 billIds.append("," + CFOriginalId);
                 body.setId(CFOriginalId);
                 Boolean MuitTipsState = null;
-                if("200".equals(code)){
-                    MuitTipsState=Boolean.TRUE;
+                if ("200".equals(code)) {
+                    MuitTipsState = Boolean.TRUE;
                     ++successCount;
-                }else {
-                    MuitTipsState=Boolean.FALSE;
+                } else {
+                    MuitTipsState = Boolean.FALSE;
                     ++errorCount;
                 }
                 body.setMuitTipsState(MuitTipsState);
@@ -64,10 +71,46 @@ public class StaffManageProjectListHandlerEx extends StaffManageProjectListHandl
             this.writeSuccessData(batchMessageTipsHeader);
         } catch (Exception var15) {
             var15.printStackTrace();
-
         }
         return;
     }
 
+    public void batchEnableAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException {
+        ExecutorCountUtil examples = ExecutorCountUtil.getExamples();
+        Context ctx = SHRContext.getInstance().getContext(); // 重新获取上下文(如果需要)
+        IMSFServiceFacade msp =null;
+
+        try {
+            msp = MSFServiceFacadeFactory.getLocalInstance(ctx);
+        } catch (BOSException e) {
+            throw new RuntimeException(e);
+        }
+
+        if (examples.getCount()<=0) {
+            examples.countPlusPlus();
+            ExecutorService executor = Executors.newSingleThreadExecutor();
+            IMSFServiceFacade finalMsp = msp;
+            executor.submit(() -> {
+                try {
+
+                    Map<String, Object> map = Maps.newHashMap();
+                    Map<String, List<Map<String, Object>>> result = (Map<String, List<Map<String, Object>>>) finalMsp.processService("syncStaffManageOSF", map);
+                    // 处理结果...
+                    //examples.CountClear();
+                } catch (BOSException | EASBizException e) {
+                    log.error("Error in syncStaffManageOSF", e);
+                } catch (Exception e) {
+                    log.error("Unexpected error", e);
+                } finally {
+                    examples.CountClear();
+                }
+            });
+            executor.shutdown();
+            throw new ShrWebBizException("触发成功,已在后台执行中,请等待");
+        }else {
+            throw new ShrWebBizException("已触发,已在后台执行中,请等待");
+        }
+    }
+
 
 }

+ 1 - 0
websrc/com/kingdee/eas/custom/beisen/synchronouspos/osf/SyncStaffManageOSFService.java

@@ -7,6 +7,7 @@ import com.kingdee.bos.Context;
 import com.kingdee.bos.bsf.service.app.IHRMsfService;
 import com.kingdee.bos.rabbitmq.guava.Lists;
 import com.kingdee.eas.common.EASBizException;
+import com.kingdee.eas.custom.beisen.synchronouspos.handler.ExecutorCountUtil;
 import com.kingdee.eas.custom.beisen.utils.BeiSenUtils;
 import com.kingdee.eas.custom.beisen.utils.BeisenParamByPropertiesUtil;
 import com.kingdee.eas.custom.beisen.utils.Helper;