2 커밋 aedad7dbec ... 2f80f894b3

작성자 SHA1 메시지 날짜
  lvjs 2f80f894b3 客户数据清洗(建联状态) 1 개월 전
  lvjs cbbedfdec8 查询客户数据补充进入私海时间字段 1 개월 전
2개의 변경된 파일103개의 추가작업 그리고 2개의 파일을 삭제
  1. 86 0
      src/main/java/com/malk/eastar/schedule/ScheduleTask3.java
  2. 17 2
      src/main/java/com/malk/eastar/service/impl/YidaServiceImpl.java

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

@@ -1,5 +1,6 @@
 package com.malk.eastar.schedule;
 
+import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.malk.eastar.service.AitableService;
@@ -34,6 +35,91 @@ public class ScheduleTask3 {
     @Autowired
     private DDCoreClient ddCoreClient;
 
+    /**
+     * 客户数据清洗(建联状态)
+     */
+//    @Scheduled(cron = "0 30 17 * * ?")
+    public void cleanCustomerData20260821() {
+        System.out.println("客户数据清洗(进入私海时间)开始");
+
+        /*
+            获取所有客户
+         */
+        List<Map> ltcCustomerData = new ArrayList<>();
+        try {
+            System.out.println("查询(易思达)客户名册");
+            ltcCustomerData = yidaService.queryLtcAllCustomerData();
+            System.out.println("易思达系统客户数量="+ltcCustomerData.size());
+        } catch (Exception e) {
+            log.error("查询(易思达)客户名册异常",e);
+            return;
+        }
+
+        /*
+            获取所有询价与报价
+         */
+        List<Map> rfqData = new ArrayList<>();
+        try {
+            System.out.println("查询询价与报价记录");
+            rfqData = yidaService.queryLtcRFQData();
+            System.out.println("询价与报价记录数量="+rfqData.size());
+        } catch (Exception e) {
+            log.error("查询询价与报价记录异常",e);
+            return;
+        }
+
+        /*
+            筛选客户
+            私海客户、建联状态不等于已建联、询价与报价记录存在
+         */
+        List<Map> customerDataWithEmptyPrivateTime = new ArrayList<>();
+        String customerCode1;
+        String customerCode2;
+        for(Map ltcCustomerRecord : ltcCustomerData){
+            try{
+                if("公".equals(ltcCustomerRecord.get("seaType").toString())){
+                    continue;
+                }
+                if(ltcCustomerRecord.get("establishStatus")!=null && "已建联".equals(ltcCustomerRecord.get("establishStatus").toString())){
+                    continue;
+                }
+                customerCode1 = ltcCustomerRecord.get("customerCode").toString();
+                for (int i = 0; i < rfqData.size(); i++) {
+                    customerCode2 = rfqData.get(i).get("customerCode").toString();
+                    if(customerCode1.equals(customerCode2)){ //有询报价记录
+                        System.out.println("customerCode="+customerCode1);
+                        customerDataWithEmptyPrivateTime.add(ltcCustomerRecord);
+                        break;
+                    }
+                }
+            } catch (Exception e) {
+                log.error("筛选客户异常",e);
+            }
+        }
+        System.out.println("筛选客户数量="+customerDataWithEmptyPrivateTime.size());
+
+        /*
+           进入私海时间、最近跟进时间更新为2026-08-21 00:00:00
+         */
+        String formInstId;
+        long today = DateUtil.parse("2026-08-21 00:00:00").getTime();
+        System.out.println(today);
+        int count = 0;
+        for(Map customerData : customerDataWithEmptyPrivateTime){
+            formInstId = customerData.get("formInstId").toString();
+            try {
+                yidaService.updateLtcCustomerBasicInfo8(formInstId,today,today);
+                count++;
+                System.out.println("更新进度:"+count+"/"+customerDataWithEmptyPrivateTime.size());
+            } catch (Exception e) {
+                log.error("更新易思达系统客户记录异常",e);
+            }
+        }
+
+
+        System.out.println("客户数据清洗(进入私海时间)结束");
+    }
+
     /**
      * 对比易思达系统和项目总表的客户业务员差异
      */

+ 17 - 2
src/main/java/com/malk/eastar/service/impl/YidaServiceImpl.java

@@ -1456,6 +1456,7 @@ public class YidaServiceImpl implements YidaService {
         JSONArray previousFollowerGroupJSONArray;  //前跟进团队
         List<String> previousFollowerGroupList; //前跟进团队列表
         String orderedStatus; //下过单客户
+        Long privateSeaTime; //进入私海时间
 
         /*
             初始化参数值
@@ -1501,6 +1502,7 @@ public class YidaServiceImpl implements YidaService {
             establishStatus = null;
             countryOrRegion = null;
             orderedStatus = null;
+            privateSeaTime = null;
 
             //获取表单实例ID
             formInstId = String.valueOf(ltcCustomerRecord.get("formInstanceId"));
@@ -1568,9 +1570,16 @@ public class YidaServiceImpl implements YidaService {
                 orderedStatus = fields.get("radioField_ms43zj2s").toString();
             }
 
+            //进入私海时间
+            if(fields.get("dateField_moxzc25f") != null){
+                privateSeaTime = Long.parseLong(fields.getString("dateField_moxzc25f"));
+            }
+
             //生成客户数据
             customerRecord = UtilMap.map(
-                    "formInstId, customerName, customerNameUnique, customerCode, userId, userIdText, customerLevel, customerPotentialLevel, newOrOld, seaType, establishStatus, countryOrRegion, productTypes, previousFollowerUserIdList, previousFollowerGroupList, orderedStatus, testUseFlag, aiTableId",
+                    "formInstId, customerName, customerNameUnique, customerCode, userId, userIdText, " +
+                            "customerLevel, customerPotentialLevel, newOrOld, seaType, privateSeaTime, establishStatus, countryOrRegion, " +
+                            "productTypes, previousFollowerUserIdList, previousFollowerGroupList, orderedStatus, testUseFlag, aiTableId",
                     formInstId, //表单实例ID
                     customerName, //客户公司名(英文名)
                     fields.getString("textField_meks6pjp"),    //客户验重
@@ -1581,6 +1590,7 @@ public class YidaServiceImpl implements YidaService {
                     fields.getString("selectField_mhsvnqsv"),    //客户潜在等级
                     fields.getString("radioField_md6q7ox8"),    //新老客户
                     fields.getString("radioField_md6q7oxa"),    //公海/私海
+                    privateSeaTime,    //进入私海时间
                     establishStatus, //建联状态
                     countryOrRegion, //国家或地区
                     fields.get("multiSelectField_md6q7ox7"), //主要品类
@@ -2149,6 +2159,7 @@ public class YidaServiceImpl implements YidaService {
         Map rfqRecord;  //询价与报价记录
         String projectCode; //项目编号
         Long getRfqDate;  //询价时间
+        String customerCode; //客户编号
 
         /*
             初始化参数值
@@ -2200,11 +2211,15 @@ public class YidaServiceImpl implements YidaService {
             //获取询价时间
             getRfqDate = fields.getLong("dateField_mdpdyddc");
 
+            //获取客户编号
+            customerCode = fields.getString("textField_mdpb1gh1");
+
 
             //添加客户建联跟进记录
             rfqRecord = UtilMap.map(
-                    "projectCode, getRfqDate",
+                    "projectCode, customerCode, getRfqDate",
                     projectCode, //项目编号
+                    customerCode, //客户编号
                     getRfqDate  //询价时间
             );
             rfqData.add(rfqRecord);