Explorar el Código

同步销售项目数据补充项目名称、实际收到RFQ日期;新增退回公海补充前跟进人接口

lvjs hace 1 mes
padre
commit
2544314831

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

@@ -217,6 +217,8 @@ public class AitableController {
         String yidaSaleProjectStatus = UtilMap.getString(data, "yidaSaleProjectStatus");  //销售项目状态
         String yidaOrderAmount = UtilMap.getString(data, "yidaOrderAmount"); //预计项目金额
         String yidaActualOrderDate = UtilMap.getString(data, "yidaActualOrderDate"); //实际成单日期
+        String yidaSaleProjectName = UtilMap.getString(data, "yidaSaleProjectName");  //项目名称
+        String yidaGetRfqDate = UtilMap.getString(data, "yidaGetRfqDate"); //询报价日期或者客户跟进RFQ日期
         Map<String,Object> fields = new HashMap<>();
         try {
             String aiTableOrderStatus = ""; //订单状态 - S1~3【商机进度】
@@ -254,6 +256,12 @@ public class AitableController {
             }else if(yidaOrderAmount != null && !yidaOrderAmount.isEmpty()){    //成单预测
                 fields.put("MYBeHPG",Double.parseDouble(yidaOrderAmount));  //订单金额 - S2~3【销售数据】
                 aitableService.updateSys1SaleData(aitableId,fields);
+            }else if(yidaSaleProjectName != null && !yidaSaleProjectName.isEmpty()){    //项目名称
+                fields.put("P3XtfD8",Double.parseDouble(yidaSaleProjectName));  //项目名称 - S1【基础】
+                aitableService.updateSys1SaleData(aitableId,fields);
+            }else if(yidaGetRfqDate != null && !yidaGetRfqDate.isEmpty()){    //询报价日期或者客户跟进RFQ日期
+                fields.put("ZFArSI6",Long.parseLong(yidaActualOrderDate));  //实际收到RFQ日期
+                aitableService.updateSys1SaleData(aitableId,fields);
             }
             return McR.success();
         } catch (Exception e) {

+ 23 - 0
src/main/java/com/malk/eastar/controller/EastarYidaController.java

@@ -6,6 +6,7 @@ import com.malk.server.common.McException;
 import com.malk.server.common.McR;
 import com.malk.utils.UtilMap;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -59,4 +60,26 @@ public class EastarYidaController {
             return McR.error("400",result.get("error").toString());
         }
     }
+
+    /**
+     * 退回公海,补充前跟进人信息
+     * @param data
+     * @return
+     */
+    @PostMapping("/addPreviousBusinessUser")
+    McR addPreviousBusinessUser(@RequestBody JSONObject data) {
+        log.info("退回公海,补充前跟进人信息, {}", data);
+        McException.assertParamException_Null(data, "formInstId");
+        String formInstId = UtilMap.getString(data, "formInstId");
+        String previousBusinessUserId = UtilMap.getString(data, "previousBusinessUserId");  //前跟进人员userId
+        String previousBusinessGroup = UtilMap.getString(data, "previousBusinessGroup");    //前跟进团队
+        try {
+            yidaService.updatePreviousBusinessUser(formInstId,previousBusinessUserId,previousBusinessGroup);
+            return McR.success();
+        } catch (Exception e) {
+            return McR.error("400",e.getMessage());
+        }
+    }
+
+
 }

+ 46 - 0
src/main/java/com/malk/eastar/schedule/ScheduleTask3.java

@@ -371,5 +371,51 @@ public class ScheduleTask3 {
 
     }
 
+    /**
+     * 同步销售项目AI表格映射ID
+     */
+    @Scheduled(cron = "0 30 5 * * ?")
+    public void syncOppotunityAiTableId() {
+        //查询所有销售项目
+        Map params = null;
+        List<Map> ltcSaleProjectData = new ArrayList<>();
+        try {
+            log.info("查询销售台账记录");
+            params = new HashMap<>();
+            ltcSaleProjectData = yidaService.queryLtcSaleProjectData(params);
+        } catch (Exception e) {
+            log.error("查询销售台账记录异常",e);
+        }
+        //查询所有AI表格已成单【表1】售前台账数据
+        List<Map> saleData = new ArrayList<>();
+        try {
+            log.info("查询【表1】售前台账记录");
+            params = new HashMap<>();
+            saleData = aitableService.querySys1SaleData(params);
+        } catch (Exception e) {
+            log.error("查询售前台账数据异常",e);
+        }
+
+        //对比找出不一致的
+        for(Map<String,String> ydMap : ltcSaleProjectData){
+            for (int i = 0; i < saleData.size(); i++) {
+                if(ydMap.get("projectCode").equals(saleData.get(i).get("projectCode"))){
+                    if(!ydMap.get("aiTableId").equals(saleData.get(i).get("aiTableId"))){
+                        log.info("不一致:"+ydMap.get("projectCode")+" "+ydMap.get("projectName")+" "+ydMap.get("aiTableId")+" "+saleData.get(i).get("aiTableId"));
+                        try {
+                            log.info("更新销售台账记录");
+                            yidaService.updateSaleProjectRelatedAitableId(ydMap.get("formInstId"), saleData.get(i).get("aiTableId").toString());
+                            Thread.sleep(3000);
+                        } catch (Exception e) {
+                            log.error("更新销售台账记录异常",e);
+                        }
+                    }
+                    break;
+                }
+            }
+        }
+
+    }
+
 
 }

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

@@ -118,6 +118,11 @@ public interface YidaService {
      */
     void updateLtcCustomerBasicInfo8(String formInstId, long privateSeaTime, long lastContactTime) throws Exception;
 
+    /**
+     * 更新客户前跟进人信息
+     */
+    void updatePreviousBusinessUser(String formInstId, String previousBusinessUserId, String previousBusinessGroup) throws Exception;
+
     /**
      * 更新易思达系统客户的AI表格映射ID
      */

+ 7 - 0
src/main/java/com/malk/eastar/service/impl/AitableServiceImpl.java

@@ -456,6 +456,7 @@ public class AitableServiceImpl implements AitableService {
         JSONObject fields;  //字段数据
         Map<String,Object> saleRecord;  //售前台账记录
         String projectStage;  //商机阶段 - S1~3【商机进度】
+        String projectCode;  //项目编号 - S1【基础】
 
 
 
@@ -507,6 +508,7 @@ public class AitableServiceImpl implements AitableService {
         for(int i=0;i<allRecords.size();i++){
             //重置变量
             projectStage = "";
+            projectCode = "";
 
             //获取AI表格ID
             aiTableId = allRecords.getJSONObject(i).getString("id");
@@ -518,9 +520,14 @@ public class AitableServiceImpl implements AitableService {
                 projectStage = fields.getJSONObject("商机阶段 - S1~3【商机进度】").getString("name");
             }
 
+            if(fields.get("项目编号 - S1【基础】") != null){
+                projectCode = fields.getString("项目编号 - S1【基础】");
+            }
+
             saleRecord = new HashMap<>();
             saleRecord.put("aiTableId",aiTableId);
             saleRecord.put("projectStage",projectStage);
+            saleRecord.put("projectCode",projectCode);
 //            System.out.println(JSONObject.toJSONString(saleRecord));
             saleData.add(saleRecord);
         }

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

@@ -1710,6 +1710,36 @@ public class YidaServiceImpl implements YidaService {
         ydClient.operateData(yidaParam,YDConf.FORM_OPERATION.update);
     }
 
+    @Override
+    public void updatePreviousBusinessUser(String formInstId, String previousBusinessUserId, String previousBusinessGroup) throws Exception {
+        /*
+            参数定义
+         */
+        YDParam yidaParam;  //HTTP请求体
+        YDParam.YDParamBuilder ydParamBuilder; //宜搭参数构建
+        String updateFormDataJson;  //更新内容
+
+        /*
+            初始化参数值
+         */
+        Map updateFormData = UtilMap.map(
+                "employeeField_mdo82twa, selectField_moyb4zx2",
+                previousBusinessUserId!=null?new String[]{previousBusinessUserId}:new String[]{},
+                previousBusinessGroup
+        );
+        updateFormDataJson = JSONObject.toJSONString(updateFormData);
+        System.out.println(updateFormDataJson);
+
+        /*
+            更新数据
+         */
+        ydParamBuilder = YDParam.builder();
+        ydParamBuilder = ydParamBuilder.formInstId(formInstId);
+        ydParamBuilder = ydParamBuilder.updateFormDataJson(updateFormDataJson);
+        yidaParam = ydParamBuilder.build();
+        ydClient.operateData(yidaParam,YDConf.FORM_OPERATION.update);
+    }
+
     @Override
     public void updateCustomerRelatedAitableId(String formInstId, String aitableId) throws Exception {
         /*