ソースを参照

新系统客户和线索商机同步到项目总表

lvjs 4 日 前
コミット
9463b67365

+ 34 - 0
src/main/java/com/malk/eastar/controller/AitableController.java

@@ -32,6 +32,40 @@ public class AitableController {
     @Autowired
     private DDCoreClient ddCoreClient;
 
+    /**
+     * 新建客户
+     * @param data
+     * @return
+     */
+    @PostMapping("/newCustomer")
+    McR createNewCustomer(@RequestBody JSONObject data) {
+        log.info("新建客户, {}", data);
+        McException.assertParamException_Null(data, "yidaInstanceId");
+        String yidaInstanceId = UtilMap.getString(data, "yidaInstanceId");  //宜搭实例ID
+        String yidaCustomerName = UtilMap.getString(data, "yidaCustomerName");  //客户公司名(英文名)
+        String yidaBusinessUserId = UtilMap.getString(data, "yidaBusinessUserId");  //业务userId
+        String yidaCustomerLevel = UtilMap.getString(data, "yidaCustomerLevel");    //客户潜在等级
+        String yidaNewOrOld = UtilMap.getString(data, "yidaNewOrOld");    //新老客户
+        String yidaCustomerStatus = UtilMap.getString(data, "yidaCustomerStatus");    //客户情况
+        Map<String,Object> fields = new HashMap<>();
+        try {
+            fields.put("20rO7zS",yidaCustomerName);   //客户公司名【基础】
+            fields.put("qgOhsh1",yidaCustomerLevel);   //客户分级【客户】
+            fields.put("3Y796Wb",yidaNewOrOld+"客户");  //新老客户?【客户】
+            fields.put("jIS3Gbd",yidaCustomerStatus);  //客户情况
+            JSONArray user = new JSONArray();
+            JSONObject unionId = new JSONObject();
+            unionId.put("unionId",ddCoreClient.getUnionIdByUserId(yidaBusinessUserId));
+            user.add(unionId);
+            fields.put("ynNC3Kq",JSONObject.toJSONString(user));  //业务【人事】
+            String aitableId = aitableService.addSys1CustomerData(fields);
+            yidaService.updateCustomerRelatedAitableId(yidaInstanceId, aitableId);
+            return McR.success();
+        } catch (Exception e) {
+            return McR.error("400",e.getMessage());
+        }
+    }
+
     /**
      * 新建商机
      * @param data

+ 1 - 1
src/main/java/com/malk/eastar/schedule/ScheduleTaskNew.java

@@ -91,7 +91,7 @@ public class ScheduleTaskNew {
     /**
      * 客户数据清洗
      */
-    @Scheduled(cron = "0 40 18 * * ?")
+//    @Scheduled(cron = "0 40 18 * * ?")
     public void cleanCustomerData20260430() {
         /*
             从项目总表(系统1)获取客户数据

+ 6 - 0
src/main/java/com/malk/eastar/service/AitableService.java

@@ -22,6 +22,12 @@ public interface AitableService {
      */
     String querySys1CustomerIdByName(String customerName) throws Exception;
 
+    /**
+     * 添加客户名册记录
+     * @throws Exception
+     */
+    String addSys1CustomerData(Map<String,Object> fields) throws Exception;
+
     /**
      * 添加销售台账记录
      * @throws Exception

+ 5 - 0
src/main/java/com/malk/eastar/service/YidaService.java

@@ -80,6 +80,11 @@ public interface YidaService {
      */
     void updateLtcCustomerBasicInfo7(String formInstId, String customerLevel, String customerPotentialLevel) throws Exception;
 
+    /**
+     * 更新易思达系统客户的AI表格映射ID
+     */
+    void updateCustomerRelatedAitableId(String formInstId, String aitableId) throws Exception;
+
     /**
      * 更新易思达系统销售项目的AI表格映射ID
      */

+ 61 - 5
src/main/java/com/malk/eastar/service/impl/AitableServiceImpl.java

@@ -277,11 +277,18 @@ public class AitableServiceImpl implements AitableService {
         String customerId = "";  //客户名册记录ID
 
         /*
-            项目总表副本-20260409
+            项目总表
          */
-        baseId = "GZLxjv9VGqBAMDOoHYzrPZzE86EDybno";
+        baseId = "G53mjyd80pEr5grBfpjmMX6586zbX04v";
         sheetIdOrName = "E6RcJi3";
 
+
+        /*
+            项目总表副本-20260409
+         */
+//        baseId = "GZLxjv9VGqBAMDOoHYzrPZzE86EDybno";
+//        sheetIdOrName = "E6RcJi3";
+
         /*
             初始化参数值
          */
@@ -307,6 +314,50 @@ public class AitableServiceImpl implements AitableService {
         return customerId;
     }
 
+    @Override
+    public String addSys1CustomerData(Map<String, Object> fields) throws Exception {
+        /*
+            参数定义
+         */
+        String baseId; //AI表格文档ID
+        String sheetIdOrName;   //数据表ID或数据表名称
+        Map<String,Object> param = new HashMap<>(); //HTTP请求参数
+        JSONObject insertData = new JSONObject();   //HTTP请求体
+        JSONArray insertRecords = new JSONArray();  //新增记录集合
+        JSONObject insertRecord = new JSONObject();      //新增记录行数据
+        String result;  //返回结果
+        JSONObject resultJSONObject;
+        JSONArray aitableIdJSONArray;
+        String aitableId = "";   //AI表格记录ID
+
+        /*
+            项目总表
+         */
+        baseId = "G53mjyd80pEr5grBfpjmMX6586zbX04v";
+        sheetIdOrName = "E6RcJi3";
+
+        /*
+            初始化参数值
+         */
+        param.put("operatorId","aj1wcWqKLXITiPDwbMIjUbAiEiE");  //操作人(Jason)的unionId
+        insertRecord.put("fields",fields);
+        insertRecords.add(insertRecord);
+        insertData.put("records",insertRecords);
+
+        /*
+            新增数据
+         */
+        log.info(JSONObject.toJSONString(insertData));
+        result = mdTableClient.createMultiRecords(baseId,sheetIdOrName,param,insertData);
+        log.info(result);
+        resultJSONObject = JSONObject.parseObject(result);
+        aitableIdJSONArray = resultJSONObject.getJSONArray("value");
+        if(aitableIdJSONArray!=null || !aitableIdJSONArray.isEmpty()){
+            aitableId = aitableIdJSONArray.getJSONObject(0).getString("id");
+        }
+        return aitableId;
+    }
+
     @Override
     public String addSys1SaleData(Map<String,Object> fields) throws Exception {
         /*
@@ -323,11 +374,17 @@ public class AitableServiceImpl implements AitableService {
         JSONArray aitableIdJSONArray;
         String aitableId = "";   //AI表格记录ID
 
+        /*
+            项目总表
+         */
+        baseId = "G53mjyd80pEr5grBfpjmMX6586zbX04v";
+        sheetIdOrName = "C1mtX34";
+
         /*
             项目总表副本-20260409
          */
-        baseId = "GZLxjv9VGqBAMDOoHYzrPZzE86EDybno";
-        sheetIdOrName = "C1mtX34";  //售前台账
+//        baseId = "GZLxjv9VGqBAMDOoHYzrPZzE86EDybno";
+//        sheetIdOrName = "C1mtX34";  //售前台账
 
         /*
             初始化参数值
@@ -340,7 +397,6 @@ public class AitableServiceImpl implements AitableService {
         /*
             新增数据
          */
-        System.out.println(JSONObject.toJSONString(insertData));
         log.info(JSONObject.toJSONString(insertData));
         result = mdTableClient.createMultiRecords(baseId,sheetIdOrName,param,insertData);
         log.info(result);

+ 24 - 0
src/main/java/com/malk/eastar/service/impl/YidaServiceImpl.java

@@ -1171,6 +1171,30 @@ public class YidaServiceImpl implements YidaService {
         ydClient.operateData(yidaParam,YDConf.FORM_OPERATION.update);
     }
 
+    @Override
+    public void updateCustomerRelatedAitableId(String formInstId, String aitableId) throws Exception {
+        /*
+            参数定义
+         */
+        YDParam yidaParam;  //HTTP请求体
+        YDParam.YDParamBuilder ydParamBuilder; //宜搭参数构建
+        String updateFormDataJson;  //更新内容
+
+        /*
+            初始化参数值
+         */
+        updateFormDataJson = JSONObject.toJSONString(UtilMap.map("textField_mno9nwip",aitableId));  //AI表格映射ID
+
+        /*
+            更新数据
+         */
+        ydParamBuilder = YDParam.builder();
+        ydParamBuilder = ydParamBuilder.formInstId(formInstId);
+        ydParamBuilder = ydParamBuilder.updateFormDataJson(updateFormDataJson);
+        yidaParam = ydParamBuilder.build();
+        ydClient.operateData(yidaParam,YDConf.FORM_OPERATION.update);
+    }
+
 
     @Override
     public void updateSaleProjectRelatedAitableId(String formInstId, String aitableId) throws Exception {