yaozhixue 1 éve
szülő
commit
98c93608c1

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

@@ -42,6 +42,9 @@ public class GLPPWXGQueryAdd {
 
     @Scheduled(fixedDelayString = "${zjzxx}")
     public void process() throws Exception {
+        if (1==1){
+            return;
+        }
         // 从格力总部同步师傅的证件照 只用来新增
         wxgQueryAddCertInfo();
 

+ 142 - 58
src/main/java/com/zfire/jiasm/syncdata/service/impl/GLPPGFWebsitWorkerServiceImpl.java

@@ -73,18 +73,66 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
 
     @Override
     public void inputData(){
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        // 提取所有的数据  身份证作为唯一 (有效与无效的只要有效的)
+        // 新增师傅数据
+        inputDataWorker();
+        // worker_brand_account(师傅网点对应品牌网点信息表) + websit_worker(网点师傅信息表))
+        inputDataWebsitWorker();
+    }
+
+    void inputDataWebsitWorker(){
+        List<String> sfzs = new ArrayList<>();
         List<String> recouts = new ArrayList<>();
-        List<String> recins = new ArrayList<>();
+        List<ItfTblWangdianWxgDownload> recs = new ArrayList<>();
+
+
+        // 提取所有的数据  身份证作为唯一 (有效与无效的只要有效的)
+        extracted(sfzs, recouts);
+
+        // 先同步有效的数据
+        recs = itfTblWangdianWxgDownloadService.lambdaQuery()
+                .select(ItfTblWangdianWxgDownload::getSfzen)
+                .in(ItfTblWangdianWxgDownload::getSfzen,sfzs).list();
+        // 新增网点师傅 websit_worker(商户网点师傅信息) 存在修改,不存在新增
+        addWebsitWorkerBrandAccountsInfo(recs);
+
+        // 同步无效的数据
+        recs = itfTblWangdianWxgDownloadService.lambdaQuery()
+                .select(ItfTblWangdianWxgDownload::getSfzen)
+                .in(ItfTblWangdianWxgDownload::getSfzen,recouts).list();
+        addWebsitWorkerBrandAccountsInfo(recs);
+    }
+
+    void inputDataWorker(){
         List<String> sfzs = new ArrayList<>();
+        List<String> recouts = new ArrayList<>();
         List<ItfTblWangdianWxgDownload> recs = new ArrayList<>();
+        extracted(sfzs, recouts);
+
+
+        // 先同步有效的数据
+        recs = itfTblWangdianWxgDownloadService.lambdaQuery()
+                .select(ItfTblWangdianWxgDownload::getSfzen)
+                .in(ItfTblWangdianWxgDownload::getSfzen,sfzs).list();
+        // 新增或修改师傅数据 worker:师傅信息表
+        addInOutWorker(recs,Boolean.TRUE);
+
+        // 同步无效的数据
+        recs = itfTblWangdianWxgDownloadService.lambdaQuery()
+                .select(ItfTblWangdianWxgDownload::getSfzen)
+                .in(ItfTblWangdianWxgDownload::getSfzen,recouts).list();
+        // 新增或修改师傅数据 worker:师傅信息表
+        addInOutWorker(recs,Boolean.FALSE);
+    }
+
+    private void extracted(List<String> sfzs, List<String> recouts) {
+        List<ItfTblWangdianWxgDownload> recs;// 提取所有的数据  身份证作为唯一 (有效与无效的只要有效的)
+        List<String> recins = new ArrayList<>();
 
         // 有效
         recs = itfTblWangdianWxgDownloadService.lambdaQuery()
                 .select(ItfTblWangdianWxgDownload::getSfzen)
-                .ne(ItfTblWangdianWxgDownload::getFlag,"无效").list();
-        recs.stream().forEach(wba->{
+                .ne(ItfTblWangdianWxgDownload::getFlag, "无效").list();
+        recs.stream().forEach(wba -> {
             recins.add(wba.getSfzen());
         });
         // 去重
@@ -93,8 +141,8 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
         //无效
         recs = itfTblWangdianWxgDownloadService.lambdaQuery()
                 .select(ItfTblWangdianWxgDownload::getSfzen)
-                .eq(ItfTblWangdianWxgDownload::getFlag,"无效").list();
-        recs.stream().forEach(wba->{
+                .eq(ItfTblWangdianWxgDownload::getFlag, "无效").list();
+        recs.stream().forEach(wba -> {
             recouts.add(wba.getSfzen());
         });
         // 去重
@@ -105,30 +153,6 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
         recins.retainAll(recouts);
         //差 无效的
         recouts.removeAll(recins);
-
-        log.info("有效 {}",sfzs.size());
-        log.info("无效 {}",recouts.size());
-
-        if (1==1){
-            return;
-        }
-
-
-
-
-
-        Long startTime = System.currentTimeMillis();
-        log.info("同步师傅数据到到本地库: \uF0B7{}",sdf.format(new Date()));
-
-        // 新增或修改师傅数据 worker:师傅信息表
-        addWorker(recs);
-
-        Long endTime = System.currentTimeMillis();
-        log.info("同步师傅数据到到本地库结束耗时(毫秒): {}",endTime-startTime);
-
-        // 新增网点师傅 websit_worker(商户网点师傅信息) 存在修改,不存在新增
-        addWebsitWorkerBrandAccountsInfo(recs);
-        recs.clear();
     }
 
     private void dupRemoval(List<String> recins) {
@@ -368,13 +392,8 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
 
     private String checkIsGreeWroker(Map<String, List<Worker>> workerIdcardMap, ItfTblWangdianWxgDownload wxg) {
         String workerId="";
-        if (workerIdcardMap.containsKey(wxg.getSfzen())){
-            for (Worker w: workerIdcardMap.get(wxg.getSfzen())){
-                if (w.getWorkerName().equals(wxg.getWxgmc().trim()) && w.getMobile().equals(wxg.getYddh())){
-                    workerId = w.getWorkerId();
-                    break;
-                }
-            }
+        if (workerIdcardMap.containsKey(wxg.getSfzen().trim())){
+            workerId = workerIdcardMap.get(wxg.getSfzen().trim()).get(0).getWorkerId();
         }
         return workerId;
     }
@@ -405,12 +424,8 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
             v.setUpdateTime(m.getLastModifiedDate());
         }
 
-        for (Worker w:workerIdCardMap.get(m.getSfzen())){
-            if (w.getMobile().equals(m.getYddh())){
-                v.setWorkerName(w.getWorkerName());
-                break;
-            }
-        }
+        v.setWorkerName(workerIdCardMap.get(m.getSfzen()).get(0).getWorkerName());
+
         // v.setWorkerName(workerIdCardMap.get(m.getSfzen()).get(0).getWorkerName());
 
         v.setStatus(DictTypeEnum.DICT_TYPE_ON.getCode());
@@ -424,7 +439,7 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
         // v.setBirthDate();
         v.setGender(m.getXingb());
         v.setMobile(m.getYddh());
-        v.setIdcard(m.getSfzen());
+        v.setIdcard(m.getSfzen().trim());
         v.setAge(m.getNianl());
         v.setEducation(m.getXueli());
         // v.setAddress();
@@ -500,12 +515,7 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
                                                      List<WorkerBrandAccount> addwbas, WebsitOrderSign i) {
         WorkerBrandAccount add = new WorkerBrandAccount();
 
-        for (Worker w:workerIdCardMap.get(m.getSfzen())){
-            if (w.getWorkerName().equals(m.getWxgmc().trim()) && w.getMobile().equals(m.getYddh())){
-                add.setWorkerId(w.getWorkerId());
-                break;
-            }
-        }
+        add.setWorkerId(workerIdCardMap.get(m.getSfzen().trim()).get(0).getWorkerId());
         // add.setWorkerId(workerIdCardMap.get(m.getSfzen()).get(0).getWorkerId());
 
         // 自生成 一定要与websit_worker.websit_worker_id相同
@@ -655,18 +665,17 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
 
     private void getWorker(List<Worker> addWorkerRec, List<String> sfzens, ItfTblWangdianWxgDownload m,
                            Map<String, String> workerIdcardMap) {
-        Worker v = new Worker();
         Worker o = null;
 
-        // 师傅身份证,名称,电话 已存在为修改
-        if (workerIdcardMap.containsKey(m.getSfzen() + m.getWxgmc().trim() + m.getYddh())){
+        // 师傅身份证
+        if (workerIdcardMap.containsKey(m.getSfzen().trim())){
             o = workerService.lambdaQuery()
-                    .eq(Worker::getWorkerId,workerIdcardMap.get(m.getSfzen() + m.getWxgmc().trim() + m.getYddh())).one();
+                    .eq(Worker::getWorkerId,workerIdcardMap.get(m.getSfzen().trim())).one();
         }
 
         // 新增
         if (o==null){
-            addWorkerInfo(addWorkerRec, m, v);
+            addWorkerInfo(addWorkerRec, m,Boolean.TRUE);
         } else {
             // 看有无修改的可能
             upWorkerInfo(addWorkerRec, m, o);
@@ -674,13 +683,37 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
         sfzens.add(m.getSfzen() + m.getWxgmc().trim() + m.getYddh());
     }
 
-    private void addWorkerInfo(List<Worker> addWorkerRec, ItfTblWangdianWxgDownload m, Worker v) {
+    private void getAddWorker(List<Worker> addWorkerRec, List<String> sfzens, ItfTblWangdianWxgDownload m,
+                           Map<String, String> workerIdcardMap, Boolean flag) {
+        Worker o = null;
+
+        // 师傅身份证
+        if (workerIdcardMap.containsKey(m.getSfzen().trim())){
+            o = workerService.lambdaQuery()
+                    .eq(Worker::getWorkerId,workerIdcardMap.get(m.getSfzen().trim())).one();
+        }
+
+        // 新增
+        if (o==null){
+            addWorkerInfo(addWorkerRec, m, flag);
+            sfzens.add(m.getSfzen().trim());
+        }
+
+    }
+
+
+    private void addWorkerInfo(List<Worker> addWorkerRec, ItfTblWangdianWxgDownload m,Boolean flag) {
+        Worker v = new Worker();
         v.setWorkerId(IdWorker.getIdStr());
         v.setWorkerName(m.getWxgmc().trim());
         v.setCreateBy("system");
         v.setUpdateBy("system");
         v.setCreateTime(new Date());
         v.setUpdateTime(new Date());
+        v.setStatus("OFF");
+        if (flag){
+            v.setStatus("ON");
+        }
         if (m.getCreatedBy() != null){
             v.setCreateBy(m.getCreatedBy());
         }
@@ -695,7 +728,7 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
         }
         v.setGender(m.getXingb());
         v.setMobile(m.getYddh());
-        v.setIdcard(m.getSfzen());
+        v.setIdcard(m.getSfzen().trim());
         v.setAge(m.getNianl());
         v.setEducation(m.getXueli());
         v.setNvq(m.getZgzh());
@@ -958,6 +991,47 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
         sfzens.clear();
     }
 
+    @Transactional(rollbackFor = Exception.class)
+    public void extractedWorkerAddNewInOut(List<ItfTblWangdianWxgDownload> addRec, List<Worker> addWorkerRec, Boolean flag) {
+        // 身份证 作为唯一 (有效与无效的只要有效)
+        List<String> sfzens = new ArrayList<>();
+        // 提取原有的信息
+        List<Worker> oldWorkerRec =  workerService.lambdaQuery()
+                .select(Worker::getIdcard).list();
+        if (CollectionUtils.isNotEmpty(oldWorkerRec)){
+            oldWorkerRec.stream().forEach(wba->{
+                sfzens.add(wba.getIdcard());
+            });
+            oldWorkerRec.clear();
+        }
+
+        for (ItfTblWangdianWxgDownload m : addRec){
+            // 已处理过不再处理 因为这里是网点师傅会存在重复数据
+            if (sfzens.contains(m.getSfzen().trim())){
+                continue;
+            }
+
+            // 生成对象
+            addWorkerInfo(addWorkerRec, m, flag);
+            sfzens.add(m.getSfzen().trim());
+
+            // 新增的插入到表
+            if (addWorkerRec.size()>=1000){
+                workerService.saveOrUpdateBatch(addWorkerRec);
+                log.info("本地网点维修工人员信息表新增插入了{}条数据", addWorkerRec.size());
+                addWorkerRec.clear();
+            }
+        }
+
+        // 新增的插入到表
+        if (addWorkerRec.size()>0){
+            workerService.saveOrUpdateBatch(addWorkerRec);
+            log.info("本地网点维修工人员信息表新增插入了{}条数据", addWorkerRec.size());
+            addWorkerRec.clear();
+        }
+        sfzens.clear();
+    }
+
     private void addWorkerInfo(List<ItfTblWangdianWxgDownload> addRec, List<ItfTblWangdianWxgDownload> updateRec, List<Worker> addWorkerRec) {
         // 获取新增的
         if (addRec.size()>0){
@@ -1000,6 +1074,16 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
         }
     }
 
+
+    public void addInOutWorker(List<ItfTblWangdianWxgDownload> Recs,Boolean flag) {
+        List<Worker> addWorkerRec = new ArrayList<>();
+        if (Recs.size()>0){
+            // worker:师傅信息
+            extractedWorkerAddNewInOut(Recs, addWorkerRec, flag);
+        }
+    }
+
+
     private void extractedLocalAddOrUpdate(List<ItfTblWangdianWxgDownload> addRec, List<ItfTblWangdianWxgDownload> updateRec) {
 
         List<Worker> addWorkerRec = new ArrayList<>();