Bladeren bron

同步项目成本,任务插件

wangjun 1 maand geleden
bovenliggende
commit
5d52753b6c

+ 45 - 0
code/jyyy/nckd-jimin-jyyy-bd/src/main/java/nckd/jimin/jyyy/bd/task/SynCostCenterForSAPTask.java

@@ -0,0 +1,45 @@
+package nckd.jimin.jyyy.bd.task;
+
+import kd.bos.context.RequestContext;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.exception.KDException;
+import kd.bos.logging.Log;
+import kd.bos.logging.LogFactory;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.schedule.api.StopTask;
+import kd.bos.schedule.executor.AbstractTask;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+import nckd.jimin.jyyy.bd.task.impl.SynSapServiceImpl;
+
+import java.util.Map;
+
+public class SynCostCenterForSAPTask extends AbstractTask implements StopTask {
+    private static final Log logger = LogFactory.getLog(SynSupplierFromSAPTask.class);
+    @Override
+    public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
+        SynSapServiceImpl synSapService = new SynSapServiceImpl();
+        //使用状态=启用
+        QFilter qFilter = new QFilter("enable", QCP.equals, "1");
+        //数据状态=已审核
+        qFilter.and(new QFilter("status", QCP.equals, "C"));
+        //属性核算组织=是
+        qFilter.and(new QFilter("fisaccounting", QCP.equals, "1"));
+        DynamicObject[] orgLst = BusinessDataServiceHelper.load("bos_org", "id, number", qFilter.toArray());
+
+        //轮询组织,将成本信息缓存到Map中
+        for(DynamicObject org : orgLst) {
+            String orgNumber = org.getString("number");
+            logger.info("------同步成本中心 " + orgNumber + "----------");
+            Map<String, String> result = synSapService.synCostCenterForSap(orgNumber);
+
+            if(!result.get("code").equals("200")){
+                logger.info("同步SAP项目失败, " + "组织编码:"+orgNumber +",错误:" + result.get("msg"));
+            }else{
+                logger.info("同步SAP项目成功, " + "组织编码:"+orgNumber +",信息:" + result.get("msg"));
+            }
+        }
+
+    }
+
+}

+ 52 - 0
code/jyyy/nckd-jimin-jyyy-bd/src/main/java/nckd/jimin/jyyy/bd/task/SynProjectForSAPTask.java

@@ -0,0 +1,52 @@
+package nckd.jimin.jyyy.bd.task;
+
+import kd.bos.context.RequestContext;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.exception.KDException;
+import kd.bos.logging.Log;
+import kd.bos.logging.LogFactory;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.schedule.api.StopTask;
+import kd.bos.schedule.executor.AbstractTask;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+import nckd.jimin.jyyy.bd.task.impl.SynSapServiceImpl;
+
+import java.util.Map;
+
+/**
+ * 后台任务插件
+ */
+public class SynProjectForSAPTask extends AbstractTask implements StopTask {
+
+    private static final Log logger = LogFactory.getLog(SynProjectForSAPTask.class);
+
+    @Override
+    public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
+
+        SynSapServiceImpl synSapService = new SynSapServiceImpl();
+        //属性核算组织=是
+        QFilter qFilter = new QFilter("fisaccounting", QCP.equals, "1");
+        //使用状态=启用
+        qFilter.and(new QFilter("enable", QCP.equals, "1"));
+        //数据状态=已审核
+        qFilter.and(new QFilter("status", QCP.equals, "C"));
+        //属性核算组织=是
+        qFilter.and(new QFilter("fisaccounting", QCP.equals, "1"));
+        DynamicObject[] orgLst = BusinessDataServiceHelper.load("bos_org", "id, number", qFilter.toArray());
+
+        for(DynamicObject org : orgLst) {
+
+            String orgNumber = org.getString("number");
+            logger.info("------同步SAP项目 " + orgNumber  + "----------");
+            Map<String, String> result = synSapService.synProjectForSap(orgNumber);
+
+            if(!result.get("code").equals("200")){
+                logger.info("同步SAP项目失败, " + "组织编码:"+orgNumber +",错误:" + result.get("msg"));
+            }else{
+                logger.info("同步SAP项目成功, " + "组织编码:"+orgNumber +",信息:" + result.get("msg"));
+            }
+        }
+
+    }
+}