Kaynağa Gözat

crm数据同步完善

shenjingwei 3 ay önce
ebeveyn
işleme
dd03643a9e

+ 0 - 1
src/custom/common/crm/bean/agent.java

@@ -22,7 +22,6 @@ public class agent extends CrmBase {
         super(logger);
     }
 
-
     @Override
     public void autoAction() throws YosException {
         ArrayList<crm_datasync> datasyncList = get("经销商档案", "sa_agents", 100);

+ 23 - 6
src/custom/common/crm/bean/core/CrmBase.java

@@ -1,5 +1,6 @@
 package common.crm.bean.core;
 
+import beans.parameter.Parameter;
 import com.alibaba.fastjson2.JSONObject;
 import common.BaseClass;
 import common.YosException;
@@ -35,14 +36,28 @@ public abstract class CrmBase extends BaseClass {
     private static long sessionExpiresTime = 0L;
     public static int fbrandId = 1;
 
-    public static String baseurl = "http://192.168.3.16:8082/dmsService";
-    public static String clienturl = "http://192.168.3.16:8081/yos/";
+    public static String baseurl = "";
+    public static String clienturl = "";
     public static String cookie = "";
     public Logger logger;
 
     public CrmBase(Logger logger) {
         super();
         this.logger = logger;
+        try {
+            baseurl = Parameter.getString("crm_base_url");
+            clienturl = Parameter.getString("crm_client_url");
+        } catch (Exception e) {
+
+        }
+    }
+
+    public boolean crm_sync_switch() {
+        try {
+            return Parameter.getBoolean("crm_sync_switch");
+        } catch (Exception e) {
+            return false;
+        }
     }
 
     public void login() throws YosException {
@@ -153,11 +168,13 @@ public abstract class CrmBase extends BaseClass {
     //获取crm待同步数据
     public ArrayList<crm_datasync> get(String title, String ownertable, int count) throws YosException {
         ArrayList<crm_datasync> list = new ArrayList<>();
-        Rows rows = dbConnect.runSqlQuery("select max(id) id,ownerid from crm_datasync where ownertable='" + ownertable + "' and status=0 and count<10 group by ownerid limit " + count);
-        for (Row row : rows) {
-            list.add(new crm_datasync(title, row.getLong("id"), ownertable, row.getLong("ownerid")));
+        if (crm_sync_switch()) {
+            Rows rows = dbConnect.runSqlQuery("select max(id) id,ownerid from crm_datasync where ownertable='" + ownertable + "' and status=0 and count<10 group by ownerid limit " + count);
+            for (Row row : rows) {
+                list.add(new crm_datasync(title, row.getLong("id"), ownertable, row.getLong("ownerid")));
+            }
+            logger.info("监测到有【" + list.size() + "】个【" + title + "】 待同步至CRM");
         }
-        logger.info("监测到有【" + list.size() + "】个【" + title + "】 待同步至CRM");
         return list;
     }
 

+ 2 - 1
src/custom/common/crm/bean/item.java

@@ -4,10 +4,10 @@ import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import common.YosException;
 import common.YosLogger;
+import common.crm.bean.core.CrmBase;
 import common.data.*;
 import common.data.db.DBConnect;
 import org.apache.logging.log4j.Logger;
-import common.crm.bean.core.CrmBase;
 
 import java.util.ArrayList;
 
@@ -25,6 +25,7 @@ public class item extends CrmBase {
         for (crm_datasync datasync : datasyncList) {
             QuerySQL querySQL = SQLFactory.createQuerySQL(dbConnect, "plm_item", "itemno").setTableAlias("t1");
             querySQL.setWhere("t1.itemid", datasync.ownerid);
+            querySQL.setWhere("t1.itemno not like'101197%'");
             Rows itemRows = querySQL.query();
             if (itemRows.isNotEmpty() && !itemRows.get(0).getString("itemno").isEmpty()) {
                 String itemno = itemRows.get(0).getString("itemno");

+ 70 - 0
src/custom/service/CRMDataSync.java

@@ -0,0 +1,70 @@
+package service;
+
+import common.ServiceController;
+import common.crm.bean.*;
+
+public class CRMDataSync extends ServiceController {
+    @Override
+    public void serviceRun() throws Exception {
+        try {
+            new item(logger).autoAction();//更新商品档案至crm
+        } catch (Exception e) {
+            logger.error(e);
+        }
+        try {
+            new itemclass(logger).autoAction();//更新商品分类至crm
+        } catch (Exception e) {
+            logger.error(e);
+        }
+        try {
+            new user(logger).autoAction();//更新用户账号至crm
+        } catch (Exception e) {
+            logger.error(e);
+        }
+        try {
+            new saleArea(logger).autoAction();//更新营销区域至crm
+        } catch (Exception e) {
+            logger.error(e);
+        }
+        try {
+            new agent(logger).autoAction();//更新经销商档案至crm
+        } catch (Exception e) {
+            logger.error(e);
+        }
+        try {
+            new sku(logger).autoAction();//更新商品序列号至crm
+        } catch (Exception e) {
+            logger.error(e);
+        }
+        try {
+            new warrantycard(logger).autoAction();//更新保修单至crm
+        } catch (Exception e) {
+            logger.error(e);
+        }
+        try {
+            new icstockbill(logger).autoAction();//超过时限销售出库单自动功能收货确认
+        } catch (Exception e) {
+            logger.error(e);
+        }
+        try {
+            new icstockbill_crm(logger).autoAction();//定时从DMS查找审核失败的到货入库单,并调用DRP的到货确认单的明细接口(销售出库单), 对这些失败的到货入库单进行审核或删除操作
+        } catch (Exception e) {
+            logger.error(e);
+        }
+        try {
+            new saorder(logger).autoAction();
+        } catch (Exception e) {
+            logger.error(e);
+        }
+        try {
+            new sku_crm(logger).autoAction();//从crm更新商品序列号至e订单(经销商id、是否样机、仓库id)
+        } catch (Exception e) {
+            logger.error(e);
+        }
+    }
+
+    @Override
+    public ServiceParam paramSet() {
+        return new ServiceParam("CRM数据同步自动任务", 10, RunType.minute);
+    }
+}