|
|
@@ -41,6 +41,214 @@ public class ScheduleTask4 {
|
|
|
@Autowired
|
|
|
private DDCoreClient ddCoreClient;
|
|
|
|
|
|
+ /**
|
|
|
+ * 更新客户的“新”或“老”标识
|
|
|
+ */
|
|
|
+// @Scheduled(cron = "0 44 16 * * ?")
|
|
|
+ public void cleanCustomerNewOrOld20260805() {
|
|
|
+ log.info("更新客户的“新”或“老”标识开始");
|
|
|
+ /*
|
|
|
+ 查询项目总表售前台账数据
|
|
|
+ */
|
|
|
+ log.info("查询项目总表售前台账数据");
|
|
|
+ List<Map> sys1SaleData = new ArrayList<>();
|
|
|
+ try {
|
|
|
+ sys1SaleData = aitableService.querySys1AllSaleData();
|
|
|
+ log.info("项目总表售前台账记录数量="+sys1SaleData.size());
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("查询所有项目总表售前台账数据异常",e);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
+ 筛选实际成单日期在2025年8月1日至2026年8月1日的记录
|
|
|
+ */
|
|
|
+ List<Map> sys1SaleDataFilter = new ArrayList<>();
|
|
|
+ Long actualCloseDate; //实际成单日期
|
|
|
+ for (Map sys1SaleRecord : sys1SaleData){
|
|
|
+ if(sys1SaleRecord.get("actualCloseDate") == null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ actualCloseDate = Long.parseLong(sys1SaleRecord.get("actualCloseDate").toString());
|
|
|
+ if(actualCloseDate >= 1753977600000L && actualCloseDate < 1785513600000L){ //2025-08-01 00:00:00 ~ 2026-08-01 00:00:00
|
|
|
+ sys1SaleDataFilter.add(sys1SaleRecord);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ log.info("实际成单日期在2025年8月1日至2026年8月1日的记录数量="+sys1SaleDataFilter.size());
|
|
|
+
|
|
|
+
|
|
|
+ /*
|
|
|
+ 获取近1年内有成单客户
|
|
|
+ */
|
|
|
+ Set<String> sustomerWithPast1YearOrdersSet = new HashSet<>();
|
|
|
+ String customerId;
|
|
|
+ for (Map sys1SaleRecord : sys1SaleDataFilter){
|
|
|
+ customerId = sys1SaleRecord.get("customerId").toString();
|
|
|
+// System.out.println("客户ID="+customerId);
|
|
|
+ sustomerWithPast1YearOrdersSet.add(customerId);
|
|
|
+ }
|
|
|
+ log.info("近1年内有成单客户数量="+sustomerWithPast1YearOrdersSet.size());
|
|
|
+
|
|
|
+ /*
|
|
|
+ 查询(易思达)客户名册所有记录
|
|
|
+ */
|
|
|
+ log.info("查询(易思达)客户名册所有记录");
|
|
|
+ List<Map> ltcCustomerData = new ArrayList<>();
|
|
|
+ try {
|
|
|
+ ltcCustomerData = yidaService.queryLtcAllCustomerData();
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("查询(易思达)客户名册异常",e);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
+ 修改新老客户
|
|
|
+ */
|
|
|
+ int count = 0;
|
|
|
+ String formInstId;
|
|
|
+ String aiTableId;
|
|
|
+ String customerName;
|
|
|
+ String newOrOld;
|
|
|
+ for (Map ltcCustomerRecord : ltcCustomerData){
|
|
|
+ if (ltcCustomerRecord.get("aiTableId") == null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ aiTableId = ltcCustomerRecord.get("aiTableId").toString();
|
|
|
+ customerName = "未知客户";
|
|
|
+ if (ltcCustomerRecord.get("customerName") != null){
|
|
|
+ customerName = ltcCustomerRecord.get("customerName").toString();
|
|
|
+ }
|
|
|
+ newOrOld = "";
|
|
|
+ if(ltcCustomerRecord.get("newOrOld") != null){
|
|
|
+ newOrOld = ltcCustomerRecord.get("newOrOld").toString();
|
|
|
+ }
|
|
|
+ if("不合作".equals(newOrOld)){
|
|
|
+// System.out.println("不合作客户:"+customerName);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ formInstId = ltcCustomerRecord.get("formInstId").toString();
|
|
|
+ if (sustomerWithPast1YearOrdersSet.contains(aiTableId)){
|
|
|
+ //老客户
|
|
|
+ if(!newOrOld.equals("老")){
|
|
|
+ count++;
|
|
|
+ try {
|
|
|
+ System.out.println("修改为老客户:"+customerName);
|
|
|
+ yidaService.updateLtcCustomerNewOrOld(formInstId, "老");
|
|
|
+ Thread.sleep(3000);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("修改为老客户异常",e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }else{
|
|
|
+ //新客户
|
|
|
+ if(!newOrOld.equals("新")){
|
|
|
+ count++;
|
|
|
+ try {
|
|
|
+ System.out.println("修改为新客户:"+customerName);
|
|
|
+ yidaService.updateLtcCustomerNewOrOld(formInstId, "新");
|
|
|
+ Thread.sleep(3000);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("修改为新客户异常",e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ log.info("更新数量="+count);
|
|
|
+
|
|
|
+ log.info("更新客户的“新”或“老”标识结束");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 清洗客户(下过单客户)数据
|
|
|
+ */
|
|
|
+// @Scheduled(cron = "0 50 10 * * ?")
|
|
|
+ public void cleanCustomerWithPastOrders20260805() {
|
|
|
+ log.info("清洗客户(下过单客户)数据开始");
|
|
|
+ /*
|
|
|
+ 查询项目总表售前台账数据
|
|
|
+ */
|
|
|
+ log.info("查询项目总表售前台账数据");
|
|
|
+ List<Map> sys1SaleData = new ArrayList<>();
|
|
|
+ try {
|
|
|
+ sys1SaleData = aitableService.querySys1AllSaleData();
|
|
|
+ log.info("项目总表售前台账记录数量="+sys1SaleData.size());
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("查询所有项目总表售前台账数据异常",e);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
+ 筛选实际成单日期不为空且早于2026年8月1日前的记录
|
|
|
+ */
|
|
|
+ List<Map> sys1SaleDataFilter = new ArrayList<>();
|
|
|
+ Long actualCloseDate; //实际成单日期
|
|
|
+ for (Map sys1SaleRecord : sys1SaleData){
|
|
|
+ if(sys1SaleRecord.get("actualCloseDate") == null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ actualCloseDate = Long.parseLong(sys1SaleRecord.get("actualCloseDate").toString());
|
|
|
+ if(actualCloseDate < 1785513600000L){ //2026-08-01 00:00:00
|
|
|
+ sys1SaleDataFilter.add(sys1SaleRecord);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ log.info("实际成单日期早于2026年8月1日前的记录数量="+sys1SaleDataFilter.size());
|
|
|
+
|
|
|
+ /*
|
|
|
+ 获取已成单售前台账关联客户
|
|
|
+ */
|
|
|
+ Set<String> sustomerWithPastOrdersSet = new HashSet<>();
|
|
|
+ String customerId;
|
|
|
+ for (Map sys1SaleRecord : sys1SaleDataFilter){
|
|
|
+ customerId = sys1SaleRecord.get("customerId").toString();
|
|
|
+// System.out.println("客户ID="+customerId);
|
|
|
+ sustomerWithPastOrdersSet.add(customerId);
|
|
|
+ }
|
|
|
+ log.info("已成单售前台账关联客户数量="+sustomerWithPastOrdersSet.size());
|
|
|
+
|
|
|
+ /*
|
|
|
+ 查询(易思达)客户名册所有记录
|
|
|
+ */
|
|
|
+ log.info("查询(易思达)客户名册所有记录");
|
|
|
+ List<Map> ltcCustomerData = new ArrayList<>();
|
|
|
+ try {
|
|
|
+ ltcCustomerData = yidaService.queryLtcAllCustomerData();
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("查询(易思达)客户名册异常",e);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
+ 更新下过单客户
|
|
|
+ */
|
|
|
+ String formInstId;
|
|
|
+ String aiTableId;
|
|
|
+ boolean isMatch;
|
|
|
+ for(String customerRelatedAiTableId : sustomerWithPastOrdersSet){
|
|
|
+ isMatch = false;
|
|
|
+ for (int i = 0; i < ltcCustomerData.size(); i++) {
|
|
|
+ if(ltcCustomerData.get(i).get("aiTableId") == null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ aiTableId = ltcCustomerData.get(i).get("aiTableId").toString();
|
|
|
+ if(aiTableId.equals(customerRelatedAiTableId)){
|
|
|
+ isMatch = true;
|
|
|
+ try {
|
|
|
+ formInstId = ltcCustomerData.get(i).get("formInstId").toString();
|
|
|
+ System.out.println("更新下过单客户:"+ltcCustomerData.get(i).get("customerName").toString());
|
|
|
+ yidaService.updateCustomerWithOrders(formInstId);
|
|
|
+ Thread.sleep(3000);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("更新下过单客户异常",e);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!isMatch){
|
|
|
+ System.out.println("未匹配到客户ID="+customerRelatedAiTableId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ log.info("清洗客户(下过单客户)数据结束");
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 清洗客户(客户验重)数据
|