ScheduleTaskNew.java 60 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365
  1. package com.malk.eastar.schedule;
  2. import cn.hutool.core.date.DateUtil;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.malk.eastar.service.AitableService;
  5. import com.malk.eastar.service.DDCoreClient;
  6. import com.malk.eastar.service.YidaService;
  7. import com.malk.utils.UtilMap;
  8. import lombok.extern.slf4j.Slf4j;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
  11. import org.springframework.context.annotation.Configuration;
  12. import org.springframework.scheduling.annotation.EnableScheduling;
  13. import org.springframework.scheduling.annotation.Scheduled;
  14. import java.util.*;
  15. /**
  16. * 新的定时任务
  17. */
  18. @Slf4j
  19. @Configuration
  20. @EnableScheduling
  21. @ConditionalOnProperty(name = {"enable.scheduling"})
  22. public class ScheduleTaskNew {
  23. @Autowired
  24. private DDCoreClient ddCoreClient;
  25. @Autowired
  26. private AitableService aitableService;
  27. @Autowired
  28. private YidaService yidaService;
  29. /**
  30. * 更新员工在职情况
  31. */
  32. @Scheduled(cron = "0 0 6 * * ?")
  33. public void updateEmployeeStatus() {
  34. log.info("更新员工在职情况");
  35. /*
  36. 查询业务小组档案中的成员信息
  37. */
  38. List<Map> ltcBusinessUserData = new ArrayList<>();
  39. try {
  40. ltcBusinessUserData = yidaService.queryLtcAllBusinessUserData();
  41. } catch (Exception e) {
  42. log.error("查询业务小组档案中的成员信息异常",e);
  43. }
  44. /*
  45. 查询最近一周的离职人员
  46. */
  47. List<Map<String, String>> leaveEmployeeData = new ArrayList<>();
  48. try {
  49. Date startTime = DateUtil.lastWeek();
  50. Date endTime = DateUtil.yesterday();
  51. leaveEmployeeData = ddCoreClient.getLeaveEmployeeData(startTime, endTime);
  52. if(leaveEmployeeData.isEmpty()){
  53. log.info("最近一周没有人员离职");
  54. }else{
  55. log.info("最近一周有离职人员");
  56. log.info(JSONObject.toJSONString(leaveEmployeeData));
  57. }
  58. } catch (Exception e) {
  59. log.error("查询最近一周的离职人员异常",e);
  60. }
  61. try {
  62. /*
  63. 业务员已离职,更新状态
  64. */
  65. if(!leaveEmployeeData.isEmpty()){
  66. for (Map bu : ltcBusinessUserData){
  67. for (int i = 0; i < leaveEmployeeData.size(); i++) {
  68. if(UtilMap.getString(bu, "userId").equals(UtilMap.getString(leaveEmployeeData.get(i), "userId"))){
  69. yidaService.setLtcBusinessUserLeave(UtilMap.getString(bu, "formInstId"));
  70. log.info("更新业务小组档案[userId={}]记录在职情况为已离职",UtilMap.getString(bu, "userId"));
  71. break;
  72. }
  73. }
  74. }
  75. }
  76. } catch (Exception e) {
  77. log.error("更新员工在职情况异常",e);
  78. }
  79. }
  80. /**
  81. * 客户数据清洗
  82. */
  83. // @Scheduled(cron = "0 18 19 * * ?")
  84. public void cleanCustomerData20260509() {
  85. /*
  86. 查询(易思达)客户名册所有记录
  87. */
  88. log.info("查询(易思达)客户名册所有记录");
  89. List<Map> ltcCustomerData = new ArrayList<>();
  90. try {
  91. ltcCustomerData = yidaService.queryLtcAllCustomerData();
  92. } catch (Exception e) {
  93. log.error("查询(易思达)客户名册异常",e);
  94. }
  95. /*
  96. 更新字段:
  97. 进入私海时间、最后跟进时间
  98. */
  99. String formInstId;
  100. long privateSeaTime;
  101. long lastContactTime;
  102. for (Map ltcCustomerRecord : ltcCustomerData){
  103. formInstId = UtilMap.getString(ltcCustomerRecord, "formInstId");
  104. System.out.println(ltcCustomerRecord.get("customerName").toString());
  105. try {
  106. privateSeaTime = DateUtil.current();
  107. lastContactTime = privateSeaTime;
  108. yidaService.updateLtcCustomerBasicInfo8(formInstId,privateSeaTime,lastContactTime);
  109. } catch (Exception e) {
  110. log.error("更新易思达系统客户记录异常",e);
  111. }
  112. }
  113. log.info("客户数据清洗完成");
  114. }
  115. /**
  116. * 客户数据清洗
  117. */
  118. // @Scheduled(cron = "0 40 18 * * ?")
  119. public void cleanCustomerData20260430() {
  120. /*
  121. 从项目总表(系统1)获取客户数据
  122. */
  123. List<Map> sys1CustomerData = new ArrayList<>(); // 项目总表客户数据
  124. try {
  125. sys1CustomerData = aitableService.querySys1CustomerData();
  126. log.info("项目总表客户数量="+sys1CustomerData.size());
  127. } catch (Exception e) {
  128. log.error("查询项目总表客户数据异常",e);
  129. }
  130. /*
  131. 查询业务小组档案中的成员信息
  132. */
  133. List<Map> ltcBusinessUserData = new ArrayList<>();
  134. try {
  135. ltcBusinessUserData = yidaService.queryLtcAllBusinessUserData();
  136. } catch (Exception e) {
  137. log.error("查询业务小组档案中的成员信息异常",e);
  138. }
  139. String aiTableId; //AI表格ID
  140. String customerName1;
  141. Object businessUserUnionId;
  142. String businessUserId;
  143. String customerLevel;
  144. String newOrOld;
  145. String businessLeaderUserId;
  146. String businessDepartment;
  147. List deptIdList;
  148. // for (Map sys1CustomerRecord : sys1CustomerData) {
  149. // aiTableId = "";
  150. // businessUserId = "";
  151. // customerLevel = "";
  152. // newOrOld = "";
  153. // businessLeaderUserId = "";
  154. // businessDepartment = "";
  155. // if (sys1CustomerRecord.get("aiTableId") != null) {
  156. // aiTableId = sys1CustomerRecord.get("aiTableId").toString();
  157. // }
  158. // if (sys1CustomerRecord.get("customerName") != null) {
  159. // customerName1 = sys1CustomerRecord.get("customerName").toString();
  160. // if("Big Sky Games Limited".equals(customerName1)){
  161. // businessUserUnionId = sys1CustomerRecord.get("businessUserUnionId");
  162. // if (businessUserUnionId != null) {
  163. // try {
  164. // businessUserId = ddCoreClient.getUserIdByUnionId(businessUserUnionId.toString());
  165. // if(businessUserId.isEmpty()){
  166. // throw new RuntimeException("businessUserUserId为空");
  167. // }
  168. // } catch (Exception e) {
  169. // log.error("没有找到业务员unionId["+businessUserUnionId+"]对应的userId");
  170. // }
  171. // }
  172. // if(businessUserId!=null && !businessUserId.isEmpty()){
  173. // for (int i = 0; i < ltcBusinessUserData.size(); i++) {
  174. // if(UtilMap.getString(ltcBusinessUserData.get(i), "userId").equals(businessUserId)){
  175. // businessLeaderUserId = UtilMap.getString(ltcBusinessUserData.get(i), "businessLeaderUserId");
  176. // if(businessLeaderUserId.isEmpty()){
  177. // businessLeaderUserId = null;
  178. // }
  179. // break;
  180. // }
  181. // }
  182. // try {
  183. // deptIdList = ddCoreClient.getDeptIdListByUserId(businessUserId);
  184. // if(deptIdList!=null && !deptIdList.isEmpty()){
  185. // businessDepartment = String.valueOf(deptIdList.get(0));
  186. // }
  187. // if(businessDepartment.isEmpty()){
  188. // businessDepartment = null;
  189. // }
  190. // } catch (Exception e) {
  191. // log.error("获取业务userId与业务部门映射异常",e);
  192. // }
  193. // }
  194. // if (sys1CustomerRecord.get("customerLevel") != null) {
  195. // customerLevel = sys1CustomerRecord.get("customerLevel").toString();
  196. // }
  197. // if (sys1CustomerRecord.get("newOrOld") != null) {
  198. // newOrOld = sys1CustomerRecord.get("newOrOld").toString();
  199. // }
  200. // System.out.println("aiTableId="+aiTableId+",customerName1="+customerName1
  201. // +",businessUserId="+businessUserId+",customerLevel="+customerLevel
  202. // +",newOrOld="+newOrOld+",businessLeaderUserId="+businessLeaderUserId
  203. // +",businessDepartment="+businessDepartment);
  204. // }
  205. // }
  206. // }
  207. /*
  208. 查询(易思达)客户名册所有记录
  209. */
  210. log.info("查询(易思达)客户名册所有记录");
  211. List<Map> ltcCustomerData = new ArrayList<>();
  212. try {
  213. ltcCustomerData = yidaService.queryLtcAllCustomerData();
  214. } catch (Exception e) {
  215. log.error("查询(易思达)客户名册异常",e);
  216. }
  217. /*
  218. 寻找易思达系统不存在的客户,并新增
  219. */
  220. List<Map> ltcCustomerAddData = new ArrayList<>();
  221. Map<String,List<Map>> customerNameUpperCaseMap = new HashMap<>();
  222. String customerName1UpperCase;
  223. String customerName2;
  224. String customerName2UpperCase;
  225. List<Map> maplist;
  226. for (Map sys1CustomerRecord : sys1CustomerData){
  227. if(sys1CustomerRecord.get("customerName")!= null){
  228. customerName1 = sys1CustomerRecord.get("customerName").toString();
  229. if(!customerName1.isEmpty()){
  230. /*
  231. 按大写客户名称归类
  232. */
  233. customerName1UpperCase = customerName1.replaceAll(" ","").toUpperCase();
  234. if(customerNameUpperCaseMap.containsKey(customerName1UpperCase)){
  235. maplist = customerNameUpperCaseMap.get(customerName1UpperCase);
  236. }else{
  237. maplist = new ArrayList<>();
  238. }
  239. maplist.add(sys1CustomerRecord);
  240. customerNameUpperCaseMap.put(customerName1UpperCase,maplist);
  241. }
  242. }
  243. }
  244. boolean isExist;
  245. for(String customerNameUpperCase : customerNameUpperCaseMap.keySet()){
  246. isExist = false;
  247. for (int i=0; i<ltcCustomerData.size(); i++){
  248. customerName2 = ltcCustomerData.get(i).get("customerName").toString();
  249. customerName2UpperCase = customerName2.replaceAll(" ","").toUpperCase();
  250. if(customerNameUpperCase.equals(customerName2UpperCase)){
  251. isExist = true;
  252. break;
  253. }
  254. }
  255. if(!isExist){
  256. ltcCustomerAddData.add(customerNameUpperCaseMap.get(customerNameUpperCase).get(0));
  257. }
  258. }
  259. String businessUserName;
  260. Map privateSeaCustomerRecord;
  261. for(Map ltcCustomerAddRecord : ltcCustomerAddData){
  262. // System.out.println(JSONObject.toJSONString(ltcCustomerAddRecord));
  263. aiTableId = "";
  264. businessUserId = null;
  265. businessUserName = "";
  266. customerLevel = "";
  267. newOrOld = "";
  268. businessLeaderUserId = null;
  269. businessDepartment = null;
  270. if (ltcCustomerAddRecord.get("customerName") != null) {
  271. customerName1 = ltcCustomerAddRecord.get("customerName").toString();
  272. if (ltcCustomerAddRecord.get("aiTableId") != null) {
  273. aiTableId = ltcCustomerAddRecord.get("aiTableId").toString();
  274. }
  275. if (ltcCustomerAddRecord.get("businessUserName") != null) {
  276. businessUserName = ltcCustomerAddRecord.get("businessUserName").toString();
  277. }
  278. businessUserUnionId = ltcCustomerAddRecord.get("businessUserUnionId");
  279. if (businessUserUnionId != null) {
  280. try {
  281. businessUserId = ddCoreClient.getUserIdByUnionId(businessUserUnionId.toString());
  282. if(businessUserId.isEmpty()){
  283. throw new RuntimeException("businessUserUserId为空");
  284. }
  285. } catch (Exception e) {
  286. log.error("没有找到业务员unionId["+businessUserUnionId+"]对应的userId");
  287. }
  288. }
  289. if(businessUserId!=null && !businessUserId.isEmpty()){
  290. for (int i = 0; i < ltcBusinessUserData.size(); i++) {
  291. if(UtilMap.getString(ltcBusinessUserData.get(i), "userId").equals(businessUserId)){
  292. businessLeaderUserId = UtilMap.getString(ltcBusinessUserData.get(i), "businessLeaderUserId");
  293. if(businessLeaderUserId.isEmpty()){
  294. businessLeaderUserId = null;
  295. }
  296. break;
  297. }
  298. }
  299. try {
  300. deptIdList = ddCoreClient.getDeptIdListByUserId(businessUserId);
  301. if(deptIdList!=null && !deptIdList.isEmpty()){
  302. businessDepartment = String.valueOf(deptIdList.get(0));
  303. }
  304. if(businessDepartment.isEmpty()){
  305. businessDepartment = null;
  306. }
  307. } catch (Exception e) {
  308. log.error("获取业务userId与业务部门映射异常",e);
  309. }
  310. }else{
  311. businessUserId = null;
  312. }
  313. if (ltcCustomerAddRecord.get("customerLevel") != null) {
  314. customerLevel = ltcCustomerAddRecord.get("customerLevel").toString();
  315. }
  316. if (ltcCustomerAddRecord.get("newOrOld") != null) {
  317. newOrOld = ltcCustomerAddRecord.get("newOrOld").toString();
  318. }
  319. System.out.println("businessUserName="+businessUserName+",aiTableId="+aiTableId+",customerName1="+customerName1
  320. +",businessUserId="+businessUserId+",customerLevel="+customerLevel
  321. +",newOrOld="+newOrOld+",businessLeaderUserId="+businessLeaderUserId
  322. +",businessDepartment="+businessDepartment);
  323. privateSeaCustomerRecord = new HashMap();
  324. privateSeaCustomerRecord.put("customerName",customerName1);
  325. customerName1UpperCase = customerName1.replaceAll(" ","").toUpperCase();
  326. privateSeaCustomerRecord.put("customerName1UpperCase",customerName1UpperCase);
  327. privateSeaCustomerRecord.put("businessLeaderUserId",businessLeaderUserId);
  328. privateSeaCustomerRecord.put("businessDepartment",businessDepartment);
  329. privateSeaCustomerRecord.put("newOrOld",newOrOld);
  330. privateSeaCustomerRecord.put("customerLevel",customerLevel);
  331. privateSeaCustomerRecord.put("aiTableId",aiTableId);
  332. privateSeaCustomerRecord.put("customerLevelActual","E");
  333. if(businessUserId == null){
  334. privateSeaCustomerRecord.put("businessUserId","");
  335. privateSeaCustomerRecord.put("businessUserName","");
  336. privateSeaCustomerRecord.put("seaType","公");
  337. }else{
  338. privateSeaCustomerRecord.put("businessUserId",businessUserId);
  339. if(businessUserName!=null && !businessUserName.isEmpty()){
  340. businessUserName = businessUserName.split("-")[0];
  341. }
  342. privateSeaCustomerRecord.put("businessUserName",businessUserName);
  343. privateSeaCustomerRecord.put("seaType","私");
  344. }
  345. privateSeaCustomerRecord.put("testUseFlag","否");
  346. try {
  347. yidaService.insertCustomerData(privateSeaCustomerRecord);
  348. } catch (Exception e) {
  349. log.error("新增易思达系统客户记录异常",e);
  350. }
  351. }
  352. }
  353. log.info("客户数据清洗完成");
  354. }
  355. /**
  356. * 客户数据清洗
  357. */
  358. // @Scheduled(cron = "0 7 9 * * ?")
  359. public void cleanCustomerData20260428() {
  360. /*
  361. 查询(易思达)客户名册所有记录
  362. */
  363. log.info("查询(易思达)客户名册所有记录");
  364. List<Map> ltcCustomerData = new ArrayList<>();
  365. try {
  366. ltcCustomerData = yidaService.queryLtcAllCustomerData();
  367. } catch (Exception e) {
  368. log.error("查询(易思达)客户名册异常",e);
  369. }
  370. /*
  371. 更新字段:
  372. 客户当前分级、客户潜在等级、上一年分级、AI表格映射ID
  373. */
  374. String formInstId;
  375. String customerLevel; //客户当前分级
  376. String customerPotentialLevel; //客户潜在等级
  377. for (Map ltcCustomerRecord : ltcCustomerData){
  378. formInstId = UtilMap.getString(ltcCustomerRecord, "formInstId");
  379. customerPotentialLevel = UtilMap.getString(ltcCustomerRecord, "customerPotentialLevel");
  380. if(
  381. "A".equals(customerPotentialLevel)
  382. ||"B".equals(customerPotentialLevel)
  383. ||"C".equals(customerPotentialLevel)
  384. ||"D".equals(customerPotentialLevel)
  385. ){
  386. customerPotentialLevel = "潜"+customerPotentialLevel;
  387. }else if("E".equals(customerPotentialLevel)){
  388. customerPotentialLevel = "保稳E";
  389. }else if(
  390. "潜A".equals(customerPotentialLevel)
  391. ||"潜B".equals(customerPotentialLevel)
  392. ||"潜C".equals(customerPotentialLevel)
  393. ||"潜D".equals(customerPotentialLevel)
  394. ||"保稳E".equals(customerPotentialLevel)
  395. ){
  396. //不变
  397. }else{
  398. customerPotentialLevel = "";
  399. }
  400. customerLevel = customerPotentialLevel;
  401. try {
  402. yidaService.updateLtcCustomerBasicInfo7(formInstId,customerLevel,customerPotentialLevel);
  403. } catch (Exception e) {
  404. log.error("更新易思达系统客户记录异常",e);
  405. }
  406. }
  407. log.info("客户数据清洗完成");
  408. }
  409. /**
  410. * 客户数据清洗
  411. */
  412. // @Scheduled(cron = "0 45 16 * * ?")
  413. public void cleanCustomerData20260427() {
  414. /*
  415. 查询(易思达)客户名册所有记录
  416. */
  417. log.info("查询(易思达)客户名册所有记录");
  418. List<Map> ltcCustomerData = new ArrayList<>();
  419. try {
  420. ltcCustomerData = yidaService.queryLtcAllCustomerData();
  421. } catch (Exception e) {
  422. log.error("查询(易思达)客户名册异常",e);
  423. }
  424. /*
  425. 更新字段:
  426. 客户当前分级、客户潜在等级、上一年分级、AI表格映射ID
  427. */
  428. String formInstId;
  429. // for (Map ltcCustomerRecord : ltcCustomerData){
  430. // formInstId = UtilMap.getString(ltcCustomerRecord, "formInstId");
  431. // if(ltcCustomerRecord.get("aiTableId")!=null && !ltcCustomerRecord.get("aiTableId").toString().isEmpty()){
  432. // try {
  433. // yidaService.updateLtcCustomerBasicInfo5(formInstId,"","","","");
  434. // } catch (Exception e) {
  435. // log.error("更新易思达系统客户记录异常",e);
  436. // }
  437. // }
  438. // }
  439. /*
  440. 新老客户信息
  441. */
  442. Map<String,String> ltcCustomerNewOrOldMap = new HashMap<>();
  443. String ltcCustomeNameUpper;
  444. String ltcNewOrOld;
  445. for (Map ltcCustomerRecord : ltcCustomerData){
  446. ltcCustomeNameUpper = ltcCustomerRecord.get("customerName").toString().replaceAll(" ","").toUpperCase();
  447. if(ltcCustomerRecord.get("newOrOld")==null){
  448. ltcNewOrOld = "";
  449. }else{
  450. ltcNewOrOld = ltcCustomerRecord.get("newOrOld").toString();
  451. }
  452. ltcCustomerNewOrOldMap.put(ltcCustomeNameUpper, ltcNewOrOld);
  453. }
  454. /*
  455. 从项目总表(系统1)获取客户数据
  456. */
  457. List<Map> sys1CustomerData = new ArrayList<>(); // 项目总表客户数据
  458. try {
  459. sys1CustomerData = aitableService.querySys1CustomerData();
  460. log.info("项目总表客户数量="+sys1CustomerData.size());
  461. } catch (Exception e) {
  462. log.error("查询项目总表客户数据异常",e);
  463. }
  464. /*
  465. 获取项目总表客户数据,按大写客户名称分组
  466. */
  467. Map<String,List<Map>> customerNameUpperCaseMap = new HashMap<>();
  468. String customerName1;
  469. String customerName1UpperCase;
  470. List<Map> maplist;
  471. for (Map sys1CustomerRecord : sys1CustomerData){
  472. if(sys1CustomerRecord.get("customerName")!= null){
  473. customerName1 = sys1CustomerRecord.get("customerName").toString();
  474. if(!customerName1.isEmpty()){
  475. /*
  476. 按大写客户名称归类
  477. */
  478. customerName1UpperCase = customerName1.replaceAll(" ","").toUpperCase();
  479. if(customerNameUpperCaseMap.containsKey(customerName1UpperCase)){
  480. maplist = customerNameUpperCaseMap.get(customerName1UpperCase);
  481. }else{
  482. maplist = new ArrayList<>();
  483. }
  484. maplist.add(sys1CustomerRecord);
  485. customerNameUpperCaseMap.put(customerName1UpperCase,maplist);
  486. }
  487. }
  488. }
  489. System.out.println("大写客户名称数量="+customerNameUpperCaseMap.keySet().size());
  490. /*
  491. 遍历易思达客户数据
  492. */
  493. String customerName2;
  494. String customerName2UpperCase;
  495. String customerNames;
  496. String customerLevel; //客户当前分级
  497. String customerNewOrOld; //新老客户
  498. String aiTableId; //AI表格映射ID
  499. for (Map ltcCustomerRecord : ltcCustomerData){
  500. customerName2 = ltcCustomerRecord.get("customerName").toString();
  501. customerName2UpperCase = customerName2.replaceAll(" ","").toUpperCase();
  502. if(customerNameUpperCaseMap.containsKey(customerName2UpperCase)){
  503. /*
  504. 获取新系统和项目总表共有的客户(可能匹配到多个)
  505. */
  506. maplist = customerNameUpperCaseMap.get(customerName2UpperCase);
  507. if(maplist!=null && !maplist.isEmpty()){
  508. if(maplist.size()==1){
  509. formInstId = UtilMap.getString(ltcCustomerRecord, "formInstId");
  510. aiTableId = maplist.get(0).get("aiTableId").toString();
  511. customerLevel = maplist.get(0).get("customerLevel").toString();
  512. customerNewOrOld = maplist.get(0).get("newOrOld").toString();
  513. if(!customerNewOrOld.equals(ltcCustomerNewOrOldMap.get(customerName2UpperCase))){
  514. if(!"不合作".equals(ltcCustomerNewOrOldMap.get(customerName2UpperCase))){
  515. System.out.println("易思达客户["+customerName2+"]:"+ltcCustomerNewOrOldMap.get(customerName2UpperCase)+",项目总表客户["+maplist.get(0).get("customerName").toString()+"]:"+customerNewOrOld);
  516. }else{
  517. customerNewOrOld = "不合作";
  518. }
  519. }
  520. try {
  521. yidaService.updateLtcCustomerBasicInfo6(formInstId,"保稳E",customerLevel,customerNewOrOld,aiTableId);
  522. } catch (Exception e) {
  523. log.error("更新易思达系统客户记录异常",e);
  524. }
  525. }else{
  526. customerNames = maplist.get(0).get("customerName").toString();
  527. for(int i=1; i<maplist.size(); i++){
  528. customerNames += ","+maplist.get(0).get("customerName").toString();
  529. }
  530. System.out.println(customerName2UpperCase+"匹配到多条项目总表记录:"+customerNames);
  531. }
  532. }
  533. }
  534. }
  535. log.info("客户数据清洗完成");
  536. }
  537. /**
  538. * 客户数据清洗
  539. */
  540. // @Scheduled(cron = "0 57 16 * * ?")
  541. public void cleanCustomerData20260424() {
  542. /*
  543. 查询(易思达)客户名册所有记录
  544. */
  545. log.info("查询(易思达)客户名册所有记录");
  546. List<Map> ltcCustomerData = new ArrayList<>();
  547. try {
  548. ltcCustomerData = yidaService.queryLtcAllCustomerData();
  549. } catch (Exception e) {
  550. log.error("查询(易思达)客户名册异常",e);
  551. }
  552. /*
  553. 查询业务小组档案中的成员信息
  554. */
  555. List<Map> ltcBusinessUserData = new ArrayList<>();
  556. try {
  557. ltcBusinessUserData = yidaService.queryLtcAllBusinessUserData();
  558. } catch (Exception e) {
  559. log.error("查询业务小组档案中的成员信息异常",e);
  560. }
  561. /*
  562. 获取业务userId与名称、业务部门映射
  563. */
  564. Map<String,String> businessUserIdDeptIdMap = new HashMap<>();
  565. Map<String,String> businessUserIdNameMap = new HashMap<>();
  566. String businessUserId;
  567. for (Map ltcCustomerRecord : ltcCustomerData){
  568. businessUserId = UtilMap.getString(ltcCustomerRecord, "userId");
  569. if(!businessUserId.isEmpty()){
  570. if(!businessUserIdDeptIdMap.containsKey(businessUserId)){
  571. businessUserIdDeptIdMap.put(businessUserId,"");
  572. }
  573. if(!businessUserIdNameMap.containsKey(businessUserId)){
  574. businessUserIdNameMap.put(businessUserId,"");
  575. }
  576. }
  577. }
  578. List deptIdList;
  579. for (String userId : businessUserIdDeptIdMap.keySet()) {
  580. try {
  581. deptIdList = ddCoreClient.getDeptIdListByUserId(userId);
  582. if(!deptIdList.isEmpty()){
  583. businessUserIdDeptIdMap.put(userId, String.valueOf(deptIdList.get(0)));
  584. }
  585. } catch (Exception e) {
  586. // log.error("获取业务userId与业务部门映射异常",e);
  587. }
  588. }
  589. for (String userId : businessUserIdNameMap.keySet()) {
  590. try {
  591. businessUserIdNameMap.put(userId,ddCoreClient.getNameByUserId(userId));
  592. } catch (Exception e) {
  593. // log.error("获取业务userId与名称映射异常",e);
  594. }
  595. }
  596. /*
  597. 更新字段:
  598. 业务userId、负责人文本、业务组长、业务部门
  599. */
  600. String formInstId;
  601. String testUseFlag;
  602. String userId;
  603. String businessName;
  604. String businessLeaderUserId;
  605. String businessDepartment;
  606. for (Map ltcCustomerRecord : ltcCustomerData){
  607. testUseFlag = UtilMap.getString(ltcCustomerRecord, "testUseFlag");
  608. if(testUseFlag.equals("否")){
  609. formInstId = UtilMap.getString(ltcCustomerRecord, "formInstId");
  610. userId = UtilMap.getString(ltcCustomerRecord, "userId");
  611. if(userId != null && !userId.isEmpty()){
  612. businessName = businessUserIdNameMap.get(userId);
  613. businessLeaderUserId = null;
  614. for (int i = 0; i < ltcBusinessUserData.size(); i++) {
  615. if(UtilMap.getString(ltcBusinessUserData.get(i), "userId").equals(userId)){
  616. businessLeaderUserId = UtilMap.getString(ltcBusinessUserData.get(i), "businessLeaderUserId");
  617. if(businessLeaderUserId.isEmpty()){
  618. businessLeaderUserId = null;
  619. }
  620. break;
  621. }
  622. }
  623. businessDepartment = businessUserIdDeptIdMap.get(userId);
  624. if(businessDepartment.isEmpty()){
  625. businessDepartment = null;
  626. }
  627. }else{
  628. userId = "";
  629. businessName = "";
  630. businessLeaderUserId = null;
  631. businessDepartment = null;
  632. }
  633. try {
  634. yidaService.updateLtcCustomerBasicInfo4(formInstId,userId,businessName,businessLeaderUserId,businessDepartment);
  635. } catch (Exception e) {
  636. log.error("更新易思达系统客户记录异常",e);
  637. }
  638. }
  639. }
  640. log.info("客户数据清洗完成");
  641. }
  642. /**
  643. * 客户数据清洗
  644. */
  645. // @Scheduled(cron = "0 35 18 * * ?")
  646. public void cleanCustomerData() {
  647. /*
  648. 从项目总表(系统1)获取客户数据
  649. */
  650. List<Map> sys1CustomerData = new ArrayList<>(); // 项目总表客户数据
  651. try {
  652. sys1CustomerData = aitableService.querySys1CustomerData();
  653. log.info("参与比对的项目总表客户数量="+sys1CustomerData.size());
  654. } catch (Exception e) {
  655. log.error("查询项目总表客户数据异常",e);
  656. }
  657. /*
  658. 汇总业务员unionId,一一找到对应的业务员userId
  659. */
  660. Map<String,String> unionIdUserIdMap = new HashMap<>();
  661. String businessUserUnionId;
  662. String businessUserId;
  663. for (Map<String, String> record : sys1CustomerData) {
  664. businessUserUnionId = record.get("businessUserUnionId");
  665. if (businessUserUnionId != null && !businessUserUnionId.isEmpty()) {
  666. unionIdUserIdMap.put(businessUserUnionId, "");
  667. }
  668. }
  669. for (Map.Entry<String, String> entry : unionIdUserIdMap.entrySet()) {
  670. businessUserUnionId = entry.getKey();
  671. try {
  672. businessUserId = ddCoreClient.getUserIdByUnionId(businessUserUnionId);
  673. if(businessUserId.isEmpty()){
  674. throw new RuntimeException("businessUserUserId为空");
  675. }
  676. unionIdUserIdMap.put(businessUserUnionId,businessUserId);
  677. } catch (Exception e) {
  678. // log.error("获取业务员unionId["+businessUserUnionId+"]对应的userId异常",e);
  679. log.error("没有找到业务员unionId["+businessUserUnionId+"]对应的userId");
  680. }
  681. }
  682. for (Map<String, String> record : sys1CustomerData) {
  683. businessUserUnionId = record.get("businessUserUnionId");
  684. if (businessUserUnionId != null && !businessUserUnionId.isEmpty()) {
  685. record.put("businessUserId",unionIdUserIdMap.get(businessUserUnionId));
  686. }
  687. }
  688. /*
  689. 从EASTAR业务数字化(系统2)获取客户数据
  690. */
  691. List<Map> sys2CustomerData = new ArrayList<>(); // EASTAR业务数字化客户数据
  692. try {
  693. sys2CustomerData = yidaService.querySys2CustomerData();
  694. log.info("参与比对的EASTAR业务数字化客户数量="+sys2CustomerData.size());
  695. } catch (Exception e) {
  696. log.error("查询EASTAR业务数字化客户数据异常",e);
  697. }
  698. //更新客户数据清洗中的多行记录(客户名册part2)
  699. // try {
  700. // yidaService.updateSys1Sys2CustomerPart2Data(sys2CustomerData);
  701. // } catch (Exception e) {
  702. // log.error("更新客户数据清洗中的多行记录(客户名册part2)异常",e);
  703. // }
  704. /*
  705. 对比两个系统的客户数据,找到系统1独有的客户数据,系统2独有的客户数据,以及系统1和系统2有相同客户名称的客户数据
  706. */
  707. String customerName;
  708. List<String> sys1CustomerNames = new ArrayList<>();
  709. for (Map<String, String> record : sys1CustomerData) {
  710. customerName = record.get("customerName");
  711. if (customerName != null && !customerName.isEmpty()) {
  712. sys1CustomerNames.add(customerName);
  713. }
  714. }
  715. List<String> sys2CustomerNames = new ArrayList<>();
  716. for (Map<String, String> record : sys2CustomerData) {
  717. customerName = record.get("customerName");
  718. if (customerName != null && !customerName.isEmpty()) {
  719. sys2CustomerNames.add(customerName);
  720. }
  721. }
  722. List<String> onlyInSys1 = new ArrayList<>(sys1CustomerNames);
  723. onlyInSys1.removeAll(sys2CustomerNames);
  724. List<String> onlyInSys2 = new ArrayList<>(sys2CustomerNames);
  725. onlyInSys2.removeAll(sys1CustomerNames);
  726. List<String> inBothSys = new ArrayList<>(sys1CustomerNames);
  727. inBothSys.retainAll(sys2CustomerNames);
  728. log.info("系统1独有客户数量: {}", onlyInSys1.size());
  729. log.info("系统2独有客户数量: {}", onlyInSys2.size());
  730. log.info("两个系统共有客户数量: {}", inBothSys.size());
  731. /*
  732. 合并两个系统的客户数据
  733. */
  734. List<Map> sys1Sys2CustomerData = new ArrayList<>();
  735. Map<String,String> sys1Sys2CustomerRecord;
  736. Map tempCustomerRecord;
  737. String sys1BusinessUserName;
  738. String sys2BusinessUserName;
  739. String sys1unionid;
  740. String sys1userid;
  741. String sys2userid;
  742. boolean isAnyDifference; //是否有差异
  743. for(String customerNameInBothSys : inBothSys){ //遍历两个系统共有客户
  744. sys1BusinessUserName = "";
  745. sys2BusinessUserName = "";
  746. sys1unionid = "";
  747. sys1userid = "";
  748. sys2userid = "";
  749. for (int i = 0; i < sys1CustomerData.size(); i++) {
  750. if(customerNameInBothSys.equals(sys1CustomerData.get(i).get("customerName"))){
  751. tempCustomerRecord = sys1CustomerData.get(i);
  752. sys1BusinessUserName = tempCustomerRecord.get("businessUserName")==null?"":tempCustomerRecord.get("businessUserName").toString();
  753. sys1unionid = tempCustomerRecord.get("businessUserUnionId")==null?"":tempCustomerRecord.get("businessUserUnionId").toString();
  754. sys1userid = tempCustomerRecord.get("businessUserId")==null?"":tempCustomerRecord.get("businessUserId").toString();
  755. break;
  756. }
  757. }
  758. for (int i = 0; i < sys2CustomerData.size(); i++) {
  759. if (customerNameInBothSys.equals(sys2CustomerData.get(i).get("customerName"))){
  760. tempCustomerRecord = sys2CustomerData.get(i);
  761. sys2BusinessUserName = tempCustomerRecord.get("businessUserName")==null?"":tempCustomerRecord.get("businessUserName").toString();
  762. sys2userid = tempCustomerRecord.get("businessUserId")==null?"":tempCustomerRecord.get("businessUserId").toString();
  763. break;
  764. }
  765. }
  766. if (!sys1userid.isEmpty() && !sys2userid.isEmpty()){
  767. if(sys1userid.equals(sys2userid)){
  768. //两个系统用户id都非空,且无差异
  769. isAnyDifference = false;
  770. }else{
  771. //两个系统用户id都非空,且有差异
  772. isAnyDifference = true;
  773. }
  774. }else if(sys1userid.isEmpty() && sys2userid.isEmpty()){
  775. //两个系统用户id都为空,没有差异
  776. isAnyDifference = false;
  777. }else{
  778. //一个系统用户id为空,一个系统用户id不为空,有差异
  779. isAnyDifference = true;
  780. }
  781. sys1Sys2CustomerRecord = new HashMap<>();
  782. sys1Sys2CustomerRecord.put("customerName",customerNameInBothSys);
  783. sys1Sys2CustomerRecord.put("sys1BusinessUserName",sys1BusinessUserName);
  784. sys1Sys2CustomerRecord.put("sys2BusinessUserName",sys2BusinessUserName);
  785. sys1Sys2CustomerRecord.put("sys1unionid",sys1unionid);
  786. sys1Sys2CustomerRecord.put("sys1userid",sys1userid);
  787. sys1Sys2CustomerRecord.put("sys2userid",sys2userid);
  788. sys1Sys2CustomerRecord.put("isAnyDifference", isAnyDifference ?"是":"否");
  789. sys1Sys2CustomerRecord.put("source", "系统1和系统2共有客户");
  790. sys1Sys2CustomerData.add(sys1Sys2CustomerRecord);
  791. }
  792. for(String customerNameInSys1 : onlyInSys1){ //遍历系统1独有客户
  793. sys1BusinessUserName = "";
  794. sys1unionid = "";
  795. sys1userid = "";
  796. for (int i = 0; i < sys1CustomerData.size(); i++) {
  797. if(customerNameInSys1.equals(sys1CustomerData.get(i).get("customerName"))){
  798. tempCustomerRecord = sys1CustomerData.get(i);
  799. sys1BusinessUserName = tempCustomerRecord.get("businessUserName")==null?"":tempCustomerRecord.get("businessUserName").toString();
  800. sys1unionid = tempCustomerRecord.get("businessUserUnionId")==null?"":tempCustomerRecord.get("businessUserUnionId").toString();
  801. sys1userid = tempCustomerRecord.get("businessUserId")==null?"":tempCustomerRecord.get("businessUserId").toString();
  802. break;
  803. }
  804. }
  805. sys1Sys2CustomerRecord = new HashMap<>();
  806. sys1Sys2CustomerRecord.put("customerName",customerNameInSys1);
  807. sys1Sys2CustomerRecord.put("sys1BusinessUserName",sys1BusinessUserName);
  808. sys1Sys2CustomerRecord.put("sys1unionid",sys1unionid);
  809. sys1Sys2CustomerRecord.put("sys1userid",sys1userid);
  810. sys1Sys2CustomerRecord.put("isAnyDifference", "否");
  811. sys1Sys2CustomerRecord.put("source", "项目总表(系统1)独有客户");
  812. sys1Sys2CustomerData.add(sys1Sys2CustomerRecord);
  813. }
  814. for (String customerNameInSys2 : onlyInSys2){ //遍历系统2独有客户
  815. sys2BusinessUserName = "";
  816. sys2userid = "";
  817. for (int i = 0; i < sys2CustomerData.size(); i++) {
  818. if(customerNameInSys2.equals(sys2CustomerData.get(i).get("customerName"))){
  819. tempCustomerRecord = sys2CustomerData.get(i);
  820. sys2BusinessUserName = tempCustomerRecord.get("businessUserName")==null?"":tempCustomerRecord.get("businessUserName").toString();
  821. sys2userid = tempCustomerRecord.get("businessUserId")==null?"":tempCustomerRecord.get("businessUserId").toString();
  822. break;
  823. }
  824. }
  825. sys1Sys2CustomerRecord = new HashMap<>();
  826. sys1Sys2CustomerRecord.put("customerName",customerNameInSys2);
  827. sys1Sys2CustomerRecord.put("sys2BusinessUserName",sys2BusinessUserName);
  828. sys1Sys2CustomerRecord.put("sys2userid",sys2userid);
  829. sys1Sys2CustomerRecord.put("isAnyDifference", "否");
  830. sys1Sys2CustomerRecord.put("source", "Eastar业务数字化(系统2)独有客户");
  831. sys1Sys2CustomerData.add(sys1Sys2CustomerRecord);
  832. }
  833. /*
  834. 添加记录到客户数据清洗
  835. */
  836. // try {
  837. // yidaService.insertSys1Sys2CustomerAllData(sys1Sys2CustomerData);
  838. // } catch (Exception e) {
  839. // log.error("添加记录到客户数据清洗异常",e);
  840. // }
  841. log.info("客户数据清洗完成");
  842. }
  843. /**
  844. * 更新客户测试使用标识
  845. */
  846. // @Scheduled(cron = "0 35 10 * * ?")
  847. public void updateCustomerTestFlag() {
  848. /*
  849. 查询所有已离职的员工
  850. */
  851. // List<Map<String, String>> leaveEmployeeData = new ArrayList<>();
  852. // try {
  853. // leaveEmployeeData = ddCoreClient.getAllLeaveEmployeeData();
  854. // } catch (Exception e) {
  855. // log.error("查询所有已离职的员工异常",e);
  856. // }
  857. /*
  858. 查询(客户数据清洗)客户名册all所有记录
  859. */
  860. log.info("查询(客户数据清洗)客户名册all所有记录");
  861. List<Map> sys1Sys2CustomerData = new ArrayList<>();
  862. try {
  863. sys1Sys2CustomerData = yidaService.querySys1Sys2CustomerAllData();
  864. } catch (Exception e) {
  865. log.error("查询(客户数据清洗)客户名册all所有记录异常",e);
  866. }
  867. /*
  868. 查询(易思达)客户名册所有记录
  869. */
  870. log.info("查询(易思达)客户名册所有记录");
  871. List<Map> ltcCustomerData = new ArrayList<>();
  872. try {
  873. ltcCustomerData = yidaService.queryLtcAllCustomerData();
  874. } catch (Exception e) {
  875. log.error("查询(易思达)客户名册所有记录异常",e);
  876. }
  877. /*
  878. 对比后更新“测试使用”标识
  879. */
  880. // log.info("对比后更新“测试使用”标识");
  881. // List<Map> testLtcCustomers = new ArrayList<>();
  882. // String customerName;
  883. // boolean isTest;
  884. // for (Map ltcCustomerRecord : ltcCustomerData) {
  885. // isTest = true;
  886. // customerName = UtilMap.getString(ltcCustomerRecord, "customerName");
  887. // if (customerName != null && !customerName.isEmpty()) {
  888. // customerName = customerName.trim();
  889. // for (int i = 0; i < sys1Sys2CustomerData.size(); i++) {
  890. // if(customerName.equals(UtilMap.getString(sys1Sys2CustomerData.get(i), "customerName"))){
  891. // isTest = false;
  892. // break;
  893. // }
  894. // }
  895. // if(isTest){
  896. // testLtcCustomers.add(ltcCustomerRecord);
  897. // }
  898. // }
  899. // }
  900. // log.info("测试使用客户数量: {}", testLtcCustomers.size());
  901. // int updateTestFlagCount = 0;
  902. // for (Map testLtcCustomer : testLtcCustomers){
  903. // try {
  904. // yidaService.updateLtcCustomerTestFlag(UtilMap.getString(testLtcCustomer, "formInstId"));
  905. // updateTestFlagCount++;
  906. // System.out.println("更新测试使用标识成功:"+updateTestFlagCount);
  907. // Thread.sleep(3000);
  908. // } catch (Exception e) {
  909. // log.error("更新测试使用标识异常",e);
  910. // }
  911. // }
  912. log.info("更新客户测试使用标识完成");
  913. }
  914. /**
  915. * 同步客户与业务
  916. */
  917. // @Scheduled(cron = "0 51 16 * * ?")
  918. public void syncCustomerAndBusinessUser() {
  919. /*
  920. 查询(易思达)客户名册所有记录
  921. */
  922. log.info("查询(易思达)客户名册所有记录");
  923. List<Map> ltcCustomerData = new ArrayList<>();
  924. try {
  925. ltcCustomerData = yidaService.queryLtcAllCustomerData();
  926. } catch (Exception e) {
  927. log.error("查询(易思达)客户名册异常",e);
  928. }
  929. /*
  930. 查询(客户数据清洗)私海客户所有记录
  931. */
  932. // log.info("查询(客户数据清洗)私海客户所有记录");
  933. // List<Map> privateSeaCustomerData = new ArrayList<>();
  934. // try {
  935. // privateSeaCustomerData = yidaService.querySys1Sys2PrivateCustomerData();
  936. // } catch (Exception e) {
  937. // log.error("查询(客户数据清洗)私海客户所有记录异常",e);
  938. // }
  939. /*
  940. 查询(客户数据清洗)公海客户所有记录
  941. */
  942. // log.info("查询(客户数据清洗)公海客户所有记录");
  943. // List<Map> publicSeaCustomerData = new ArrayList<>();
  944. // try {
  945. // publicSeaCustomerData = yidaService.querySys1Sys2PublicCustomerData();
  946. // } catch (Exception e) {
  947. // log.error("查询(客户数据清洗)公海客户所有记录异常",e);
  948. // }
  949. /*
  950. 查询(客户数据清洗)不合作客户所有记录
  951. */
  952. // log.info("查询(客户数据清洗)不合作客户所有记录");
  953. // List<Map> uncooperativeSeaCustomerData = new ArrayList<>();
  954. // try {
  955. // uncooperativeSeaCustomerData = yidaService.querySys1Sys2UncooperativeCustomerData();
  956. // } catch (Exception e) {
  957. // log.error("查询(客户数据清洗)不合作客户所有记录异常",e);
  958. // }
  959. /*
  960. 比对私海客户(客户名称去空格后转大写)
  961. 匹配成功则更新
  962. */
  963. // String customerName1;
  964. // String customerName1UpperCase;
  965. // String businessUserId;
  966. // String customerName2;
  967. // String customerName2UpperCase;
  968. // String businessUserId2;
  969. // String formInstId;
  970. // for(Map privateSeaCustomerRecord : privateSeaCustomerData){
  971. // customerName1 = UtilMap.getString(privateSeaCustomerRecord, "customerName");
  972. // customerName1UpperCase = customerName1.replaceAll(" ","").toUpperCase();
  973. // businessUserId = UtilMap.getString(privateSeaCustomerRecord, "businessUserId");
  974. // for (int i = 0; i < ltcCustomerData.size(); i++) {
  975. // customerName2 = UtilMap.getString(ltcCustomerData.get(i), "customerName");
  976. // customerName2UpperCase = customerName2.replaceAll(" ","").toUpperCase();
  977. // businessUserId2 = UtilMap.getString(ltcCustomerData.get(i), "userId");
  978. //// formInstId = UtilMap.getString(ltcCustomerData.get(i), "formInstId");
  979. // if(customerName1UpperCase.equals(customerName2UpperCase)){
  980. // /*
  981. // 客户名称(大写)一致,更新易思达系统客户基本信息(客户公司名、业务、公海/私海、测试使用)
  982. // */
  983. //// try {
  984. //// yidaService.updateLtcCustomerBasicInfo(formInstId,customerName1,businessUserId,"私","否");
  985. //// } catch (Exception e) {
  986. //// log.error("更新易思达系统客户基本信息异常",e);
  987. //// }
  988. //
  989. // if(businessUserId==null || businessUserId.isEmpty()){
  990. // if(businessUserId2==null || businessUserId2.isEmpty()){
  991. // //两边一致
  992. // }else{
  993. // System.out.println("两边不一致:"+customerName1);
  994. // }
  995. // }else{
  996. // if(businessUserId2==null || businessUserId2.isEmpty()){
  997. // System.out.println("两边不一致:"+customerName1);
  998. // }else{
  999. // if(businessUserId.equals(businessUserId2)){
  1000. // //两边一致
  1001. // }else{
  1002. // System.out.println("两边不一致:"+customerName1);
  1003. // }
  1004. // }
  1005. // }
  1006. //
  1007. // break;
  1008. // }
  1009. // }
  1010. // }
  1011. /*
  1012. 比对私海客户(客户名称去空格后转大写)
  1013. 未匹配到则新增
  1014. */
  1015. // String customerName1;
  1016. // String customerName1UpperCase;
  1017. // String customerName2;
  1018. // String customerName2UpperCase;
  1019. // boolean isNew;
  1020. // for (Map privateSeaCustomerRecord : privateSeaCustomerData){
  1021. // isNew = true;
  1022. // customerName1 = UtilMap.getString(privateSeaCustomerRecord, "customerName");
  1023. // customerName1UpperCase = customerName1.replaceAll(" ","").toUpperCase();
  1024. // for (int i = 0; i < ltcCustomerData.size(); i++){
  1025. // customerName2 = UtilMap.getString(ltcCustomerData.get(i), "customerName");
  1026. // customerName2UpperCase = customerName2.replaceAll(" ","").toUpperCase();
  1027. // if(customerName1UpperCase.equals(customerName2UpperCase)){
  1028. // isNew = false;
  1029. // break;
  1030. // }
  1031. // }
  1032. // if(isNew){
  1033. // /*
  1034. // 是新客户,新增易思达系统客户记录
  1035. // */
  1036. // privateSeaCustomerRecord.put("seaType","私");
  1037. // privateSeaCustomerRecord.put("newOrOld","新");
  1038. // privateSeaCustomerRecord.put("testUseFlag","否");
  1039. // try {
  1040. // yidaService.insertCustomerData(privateSeaCustomerRecord);
  1041. // } catch (Exception e) {
  1042. // log.error("新增易思达系统客户记录异常",e);
  1043. // }
  1044. // }
  1045. // }
  1046. /*
  1047. 比对公海客户(客户名称去空格后转大写)
  1048. */
  1049. // String customerName1;
  1050. // String customerName1UpperCase;
  1051. // String businessUserId;
  1052. // String customerName2;
  1053. // String customerName2UpperCase;
  1054. // String businessUserId2;
  1055. // String formInstId;
  1056. // for(Map publicSeaCustomerRecord : publicSeaCustomerData){
  1057. // customerName1 = UtilMap.getString(publicSeaCustomerRecord, "customerName");
  1058. // customerName1UpperCase = customerName1.replaceAll(" ","").toUpperCase();
  1059. // businessUserId = UtilMap.getString(publicSeaCustomerRecord, "businessUserId");
  1060. // for (int i = 0; i < ltcCustomerData.size(); i++) {
  1061. // customerName2 = UtilMap.getString(ltcCustomerData.get(i), "customerName");
  1062. // customerName2UpperCase = customerName2.replaceAll(" ","").toUpperCase();
  1063. // businessUserId2 = UtilMap.getString(ltcCustomerData.get(i), "userId");
  1064. //// formInstId = UtilMap.getString(ltcCustomerData.get(i), "formInstId");
  1065. // if(customerName1UpperCase.equals(customerName2UpperCase)){
  1066. // /*
  1067. // 客户名称(大写)一致,更新易思达系统客户基本信息(客户公司名、业务、公海/私海、测试使用)
  1068. // */
  1069. //// try {
  1070. //// yidaService.updateLtcCustomerBasicInfo(formInstId,customerName1,null,"公","否");
  1071. //// } catch (Exception e) {
  1072. //// log.error("更新易思达系统客户基本信息异常",e);
  1073. //// }
  1074. // if(businessUserId==null || businessUserId.isEmpty()){
  1075. // if(businessUserId2==null || businessUserId2.isEmpty()){
  1076. // //两边一致
  1077. // }else{
  1078. // System.out.println("两边不一致:"+customerName1);
  1079. // }
  1080. // }else{
  1081. // if(businessUserId2==null || businessUserId2.isEmpty()){
  1082. // System.out.println("两边不一致:"+customerName1);
  1083. // }else{
  1084. // if(businessUserId.equals(businessUserId2)){
  1085. // //两边一致
  1086. // }else{
  1087. // System.out.println("两边不一致:"+customerName1);
  1088. // }
  1089. // }
  1090. // }
  1091. // break;
  1092. // }
  1093. // }
  1094. // }
  1095. /*
  1096. 比对公海客户(客户名称去空格后转大写)
  1097. 未匹配到则新增
  1098. */
  1099. // String customerName1;
  1100. // String customerName1UpperCase;
  1101. // String customerName2;
  1102. // String customerName2UpperCase;
  1103. // boolean isNew;
  1104. // for (Map publicSeaCustomerRecord : publicSeaCustomerData){
  1105. // isNew = true;
  1106. // customerName1 = UtilMap.getString(publicSeaCustomerRecord, "customerName");
  1107. // customerName1UpperCase = customerName1.replaceAll(" ","").toUpperCase();
  1108. // for (int i = 0; i < ltcCustomerData.size(); i++){
  1109. // customerName2 = UtilMap.getString(ltcCustomerData.get(i), "customerName");
  1110. // customerName2UpperCase = customerName2.replaceAll(" ","").toUpperCase();
  1111. // if(customerName1UpperCase.equals(customerName2UpperCase)){
  1112. // isNew = false;
  1113. // break;
  1114. // }
  1115. // }
  1116. // if(isNew){
  1117. // /*
  1118. // 是新客户,新增易思达系统客户记录
  1119. // */
  1120. // publicSeaCustomerRecord.put("seaType","公");
  1121. // publicSeaCustomerRecord.put("businessUserId",null);
  1122. // publicSeaCustomerRecord.put("newOrOld","新");
  1123. // publicSeaCustomerRecord.put("testUseFlag","否");
  1124. // try {
  1125. // yidaService.insertCustomerData(publicSeaCustomerRecord);
  1126. // } catch (Exception e) {
  1127. // log.error("新增易思达系统客户记录异常",e);
  1128. // }
  1129. // }
  1130. // }
  1131. /*
  1132. 比对不合作客户(客户名称去空格后转大写)
  1133. */
  1134. // String customerName1;
  1135. // String customerName1UpperCase;
  1136. // String businessUserId;
  1137. // String customerName2;
  1138. // String customerName2UpperCase;
  1139. // String businessUserId2;
  1140. // String formInstId;
  1141. // for(Map uncooperativeSeaCustomerRecord : uncooperativeSeaCustomerData){
  1142. // customerName1 = UtilMap.getString(uncooperativeSeaCustomerRecord, "customerName");
  1143. // customerName1UpperCase = customerName1.replaceAll(" ","").toUpperCase();
  1144. // businessUserId = UtilMap.getString(uncooperativeSeaCustomerRecord, "businessUserId");
  1145. // for (int i = 0; i < ltcCustomerData.size(); i++) {
  1146. // customerName2 = UtilMap.getString(ltcCustomerData.get(i), "customerName");
  1147. // customerName2UpperCase = customerName2.replaceAll(" ","").toUpperCase();
  1148. // businessUserId2 = UtilMap.getString(ltcCustomerData.get(i), "userId");
  1149. //// formInstId = UtilMap.getString(ltcCustomerData.get(i), "formInstId");
  1150. // if(customerName1UpperCase.equals(customerName2UpperCase)){
  1151. // /*
  1152. // 客户名称(大写)一致,更新易思达系统客户基本信息(客户公司名、业务、公海/私海、测试使用)
  1153. // */
  1154. //// try {
  1155. //// yidaService.updateLtcCustomerBasicInfo2(formInstId,customerName1,null,"公","不合作","否");
  1156. //// } catch (Exception e) {
  1157. //// log.error("更新易思达系统客户基本信息异常",e);
  1158. //// }
  1159. // if(businessUserId==null || businessUserId.isEmpty()){
  1160. // if(businessUserId2==null || businessUserId2.isEmpty()){
  1161. // //两边一致
  1162. // }else{
  1163. // System.out.println("两边不一致:"+customerName1);
  1164. // }
  1165. // }else{
  1166. // if(businessUserId2==null || businessUserId2.isEmpty()){
  1167. // System.out.println("两边不一致:"+customerName1);
  1168. // }else{
  1169. // if(businessUserId.equals(businessUserId2)){
  1170. // //两边一致
  1171. // }else{
  1172. // System.out.println("两边不一致:"+customerName1);
  1173. // }
  1174. // }
  1175. // }
  1176. // break;
  1177. // }
  1178. // }
  1179. // }
  1180. /*
  1181. 比对不合作客户(客户名称去空格后转大写)
  1182. 未匹配到则新增
  1183. */
  1184. // String customerName1;
  1185. // String customerName1UpperCase;
  1186. // String customerName2;
  1187. // String customerName2UpperCase;
  1188. // boolean isNew;
  1189. // for (Map uncooperativeSeaCustomerRecord : uncooperativeSeaCustomerData){
  1190. // isNew = true;
  1191. // customerName1 = UtilMap.getString(uncooperativeSeaCustomerRecord, "customerName");
  1192. // customerName1UpperCase = customerName1.replaceAll(" ","").toUpperCase();
  1193. // for (int i = 0; i < ltcCustomerData.size(); i++){
  1194. // customerName2 = UtilMap.getString(ltcCustomerData.get(i), "customerName");
  1195. // customerName2UpperCase = customerName2.replaceAll(" ","").toUpperCase();
  1196. // if(customerName1UpperCase.equals(customerName2UpperCase)){
  1197. // isNew = false;
  1198. // break;
  1199. // }
  1200. // }
  1201. // if(isNew){
  1202. // /*
  1203. // 是新客户,新增易思达系统客户记录
  1204. // */
  1205. // uncooperativeSeaCustomerRecord.put("seaType","公");
  1206. // uncooperativeSeaCustomerRecord.put("businessUserId",null);
  1207. // uncooperativeSeaCustomerRecord.put("newOrOld","不合作");
  1208. // uncooperativeSeaCustomerRecord.put("testUseFlag","否");
  1209. // try {
  1210. // yidaService.insertCustomerData(uncooperativeSeaCustomerRecord);
  1211. // } catch (Exception e) {
  1212. // log.error("新增易思达系统客户记录异常",e);
  1213. // }
  1214. // }
  1215. // }
  1216. log.info("同步客户与业务完成");
  1217. }
  1218. /**
  1219. * 补充客户基本信息
  1220. */
  1221. // @Scheduled(cron = "0 30 11 * * ?")
  1222. public void supplementTheCustomerData() {
  1223. /*
  1224. 查询(易思达)客户名册所有记录
  1225. */
  1226. log.info("查询(易思达)客户名册所有记录");
  1227. List<Map> ltcCustomerData = new ArrayList<>();
  1228. try {
  1229. ltcCustomerData = yidaService.queryLtcAllCustomerData();
  1230. } catch (Exception e) {
  1231. log.error("查询(易思达)客户名册异常",e);
  1232. }
  1233. /*
  1234. 查询业务小组档案中的成员信息
  1235. */
  1236. List<Map> ltcBusinessUserData = new ArrayList<>();
  1237. try {
  1238. ltcBusinessUserData = yidaService.queryLtcAllBusinessUserData();
  1239. } catch (Exception e) {
  1240. log.error("查询业务小组档案中的成员信息异常",e);
  1241. }
  1242. /*
  1243. 更新字段:
  1244. 客户验重
  1245. 业务userId
  1246. 业务组长
  1247. 是否大客户
  1248. */
  1249. String formInstId;
  1250. String customerName;
  1251. String customerNameUpperCase;
  1252. String userId;
  1253. String userIdText;
  1254. String businessLeaderUserId;
  1255. for(Map ltcCustomerRecord : ltcCustomerData){
  1256. customerName = UtilMap.getString(ltcCustomerRecord, "customerName");
  1257. customerNameUpperCase = customerName.replaceAll(" ","").toUpperCase();
  1258. userId = UtilMap.getString(ltcCustomerRecord, "userId");
  1259. userIdText = UtilMap.getString(ltcCustomerRecord, "userIdText");
  1260. businessLeaderUserId = null;
  1261. // for (int i = 0; i < ltcBusinessUserData.size(); i++) {
  1262. // if(UtilMap.getString(ltcBusinessUserData.get(i), "userId").equals(userId)){
  1263. // businessLeaderUserId = UtilMap.getString(ltcBusinessUserData.get(i), "businessLeaderUserId");
  1264. // if(businessLeaderUserId.isEmpty()){
  1265. // businessLeaderUserId = null;
  1266. // }
  1267. // break;
  1268. // }
  1269. // }
  1270. try {
  1271. System.out.println(customerName);
  1272. formInstId = UtilMap.getString(ltcCustomerRecord, "formInstId");
  1273. // yidaService.updateLtcCustomerBasicInfo3(formInstId,customerNameUpperCase,userId,businessLeaderUserId,"否");
  1274. yidaService.updateLtcCustomerBasicInfo4(formInstId,"","",null,null);
  1275. } catch (Exception e) {
  1276. log.error("更新易思达系统客户记录异常",e);
  1277. }
  1278. }
  1279. log.info("补充客户基本信息完成");
  1280. }
  1281. }