Forráskód Böngészése

易思达新系统上线前最后一次客户数据清洗

lvjs 6 nap óta
szülő
commit
d4ab1d3da3

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

@@ -88,6 +88,259 @@ public class ScheduleTaskNew {
         }
     }
 
+    /**
+     * 客户数据清洗
+     */
+    @Scheduled(cron = "0 40 18 * * ?")
+    public void cleanCustomerData20260430() {
+        /*
+            从项目总表(系统1)获取客户数据
+         */
+        List<Map> sys1CustomerData = new ArrayList<>(); // 项目总表客户数据
+        try {
+            sys1CustomerData = aitableService.querySys1CustomerData();
+            log.info("项目总表客户数量="+sys1CustomerData.size());
+        } catch (Exception e) {
+            log.error("查询项目总表客户数据异常",e);
+        }
+
+        /*
+            查询业务小组档案中的成员信息
+         */
+        List<Map> ltcBusinessUserData = new ArrayList<>();
+        try {
+            ltcBusinessUserData = yidaService.queryLtcAllBusinessUserData();
+        } catch (Exception e) {
+            log.error("查询业务小组档案中的成员信息异常",e);
+        }
+
+
+        String aiTableId;   //AI表格ID
+        String customerName1;
+        Object businessUserUnionId;
+        String businessUserId;
+        String customerLevel;
+        String newOrOld;
+        String businessLeaderUserId;
+        String businessDepartment;
+        List deptIdList;
+//        for (Map sys1CustomerRecord : sys1CustomerData) {
+//            aiTableId = "";
+//            businessUserId = "";
+//            customerLevel = "";
+//            newOrOld = "";
+//            businessLeaderUserId = "";
+//            businessDepartment = "";
+//            if (sys1CustomerRecord.get("aiTableId") != null) {
+//                aiTableId = sys1CustomerRecord.get("aiTableId").toString();
+//            }
+//            if (sys1CustomerRecord.get("customerName") != null) {
+//                customerName1 = sys1CustomerRecord.get("customerName").toString();
+//                if("Big Sky Games Limited".equals(customerName1)){
+//                    businessUserUnionId = sys1CustomerRecord.get("businessUserUnionId");
+//                    if (businessUserUnionId != null) {
+//                        try {
+//                            businessUserId = ddCoreClient.getUserIdByUnionId(businessUserUnionId.toString());
+//                            if(businessUserId.isEmpty()){
+//                                throw new RuntimeException("businessUserUserId为空");
+//                            }
+//                        } catch (Exception e) {
+//                            log.error("没有找到业务员unionId["+businessUserUnionId+"]对应的userId");
+//                        }
+//                    }
+//                    if(businessUserId!=null && !businessUserId.isEmpty()){
+//                        for (int i = 0; i < ltcBusinessUserData.size(); i++) {
+//                            if(UtilMap.getString(ltcBusinessUserData.get(i), "userId").equals(businessUserId)){
+//                                businessLeaderUserId = UtilMap.getString(ltcBusinessUserData.get(i), "businessLeaderUserId");
+//                                if(businessLeaderUserId.isEmpty()){
+//                                    businessLeaderUserId = null;
+//                                }
+//                                break;
+//                            }
+//                        }
+//                        try {
+//                            deptIdList = ddCoreClient.getDeptIdListByUserId(businessUserId);
+//                            if(deptIdList!=null && !deptIdList.isEmpty()){
+//                                businessDepartment = String.valueOf(deptIdList.get(0));
+//                            }
+//                            if(businessDepartment.isEmpty()){
+//                                businessDepartment = null;
+//                            }
+//                        } catch (Exception e) {
+//                            log.error("获取业务userId与业务部门映射异常",e);
+//                        }
+//                    }
+//                    if (sys1CustomerRecord.get("customerLevel") != null) {
+//                        customerLevel = sys1CustomerRecord.get("customerLevel").toString();
+//                    }
+//                    if (sys1CustomerRecord.get("newOrOld") != null) {
+//                        newOrOld = sys1CustomerRecord.get("newOrOld").toString();
+//                    }
+//                    System.out.println("aiTableId="+aiTableId+",customerName1="+customerName1
+//                            +",businessUserId="+businessUserId+",customerLevel="+customerLevel
+//                            +",newOrOld="+newOrOld+",businessLeaderUserId="+businessLeaderUserId
+//                            +",businessDepartment="+businessDepartment);
+//                }
+//            }
+//        }
+
+        /*
+            查询(易思达)客户名册所有记录
+         */
+        log.info("查询(易思达)客户名册所有记录");
+        List<Map> ltcCustomerData = new ArrayList<>();
+        try {
+            ltcCustomerData = yidaService.queryLtcAllCustomerData();
+        } catch (Exception e) {
+            log.error("查询(易思达)客户名册异常",e);
+        }
+
+
+        /*
+            寻找易思达系统不存在的客户,并新增
+         */
+        List<Map> ltcCustomerAddData = new ArrayList<>();
+        Map<String,List<Map>> customerNameUpperCaseMap = new HashMap<>();
+        String customerName1UpperCase;
+        String customerName2;
+        String customerName2UpperCase;
+        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);
+                }
+            }
+        }
+        boolean isExist;
+        for(String customerNameUpperCase : customerNameUpperCaseMap.keySet()){
+            isExist = false;
+            for (int i=0; i<ltcCustomerData.size(); i++){
+                customerName2 = ltcCustomerData.get(i).get("customerName").toString();
+                customerName2UpperCase = customerName2.replaceAll(" ","").toUpperCase();
+                if(customerNameUpperCase.equals(customerName2UpperCase)){
+                    isExist = true;
+                    break;
+                }
+            }
+            if(!isExist){
+                ltcCustomerAddData.add(customerNameUpperCaseMap.get(customerNameUpperCase).get(0));
+            }
+        }
+
+        String businessUserName;
+        Map privateSeaCustomerRecord;
+        for(Map ltcCustomerAddRecord : ltcCustomerAddData){
+//            System.out.println(JSONObject.toJSONString(ltcCustomerAddRecord));
+            aiTableId = "";
+            businessUserId = null;
+            businessUserName = "";
+            customerLevel = "";
+            newOrOld = "";
+            businessLeaderUserId = null;
+            businessDepartment = null;
+            if (ltcCustomerAddRecord.get("customerName") != null) {
+                customerName1 = ltcCustomerAddRecord.get("customerName").toString();
+                if (ltcCustomerAddRecord.get("aiTableId") != null) {
+                    aiTableId = ltcCustomerAddRecord.get("aiTableId").toString();
+                }
+                if (ltcCustomerAddRecord.get("businessUserName") != null) {
+                    businessUserName = ltcCustomerAddRecord.get("businessUserName").toString();
+                }
+                businessUserUnionId = ltcCustomerAddRecord.get("businessUserUnionId");
+                if (businessUserUnionId != null) {
+                    try {
+                        businessUserId = ddCoreClient.getUserIdByUnionId(businessUserUnionId.toString());
+                        if(businessUserId.isEmpty()){
+                            throw new RuntimeException("businessUserUserId为空");
+                        }
+                    } catch (Exception e) {
+                        log.error("没有找到业务员unionId["+businessUserUnionId+"]对应的userId");
+                    }
+                }
+                if(businessUserId!=null && !businessUserId.isEmpty()){
+                    for (int i = 0; i < ltcBusinessUserData.size(); i++) {
+                        if(UtilMap.getString(ltcBusinessUserData.get(i), "userId").equals(businessUserId)){
+                            businessLeaderUserId = UtilMap.getString(ltcBusinessUserData.get(i), "businessLeaderUserId");
+                            if(businessLeaderUserId.isEmpty()){
+                                businessLeaderUserId = null;
+                            }
+                            break;
+                        }
+                    }
+                    try {
+                        deptIdList = ddCoreClient.getDeptIdListByUserId(businessUserId);
+                        if(deptIdList!=null && !deptIdList.isEmpty()){
+                            businessDepartment = String.valueOf(deptIdList.get(0));
+                        }
+                        if(businessDepartment.isEmpty()){
+                            businessDepartment = null;
+                        }
+                    } catch (Exception e) {
+                        log.error("获取业务userId与业务部门映射异常",e);
+                    }
+                }else{
+                    businessUserId = null;
+                }
+                if (ltcCustomerAddRecord.get("customerLevel") != null) {
+                    customerLevel = ltcCustomerAddRecord.get("customerLevel").toString();
+                }
+                if (ltcCustomerAddRecord.get("newOrOld") != null) {
+                    newOrOld = ltcCustomerAddRecord.get("newOrOld").toString();
+                }
+                System.out.println("businessUserName="+businessUserName+",aiTableId="+aiTableId+",customerName1="+customerName1
+                        +",businessUserId="+businessUserId+",customerLevel="+customerLevel
+                        +",newOrOld="+newOrOld+",businessLeaderUserId="+businessLeaderUserId
+                        +",businessDepartment="+businessDepartment);
+                privateSeaCustomerRecord = new HashMap();
+                privateSeaCustomerRecord.put("customerName",customerName1);
+                customerName1UpperCase = customerName1.replaceAll(" ","").toUpperCase();
+                privateSeaCustomerRecord.put("customerName1UpperCase",customerName1UpperCase);
+                privateSeaCustomerRecord.put("businessLeaderUserId",businessLeaderUserId);
+                privateSeaCustomerRecord.put("businessDepartment",businessDepartment);
+                privateSeaCustomerRecord.put("newOrOld",newOrOld);
+                privateSeaCustomerRecord.put("customerLevel",customerLevel);
+                privateSeaCustomerRecord.put("aiTableId",aiTableId);
+                privateSeaCustomerRecord.put("customerLevelActual","E");
+                if(businessUserId == null){
+                    privateSeaCustomerRecord.put("businessUserId","");
+                    privateSeaCustomerRecord.put("businessUserName","");
+                    privateSeaCustomerRecord.put("seaType","公");
+                }else{
+                    privateSeaCustomerRecord.put("businessUserId",businessUserId);
+                    if(businessUserName!=null && !businessUserName.isEmpty()){
+                        businessUserName = businessUserName.split("-")[0];
+                    }
+                    privateSeaCustomerRecord.put("businessUserName",businessUserName);
+                    privateSeaCustomerRecord.put("seaType","私");
+                }
+
+                privateSeaCustomerRecord.put("testUseFlag","否");
+                try {
+                    yidaService.insertCustomerData(privateSeaCustomerRecord);
+                } catch (Exception e) {
+                    log.error("新增易思达系统客户记录异常",e);
+                }
+
+
+            }
+        }
+
+
+        log.info("客户数据清洗完成");
+    }
+
     /**
      * 客户数据清洗
      */

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

@@ -232,7 +232,7 @@ public class AitableServiceImpl implements AitableService {
 //            System.out.println(JSONObject.toJSONString(customerRecord));
             customerRecord.put("customerLevel",customerLevel);
             customerRecord.put("newOrOld",newOrOld);
-            System.out.println(aiTableId+","+customerLevel+","+newOrOld);
+//            System.out.println(aiTableId+","+customerLevel+","+newOrOld);
             customerData.add(customerRecord);
         }
         log.info("客户名称为空的记录数="+customerEmptyCount);

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

@@ -1200,23 +1200,58 @@ public class YidaServiceImpl implements YidaService {
     public void insertCustomerData(Map row) throws Exception {
         YDParam yidaParam;  //HTTP请求体
         YDParam.YDParamBuilder ydParamBuilder; //宜搭参数构建
+        String customerLevel = "";
+        if(row.get("customerLevel")!=null){
+            customerLevel = row.get("customerLevel").toString();
+        }
+        String businessUserId = "";
         String[] businessUserIdArr = new String[]{};
         if(row.get("businessUserId")!=null){
+            businessUserId = row.get("businessUserId").toString();
             businessUserIdArr = new String[]{row.get("businessUserId").toString()};
         }
+        String businessUserName = "";
+        if(row.get("businessUserName")!=null){
+            businessUserName = row.get("businessUserName").toString();
+        }
+        String[] businessLeaderUserIdArr = new String[]{};
+        if(row.get("businessLeaderUserId")!=null){
+            businessLeaderUserIdArr = new String[]{row.get("businessLeaderUserId").toString()};
+        }
+        String[] businessDepartmentArr = new String[]{};
+        if(row.get("businessDepartment")!=null){
+            businessDepartmentArr = new String[]{row.get("businessDepartment").toString()};
+        }
         Map customerRecord = UtilMap.map(
                 "textField_lqanqe6j, "  //客户公司名(英文名)
+                        +"textField_meks6pjp, " //客户验重
                         +"radioField_md6q7ox8, " //新老客户
+                        +"selectField_mcsoft5i, " //客户当前分级
+                        +"selectField_mhsvnqsv, " //客户潜在等级
                         +"employeeField_lqanqe6n, " //业务
+                        +"textField_mnchujji, " //业务userId
+                        +"textField_lxa0ko5h, " //业务name
+                        +"employeeField_lqx3act6, " //业务组长
+                        +"departmentSelectField_lympbaya, " //业务部门
                         +"radioField_md6q7oxa, " //公海/私海
+                        +"textField_mno9nwip, " //AI表格映射ID
                         +"radioField_mnpdkss9", //测试使用
                 row.get("customerName"),
+                row.get("customerName1UpperCase"),
                 row.get("newOrOld"),
+                row.get("customerLevelActual"),
+                customerLevel,
                 businessUserIdArr,
+                businessUserId,
+                businessUserName,
+                businessLeaderUserIdArr,
+                businessDepartmentArr,
                 row.get("seaType"),
+                row.get("aiTableId"),
                 row.get("testUseFlag")
         );
         String insertFormDataJson = JSONObject.toJSONString(customerRecord);
+        System.out.println(insertFormDataJson);
         ydParamBuilder = YDParam.builder();
         ydParamBuilder = ydParamBuilder.formUuid(EastarParam.YD_FORMUUID_CUSTOMER);
         ydParamBuilder = ydParamBuilder.formDataJson(insertFormDataJson);