yaozhixue 1 년 전
부모
커밋
8954a06763

+ 2 - 2
src/main/java/com/zfire/jiasm/syncdata/download/worker/GLPPWXGQueryAdd.java

@@ -65,7 +65,7 @@ public class GLPPWXGQueryAdd {
 
         log.info("开始同步获取网点师傅证件信息: \uF0B7{}",sdf.format(new Date()));
         try {
-            glppwxgQueryAddService.extractedCertInfoBak();
+            glppwxgQueryAddService.extractedCertInfo();
             log.info("同步获取网点师傅证件信息结束: \uF0B7{}",sdf.format(new Date()));
         } catch (Exception ex) {
             ex.printStackTrace();
@@ -101,7 +101,7 @@ public class GLPPWXGQueryAdd {
 
         log.info("开始生成网点师傅保险证件信息: \uF0B7{}",sdf.format(new Date()));
 
-        glppwxgQueryAddService.extractedBx();
+        // glppwxgQueryAddService.extractedBx();
 
         log.info("生成网点师傅保险证件信息结束: \uF0B7{}",sdf.format(new Date()));
     }

+ 77 - 32
src/main/java/com/zfire/jiasm/syncdata/service/impl/GLPPWXGQueryAddServiceImpl.java

@@ -92,7 +92,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
 
 
     @Override
-    public void extractedCertInfo(){
+    public void extractedCertInfo() throws Exception {
         WangdianWxgVos wvos = new WangdianWxgVos();
         List<WorkerCert> addList = new ArrayList<>();
         Map<String,Object> req = new HashMap<>();
@@ -100,16 +100,15 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
         Map<String,List<Worker>> workerWorkeridMap = new HashMap<>();
         Map<String,List<WorkerCert>> WorkerCertWorkerIdMaps = new HashMap<>();
         List<ItfTblWangdianWxgDownload> wxgDownladRecs = new ArrayList<>();
-        List<WebsitWorker> websitWorkerUp = new ArrayList<>();
         List<String> workerIdandNames = new ArrayList<>();
         List<InsureWorkerCommercial> insurecs = new ArrayList<>();
         List<InsureWorkerCommercialFile> insurefiles = new ArrayList<>();
         List<String> bxWorkerIdWebsitIds = new ArrayList<>();
         Map<String,List<WebsitWorker>> websitWorderwidwdidMap = new HashMap<>();
         Map<String,List<WebsitWorker>> addBxWorkers = new HashMap<>();
-        List<WebsitWorker> websitWorkers = new ArrayList<>();
+        List<WebsitWorker> upWebsitWorkers = new ArrayList<>();
 
-                // 提取品牌信息
+        // 提取品牌信息
         Brand brand = baseService.getBrand();
         if (brand == null) {
             return;
@@ -124,9 +123,13 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
         }
 
         // 提取待同步获取保险信息的师傅数据
-        /*List<WebsitWorker> websitWorkers = websitWorkerService.lambdaQuery()
-                .eq(WebsitWorker::getOutZjlj,WebsitWorker::getWebsitId,WebsitWorker::getWebsitWorkerId)
-                .list();*/
+        List<WebsitWorker> wwrecords = websitWorkerService.lambdaQuery()
+                .isNull(WebsitWorker::getOutZjlj)
+                .list();
+        if (CollectionUtils.isNotEmpty(wwrecords)){
+            addBxWorkers = wwrecords.stream().collect(Collectors.groupingBy(WebsitWorker::getWorkerId));
+            wwrecords.clear();
+        }
 
 
 
@@ -156,7 +159,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
                         ItfTblWangdianWxgDownload::getWxgmc,
                         ItfTblWangdianWxgDownload::getYddh,
                         ItfTblWangdianWxgDownload::getFlag)
-                // .eq(ItfTblWangdianWxgDownload::getSfzen,"431003199803271316")// 测试用
+                .eq(ItfTblWangdianWxgDownload::getSfzen,"430422198107105010")// 测试用
                 .like(ItfTblWangdianWxgDownload::getWdno,"S%").list();
 
         // 提取现有已存在的证件信息的师傅信息(待回传同步的证件不处理)
@@ -206,11 +209,12 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
                     log.info("总部获取的工程师证件照信息wvos:{}", JSONObject.toJSONString(wvos));
                     // 同步-新增证件信息
                     getCertInfo(wvos, addList, workerId, WorkerCertWorkerIdMaps,wxg.getWdno(),workerIdandNames,
-                            workerWorkeridMap,insurecs,insurefiles, bxWorkerIdWebsitIds,websitWorderwidwdidMap, insure);
+                            workerWorkeridMap,insurecs,insurefiles, bxWorkerIdWebsitIds,
+                            websitWorderwidwdidMap, insure,addBxWorkers, upWebsitWorkers);
                     // 新增或修改(证件)
                     addDataCert(addList);
                     // 修改保险信息
-                    addBxInfo(insurecs, insurefiles);
+                    upWebsitWorker(upWebsitWorkers);
 
                     log.info("工程师证件照信息同步成功-师傅证件信息:{}", wxg.getSfzen());
                 } else {
@@ -218,11 +222,10 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
                     log.info("msg:{}", response.getMsg());
                 }
             } catch (Exception ex) {
-                addDataCert(addList);
-                upWebsitWorker(websitWorkerUp);
-                addBxInfo(insurecs, insurefiles);
                 ex.printStackTrace();
                 log.info("工程师证件照信息同步失败-师傅证件信息:{}", wxg.getSfzen());
+                throw new Exception("工程师证件照信息同步失败");
+
             }
         }
 
@@ -296,7 +299,6 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
             wc.clear();
         }
 
-
         for (ItfTblWangdianWxgDownload wxg :wxgDownladRecs){
             // 无效的数据不新增
             if (wxg.getFlag() != null){
@@ -339,7 +341,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
                     // 新增或修改(证件)
                     addDataCert(addList);
                     // 修改保险信息
-                    addBxInfo(insurecs, insurefiles);
+                    addBxInfoBak(insurecs, insurefiles);
 
                     log.info("工程师证件照信息同步成功-师傅证件信息:{}", wxg.getSfzen());
                 } else {
@@ -349,7 +351,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
             } catch (Exception ex) {
                 addDataCert(addList);
                 upWebsitWorker(websitWorkerUp);
-                addBxInfo(insurecs, insurefiles);
+                addBxInfoBak(insurecs, insurefiles);
                 ex.printStackTrace();
                 log.info("工程师证件照信息同步失败-师傅证件信息:{}", wxg.getSfzen());
             }
@@ -358,7 +360,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
     }
 
     @Transactional(rollbackFor = Exception.class)
-    public void addBxInfo(List<InsureWorkerCommercial> insurecs, List<InsureWorkerCommercialFile> insurefiles) {
+    public void addBxInfoBak(List<InsureWorkerCommercial> insurecs, List<InsureWorkerCommercialFile> insurefiles) {
         if (insurecs.size()>0){
             insureWorkerCommercialService.saveOrUpdateBatch(insurecs);
             insurecs.clear();
@@ -369,7 +371,6 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
         }
     }
 
-
     @Override
     public void extractedCert() {
         List<WorkerCert> workerCertList = new ArrayList<>();
@@ -1186,7 +1187,9 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
                              List<InsureWorkerCommercial> insurecs,
                              List<InsureWorkerCommercialFile> insurefiles,
                              List<String> bxWorkerIdWebsitIds,
-                             Map<String,List<WebsitWorker>> websitWorderwidwdidMap, Insure insure) throws ParseException {
+                             Map<String,List<WebsitWorker>> websitWorderwidwdidMap,
+                             Insure insure,Map<String,List<WebsitWorker>> addBxWorkers,
+                             List<WebsitWorker> upWebsitWorkers) throws ParseException {
         // 同步-新增证件信息
         for (ZJInfo zj: wvos.getZjInfoList()){
             // 保除证
@@ -1194,11 +1197,15 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
                 if (insure == null){
                     continue;
                 }
-                if (produceBXInfo(workerId, wdno, workerWorkeridMap, insurecs, insurefiles,
-                        bxWorkerIdWebsitIds, zj,websitWorderwidwdidMap, insure)){
+                // 师傅所在网点数据未下载保险证件时才可以下载
+                if (!addBxWorkers.containsKey(workerId)){
                     continue;
                 }
 
+                // 获取保险证件数据
+                produceBXInfo(workerId, wdno, workerWorkeridMap, insurecs, insurefiles,
+                        bxWorkerIdWebsitIds, zj,websitWorderwidwdidMap, insure, addBxWorkers, upWebsitWorkers);
+
                 continue;
             }
 
@@ -1277,17 +1284,19 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
         return false;
     }
 
-    private boolean produceBXInfo(String workerId, String wdno, Map<String, List<Worker>> workerWorkeridMap,
+    private void produceBXInfo(String workerId, String wdno, Map<String, List<Worker>> workerWorkeridMap,
                                   List<InsureWorkerCommercial> insurecs, List<InsureWorkerCommercialFile> insurefiles,
                                   List<String> bxWorkerIdWebsitIds, ZJInfo zj,
-                                  Map<String, List<WebsitWorker>> websitWorderwidwdidMap, Insure insure) throws ParseException {
+                                  Map<String, List<WebsitWorker>> websitWorderwidwdidMap,
+                                  Insure insure, Map<String,List<WebsitWorker>> addBxWorkers,
+                                  List<WebsitWorker> upWebsitWorkers) throws ParseException {
         // 提取商户售后网点对应的平台售后网点信息 存在一对多的关系 无对应关系退出不处理
         List<WebsitOrderSign> wos = publicService.shShwdToptshwdByBrandWebsitNo(wdno);
         if (CollectionUtils.isEmpty(wos)){
-            return true;
+            return;
         }
 
-        // 生成商用保险对像 网点多对1时每个网点放一份
+        // 生成保险对像 网点多对1时每个网点放一份
         for (WebsitOrderSign item : wos){
             // 防重
             if (bxWorkerIdWebsitIds.contains(workerId +item.getWebsitId())){
@@ -1300,19 +1309,55 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
                 continue;
             }
 
-            // 生成商用保险对像
-            InsureWorkerCommercial a = getInsureWorkerCommercial(workerId, workerWorkeridMap, insurecs, zj, item,websitWorkerId, insure);
-
-            // 生成附件对像
-            getInsureWorkerCommercialFile(insurefiles, zj, a);
+            // 提取师傅所在网点数据进行修改
+            for (WebsitWorker w:addBxWorkers.get(workerId)){
+                // 网点对应
+                if (w.getWebsitId().equals(item.getWebsitId())){
+                    // 获取师傅保险信息
+                    getWebsitWorkerInfo(zj, upWebsitWorkers, w);
+                    break;
+                }
+            }
 
             bxWorkerIdWebsitIds.add(workerId +item.getWebsitId());
         }
-        return false;
+    }
+
+    private void getWebsitWorkerInfo(ZJInfo zj, List<WebsitWorker> upWebsitWorkers, WebsitWorker w) throws ParseException {
+        WebsitWorker upwwinfo = new WebsitWorker();
+        MyBeanUtils.copyProperties(w,upwwinfo);
+
+
+        // 有效期
+        if (StringUtils.isNotEmpty(zj.getZjyxq())){
+            upwwinfo.setInsureStartTime(publicService.subOneYear(baseService.utcToDateStr(zj.getZjyxq())));
+            upwwinfo.setGmbxyxq(baseService.utcToDateStr(zj.getZjyxq()));
+        }
+        upwwinfo.setInsureStatus(2);
+        // 保险公司及编号
+        if (zj.getZjbh().contains("/")){
+            List<String> result = Arrays.asList(zj.getZjbh().split("/"));
+            upwwinfo.setSafeCompany(result.get(0));
+            upwwinfo.setInsureName(result.get(0));
+            upwwinfo.setSafeNo(result.get(1));
+        } else {
+            upwwinfo.setSafeNo(zj.getZjbh());
+        }
+
+
+        if (StringUtils.isEmpty(zj.getZjlj())){
+            upwwinfo.setOutZjljProcess(-1);
+        } else {
+            upwwinfo.setOutZjlj(zj.getZjlj());
+            upwwinfo.setOutZjljProcess(0);
+        }
+
+        upWebsitWorkers.add(upwwinfo);
     }
 
     @Nullable
-    private String checkWebsitWorker(String workerId, Map<String, List<WebsitWorker>> websitWorderwidwdidMap, WebsitOrderSign item) {
+    private String checkWebsitWorker(String workerId, Map<String, List<WebsitWorker>> websitWorderwidwdidMap,
+                                     WebsitOrderSign item) {
         String websitWorkerId="";
         if (!websitWorderwidwdidMap.containsKey(workerId)){
             return null;