ソースを参照

客户数据清洗

lvjs 1 週間 前
コミット
ebf56ce195

+ 18 - 0
src/main/java/com/malk/eastar/controller/EastarDdController.java

@@ -83,5 +83,23 @@ public class EastarDdController {
         }
     }
 
+    /**
+     * 根据userId获取部门ID
+     * @param data
+     * @return
+     */
+//    @PostMapping("/getDeptIdListByUserId")
+    McR getDeptIdListByUserId(@RequestBody JSONObject data) {
+        log.info("根据userId获取部门ID, {}", data);
+        McException.assertParamException_Null(data, "userid");
+        String userId = UtilMap.getString(data, "userid");
+        try {
+            List deptIdList = ddCoreClient.getDeptIdListByUserId(userId);
+            return McR.success(deptIdList);
+        } catch (Exception e) {
+            return McR.error("400",e.getMessage());
+        }
+    }
+
 
 }

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

@@ -88,6 +88,314 @@ public class ScheduleTaskNew {
         }
     }
 
+    /**
+     * 客户数据清洗
+     */
+//    @Scheduled(cron = "0 7 9 * * ?")
+    public void cleanCustomerData20260428() {
+        /*
+            查询(易思达)客户名册所有记录
+         */
+        log.info("查询(易思达)客户名册所有记录");
+        List<Map> ltcCustomerData = new ArrayList<>();
+        try {
+            ltcCustomerData = yidaService.queryLtcAllCustomerData();
+        } catch (Exception e) {
+            log.error("查询(易思达)客户名册异常",e);
+        }
+
+        /*
+            更新字段:
+            客户当前分级、客户潜在等级、上一年分级、AI表格映射ID
+         */
+        String formInstId;
+        String customerLevel;   //客户当前分级
+        String customerPotentialLevel;   //客户潜在等级
+        for (Map ltcCustomerRecord : ltcCustomerData){
+            formInstId = UtilMap.getString(ltcCustomerRecord, "formInstId");
+            customerPotentialLevel = UtilMap.getString(ltcCustomerRecord, "customerPotentialLevel");
+            if(
+                    "A".equals(customerPotentialLevel)
+                    ||"B".equals(customerPotentialLevel)
+                    ||"C".equals(customerPotentialLevel)
+                    ||"D".equals(customerPotentialLevel)
+            ){
+                customerPotentialLevel = "潜"+customerPotentialLevel;
+            }else if("E".equals(customerPotentialLevel)){
+                customerPotentialLevel = "保稳E";
+            }else if(
+                    "潜A".equals(customerPotentialLevel)
+                    ||"潜B".equals(customerPotentialLevel)
+                    ||"潜C".equals(customerPotentialLevel)
+                    ||"潜D".equals(customerPotentialLevel)
+                    ||"保稳E".equals(customerPotentialLevel)
+            ){
+                //不变
+            }else{
+                customerPotentialLevel = "";
+            }
+            customerLevel = customerPotentialLevel;
+            try {
+                yidaService.updateLtcCustomerBasicInfo7(formInstId,customerLevel,customerPotentialLevel);
+            } catch (Exception e) {
+                log.error("更新易思达系统客户记录异常",e);
+            }
+
+        }
+        log.info("客户数据清洗完成");
+    }
+
+    /**
+     * 客户数据清洗
+     */
+//    @Scheduled(cron = "0 45 16 * * ?")
+    public void cleanCustomerData20260427() {
+        /*
+            查询(易思达)客户名册所有记录
+         */
+        log.info("查询(易思达)客户名册所有记录");
+        List<Map> ltcCustomerData = new ArrayList<>();
+        try {
+            ltcCustomerData = yidaService.queryLtcAllCustomerData();
+        } catch (Exception e) {
+            log.error("查询(易思达)客户名册异常",e);
+        }
+
+        /*
+            更新字段:
+            客户当前分级、客户潜在等级、上一年分级、AI表格映射ID
+         */
+        String formInstId;
+//        for (Map ltcCustomerRecord : ltcCustomerData){
+//            formInstId = UtilMap.getString(ltcCustomerRecord, "formInstId");
+//            if(ltcCustomerRecord.get("aiTableId")!=null && !ltcCustomerRecord.get("aiTableId").toString().isEmpty()){
+//                try {
+//                    yidaService.updateLtcCustomerBasicInfo5(formInstId,"","","","");
+//                } catch (Exception e) {
+//                    log.error("更新易思达系统客户记录异常",e);
+//                }
+//            }
+//        }
+
+
+        /*
+            新老客户信息
+         */
+        Map<String,String> ltcCustomerNewOrOldMap = new HashMap<>();
+        String ltcCustomeNameUpper;
+        String ltcNewOrOld;
+        for (Map ltcCustomerRecord : ltcCustomerData){
+            ltcCustomeNameUpper = ltcCustomerRecord.get("customerName").toString().replaceAll(" ","").toUpperCase();
+            if(ltcCustomerRecord.get("newOrOld")==null){
+                ltcNewOrOld = "";
+            }else{
+                ltcNewOrOld = ltcCustomerRecord.get("newOrOld").toString();
+            }
+            ltcCustomerNewOrOldMap.put(ltcCustomeNameUpper, ltcNewOrOld);
+        }
+
+         /*
+            从项目总表(系统1)获取客户数据
+         */
+        List<Map> sys1CustomerData = new ArrayList<>(); // 项目总表客户数据
+        try {
+            sys1CustomerData = aitableService.querySys1CustomerData();
+            log.info("项目总表客户数量="+sys1CustomerData.size());
+        } catch (Exception e) {
+            log.error("查询项目总表客户数据异常",e);
+        }
+
+        /*
+            获取项目总表客户数据,按大写客户名称分组
+         */
+        Map<String,List<Map>> customerNameUpperCaseMap = new HashMap<>();
+        String customerName1;
+        String customerName1UpperCase;
+        List<Map> maplist;
+        for (Map sys1CustomerRecord : sys1CustomerData){
+            if(sys1CustomerRecord.get("customerName")!= null){
+                customerName1 = sys1CustomerRecord.get("customerName").toString();
+                if(!customerName1.isEmpty()){
+                    /*
+                        按大写客户名称归类
+                     */
+                    customerName1UpperCase = customerName1.replaceAll(" ","").toUpperCase();
+                    if(customerNameUpperCaseMap.containsKey(customerName1UpperCase)){
+                        maplist = customerNameUpperCaseMap.get(customerName1UpperCase);
+                    }else{
+                        maplist = new ArrayList<>();
+                    }
+                    maplist.add(sys1CustomerRecord);
+                    customerNameUpperCaseMap.put(customerName1UpperCase,maplist);
+                }
+            }
+        }
+        System.out.println("大写客户名称数量="+customerNameUpperCaseMap.keySet().size());
+
+        /*
+            遍历易思达客户数据
+         */
+        String customerName2;
+        String customerName2UpperCase;
+        String customerNames;
+        String customerLevel;   //客户当前分级
+        String customerNewOrOld;    //新老客户
+        String aiTableId;   //AI表格映射ID
+        for (Map ltcCustomerRecord : ltcCustomerData){
+            customerName2 = ltcCustomerRecord.get("customerName").toString();
+            customerName2UpperCase = customerName2.replaceAll(" ","").toUpperCase();
+            if(customerNameUpperCaseMap.containsKey(customerName2UpperCase)){
+                /*
+                    获取新系统和项目总表共有的客户(可能匹配到多个)
+                 */
+                maplist = customerNameUpperCaseMap.get(customerName2UpperCase);
+                if(maplist!=null && !maplist.isEmpty()){
+                    if(maplist.size()==1){
+                        formInstId = UtilMap.getString(ltcCustomerRecord, "formInstId");
+                        aiTableId = maplist.get(0).get("aiTableId").toString();
+                        customerLevel = maplist.get(0).get("customerLevel").toString();
+                        customerNewOrOld = maplist.get(0).get("newOrOld").toString();
+                        if(!customerNewOrOld.equals(ltcCustomerNewOrOldMap.get(customerName2UpperCase))){
+                            if(!"不合作".equals(ltcCustomerNewOrOldMap.get(customerName2UpperCase))){
+                                System.out.println("易思达客户["+customerName2+"]:"+ltcCustomerNewOrOldMap.get(customerName2UpperCase)+",项目总表客户["+maplist.get(0).get("customerName").toString()+"]:"+customerNewOrOld);
+                            }else{
+                                customerNewOrOld = "不合作";
+                            }
+                        }
+                        try {
+                            yidaService.updateLtcCustomerBasicInfo6(formInstId,"保稳E",customerLevel,customerNewOrOld,aiTableId);
+                        } catch (Exception e) {
+                            log.error("更新易思达系统客户记录异常",e);
+                        }
+
+                    }else{
+                        customerNames = maplist.get(0).get("customerName").toString();
+                        for(int i=1; i<maplist.size(); i++){
+                            customerNames += ","+maplist.get(0).get("customerName").toString();
+                        }
+                        System.out.println(customerName2UpperCase+"匹配到多条项目总表记录:"+customerNames);
+                    }
+                }
+            }
+        }
+
+
+        log.info("客户数据清洗完成");
+    }
+
+    /**
+     * 客户数据清洗
+     */
+//    @Scheduled(cron = "0 57 16 * * ?")
+    public void cleanCustomerData20260424() {
+        /*
+            查询(易思达)客户名册所有记录
+         */
+        log.info("查询(易思达)客户名册所有记录");
+        List<Map> ltcCustomerData = new ArrayList<>();
+        try {
+            ltcCustomerData = yidaService.queryLtcAllCustomerData();
+        } catch (Exception e) {
+            log.error("查询(易思达)客户名册异常",e);
+        }
+
+        /*
+            查询业务小组档案中的成员信息
+         */
+        List<Map> ltcBusinessUserData = new ArrayList<>();
+        try {
+            ltcBusinessUserData = yidaService.queryLtcAllBusinessUserData();
+        } catch (Exception e) {
+            log.error("查询业务小组档案中的成员信息异常",e);
+        }
+
+        /*
+            获取业务userId与名称、业务部门映射
+         */
+        Map<String,String> businessUserIdDeptIdMap = new HashMap<>();
+        Map<String,String> businessUserIdNameMap = new HashMap<>();
+        String businessUserId;
+        for (Map ltcCustomerRecord : ltcCustomerData){
+            businessUserId = UtilMap.getString(ltcCustomerRecord, "userId");
+            if(!businessUserId.isEmpty()){
+                if(!businessUserIdDeptIdMap.containsKey(businessUserId)){
+                    businessUserIdDeptIdMap.put(businessUserId,"");
+                }
+                if(!businessUserIdNameMap.containsKey(businessUserId)){
+                    businessUserIdNameMap.put(businessUserId,"");
+                }
+            }
+        }
+        List deptIdList;
+        for (String userId : businessUserIdDeptIdMap.keySet()) {
+            try {
+                deptIdList = ddCoreClient.getDeptIdListByUserId(userId);
+                if(!deptIdList.isEmpty()){
+                    businessUserIdDeptIdMap.put(userId, String.valueOf(deptIdList.get(0)));
+                }
+            } catch (Exception e) {
+//                log.error("获取业务userId与业务部门映射异常",e);
+            }
+
+        }
+        for (String userId : businessUserIdNameMap.keySet()) {
+            try {
+                businessUserIdNameMap.put(userId,ddCoreClient.getNameByUserId(userId));
+            } catch (Exception e) {
+//                log.error("获取业务userId与名称映射异常",e);
+            }
+
+        }
+
+        /*
+            更新字段:
+            业务userId、负责人文本、业务组长、业务部门
+         */
+        String formInstId;
+        String testUseFlag;
+        String userId;
+        String businessName;
+        String businessLeaderUserId;
+        String businessDepartment;
+        for (Map ltcCustomerRecord : ltcCustomerData){
+            testUseFlag = UtilMap.getString(ltcCustomerRecord, "testUseFlag");
+            if(testUseFlag.equals("否")){
+                formInstId = UtilMap.getString(ltcCustomerRecord, "formInstId");
+                userId = UtilMap.getString(ltcCustomerRecord, "userId");
+                if(userId != null && !userId.isEmpty()){
+                    businessName = businessUserIdNameMap.get(userId);
+                    businessLeaderUserId = null;
+                    for (int i = 0; i < ltcBusinessUserData.size(); i++) {
+                        if(UtilMap.getString(ltcBusinessUserData.get(i), "userId").equals(userId)){
+                            businessLeaderUserId = UtilMap.getString(ltcBusinessUserData.get(i), "businessLeaderUserId");
+                            if(businessLeaderUserId.isEmpty()){
+                                businessLeaderUserId = null;
+                            }
+                            break;
+                        }
+                    }
+                    businessDepartment = businessUserIdDeptIdMap.get(userId);
+                    if(businessDepartment.isEmpty()){
+                        businessDepartment = null;
+                    }
+                }else{
+                    userId = "";
+                    businessName = "";
+                    businessLeaderUserId = null;
+                    businessDepartment = null;
+                }
+                try {
+                    yidaService.updateLtcCustomerBasicInfo4(formInstId,userId,businessName,businessLeaderUserId,businessDepartment);
+                } catch (Exception e) {
+                    log.error("更新易思达系统客户记录异常",e);
+                }
+            }
+
+        }
+
+
+        log.info("客户数据清洗完成");
+    }
 
     /**
      * 客户数据清洗
@@ -301,10 +609,10 @@ public class ScheduleTaskNew {
     }
 
     /**
-     * 同步客户数据
+     * 更新客户测试使用标识
      */
 //    @Scheduled(cron = "0 35 10 * * ?")
-    public void syncCustomerData() {
+    public void updateCustomerTestFlag() {
         /*
             查询所有已离职的员工
          */
@@ -334,7 +642,7 @@ public class ScheduleTaskNew {
         try {
             ltcCustomerData = yidaService.queryLtcAllCustomerData();
         } catch (Exception e) {
-            log.error("查询(客户数据清洗)客户名册all所有记录异常",e);
+            log.error("查询(易思达)客户名册所有记录异常",e);
         }
 
         /*
@@ -373,7 +681,394 @@ public class ScheduleTaskNew {
 //            }
 //        }
 
-        log.info("同步客户数据完成");
+        log.info("更新客户测试使用标识完成");
+    }
+
+
+    /**
+     * 同步客户与业务
+     */
+//    @Scheduled(cron = "0 51 16 * * ?")
+    public void syncCustomerAndBusinessUser() {
+        /*
+            查询(易思达)客户名册所有记录
+         */
+        log.info("查询(易思达)客户名册所有记录");
+        List<Map> ltcCustomerData = new ArrayList<>();
+        try {
+            ltcCustomerData = yidaService.queryLtcAllCustomerData();
+        } catch (Exception e) {
+            log.error("查询(易思达)客户名册异常",e);
+        }
+
+        /*
+            查询(客户数据清洗)私海客户所有记录
+         */
+//        log.info("查询(客户数据清洗)私海客户所有记录");
+//        List<Map> privateSeaCustomerData = new ArrayList<>();
+//        try {
+//            privateSeaCustomerData = yidaService.querySys1Sys2PrivateCustomerData();
+//        } catch (Exception e) {
+//            log.error("查询(客户数据清洗)私海客户所有记录异常",e);
+//        }
+
+        /*
+            查询(客户数据清洗)公海客户所有记录
+         */
+//        log.info("查询(客户数据清洗)公海客户所有记录");
+//        List<Map> publicSeaCustomerData = new ArrayList<>();
+//        try {
+//            publicSeaCustomerData = yidaService.querySys1Sys2PublicCustomerData();
+//        } catch (Exception e) {
+//            log.error("查询(客户数据清洗)公海客户所有记录异常",e);
+//        }
+
+        /*
+            查询(客户数据清洗)不合作客户所有记录
+         */
+//        log.info("查询(客户数据清洗)不合作客户所有记录");
+//        List<Map> uncooperativeSeaCustomerData = new ArrayList<>();
+//        try {
+//            uncooperativeSeaCustomerData = yidaService.querySys1Sys2UncooperativeCustomerData();
+//        } catch (Exception e) {
+//            log.error("查询(客户数据清洗)不合作客户所有记录异常",e);
+//        }
+
+
+        /*
+            比对私海客户(客户名称去空格后转大写)
+            匹配成功则更新
+         */
+//        String customerName1;
+//        String customerName1UpperCase;
+//        String businessUserId;
+//        String customerName2;
+//        String customerName2UpperCase;
+//        String businessUserId2;
+//        String formInstId;
+//        for(Map privateSeaCustomerRecord : privateSeaCustomerData){
+//            customerName1 = UtilMap.getString(privateSeaCustomerRecord, "customerName");
+//            customerName1UpperCase = customerName1.replaceAll(" ","").toUpperCase();
+//            businessUserId = UtilMap.getString(privateSeaCustomerRecord, "businessUserId");
+//            for (int i = 0; i < ltcCustomerData.size(); i++) {
+//                customerName2 = UtilMap.getString(ltcCustomerData.get(i), "customerName");
+//                customerName2UpperCase = customerName2.replaceAll(" ","").toUpperCase();
+//                businessUserId2 = UtilMap.getString(ltcCustomerData.get(i), "userId");
+////                formInstId = UtilMap.getString(ltcCustomerData.get(i), "formInstId");
+//                if(customerName1UpperCase.equals(customerName2UpperCase)){
+//                    /*
+//                        客户名称(大写)一致,更新易思达系统客户基本信息(客户公司名、业务、公海/私海、测试使用)
+//                     */
+////                    try {
+////                        yidaService.updateLtcCustomerBasicInfo(formInstId,customerName1,businessUserId,"私","否");
+////                    } catch (Exception e) {
+////                        log.error("更新易思达系统客户基本信息异常",e);
+////                    }
+//
+//                    if(businessUserId==null || businessUserId.isEmpty()){
+//                        if(businessUserId2==null || businessUserId2.isEmpty()){
+//                            //两边一致
+//                        }else{
+//                            System.out.println("两边不一致:"+customerName1);
+//                        }
+//                    }else{
+//                        if(businessUserId2==null || businessUserId2.isEmpty()){
+//                            System.out.println("两边不一致:"+customerName1);
+//                        }else{
+//                            if(businessUserId.equals(businessUserId2)){
+//                                //两边一致
+//                            }else{
+//                                System.out.println("两边不一致:"+customerName1);
+//                            }
+//                        }
+//                    }
+//
+//                    break;
+//                }
+//            }
+//        }
+
+        /*
+            比对私海客户(客户名称去空格后转大写)
+            未匹配到则新增
+         */
+//        String customerName1;
+//        String customerName1UpperCase;
+//        String customerName2;
+//        String customerName2UpperCase;
+//        boolean isNew;
+//        for (Map privateSeaCustomerRecord : privateSeaCustomerData){
+//            isNew = true;
+//            customerName1 = UtilMap.getString(privateSeaCustomerRecord, "customerName");
+//            customerName1UpperCase = customerName1.replaceAll(" ","").toUpperCase();
+//            for (int i = 0; i < ltcCustomerData.size(); i++){
+//                customerName2 = UtilMap.getString(ltcCustomerData.get(i), "customerName");
+//                customerName2UpperCase = customerName2.replaceAll(" ","").toUpperCase();
+//                if(customerName1UpperCase.equals(customerName2UpperCase)){
+//                    isNew = false;
+//                    break;
+//                }
+//            }
+//            if(isNew){
+//                /*
+//                    是新客户,新增易思达系统客户记录
+//                 */
+//                privateSeaCustomerRecord.put("seaType","私");
+//                privateSeaCustomerRecord.put("newOrOld","新");
+//                privateSeaCustomerRecord.put("testUseFlag","否");
+//                try {
+//                    yidaService.insertCustomerData(privateSeaCustomerRecord);
+//                } catch (Exception e) {
+//                    log.error("新增易思达系统客户记录异常",e);
+//                }
+//            }
+//        }
+
+
+        /*
+            比对公海客户(客户名称去空格后转大写)
+         */
+//        String customerName1;
+//        String customerName1UpperCase;
+//        String businessUserId;
+//        String customerName2;
+//        String customerName2UpperCase;
+//        String businessUserId2;
+//        String formInstId;
+//        for(Map publicSeaCustomerRecord : publicSeaCustomerData){
+//            customerName1 = UtilMap.getString(publicSeaCustomerRecord, "customerName");
+//            customerName1UpperCase = customerName1.replaceAll(" ","").toUpperCase();
+//            businessUserId = UtilMap.getString(publicSeaCustomerRecord, "businessUserId");
+//            for (int i = 0; i < ltcCustomerData.size(); i++) {
+//                customerName2 = UtilMap.getString(ltcCustomerData.get(i), "customerName");
+//                customerName2UpperCase = customerName2.replaceAll(" ","").toUpperCase();
+//                businessUserId2 = UtilMap.getString(ltcCustomerData.get(i), "userId");
+////                formInstId = UtilMap.getString(ltcCustomerData.get(i), "formInstId");
+//                if(customerName1UpperCase.equals(customerName2UpperCase)){
+//                    /*
+//                        客户名称(大写)一致,更新易思达系统客户基本信息(客户公司名、业务、公海/私海、测试使用)
+//                     */
+////                    try {
+////                        yidaService.updateLtcCustomerBasicInfo(formInstId,customerName1,null,"公","否");
+////                    } catch (Exception e) {
+////                        log.error("更新易思达系统客户基本信息异常",e);
+////                    }
+//                    if(businessUserId==null || businessUserId.isEmpty()){
+//                        if(businessUserId2==null || businessUserId2.isEmpty()){
+//                            //两边一致
+//                        }else{
+//                            System.out.println("两边不一致:"+customerName1);
+//                        }
+//                    }else{
+//                        if(businessUserId2==null || businessUserId2.isEmpty()){
+//                            System.out.println("两边不一致:"+customerName1);
+//                        }else{
+//                            if(businessUserId.equals(businessUserId2)){
+//                                //两边一致
+//                            }else{
+//                                System.out.println("两边不一致:"+customerName1);
+//                            }
+//                        }
+//                    }
+//                    break;
+//                }
+//            }
+//        }
+
+        /*
+            比对公海客户(客户名称去空格后转大写)
+            未匹配到则新增
+         */
+//        String customerName1;
+//        String customerName1UpperCase;
+//        String customerName2;
+//        String customerName2UpperCase;
+//        boolean isNew;
+//        for (Map publicSeaCustomerRecord : publicSeaCustomerData){
+//            isNew = true;
+//            customerName1 = UtilMap.getString(publicSeaCustomerRecord, "customerName");
+//            customerName1UpperCase = customerName1.replaceAll(" ","").toUpperCase();
+//            for (int i = 0; i < ltcCustomerData.size(); i++){
+//                customerName2 = UtilMap.getString(ltcCustomerData.get(i), "customerName");
+//                customerName2UpperCase = customerName2.replaceAll(" ","").toUpperCase();
+//                if(customerName1UpperCase.equals(customerName2UpperCase)){
+//                    isNew = false;
+//                    break;
+//                }
+//            }
+//            if(isNew){
+//                /*
+//                    是新客户,新增易思达系统客户记录
+//                 */
+//                publicSeaCustomerRecord.put("seaType","公");
+//                publicSeaCustomerRecord.put("businessUserId",null);
+//                publicSeaCustomerRecord.put("newOrOld","新");
+//                publicSeaCustomerRecord.put("testUseFlag","否");
+//                try {
+//                    yidaService.insertCustomerData(publicSeaCustomerRecord);
+//                } catch (Exception e) {
+//                    log.error("新增易思达系统客户记录异常",e);
+//                }
+//            }
+//        }
+
+        /*
+            比对不合作客户(客户名称去空格后转大写)
+         */
+//        String customerName1;
+//        String customerName1UpperCase;
+//        String businessUserId;
+//        String customerName2;
+//        String customerName2UpperCase;
+//        String businessUserId2;
+//        String formInstId;
+//        for(Map uncooperativeSeaCustomerRecord : uncooperativeSeaCustomerData){
+//            customerName1 = UtilMap.getString(uncooperativeSeaCustomerRecord, "customerName");
+//            customerName1UpperCase = customerName1.replaceAll(" ","").toUpperCase();
+//            businessUserId = UtilMap.getString(uncooperativeSeaCustomerRecord, "businessUserId");
+//            for (int i = 0; i < ltcCustomerData.size(); i++) {
+//                customerName2 = UtilMap.getString(ltcCustomerData.get(i), "customerName");
+//                customerName2UpperCase = customerName2.replaceAll(" ","").toUpperCase();
+//                businessUserId2 = UtilMap.getString(ltcCustomerData.get(i), "userId");
+////                formInstId = UtilMap.getString(ltcCustomerData.get(i), "formInstId");
+//                if(customerName1UpperCase.equals(customerName2UpperCase)){
+//                    /*
+//                        客户名称(大写)一致,更新易思达系统客户基本信息(客户公司名、业务、公海/私海、测试使用)
+//                     */
+////                    try {
+////                        yidaService.updateLtcCustomerBasicInfo2(formInstId,customerName1,null,"公","不合作","否");
+////                    } catch (Exception e) {
+////                        log.error("更新易思达系统客户基本信息异常",e);
+////                    }
+//                    if(businessUserId==null || businessUserId.isEmpty()){
+//                        if(businessUserId2==null || businessUserId2.isEmpty()){
+//                            //两边一致
+//                        }else{
+//                            System.out.println("两边不一致:"+customerName1);
+//                        }
+//                    }else{
+//                        if(businessUserId2==null || businessUserId2.isEmpty()){
+//                            System.out.println("两边不一致:"+customerName1);
+//                        }else{
+//                            if(businessUserId.equals(businessUserId2)){
+//                                //两边一致
+//                            }else{
+//                                System.out.println("两边不一致:"+customerName1);
+//                            }
+//                        }
+//                    }
+//                    break;
+//                }
+//            }
+//        }
+
+
+        /*
+            比对不合作客户(客户名称去空格后转大写)
+            未匹配到则新增
+         */
+//        String customerName1;
+//        String customerName1UpperCase;
+//        String customerName2;
+//        String customerName2UpperCase;
+//        boolean isNew;
+//        for (Map uncooperativeSeaCustomerRecord : uncooperativeSeaCustomerData){
+//            isNew = true;
+//            customerName1 = UtilMap.getString(uncooperativeSeaCustomerRecord, "customerName");
+//            customerName1UpperCase = customerName1.replaceAll(" ","").toUpperCase();
+//            for (int i = 0; i < ltcCustomerData.size(); i++){
+//                customerName2 = UtilMap.getString(ltcCustomerData.get(i), "customerName");
+//                customerName2UpperCase = customerName2.replaceAll(" ","").toUpperCase();
+//                if(customerName1UpperCase.equals(customerName2UpperCase)){
+//                    isNew = false;
+//                    break;
+//                }
+//            }
+//            if(isNew){
+//                /*
+//                    是新客户,新增易思达系统客户记录
+//                 */
+//                uncooperativeSeaCustomerRecord.put("seaType","公");
+//                uncooperativeSeaCustomerRecord.put("businessUserId",null);
+//                uncooperativeSeaCustomerRecord.put("newOrOld","不合作");
+//                uncooperativeSeaCustomerRecord.put("testUseFlag","否");
+//                try {
+//                    yidaService.insertCustomerData(uncooperativeSeaCustomerRecord);
+//                } catch (Exception e) {
+//                    log.error("新增易思达系统客户记录异常",e);
+//                }
+//            }
+//        }
+
+        log.info("同步客户与业务完成");
+    }
+
+    /**
+     * 补充客户基本信息
+     */
+//    @Scheduled(cron = "0 30 11 * * ?")
+    public void supplementTheCustomerData() {
+        /*
+            查询(易思达)客户名册所有记录
+         */
+        log.info("查询(易思达)客户名册所有记录");
+        List<Map> ltcCustomerData = new ArrayList<>();
+        try {
+            ltcCustomerData = yidaService.queryLtcAllCustomerData();
+        } catch (Exception e) {
+            log.error("查询(易思达)客户名册异常",e);
+        }
+
+        /*
+            查询业务小组档案中的成员信息
+         */
+        List<Map> ltcBusinessUserData = new ArrayList<>();
+        try {
+            ltcBusinessUserData = yidaService.queryLtcAllBusinessUserData();
+        } catch (Exception e) {
+            log.error("查询业务小组档案中的成员信息异常",e);
+        }
+
+        /*
+            更新字段:
+            客户验重
+            业务userId
+            业务组长
+            是否大客户
+         */
+        String formInstId;
+        String customerName;
+        String customerNameUpperCase;
+        String userId;
+        String userIdText;
+        String businessLeaderUserId;
+        for(Map ltcCustomerRecord : ltcCustomerData){
+            customerName = UtilMap.getString(ltcCustomerRecord, "customerName");
+            customerNameUpperCase = customerName.replaceAll(" ","").toUpperCase();
+            userId = UtilMap.getString(ltcCustomerRecord, "userId");
+            userIdText = UtilMap.getString(ltcCustomerRecord, "userIdText");
+            businessLeaderUserId = null;
+//            for (int i = 0; i < ltcBusinessUserData.size(); i++) {
+//                if(UtilMap.getString(ltcBusinessUserData.get(i), "userId").equals(userId)){
+//                    businessLeaderUserId = UtilMap.getString(ltcBusinessUserData.get(i), "businessLeaderUserId");
+//                    if(businessLeaderUserId.isEmpty()){
+//                        businessLeaderUserId = null;
+//                    }
+//                    break;
+//                }
+//            }
+            try {
+                System.out.println(customerName);
+                formInstId = UtilMap.getString(ltcCustomerRecord, "formInstId");
+//                    yidaService.updateLtcCustomerBasicInfo3(formInstId,customerNameUpperCase,userId,businessLeaderUserId,"否");
+                yidaService.updateLtcCustomerBasicInfo4(formInstId,"","",null,null);
+            } catch (Exception e) {
+                log.error("更新易思达系统客户记录异常",e);
+            }
+
+        }
+
+        log.info("补充客户基本信息完成");
     }
 
 }

+ 16 - 0
src/main/java/com/malk/eastar/service/DDCoreClient.java

@@ -10,6 +10,22 @@ import java.util.Map;
  */
 public interface DDCoreClient {
 
+    /**
+     * 根据userId获取name
+     * @param userId
+     * @return
+     * @throws Exception
+     */
+    String getNameByUserId(String userId) throws Exception;
+
+    /**
+     * 根据userId获取deptId
+     * @param userId
+     * @return
+     * @throws Exception
+     */
+    List getDeptIdListByUserId(String userId) throws Exception;
+
     /**
      * 根据userId获取unionId
      * @param userId

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

@@ -45,11 +45,51 @@ public interface YidaService {
      */
     void updateLtcCustomerTestFlag(String formInstId) throws Exception;
 
+    /**
+     * 更新易思达系统客户基本信息(客户公司名、业务、公海/私海、测试使用)
+     */
+    void updateLtcCustomerBasicInfo(String formInstId, String customerName, String businessUserId, String seaType, String testUseFlag) throws Exception;
+
+    /**
+     * 更新易思达系统客户基本信息(客户公司名、业务、公海/私海、新老客户、测试使用)
+     */
+    void updateLtcCustomerBasicInfo2(String formInstId, String customerName, String businessUserId, String seaType, String newOrOld, String testUseFlag) throws Exception;
+
+    /**
+     * 更新易思达系统客户基本信息(客户验重、业务userId、业务组长、是否大客户)
+     */
+    void updateLtcCustomerBasicInfo3(String formInstId, String customerNameUpperCase, String businessUserId, String businessLeaderUserId, String isBigCustomer) throws Exception;
+
+    /**
+     * 更新易思达系统客户基本信息(业务userId、负责人文本、业务组长、业务部门)
+     */
+    void updateLtcCustomerBasicInfo4(String formInstId, String businessUserId, String businessName, String businessLeaderUserId, String businessDepartment) throws Exception;
+
+    /**
+     * 更新易思达系统客户基本信息(客户当前分级、客户潜在等级、上一年分级、AI表格映射ID)
+     */
+    void updateLtcCustomerBasicInfo5(String formInstId, String customerLevel1, String customerLevel2, String customerLevel3, String aiTableId) throws Exception;
+
+    /**
+     * 更新易思达系统客户基本信息(客户当前分级、客户潜在等级、新老客户、AI表格映射ID)
+     */
+    void updateLtcCustomerBasicInfo6(String formInstId, String customerLevel1, String customerLevel2, String newOrOld, String aiTableId) throws Exception;
+
+    /**
+     * 更新易思达系统客户基本信息(客户当前分级、客户潜在等级)
+     */
+    void updateLtcCustomerBasicInfo7(String formInstId, String customerLevel, String customerPotentialLevel) throws Exception;
+
     /**
      * 更新易思达系统销售项目的AI表格映射ID
      */
     void updateSaleProjectRelatedAitableId(String formInstId, String aitableId) throws Exception;
 
+    /**
+     * 插入易思达系统中的一行记录(客户名册)
+     */
+    void insertCustomerData(Map row) throws Exception;
+
     /**
      * 获取EASTAR业务数字化中的多行记录(客户名册)
      * @return
@@ -71,5 +111,19 @@ public interface YidaService {
      */
     List<Map> querySys1Sys2CustomerAllData() throws Exception;
 
+    /**
+     * 获取客户数据清洗中的多行记录(私海客户)
+     */
+    List<Map> querySys1Sys2PrivateCustomerData() throws Exception;
+
+    /**
+     * 获取客户数据清洗中的多行记录(公海客户)
+     */
+    List<Map> querySys1Sys2PublicCustomerData() throws Exception;
+
+    /**
+     * 获取客户数据清洗中的多行记录(不合作客户)
+     */
+    List<Map> querySys1Sys2UncooperativeCustomerData() throws Exception;
 
 }

+ 59 - 2
src/main/java/com/malk/eastar/service/impl/AitableServiceImpl.java

@@ -41,6 +41,7 @@ public class AitableServiceImpl implements AitableService {
         AITableResult aiTableResult;    //请求返回内容
         JSONArray records;  //每页记录数据
         JSONArray allRecords = new JSONArray();  //所有记录数据
+        String aiTableId;   //AI表格ID
         JSONObject fields;  //字段数据
         String customerName;    //客户名称
         JSONArray businessUserJSONArray;  //业务【人事】
@@ -53,13 +54,21 @@ public class AitableServiceImpl implements AitableService {
         int customerEmptyCount = 0;  //客户名称为空的记录数
         Map<String,String> customerRecord;  //客户记录
         Map<String, Long> customerNameCountMap = new HashMap<>();   //客户名称与出现的次数映射
+        String customerLevel;   //客户分级
+        String newOrOld;    //新老客户
 
         /*
-            项目总表副本-20260409
+            项目总表
          */
-        baseId = "GZLxjv9VGqBAMDOoHYzrPZzE86EDybno";
+        baseId = "G53mjyd80pEr5grBfpjmMX6586zbX04v";
         sheetIdOrName = "E6RcJi3";
 
+        /*
+            项目总表副本-20260409
+         */
+//        baseId = "GZLxjv9VGqBAMDOoHYzrPZzE86EDybno";
+//        sheetIdOrName = "E6RcJi3";
+
         /*
             初始化参数值
          */
@@ -102,6 +111,9 @@ public class AitableServiceImpl implements AitableService {
             isBusinessUserEmpty = false;
             isKpEmpty = false;
 
+            //获取AI表格ID
+            aiTableId = allRecords.getJSONObject(i).getString("id");
+
             //解析字段数据
             fields = allRecords.getJSONObject(i).getJSONObject("fields");
 
@@ -150,6 +162,47 @@ public class AitableServiceImpl implements AitableService {
 //                System.out.println("业务员="+businessUser);
             }
 
+            /*
+                获取客户分级
+             */
+            customerLevel = "";
+            if(fields.get("客户分级【客户】") != null){
+                customerLevel = fields.getJSONObject("客户分级【客户】").getString("name");
+                if(
+                        "A".equals(customerLevel)
+                                ||"潜A".equals(customerLevel)
+                                ||"B".equals(customerLevel)
+                                ||"潜B".equals(customerLevel)
+                                ||"C".equals(customerLevel)
+                                ||"潜C".equals(customerLevel)
+                                ||"D".equals(customerLevel)
+                                ||"潜D".equals(customerLevel)
+                ){
+                    //不变
+                }else if("E".equals(customerLevel)){
+                    customerLevel = "保稳E";
+                }else{
+                    customerLevel = "";
+                }
+            }
+
+            /*
+                获取新老客户
+             */
+            newOrOld = "";
+            if(fields.get("新老客户?【客户】") != null){
+                newOrOld = fields.getJSONObject("新老客户?【客户】").getString("name");
+                if(newOrOld.contains("新")){
+                    newOrOld = "新";
+                }
+                if(newOrOld.contains("老")){
+                    newOrOld = "老";
+                }
+                if(newOrOld.contains("不合作")){
+                    newOrOld = "不合作";
+                }
+            }
+
             /*
                 获取KP数据
              */
@@ -171,11 +224,15 @@ public class AitableServiceImpl implements AitableService {
                 汇总客户数据
              */
             customerRecord = new HashMap<>();
+            customerRecord.put("aiTableId",aiTableId);
             customerRecord.put("customerName",customerName);
             customerRecord.put("businessUserName",businessUserName);
             customerRecord.put("businessUserUnionId",businessUserUnionId);
 //            customerRecord.put("kp",kp);
 //            System.out.println(JSONObject.toJSONString(customerRecord));
+            customerRecord.put("customerLevel",customerLevel);
+            customerRecord.put("newOrOld",newOrOld);
+            System.out.println(aiTableId+","+customerLevel+","+newOrOld);
             customerData.add(customerRecord);
         }
         log.info("客户名称为空的记录数="+customerEmptyCount);

+ 20 - 0
src/main/java/com/malk/eastar/service/impl/DDCoreClientImpl.java

@@ -25,6 +25,26 @@ public class DDCoreClientImpl implements DDCoreClient {
     @Autowired
     private DDClient_Contacts ddClientContacts;
 
+    @Override
+    public String getNameByUserId(String userId) throws Exception {
+        String name = "";
+        Map result = ddClientContacts.getUserInfoById(ddClient.getAccessToken(),userId);
+        if(result != null){
+            name = UtilMap.getString(result, "name");
+        }
+        return name;
+    }
+
+    @Override
+    public List getDeptIdListByUserId(String userId) throws Exception {
+        List deptIdList = new ArrayList();
+        Map result = ddClientContacts.getUserInfoById(ddClient.getAccessToken(),userId);
+        if(result != null){
+            deptIdList = UtilMap.getList(result, "dept_id_list");
+        }
+        return deptIdList;
+    }
+
     @Override
     public String getUnionIdByUserId(String userId) throws Exception {
         String unionid = "";

+ 537 - 5
src/main/java/com/malk/eastar/service/impl/YidaServiceImpl.java

@@ -716,8 +716,10 @@ public class YidaServiceImpl implements YidaService {
         int pageSize;   //每页获取的数据量(上限100)
         JSONObject fields;  //字段数据
         String formInstId;  //表单实例ID
-        JSONArray businessUserIdJSONArray;  //业务员userId
+        JSONArray businessUserIdJSONArray;  //业务员userId(未解析)
         String userId;  //用户userId
+        JSONArray businessLeaderUserIdJSONArray;  //业务组长userId(未解析)
+        String businessLeaderUserId;  //业务组长userId
 
         /*
             初始化参数值
@@ -764,6 +766,7 @@ public class YidaServiceImpl implements YidaService {
          */
         log.info("所有记录数量="+allRecords.size());
         userId = "";
+        businessLeaderUserId = "";
         for (Map record : allRecords){
             businessUserRecord = new HashMap<>();
             //获取表单实例ID
@@ -779,9 +782,19 @@ public class YidaServiceImpl implements YidaService {
                     userId = String.valueOf(businessUserIdJSONArray.get(0));
                 }
             }
+            /*
+                获取业务组长数据
+             */
+            if(fields.get("employeeField_mektcwc6_id") != null){
+                businessLeaderUserIdJSONArray = fields.getJSONArray("employeeField_mektcwc6_id");
+                if(!businessLeaderUserIdJSONArray.isEmpty()){
+                    businessLeaderUserId = String.valueOf(businessLeaderUserIdJSONArray.get(0));
+                }
+            }
             if(!formInstId.isEmpty() && !userId.isEmpty()){
                 businessUserRecord.put("formInstId",formInstId);
                 businessUserRecord.put("userId",userId);
+                businessUserRecord.put("businessLeaderUserId",businessLeaderUserId);
                 businessUserData.add(businessUserRecord);
             }
         }
@@ -830,8 +843,10 @@ public class YidaServiceImpl implements YidaService {
         JSONObject fields;  //字段数据
         String formInstId;  //表单实例ID
         Map customerRecord;  //客户记录
+        String customerName;
         JSONArray businessUserIdJSONArray;  //业务员userId
         String userId;  //用户userId
+        String userIdText;
 
         /*
             初始化参数值
@@ -869,8 +884,9 @@ public class YidaServiceImpl implements YidaService {
             请求记录数据处理
          */
         log.info("所有记录数量="+allRecords.size());
-        userId = "";
         for (Map ltcCustomerRecord : allRecords){
+            userId = "";
+            customerName = "";
             //获取表单实例ID
             formInstId = String.valueOf(ltcCustomerRecord.get("formInstanceId"));
             //解析字段数据
@@ -878,18 +894,29 @@ public class YidaServiceImpl implements YidaService {
             /*
                 获取成员数据
              */
+            businessUserIdJSONArray = null;
             if(fields.get("employeeField_lqanqe6n_id") != null){
                 businessUserIdJSONArray = fields.getJSONArray("employeeField_lqanqe6n_id");
                 if(!businessUserIdJSONArray.isEmpty()){
                     userId = String.valueOf(businessUserIdJSONArray.get(0));
                 }
             }
+            userIdText = String.valueOf(ltcCustomerRecord.get("textField_mnchujji"));
+
+            customerName = fields.getString("textField_lqanqe6j");
+
             //生成客户数据
             customerRecord = UtilMap.map(
-                    "formInstId, customerName, userId",
+                    "formInstId, customerName, userId, userIdText, customerLevel, customerPotentialLevel, newOrOld, testUseFlag, aiTableId",
                     formInstId, //表单实例ID
-                    fields.getString("textField_lqanqe6j"), //客户公司名(英文名)
-                    userId  //业务
+                    customerName, //客户公司名(英文名)
+                    userId,  //业务
+                    userIdText,
+                    fields.getString("selectField_mcsoft5i"),    //客户当前分级
+                    fields.getString("selectField_mhsvnqsv"),    //客户潜在等级
+                    fields.getString("radioField_md6q7ox8"),    //新老客户
+                    fields.getString("radioField_mnpdkss9"),    //测试使用
+                    fields.getString("textField_mno9nwip")  //AI表格映射ID
             );
             ltcCustomerData.add(customerRecord);
         }
@@ -921,6 +948,230 @@ public class YidaServiceImpl implements YidaService {
         ydClient.operateData(yidaParam,YDConf.FORM_OPERATION.update);
     }
 
+    @Override
+    public void updateLtcCustomerBasicInfo(String formInstId, String customerName, String businessUserId, String seaType, String testUseFlag) throws Exception {
+        /*
+            参数定义
+         */
+        YDParam yidaParam;  //HTTP请求体
+        YDParam.YDParamBuilder ydParamBuilder; //宜搭参数构建
+        String updateFormDataJson;  //更新内容
+
+        /*
+            初始化参数值
+         */
+        Map updateFormData = UtilMap.map(
+                "textField_lqanqe6j, employeeField_lqanqe6n, radioField_md6q7oxa, radioField_mnpdkss9",
+                customerName,
+                businessUserId!=null?new String[]{businessUserId}:new String[]{},
+                seaType,
+                testUseFlag
+        );
+        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 updateLtcCustomerBasicInfo2(String formInstId, String customerName, String businessUserId, String seaType, String newOrOld, String testUseFlag) throws Exception {
+        /*
+            参数定义
+         */
+        YDParam yidaParam;  //HTTP请求体
+        YDParam.YDParamBuilder ydParamBuilder; //宜搭参数构建
+        String updateFormDataJson;  //更新内容
+
+        /*
+            初始化参数值
+         */
+        Map updateFormData = UtilMap.map(
+                "textField_lqanqe6j, employeeField_lqanqe6n, radioField_md6q7oxa, radioField_md6q7ox8, radioField_mnpdkss9",
+                customerName,
+                businessUserId!=null?new String[]{businessUserId}:new String[]{},
+                seaType,
+                newOrOld,
+                testUseFlag
+        );
+        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 updateLtcCustomerBasicInfo3(String formInstId, String customerNameUpperCase, String businessUserId, String businessLeaderUserId, String isBigCustomer) throws Exception {
+        /*
+            参数定义
+         */
+        YDParam yidaParam;  //HTTP请求体
+        YDParam.YDParamBuilder ydParamBuilder; //宜搭参数构建
+        String updateFormDataJson;  //更新内容
+
+        /*
+            初始化参数值
+         */
+        Map updateFormData = UtilMap.map(
+                "textField_meks6pjp, textField_mnchujji, employeeField_lqx3act6, radioField_mo0xhmnw",
+                customerNameUpperCase,
+                businessUserId,
+                businessLeaderUserId!=null?new String[]{businessLeaderUserId}:new String[]{},
+                isBigCustomer
+        );
+        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 updateLtcCustomerBasicInfo4(String formInstId, String businessUserId, String businessName, String businessLeaderUserId, String businessDepartment) throws Exception {
+        /*
+            参数定义
+         */
+        YDParam yidaParam;  //HTTP请求体
+        YDParam.YDParamBuilder ydParamBuilder; //宜搭参数构建
+        String updateFormDataJson;  //更新内容
+
+        /*
+            初始化参数值
+         */
+        Map updateFormData = UtilMap.map(
+                "textField_mnchujji, textField_lxa0ko5h, employeeField_lqx3act6, departmentSelectField_lympbaya",
+                businessUserId,
+                businessName,
+                businessLeaderUserId!=null?new String[]{businessLeaderUserId}:new String[]{},
+                businessDepartment!=null?new String[]{businessDepartment}:new String[]{}
+        );
+        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 updateLtcCustomerBasicInfo5(String formInstId, String customerLevel1, String customerLevel2, String customerLevel3, String aiTableId) throws Exception {
+        /*
+            参数定义
+         */
+        YDParam yidaParam;  //HTTP请求体
+        YDParam.YDParamBuilder ydParamBuilder; //宜搭参数构建
+        String updateFormDataJson;  //更新内容
+
+        /*
+            初始化参数值
+         */
+        Map updateFormData = UtilMap.map(
+                "selectField_mcsoft5i, selectField_mhsvnqsv, selectField_mfkshib3, textField_mno9nwip",
+                customerLevel1,
+                customerLevel2,
+                customerLevel3,
+                aiTableId
+        );
+        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 updateLtcCustomerBasicInfo6(String formInstId, String customerLevel1, String customerLevel2, String newOrOld, String aiTableId) throws Exception {
+        /*
+            参数定义
+         */
+        YDParam yidaParam;  //HTTP请求体
+        YDParam.YDParamBuilder ydParamBuilder; //宜搭参数构建
+        String updateFormDataJson;  //更新内容
+
+        /*
+            初始化参数值
+         */
+        Map updateFormData = UtilMap.map(
+                "selectField_mcsoft5i, selectField_mhsvnqsv, radioField_md6q7ox8, textField_mno9nwip",
+                customerLevel1,
+                customerLevel2,
+                newOrOld,
+                aiTableId
+        );
+        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 updateLtcCustomerBasicInfo7(String formInstId, String customerLevel, String customerPotentialLevel) throws Exception {
+/*
+            参数定义
+         */
+        YDParam yidaParam;  //HTTP请求体
+        YDParam.YDParamBuilder ydParamBuilder; //宜搭参数构建
+        String updateFormDataJson;  //更新内容
+
+        /*
+            初始化参数值
+         */
+        Map updateFormData = UtilMap.map(
+                "selectField_mcsoft5i, selectField_mhsvnqsv",
+                customerLevel,
+                customerPotentialLevel
+        );
+        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 updateSaleProjectRelatedAitableId(String formInstId, String aitableId) throws Exception {
         /*
@@ -945,6 +1196,35 @@ public class YidaServiceImpl implements YidaService {
         ydClient.operateData(yidaParam,YDConf.FORM_OPERATION.update);
     }
 
+    @Override
+    public void insertCustomerData(Map row) throws Exception {
+        YDParam yidaParam;  //HTTP请求体
+        YDParam.YDParamBuilder ydParamBuilder; //宜搭参数构建
+        String[] businessUserIdArr = new String[]{};
+        if(row.get("businessUserId")!=null){
+            businessUserIdArr = new String[]{row.get("businessUserId").toString()};
+        }
+        Map customerRecord = UtilMap.map(
+                "textField_lqanqe6j, "  //客户公司名(英文名)
+                        +"radioField_md6q7ox8, " //新老客户
+                        +"employeeField_lqanqe6n, " //业务
+                        +"radioField_md6q7oxa, " //公海/私海
+                        +"radioField_mnpdkss9", //测试使用
+                row.get("customerName"),
+                row.get("newOrOld"),
+                businessUserIdArr,
+                row.get("seaType"),
+                row.get("testUseFlag")
+        );
+        String insertFormDataJson = JSONObject.toJSONString(customerRecord);
+        ydParamBuilder = YDParam.builder();
+        ydParamBuilder = ydParamBuilder.formUuid(EastarParam.YD_FORMUUID_CUSTOMER);
+        ydParamBuilder = ydParamBuilder.formDataJson(insertFormDataJson);
+        yidaParam = ydParamBuilder.build();
+        ydClient.operateData(yidaParam,YDConf.FORM_OPERATION.create);
+        System.out.println("新增一条客户记录");
+    }
+
     @Override
     public List<Map> querySys2CustomerData() throws Exception {
         /*
@@ -1437,5 +1717,257 @@ public class YidaServiceImpl implements YidaService {
         return sys1Sys2CustomerData;
     }
 
+    @Override
+    public List<Map> querySys1Sys2PrivateCustomerData() throws Exception {
+        /*
+            参数定义
+         */
+        List<Map> sys1Sys2CustomerData = new ArrayList<>();
+        String appType; //宜搭应用编码
+        String formUuid;    //表单编码
+        String systemToken; //宜搭应用密钥
+        String userId;  //用户userId
+        YDParam yidaParam;  //HTTP请求体
+        YDParam.YDParamBuilder ydParamBuilder; //宜搭参数构建
+        DDR_New yidaResult; //请求返回内容
+        List<Map> records;  //每页记录数据
+        List<Map> allRecords = new ArrayList<>();  //所有记录数据
+        boolean hasMore; //是否还有下一页
+        int pageNo; //当前页码
+        int pageSize;   //每页获取的数据量(上限100)
+        JSONObject fields;  //字段数据
+        String customerName;    //客户名称
+        Map customerRecord;  //客户记录
+
+        /*
+            客户数据清洗
+         */
+        appType = "APP_IL6UN1IETFL3GATLFU0Z";
+        systemToken = "2MA66S71ZRH4FN2FJKW985LDOEBT30F3D7INMGMT";
+        formUuid = "FORM-EB1BD51283D44F3CA32ECCF05549D659EU2V"; //私海客户
+
+        /*
+            初始化参数值
+         */
+        userId = "02322511193621446331";    //操作人(Jason)的userId
+        hasMore = true; //第一页默认有数据
+        pageNo = 1;
+        pageSize = 100;
+        ydParamBuilder = YDParam.builder();
+        ydParamBuilder = ydParamBuilder.appType(appType);
+        ydParamBuilder = ydParamBuilder.systemToken(systemToken);
+        ydParamBuilder = ydParamBuilder.formUuid(formUuid);
+        ydParamBuilder = ydParamBuilder.userId(userId);
+
+        /*
+            翻页获取数据
+         */
+        while(hasMore){
+            ydParamBuilder = ydParamBuilder.pageNumber(pageNo);
+            ydParamBuilder = ydParamBuilder.pageSize(pageSize);
+            yidaParam = ydParamBuilder.build();
+            yidaResult = ydClient.queryData(yidaParam,YDConf.FORM_QUERY.retrieve_list);
+            log.info("当前第"+pageNo+"页");
+            records = (List<Map>) yidaResult.getData();
+            log.info("记录数="+records.size());
+            for (Map record : records){
+                allRecords.add(record);
+            }
+            if((pageNo*pageSize) < yidaResult.getTotalCount()){
+                pageNo++;
+            }else{
+                hasMore = false;
+            }
+            log.info("是否有更多数据:"+hasMore);
+            Thread.sleep(3000);
+        }
+
+        /*
+            请求记录数据处理
+         */
+        log.info("所有记录数量="+allRecords.size());
+        for (Map sys1Sys2CustomerRecord : allRecords){
+            //解析字段数据
+            fields = JSONObject.parseObject(JSONObject.toJSONString(sys1Sys2CustomerRecord.get("formData")));
+            //生成客户数据
+            customerRecord = UtilMap.map(
+                    "customerName, businessUserId",
+                    fields.getString("textField_zj7gvgw"), //客户名称
+                    fields.getString("textField_uj4ys0h")  //确认后业务userid
+            );
+            sys1Sys2CustomerData.add(customerRecord);
+        }
+
+        return sys1Sys2CustomerData;
+    }
+
+    @Override
+    public List<Map> querySys1Sys2PublicCustomerData() throws Exception {
+        /*
+            参数定义
+         */
+        List<Map> sys1Sys2CustomerData = new ArrayList<>();
+        String appType; //宜搭应用编码
+        String formUuid;    //表单编码
+        String systemToken; //宜搭应用密钥
+        String userId;  //用户userId
+        YDParam yidaParam;  //HTTP请求体
+        YDParam.YDParamBuilder ydParamBuilder; //宜搭参数构建
+        DDR_New yidaResult; //请求返回内容
+        List<Map> records;  //每页记录数据
+        List<Map> allRecords = new ArrayList<>();  //所有记录数据
+        boolean hasMore; //是否还有下一页
+        int pageNo; //当前页码
+        int pageSize;   //每页获取的数据量(上限100)
+        JSONObject fields;  //字段数据
+        String customerName;    //客户名称
+        Map customerRecord;  //客户记录
+
+        /*
+            客户数据清洗
+         */
+        appType = "APP_IL6UN1IETFL3GATLFU0Z";
+        systemToken = "2MA66S71ZRH4FN2FJKW985LDOEBT30F3D7INMGMT";
+        formUuid = "FORM-9145B2CE607E4A7384932B9E10DAF968T2HQ"; //公海客户
+
+        /*
+            初始化参数值
+         */
+        userId = "02322511193621446331";    //操作人(Jason)的userId
+        hasMore = true; //第一页默认有数据
+        pageNo = 1;
+        pageSize = 100;
+        ydParamBuilder = YDParam.builder();
+        ydParamBuilder = ydParamBuilder.appType(appType);
+        ydParamBuilder = ydParamBuilder.systemToken(systemToken);
+        ydParamBuilder = ydParamBuilder.formUuid(formUuid);
+        ydParamBuilder = ydParamBuilder.userId(userId);
+
+        /*
+            翻页获取数据
+         */
+        while(hasMore){
+            ydParamBuilder = ydParamBuilder.pageNumber(pageNo);
+            ydParamBuilder = ydParamBuilder.pageSize(pageSize);
+            yidaParam = ydParamBuilder.build();
+            yidaResult = ydClient.queryData(yidaParam,YDConf.FORM_QUERY.retrieve_list);
+            log.info("当前第"+pageNo+"页");
+            records = (List<Map>) yidaResult.getData();
+            log.info("记录数="+records.size());
+            for (Map record : records){
+                allRecords.add(record);
+            }
+            if((pageNo*pageSize) < yidaResult.getTotalCount()){
+                pageNo++;
+            }else{
+                hasMore = false;
+            }
+            log.info("是否有更多数据:"+hasMore);
+            Thread.sleep(3000);
+        }
+
+        /*
+            请求记录数据处理
+         */
+        log.info("所有记录数量="+allRecords.size());
+        for (Map sys1Sys2CustomerRecord : allRecords){
+            //解析字段数据
+            fields = JSONObject.parseObject(JSONObject.toJSONString(sys1Sys2CustomerRecord.get("formData")));
+            //生成客户数据
+            customerRecord = UtilMap.map(
+                    "customerName, flag",
+                    fields.getString("textField_oaveera"), //客户名称
+                    fields.getString("textField_xo5uzls")  //数据同步标识
+            );
+            sys1Sys2CustomerData.add(customerRecord);
+        }
+
+        return sys1Sys2CustomerData;
+    }
+
+    @Override
+    public List<Map> querySys1Sys2UncooperativeCustomerData() throws Exception {
+        /*
+            参数定义
+         */
+        List<Map> sys1Sys2CustomerData = new ArrayList<>();
+        String appType; //宜搭应用编码
+        String formUuid;    //表单编码
+        String systemToken; //宜搭应用密钥
+        String userId;  //用户userId
+        YDParam yidaParam;  //HTTP请求体
+        YDParam.YDParamBuilder ydParamBuilder; //宜搭参数构建
+        DDR_New yidaResult; //请求返回内容
+        List<Map> records;  //每页记录数据
+        List<Map> allRecords = new ArrayList<>();  //所有记录数据
+        boolean hasMore; //是否还有下一页
+        int pageNo; //当前页码
+        int pageSize;   //每页获取的数据量(上限100)
+        JSONObject fields;  //字段数据
+        String customerName;    //客户名称
+        Map customerRecord;  //客户记录
+
+        /*
+            客户数据清洗
+         */
+        appType = "APP_IL6UN1IETFL3GATLFU0Z";
+        systemToken = "2MA66S71ZRH4FN2FJKW985LDOEBT30F3D7INMGMT";
+        formUuid = "FORM-68B079CC52544CDFBA470D82FB3A6F1F4JJY"; //不合作客户
+
+        /*
+            初始化参数值
+         */
+        userId = "02322511193621446331";    //操作人(Jason)的userId
+        hasMore = true; //第一页默认有数据
+        pageNo = 1;
+        pageSize = 100;
+        ydParamBuilder = YDParam.builder();
+        ydParamBuilder = ydParamBuilder.appType(appType);
+        ydParamBuilder = ydParamBuilder.systemToken(systemToken);
+        ydParamBuilder = ydParamBuilder.formUuid(formUuid);
+        ydParamBuilder = ydParamBuilder.userId(userId);
+
+        /*
+            翻页获取数据
+         */
+        while(hasMore){
+            ydParamBuilder = ydParamBuilder.pageNumber(pageNo);
+            ydParamBuilder = ydParamBuilder.pageSize(pageSize);
+            yidaParam = ydParamBuilder.build();
+            yidaResult = ydClient.queryData(yidaParam,YDConf.FORM_QUERY.retrieve_list);
+            log.info("当前第"+pageNo+"页");
+            records = (List<Map>) yidaResult.getData();
+            log.info("记录数="+records.size());
+            for (Map record : records){
+                allRecords.add(record);
+            }
+            if((pageNo*pageSize) < yidaResult.getTotalCount()){
+                pageNo++;
+            }else{
+                hasMore = false;
+            }
+            log.info("是否有更多数据:"+hasMore);
+            Thread.sleep(3000);
+        }
+
+        /*
+            请求记录数据处理
+         */
+        log.info("所有记录数量="+allRecords.size());
+        for (Map sys1Sys2CustomerRecord : allRecords){
+            //解析字段数据
+            fields = JSONObject.parseObject(JSONObject.toJSONString(sys1Sys2CustomerRecord.get("formData")));
+            //生成客户数据
+            customerRecord = UtilMap.map(
+                    "customerName, flag",
+                    fields.getString("textField_2hfi682"), //客户名称
+                    fields.getString("textField_3qntf3x")  //数据同步标识
+            );
+            sys1Sys2CustomerData.add(customerRecord);
+        }
+
+        return sys1Sys2CustomerData;
+    }
+
 
 }