shenjingwei 5 месяцев назад
Родитель
Сommit
d8f241f096
1 измененных файлов с 79 добавлено и 76 удалено
  1. 79 76
      src/custom/common/crm/bean/customer.java

+ 79 - 76
src/custom/common/crm/bean/customer.java

@@ -15,7 +15,7 @@ public class customer extends CrmBase {
 
     @Override
     public void autoAction() throws YosException {
-        Rows rows = crmDBConnect.runSqlQuery("select t1.id as syncid,t2.* from (select max(id) id,ownerid from e_order_sync where ownertable='st_customer' group by ownerid) t1 left join st_customer t2 on t1.ownerid=t2.cid");
+        Rows rows = crmDBConnect.runSqlQuery("select t1.id as syncid,t1.ownerid,t2.* from (select max(id) id,ownerid from e_order_sync where ownertable='st_customer' group by ownerid) t1 left join st_customer t2 on t1.ownerid=t2.cid");
         logger.info("监测到crm有{}个客户档案待同步", rows.size());
         ArrayList<String> agentnums = rows.toArrayList("fagent_num_created");
         agentnums.addAll(rows.toArrayList("fagent_num"));
@@ -33,86 +33,89 @@ public class customer extends CrmBase {
             try {
                 JSONObject jsonObject = row.toJsonObject();
                 long syncid = jsonObject.getLong("syncid");
+                long ownerid = jsonObject.getLong("ownerid");
                 long cid = jsonObject.getLong("cid");
-                String createby = jsonObject.getString("createby");
-                String createtime = jsonObject.getString("createtime");
-                String changeby = jsonObject.getString("changeby");
-                String changetime = jsonObject.getString("changetime");
-                String customer_status = jsonObject.getString("customer_status");
-                String fchannel = jsonObject.getString("fchannel");
-                String fname = jsonObject.getString("fname");
-                String fphone = jsonObject.getString("fphone");
-                String fcommunity = jsonObject.getString("fcommunity");
-                String fcustom_num = jsonObject.getString("fcustom_num");
-                String fagent_num_created = jsonObject.getString("fagent_num_created");
-                String fagent_num = jsonObject.getString("fagent_num");
-                String fprovince = jsonObject.getString("fprovince");
-                String fcity = jsonObject.getString("fcity");
-                String fcounty = jsonObject.getString("fcounty");
+                if (cid > 0) {
+                    String createby = jsonObject.getString("createby");
+                    String createtime = jsonObject.getString("createtime");
+                    String changeby = jsonObject.getString("changeby");
+                    String changetime = jsonObject.getString("changetime");
+                    String customer_status = jsonObject.getString("customer_status");
+                    String fchannel = jsonObject.getString("fchannel");
+                    String fname = jsonObject.getString("fname");
+                    String fphone = jsonObject.getString("fphone");
+                    String fcommunity = jsonObject.getString("fcommunity");
+                    String fcustom_num = jsonObject.getString("fcustom_num");
+                    String fagent_num_created = jsonObject.getString("fagent_num_created");
+                    String fagent_num = jsonObject.getString("fagent_num");
+                    String fprovince = jsonObject.getString("fprovince");
+                    String fcity = jsonObject.getString("fcity");
+                    String fcounty = jsonObject.getString("fcounty");
 
-                if (agentRowsMap.containsKey(fagent_num_created)) {
-                    if (dbConnect.runSqlQuery("select * from sa_customers where sa_customersid=" + cid).isEmpty()) {
-                        InsertSQL insertSQL = SQLFactory.createInsertSQL(dbConnect, "sa_customers");
-                        insertSQL.setValue("siteid", "MD");
-                        insertSQL.setValue("sa_customersid", cid);
-                        insertSQL.setValue("createby", createby);
-                        insertSQL.setValue("createdate", createtime);
-                        insertSQL.setValue("changeby", changeby);
-                        insertSQL.setValue("changedate", changetime);
-                        insertSQL.setValue("sys_enterpriseid", agentRowsMap.get(fagent_num_created).get(0).getLong("sys_enterpriseid"));
-                        insertSQL.setValue("sa_agentsid", agentRowsMap.get(fagent_num_created).get(0).getLong("sa_agentsid"));
-                        if (agentRowsMap.containsKey(fagent_num)) {
-                            insertSQL.setValue("sa_agentsid_to", agentRowsMap.get(fagent_num).get(0).getLong("sa_agentsid"));
-                        }
-                        insertSQL.setValue("status", customer_status);
-                        insertSQL.setValue("source", fchannel);
-                        insertSQL.setValue("tradingstatus", customer_status.equals("正式客户") ? "已成交" : "未成交");
-                        insertSQL.setValue("datastatus", 0);
-                        insertSQL.setValue("ispublic", 0);
-                        insertSQL.setValue("name", fname);
-                        insertSQL.setValue("phonenumber", fphone);
-                        if (regionsMap.containsKey(fprovince)) {
-                            insertSQL.setValue("province", regionsMap.get(fprovince).get(0).getString("name"));
-                        }
-                        if (regionsMap.containsKey(fcity)) {
-                            insertSQL.setValue("city", regionsMap.get(fcity).get(0).getString("name"));
-                        }
-                        if (regionsMap.containsKey(fcounty)) {
-                            insertSQL.setValue("county", regionsMap.get(fcounty).get(0).getString("name"));
-                        }
-                        insertSQL.setValue("address", fcommunity);
-                        insertSQL.setValue("custnum", fcustom_num);
-                        insertSQL.insert();
-                    } else {
-                        UpdateSQL updateSQL = SQLFactory.createUpdateSQL(dbConnect, "sa_customers");
-                        updateSQL.setValue("changeby", changeby);
-                        updateSQL.setValue("changedate", changetime);
-                        if (agentRowsMap.containsKey(fagent_num)) {
-                            updateSQL.setValue("sa_agentsid_to", agentRowsMap.get(fagent_num).get(0).getLong("sa_agentsid"));
-                        }
-                        updateSQL.setValue("status", customer_status);
-                        updateSQL.setValue("source", fchannel);
-                        updateSQL.setValue("tradingstatus", customer_status.equals("正式客户") ? "已成交" : "未成交");
-                        updateSQL.setValue("name", fname);
-                        updateSQL.setValue("phonenumber", fphone);
-                        if (regionsMap.containsKey(fprovince)) {
-                            updateSQL.setValue("province", regionsMap.get(fprovince).get(0).getString("name"));
-                        }
-                        if (regionsMap.containsKey(fcity)) {
-                            updateSQL.setValue("city", regionsMap.get(fcity).get(0).getString("name"));
-                        }
-                        if (regionsMap.containsKey(fcounty)) {
-                            updateSQL.setValue("county", regionsMap.get(fcounty).get(0).getString("name"));
-                        }
-                        updateSQL.setValue("address", fcommunity);
-                        updateSQL.setValue("custnum", fcustom_num);
+                    if (agentRowsMap.containsKey(fagent_num_created)) {
+                        if (dbConnect.runSqlQuery("select * from sa_customers where sa_customersid=" + cid).isEmpty()) {
+                            InsertSQL insertSQL = SQLFactory.createInsertSQL(dbConnect, "sa_customers");
+                            insertSQL.setValue("siteid", "MD");
+                            insertSQL.setValue("sa_customersid", cid);
+                            insertSQL.setValue("createby", createby);
+                            insertSQL.setValue("createdate", createtime);
+                            insertSQL.setValue("changeby", changeby);
+                            insertSQL.setValue("changedate", changetime);
+                            insertSQL.setValue("sys_enterpriseid", agentRowsMap.get(fagent_num_created).get(0).getLong("sys_enterpriseid"));
+                            insertSQL.setValue("sa_agentsid", agentRowsMap.get(fagent_num_created).get(0).getLong("sa_agentsid"));
+                            if (agentRowsMap.containsKey(fagent_num)) {
+                                insertSQL.setValue("sa_agentsid_to", agentRowsMap.get(fagent_num).get(0).getLong("sa_agentsid"));
+                            }
+                            insertSQL.setValue("status", customer_status);
+                            insertSQL.setValue("source", fchannel);
+                            insertSQL.setValue("tradingstatus", customer_status.equals("正式客户") ? "已成交" : "未成交");
+                            insertSQL.setValue("datastatus", 0);
+                            insertSQL.setValue("ispublic", 0);
+                            insertSQL.setValue("name", fname);
+                            insertSQL.setValue("phonenumber", fphone);
+                            if (regionsMap.containsKey(fprovince)) {
+                                insertSQL.setValue("province", regionsMap.get(fprovince).get(0).getString("name"));
+                            }
+                            if (regionsMap.containsKey(fcity)) {
+                                insertSQL.setValue("city", regionsMap.get(fcity).get(0).getString("name"));
+                            }
+                            if (regionsMap.containsKey(fcounty)) {
+                                insertSQL.setValue("county", regionsMap.get(fcounty).get(0).getString("name"));
+                            }
+                            insertSQL.setValue("address", fcommunity);
+                            insertSQL.setValue("custnum", fcustom_num);
+                            insertSQL.insert();
+                        } else {
+                            UpdateSQL updateSQL = SQLFactory.createUpdateSQL(dbConnect, "sa_customers");
+                            updateSQL.setValue("changeby", changeby);
+                            updateSQL.setValue("changedate", changetime);
+                            if (agentRowsMap.containsKey(fagent_num)) {
+                                updateSQL.setValue("sa_agentsid_to", agentRowsMap.get(fagent_num).get(0).getLong("sa_agentsid"));
+                            }
+                            updateSQL.setValue("status", customer_status);
+                            updateSQL.setValue("source", fchannel);
+                            updateSQL.setValue("tradingstatus", customer_status.equals("正式客户") ? "已成交" : "未成交");
+                            updateSQL.setValue("name", fname);
+                            updateSQL.setValue("phonenumber", fphone);
+                            if (regionsMap.containsKey(fprovince)) {
+                                updateSQL.setValue("province", regionsMap.get(fprovince).get(0).getString("name"));
+                            }
+                            if (regionsMap.containsKey(fcity)) {
+                                updateSQL.setValue("city", regionsMap.get(fcity).get(0).getString("name"));
+                            }
+                            if (regionsMap.containsKey(fcounty)) {
+                                updateSQL.setValue("county", regionsMap.get(fcounty).get(0).getString("name"));
+                            }
+                            updateSQL.setValue("address", fcommunity);
+                            updateSQL.setValue("custnum", fcustom_num);
 
-                        updateSQL.setWhere("siteid", "MD");
-                        updateSQL.setWhere("sa_customersid", cid);
-                        updateSQL.update();
+                            updateSQL.setWhere("siteid", "MD");
+                            updateSQL.setWhere("sa_customersid", cid);
+                            updateSQL.update();
+                        }
                     }
                 }
-                crmDBConnect.runSqlUpdate("delete from e_order_sync where ownertable='st_customer' and ownerid=" + cid + " and id<=" + syncid);
+                crmDBConnect.runSqlUpdate("delete from e_order_sync where ownertable='st_customer' and ownerid=" + ownerid + " and id<=" + syncid);
                 sucesscount++;
             } catch (Exception e) {
                 logger.error(e.getMessage(), e);