浏览代码

no message

jiahui 1 年之前
父节点
当前提交
a7cbfad1c2
共有 1 个文件被更改,包括 58 次插入55 次删除
  1. 58 55
      src/main/java/com/zfire/jiasm/syncdata/service/impl/GLPPWXGQueryAddServiceImpl.java

+ 58 - 55
src/main/java/com/zfire/jiasm/syncdata/service/impl/GLPPWXGQueryAddServiceImpl.java

@@ -1,5 +1,6 @@
 package com.zfire.jiasm.syncdata.service.impl;
 
+import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.google.common.collect.Lists;
@@ -37,6 +38,7 @@ import java.io.IOException;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 
@@ -326,7 +328,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
         Map<String,List<Worker>> workerWorkeridMap = new HashMap<>();
         List<ItfTblWangdianWxgDownload> wxgDownladRecs = new ArrayList<>();
         Map<String,WorkerCert> workerIdCertNamesObjMaps = new HashMap<>();
-        Map<String,WebsitWorker> websitWorderwidwdidMap = new HashMap<>();
+//        Map<String,WebsitWorker> websitWorderwidwdidMap = new HashMap<>();
         List<WebsitWorker> upWebsitWorkers = new ArrayList<>();
 
         // 提取品牌信息
@@ -336,7 +338,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
         }
 
         // 提取现有的师傅证件信息
-        List<WorkerCert> wcs = workerCertService.lambdaQuery().list();
+        List<WorkerCert> wcs = workerCertService.lambdaQuery().select(WorkerCert::getWorkerId,WorkerCert::getCertName).list();
         if (CollectionUtils.isNotEmpty(wcs)){
             wcs.stream().forEach(event->{
                 workerIdCertNamesObjMaps.put(event.getWorkerId() + event.getCertName(),event);
@@ -353,12 +355,12 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
         }
 
         List<WebsitWorker> wws = websitWorkerService.lambdaQuery().list();
-        if (CollectionUtils.isNotEmpty(wws)){
-            wws.stream().forEach(event->{
-                websitWorderwidwdidMap.put(event.getWorkerId() + event.getWebsitId(),event);
-            });
-            wws.clear();
-        }
+//        if (CollectionUtils.isNotEmpty(wws)){
+//            wws.stream().forEach(event->{
+//                websitWorderwidwdidMap.put(event.getWorkerId() + event.getWebsitId(),event);
+//            });
+//            wws.clear();
+//        }
 
         // 提取格力现有的网点师傅数据信息
         wxgDownladRecs =  itfTblWangdianWxgDownloadService.lambdaQuery()
@@ -401,12 +403,9 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
 
                     // 同步-新增证件信息
                     getCertInfo(wvos, addList, workerId, wxg.getWdno(),
-                            workerWorkeridMap, websitWorderwidwdidMap,
+                            workerWorkeridMap, wws,
                             upWebsitWorkers, workerIdCertNamesObjMaps);
 
-
-
-
                     // 新增或修改(证件)
                     addDataCert(addList);
                     // 修改保险信息
@@ -418,7 +417,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
                     log.info("msg:{}", response.getMsg());
                 }
             } catch (Exception ex) {
-                ex.printStackTrace();
+                //ex.printStackTrace();
                 log.info("工程师证件照信息同步失败-师傅证件信息:{}", wxg.getSfzen());
                 throw new Exception("工程师证件照信息同步失败");
 
@@ -715,7 +714,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
             }
             // 师傅在平台中不存在时不处理
             String workerId = checkIsGreeWroker(Worker_Idcards, wxgDownload);
-            if (workerId.length()<1) {
+            if (StringUtils.isBlank(workerId)) {
                 continue;
             }
 
@@ -1336,8 +1335,10 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
 
     private void getCertInfo(WangdianWxgVos wvos, List<WorkerCert> addList, String workerId,
                              String wdno, Map<String,List<Worker>> workerWorkeridMap,
-                             Map<String,WebsitWorker> websitWorderwidwdidMap,
+                             List<WebsitWorker> websitWorkers,
                              List<WebsitWorker> upWebsitWorkers, Map<String,WorkerCert> workerIdCertNamesObjMaps) throws ParseException {
+        Map<String, WebsitWorker> websitWorderwidwdidMap = websitWorkers.stream()
+                .collect(Collectors.toMap(v -> v.getWorkerId()+v.getWebsitId(),Function.identity()));
         // 同步-新增证件信息
         for (ZJInfo zj: wvos.getZjInfoList()){
             // 保险证
@@ -1346,9 +1347,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
                 if (!addBxWorkers.containsKey(workerId)){
                     continue;
                 }*/
-
-
-                // 同家用、同总包、同自建或合作共用保除数据
+                // 同家用、同总包、同自建或合作共用保险数据,使用其中有效期最大的
 
                 // 获取保险证件数据
                 produceBXInfo(workerId, wdno,  zj,websitWorderwidwdidMap, upWebsitWorkers);
@@ -1443,39 +1442,39 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
      *
      * 统一入商用保险,有多少份入多少份
      */
-    private boolean produceBXInfoBak(String workerId, String wdno, Map<String, List<Worker>> workerWorkeridMap,
-                                  List<InsureWorkerCommercial> insurecs, List<InsureWorkerCommercialFile> insurefiles,
-                                  List<String> insureworkeridandWebsitids, ZJInfo zj,
-                                  Map<String, WebsitWorker> websitWorderwidwdidMap, Insure insure) throws ParseException {
-        // 提取商户售后网点对应的平台售后网点信息 存在一对多的关系 无对应关系退出不处理
-        List<WebsitOrderSign> wos = publicService.shShwdToptshwdByBrandWebsitNo(wdno);
-        if (CollectionUtils.isEmpty(wos)){
-            return true;
-        }
-
-        // 生成商用保险对像 网点多对1时每个网点放一份
-        for (WebsitOrderSign item : wos){
-            // 防重
-            if (insureworkeridandWebsitids.contains(workerId +item.getWebsitId())){
-                continue;
-            }
-
-            // 对于在商户网点师傅都为无效的状态时在平台网点师傅表中可能是不存在的 需要排除掉
-            String websitWorkerId = checkWebsitWorker(workerId, websitWorderwidwdidMap, item);
-            if (websitWorkerId == null) {
-                continue;
-            }
-
-            // 生成商用保险对像
-            InsureWorkerCommercial a = getInsureWorkerCommercial(workerId, workerWorkeridMap, insurecs, zj, item,websitWorkerId, insure);
-
-            // 生成附件对像
-            getInsureWorkerCommercialFile(insurefiles, zj, a);
-
-            insureworkeridandWebsitids.add(workerId +item.getWebsitId());
-        }
-        return false;
-    }
+//    private boolean produceBXInfoBak(String workerId, String wdno, Map<String, List<Worker>> workerWorkeridMap,
+//                                  List<InsureWorkerCommercial> insurecs, List<InsureWorkerCommercialFile> insurefiles,
+//                                  List<String> insureworkeridandWebsitids, ZJInfo zj,
+//                                  Map<String, WebsitWorker> websitWorderwidwdidMap, Insure insure) throws ParseException {
+//        // 提取商户售后网点对应的平台售后网点信息 存在一对多的关系 无对应关系退出不处理
+//        List<WebsitOrderSign> wos = publicService.shShwdToptshwdByBrandWebsitNo(wdno);
+//        if (CollectionUtils.isEmpty(wos)){
+//            return true;
+//        }
+//
+//        // 生成商用保险对像 网点多对1时每个网点放一份
+//        for (WebsitOrderSign item : wos){
+//            // 防重
+//            if (insureworkeridandWebsitids.contains(workerId +item.getWebsitId())){
+//                continue;
+//            }
+//
+//            // 对于在商户网点师傅都为无效的状态时在平台网点师傅表中可能是不存在的 需要排除掉
+//            String websitWorkerId = checkWebsitWorker(workerId, websitWorderwidwdidMap, item);
+//            if (websitWorkerId == null) {
+//                continue;
+//            }
+//
+//            // 生成商用保险对像
+//            InsureWorkerCommercial a = getInsureWorkerCommercial(workerId, workerWorkeridMap, insurecs, zj, item,websitWorkerId, insure);
+//
+//            // 生成附件对像
+//            getInsureWorkerCommercialFile(insurefiles, zj, a);
+//
+//            insureworkeridandWebsitids.add(workerId +item.getWebsitId());
+//        }
+//        return false;
+//    }
 
     private void produceBXInfo(String workerId, String wdno, ZJInfo zj,
                                   Map<String, WebsitWorker> websitWorderwidwdidMap,
@@ -1594,8 +1593,12 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
 
         // 有效期
         if (StringUtils.isNotEmpty(zj.getZjyxq())){
-            upwwinfo.setInsureStartTime(publicService.subOneYear(baseService.utcToDateStr(zj.getZjyxq())));
+            //upwwinfo.setInsureStartTime(publicService.subOneYear(baseService.utcToDateStr(zj.getZjyxq())));
             upwwinfo.setGmbxyxq(baseService.utcToDateStr(zj.getZjyxq()));
+            //因总部没开始时间,直接以1年前set进去
+            if(upwwinfo.getGmbxyxq() != null){
+                upwwinfo.setInsureStartTime(DateUtil.offsetMonth(upwwinfo.getGmbxyxq(),-12));
+            }
             Date n = new Date();
             if ((upwwinfo.getInsureStartTime().compareTo(n)<=0) &&
                     (upwwinfo.getGmbxyxq().compareTo(n)>=0)){
@@ -1940,9 +1943,9 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
                                     List<WorkerServiceCategoryDetail> workerServiceCategoryDetails,
                                     SysDict serviceCategoryDict,Map<String, List<SysDictRef>> sysDictRefMap) throws Exception {
 
-        if(!StringUtils.equals(wxgDownload.getWxgmc(),"王志兵") && !StringUtils.equals(wxgDownload.getWxgmc(),"黄逸辉")){
-            return;
-        }
+//        if(!StringUtils.equals(wxgDownload.getWxgmc(),"王志兵") && !StringUtils.equals(wxgDownload.getWxgmc(),"黄逸辉")){
+//            return;
+//        }
 
         Map<String,Object> req = new HashMap<>();
         WangdianWxgVos wvos = new WangdianWxgVos();