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

+ 85 - 26
src/main/java/com/zfire/jiasm/syncdata/service/impl/GLPPWXGQueryAddServiceImpl.java

@@ -96,6 +96,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
         List<ItfTblWangdianWxgDownload> wxgDownladRecs = new ArrayList<>();
         List<WebsitWorker> websitWorkerUp = new ArrayList<>();
         Map<String,List<WebsitWorker>> websitWorkerWorkerIdMap = new HashMap<>();
+        List<String> workerIdandNames = new ArrayList<>();
 
         // 提取品牌信息
         Brand brand = baseService.getBrand();
@@ -111,11 +112,11 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
             oldWorkerRec.clear();
         }
 
-        /*List<WebsitWorker> wws = websitWorkerService.lambdaQuery().list();
+        List<WebsitWorker> wws = websitWorkerService.lambdaQuery().list();
         if (CollectionUtils.isNotEmpty(wws)){
             websitWorkerWorkerIdMap = wws.stream().collect(Collectors.groupingBy(WebsitWorker::getWorkerId));
             wws.clear();
-        }*/
+        }
 
         // 提取格力现有的网点师傅数据信息
         wxgDownladRecs =  itfTblWangdianWxgDownloadService.lambdaQuery()
@@ -130,12 +131,12 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
                 .like(ItfTblWangdianWxgDownload::getWdno,"S%").list();
 
         // 提取现有已存在的证件信息的师傅信息(待回传同步的证件不处理)
-        /*List<WorkerCert> wc = workerCertService.lambdaQuery()
+        List<WorkerCert> wc = workerCertService.lambdaQuery()
                 .eq(WorkerCert::getOutSyncStatus,1).list();
         if (CollectionUtils.isNotEmpty(wc)){
             WorkerCertWorkerIdMaps = wc.stream().collect(Collectors.groupingBy(WorkerCert::getWorkerId));
             wc.clear();
-        }*/
+        }
 
 
         for (ItfTblWangdianWxgDownload wxg :wxgDownladRecs){
@@ -152,21 +153,8 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
                 continue;
             }
 
-            // 提取该师傅的证件信息的师傅信息(待回传同步的证件不处理)
-            List<WorkerCert> wc = workerCertService.lambdaQuery()
-                    .eq(WorkerCert::getWorkerId,workerId)
-                    .eq(WorkerCert::getOutSyncStatus,1).list();
-            if (CollectionUtils.isNotEmpty(wc)){
-                WorkerCertWorkerIdMaps = wc.stream().collect(Collectors.groupingBy(WorkerCert::getWorkerId));
-                wc.clear();
-            }
 
-            List<WebsitWorker> wws = websitWorkerService.lambdaQuery()
-                    .eq(WebsitWorker::getWorkerId,workerId).list();
-            if (CollectionUtils.isNotEmpty(wws)){
-                websitWorkerWorkerIdMap = wws.stream().collect(Collectors.groupingBy(WebsitWorker::getWorkerId));
-                wws.clear();
-            }
+
 
             // 有证件信息的师傅不再新增
             /*if (WorkerCertWorkerIdMaps.containsKey(workerId)){
@@ -192,7 +180,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
                     log.info("总部获取的工程师证件照信息wvos:{}", JSONObject.toJSONString(wvos));
                     // 同步-新增证件信息
                     getCertInfo(wvos, addList, workerId, workerWorkeridMap.get(workerId).get(0).getWorkerName(),
-                            WorkerCertWorkerIdMaps, websitWorkerUp,wxg.getWdno(), websitWorkerWorkerIdMap);
+                            WorkerCertWorkerIdMaps, websitWorkerUp,wxg.getWdno(), websitWorkerWorkerIdMap,workerIdandNames);
                     // 新增或修改(证件)
                     addDataCert(addList);
                     // 修改保险信息
@@ -776,21 +764,26 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
     }
 
 
-    private void getCertInfo(WangdianWxgVos wvos, List<WorkerCert> addList, String workerId,
+    private void getCertInfobak(WangdianWxgVos wvos, List<WorkerCert> addList, String workerId,
                              String workerName, Map<String,List<WorkerCert>> WorkerCertWorkerIdMaps,
                              List<WebsitWorker> websitWorkerUp,String wdno,
                              Map<String,List<WebsitWorker>> websitWorkerWorkerIdMap) throws Exception {
         // 同步-新增证件信息
         for (ZJInfo zj: wvos.getZjInfoList()){
             // 保险证单独处理 只有修改无需新增操作
-            if (zj.getZjmc().trim().equals("保险证")){
-                ZJInfoBX bx = checkBxCertInfo(workerId, websitWorkerWorkerIdMap,zj, wdno);
-                if (bx == null){
+            // websit.category_type决定保险类型 自建+不为商用(家用)其他商用
+            // 家用 insure_worker_record
+            // 商用 insure_worker_commercial 商用才操作,最有效期最后的那个
+            // websit_worker
+
+                if (zj.getZjmc().trim().equals("保险证")){
+                    ZJInfoBX bx = checkBxCertInfo(workerId, websitWorkerWorkerIdMap,zj, wdno);
+                    if (bx == null){
+                        continue;
+                    }
+                    workerBXAdd(bx, websitWorkerUp);
                     continue;
                 }
-                workerBXAdd(bx, websitWorkerUp);
-                continue;
-            }
             // 校验证件是否需要新增同步
             ZJInfoC addZj =checkCertInfo(workerId,WorkerCertWorkerIdMaps,zj);
             if (addZj.getZjInfo()!=null){
@@ -799,6 +792,72 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
         }
     }
 
+
+    private void getCertInfo(WangdianWxgVos wvos, List<WorkerCert> addList, String workerId,
+                             String workerName, Map<String,List<WorkerCert>> WorkerCertWorkerIdMaps,
+                             List<WebsitWorker> websitWorkerUp,String wdno,
+                             Map<String,List<WebsitWorker>> websitWorkerWorkerIdMap,
+                             List<String> workerIdandNames) throws Exception {
+        // 同步-新增证件信息
+        for (ZJInfo zj: wvos.getZjInfoList()){
+            // 保险证单独处理 只有修改无需新增操作
+            // websit.category_type决定保险类型 自建+不为商用(家用)其他商用
+            // 家用 insure_worker_record
+            // 商用 insure_worker_commercial 商用才操作,最有效期最后的那个
+            // websit_worker
+
+
+
+
+
+
+            // workerid+证件名称锁定不重复
+            if (workerIdandNames.contains(workerId+zj.getZjmc().trim())){
+                continue;
+            }
+
+            // 历史数据存在不新增
+            if (WorkerCertWorkerIdMaps.containsKey(workerId)){
+                continue;
+            }
+
+            // 新增
+            addNewWorkerCert(wvos, addList, workerId, workerName, workerIdandNames, zj);
+        }
+    }
+
+    private void addNewWorkerCert(WangdianWxgVos wvos, List<WorkerCert> addList, String workerId, String workerName, List<String> workerIdandNames, ZJInfo zj) throws ParseException {
+        WorkerCert add = new WorkerCert();
+        add.setId(UUID.randomUUID().toString());
+        add.setWorkerId(workerId);
+        add.setCertName(zj.getZjmc().trim());
+        add.setName(workerName);
+        if (StringUtils.isNotEmpty(zj.getZjlj())){
+            add.setOutZjlj(zj.getZjlj());
+        } else {
+            add.setOutZjljProcess(-1);
+        }
+
+        if (zj.getZjbh().contains("/")){
+            List<String> result = Arrays.asList(zj.getZjbh().split("/"));
+            add.setCertNo(result.get(1));
+        } else {
+            add.setCertNo(zj.getZjbh());
+        }
+        if (StringUtils.isNotEmpty(zj.getZjyxq())){
+            add.setExpireTime(baseService.utcToDateStr(zj.getZjyxq()));
+        }
+        if (StringUtils.isNotEmpty(zj.getZjfssj())){
+            add.setReviewTime(baseService.utcToDateStr(zj.getZjfssj()));
+        }
+        add.setExamineStatus("OK");
+        add.setSex(wvos.getXingb());
+        add.setOutSyncStatus(1);
+        add.setOutSyncTime(new Date());
+        addList.add(add);
+        workerIdandNames.add(workerId + zj.getZjmc().trim());
+    }
+
     // 返回null时不处理
     private ZJInfoBX checkBxCertInfo(String workerId, Map<String,List<WebsitWorker>> websitWorkerWorkerIdMap,
                                      ZJInfo zj, String wdno) {