yaozhixue 1 年之前
父节点
当前提交
2e4d859668

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

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

+ 1 - 0
src/main/java/com/zfire/jiasm/syncdata/download/worker/GLPPWXGQueryUpdate.java

@@ -30,6 +30,7 @@ public class GLPPWXGQueryUpdate {
      *     格力总部获取师傅信息
      *     本地提取商户师傅信息 只修改不新增
      *
+     * 师傅证件照修改的不再做了,只做新增,王总的要求
      */
     @Scheduled(fixedDelayString = "${wxgxg}")
     public void wxgQueryUpdate() throws Exception {

+ 22 - 0
src/main/java/com/zfire/jiasm/syncdata/request/ZJInfoC.java

@@ -0,0 +1,22 @@
+package com.zfire.jiasm.syncdata.request;
+
+import com.zfire.jiasm.syncdata.plus.entity.WorkerCert;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author yaozx
+ * @version 1.0
+ * @description 介绍
+ * @date 2023-08-28
+ */
+@Data
+public class ZJInfoC {
+
+    @ApiModelProperty(value = "师傅证件信息")
+    private WorkerCert workerCert;
+
+    @ApiModelProperty(value = "师傅证件")
+    private ZJInfo zjInfo;
+
+}

+ 124 - 42
src/main/java/com/zfire/jiasm/syncdata/service/impl/GLPPWXGQueryAddServiceImpl.java

@@ -12,10 +12,12 @@ import com.zfire.jiasm.syncdata.plus.entity.*;
 import com.zfire.jiasm.syncdata.plus.service.*;
 import com.zfire.jiasm.syncdata.request.SignSplb;
 import com.zfire.jiasm.syncdata.request.ZJInfo;
+import com.zfire.jiasm.syncdata.request.ZJInfoC;
 import com.zfire.jiasm.syncdata.response.WangdianWxgVos;
 import com.zfire.jiasm.syncdata.response.WxgQueryInfo;
 import com.zfire.jiasm.syncdata.service.GLPPWXGQueryAddService;
 import com.zfire.jiasm.syncdata.service.PublicService;
+import com.zfire.jiasm.syncdata.utils.MyBeanUtils;
 import com.zfire.jiasm.syncdata.utils.oss.OSSUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
@@ -26,6 +28,8 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.io.File;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -83,10 +87,8 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
         Map<String,Object> req = new HashMap<>();
         Map<String,List<Worker>> workerIdcardMap = new HashMap<>();
         Map<String,List<Worker>> workerWorkeridMap = new HashMap<>();
-        Map<String,List<WorkerCert>> WorkerCertMaps = new HashMap<>();
+        Map<String,List<WorkerCert>> WorkerCertWorkerIdMaps = new HashMap<>();
         List<ItfTblWangdianWxgDownload> wxgDownladRecs = new ArrayList<>();
-        // 身份证 + 姓名 + 手机号
-        List<String> wxgs = new ArrayList<>();
 
         // 提取品牌信息
         Brand brand = baseService.getBrand();
@@ -110,22 +112,18 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
                         ItfTblWangdianWxgDownload::getWxgmc,
                         ItfTblWangdianWxgDownload::getYddh,
                         ItfTblWangdianWxgDownload::getFlag)
-                // .eq(ItfTblWangdianWxgDownload::getSfzen,"440281197906113814")// 测试用
+                .eq(ItfTblWangdianWxgDownload::getSfzen,"441827198312116217")// 测试用
                 .like(ItfTblWangdianWxgDownload::getWdno,"S%").list();
 
-        // 提取现有已存在的证件信息的师傅信息
-        List<WorkerCert> wc = workerCertService.lambdaQuery().list();
+        // 提取现有已存在的证件信息的师傅信息(待回传同步的证件不处理)
+        List<WorkerCert> wc = workerCertService.lambdaQuery()
+                .eq(WorkerCert::getOutSyncStatus,1).list();
         if (CollectionUtils.isNotEmpty(wc)){
-            WorkerCertMaps = wc.stream().collect(Collectors.groupingBy(WorkerCert::getWorkerId));
+            WorkerCertWorkerIdMaps = wc.stream().collect(Collectors.groupingBy(WorkerCert::getWorkerId));
         }
 
 
         for (ItfTblWangdianWxgDownload wxg :wxgDownladRecs){
-            // 防止 ItfTblWangdianWxgDownload表有重复记录
-            if (wxgs.contains(wxg.getSfzen() + wxg.getWxgmc().trim() + wxg.getYddh())){
-                continue;
-            }
-
             // 无效的数据不新增
             if (wxg.getFlag() != null){
                 if (!wxg.getFlag().trim().equals(DictTypeEnum.DICT_TYPE_FLAG_ON.getCode())){
@@ -140,9 +138,9 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
             }
 
             // 有证件信息的师傅不再新增
-            if (WorkerCertMaps.containsKey(workerId)){
+            /*if (WorkerCertWorkerIdMaps.containsKey(workerId)){
                 continue;
-            }
+            }*/
 
             // 参数 获取网点维修工信息
             getParameter(wxg.getWdno(), wxg.getWxgno(), req);
@@ -162,34 +160,33 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
 
                     log.info("总部获取的工程师证件照信息wvos:{}", JSONObject.toJSONString(wvos));
                     // 同步-新增证件信息
-                    getCertInfo(wvos, addList, workerId, workerWorkeridMap.get(workerId).get(0).getWorkerName());
+                    getCertInfo(wvos, addList, workerId, workerWorkeridMap.get(workerId).get(0).getWorkerName(), WorkerCertWorkerIdMaps);
                     // 新增或修改(证件)
                     addDataCert(addList);
-                    wxgs.add(wxg.getSfzen() + wxg.getWxgmc().trim() + wxg.getYddh());
                     log.info("工程师证件照信息同步成功-师傅证件信息:{}", wxg.getSfzen());
                 } else {
                     log.info("获取工程师证件照信息失败-师傅证件信息:{}", wxg.getSfzen());
                     log.info("msg:{}", response.getMsg());
                 }
             } catch (Exception ex) {
+                addDataCert(addList);
                 ex.printStackTrace();
                 log.info("工程师证件照信息同步失败-师傅证件信息:{}", wxg.getSfzen());
             }
-
         }
 
-        wxgs.clear();
     }
 
     private String checkIsGreeWroker(Map<String, List<Worker>> workerIdcardMap, ItfTblWangdianWxgDownload wxg) {
         String workerId="";
         if (workerIdcardMap.containsKey(wxg.getSfzen())){
-            for (Worker w: workerIdcardMap.get(wxg.getSfzen())){
+            workerId = workerIdcardMap.get(wxg.getSfzen()).get(0).getWorkerId();
+            /*for (Worker w: workerIdcardMap.get(wxg.getSfzen())){
                 if (w.getWorkerName().equals(wxg.getWxgmc().trim()) && w.getMobile().equals(wxg.getYddh())){
                     workerId = w.getWorkerId();
                     break;
                 }
-            }
+            }*/
         }
         return workerId;
     }
@@ -622,44 +619,73 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
     public void addDataCert(List<WorkerCert> addList) {
         // 证件同步
         if (addList.size()>0){
-            workerCertService.saveBatch(addList);
+            workerCertService.saveOrUpdateBatch(addList);
             addList.clear();
         }
     }
 
-    @NotNull
     private String putCert(String image) throws Exception {
-        String id = IdWorker.getIdStr();
-        baseService.saveToFile(greeLogic.greeFileUrl(image), id);
-        ossUtil.uploadFile(id, new File(id));
-        return id;
+        SimpleDateFormat sdfs = new SimpleDateFormat("yyyyMM/");
+        String fileId = "";
+        String id = sdfs.format(new Date())+IdWorker.getIdStr();
+        try{
+            baseService.saveToFile(greeLogic.greeFileUrl(image), id);
+            ossUtil.uploadFile(id, new File(id));
+            fileId = id;
+            return fileId;
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            log.info("生成师傅证件照信息失败");
+        }
+        return fileId;
     }
 
-    private void workercertAdd(WangdianWxgVos wvos, List<WorkerCert> addList, String workerId, ZJInfo zj, String workerName) throws Exception {
+    private void workercertAdd(WangdianWxgVos wvos, List<WorkerCert> addList, String workerId, ZJInfoC zjinfo, String workerName) throws Exception {
+        ZJInfo zj = new ZJInfo();
+        zj=zjinfo.getZjInfo();
+
         // 新增
         WorkerCert add = new WorkerCert();
-        add.setId(UUID.randomUUID().toString());
-        add.setWorkerId(workerId);
-        add.setCertName(zj.getZjmc());
-        add.setName(workerName);
+        if (zjinfo.getWorkerCert() !=null){
+            MyBeanUtils.copyProperties(zjinfo.getWorkerCert(),add);
+        } else {
+            setAdd(wvos, workerId, workerName, zj, add);
+        }
 
         if (zj.getZjlj().contains(",")){
             List<String> result = Arrays.asList(zj.getZjlj().split(","));
-            add.setOutFileUrl(result.get(0));
-            add.setOutFileUrl2(result.get(1));
             // 上传图片
             String id = putCert(result.get(0));
-            add.setFileUrl(id);
+            if (StringUtils.isNotEmpty(id)){
+                add.setFileUrl(id);
+                add.setOutFileUrl(result.get(0));
+            }
+
             String id2 = putCert(result.get(1));
-            add.setFileUrl2(id2);
+            if (StringUtils.isNotEmpty(id2)){
+                add.setFileUrl2(id2);
+                add.setOutFileUrl2(result.get(1));
+            }
             new File(id).delete();
             new File(id2).delete();
         } else {
-            add.setOutFileUrl(zj.getZjlj());
             String id = putCert(zj.getZjlj());
-            add.setFileUrl(id);
+            if (StringUtils.isNotEmpty(id)){
+                add.setFileUrl(id);
+                add.setOutFileUrl(zj.getZjlj());
+            }
             new File(id).delete();
         }
+        addList.add(add);
+    }
+
+    private void setAdd(WangdianWxgVos wvos, String workerId, String workerName, ZJInfo zj, WorkerCert add) throws ParseException {
+        add.setId(UUID.randomUUID().toString());
+        add.setWorkerId(workerId);
+        add.setCertName(zj.getZjmc().trim());
+        add.setName(workerName);
+
+
         if (zj.getZjbh().contains("/")){
             List<String> result = Arrays.asList(zj.getZjbh().split("/"));
             add.setCertNo(result.get(1));
@@ -672,23 +698,79 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
         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);
     }
 
 
-    private void getCertInfo(WangdianWxgVos wvos, List<WorkerCert> addList, String workerId,String workerName) throws Exception {
+    private void getCertInfo(WangdianWxgVos wvos, List<WorkerCert> addList, String workerId,String workerName,
+                             Map<String,List<WorkerCert>> WorkerCertWorkerIdMaps) throws Exception {
         // 同步-新增证件信息
         for (ZJInfo zj: wvos.getZjInfoList()){
-            workercertAdd(wvos, addList, workerId, zj, workerName);
+            // 校验证件是否需要新增同步
+            ZJInfoC addZj =checkCertInfo(workerId,WorkerCertWorkerIdMaps,zj);
+            if (addZj.getZjInfo()!=null){
+                workercertAdd(wvos, addList, workerId, addZj, workerName);
+            }
         }
     }
 
+    private ZJInfoC checkCertInfo(String workerId,Map<String,List<WorkerCert>> WorkerCertWorkerIdMaps,ZJInfo zj) {
+        ZJInfo resultZjinfo = new ZJInfo();
+        ZJInfoC zjinfo = new ZJInfoC();
+
+        zjinfo.setZjInfo(zj);
+
+        // 不存在时直接新增
+        if (!WorkerCertWorkerIdMaps.containsKey(workerId)){
+            return zjinfo;
+        }
+
+        // 已有证件信息,看是否已全部同步(相同证件名且证件照不为空)
+        for (WorkerCert item:WorkerCertWorkerIdMaps.get(workerId)){
+            // 名称相同 即表中已存在,只能是修改
+            if (item.getCertName().equals(zj.getZjmc())){
+                zjinfo.setWorkerCert(item);
+                //证件信息不为空不处理
+                // 两个证件照时
+                if (zj.getZjlj().contains(",")){
+                    // 都存在该证件照不同步
+                    if (StringUtils.isNotEmpty(item.getFileUrl()) && StringUtils.isNotEmpty(item.getFileUrl2())){
+                        zjinfo.setZjInfo(null);
+                        return zjinfo;
+                    }
+                    List<String> result = Arrays.asList(zj.getZjlj().split(","));
+                    // 未同步时直接返回新增
+                    if (StringUtils.isEmpty(item.getFileUrl()) && StringUtils.isEmpty(item.getFileUrl2())){
+                        zjinfo.setZjInfo(zj);
+                        return zjinfo;
+                    }
+                    // 只有一个未同步时新增也是修改
+                    MyBeanUtils.copyProperties(zj,resultZjinfo);
+                    resultZjinfo.setZjlj(result.get(0));
+                    if (StringUtils.isEmpty(item.getFileUrl2())){
+                        resultZjinfo.setZjlj(result.get(1));
+                    }
+                    zjinfo.setZjInfo(resultZjinfo);
+                    return zjinfo;
+                }
+                // 只有一个证件时 已同步不处理
+                if (StringUtils.isNotEmpty(item.getFileUrl())){
+                    zjinfo.setZjInfo(null);
+                    return zjinfo;
+                }
+
+                return zjinfo;
+            }
+        }
+
+        zjinfo.setWorkerCert(null);
+
+        return zjinfo;
+    }
+
     @Transactional(rollbackFor = Exception.class)
     public void wxgCategoryQueryAdd(ItfTblWangdianWxgDownload wxgDownload,
                                     List<WorkerBrandAccount> workerBrandAccounts,

+ 4 - 3
src/main/java/com/zfire/jiasm/syncdata/service/impl/GLPPWXGQueryUpdateServiceImpl.java

@@ -143,12 +143,13 @@ public class GLPPWXGQueryUpdateServiceImpl implements GLPPWXGQueryUpdateService
 
 
                 try {
-                    // 证件同步
-                    for (ZJInfo zj:wvos.getZjInfoList()){
+                    // 证件同步  师傅证件照修改的不再做了,只做新增,王总的要求
+                    /*for (ZJInfo zj:wvos.getZjInfoList()){
                         // 同步-新增或修改证件信息
                         // log.info("wxginfo {}",wxg);
                         workercertUpdataOrAdd(wvos, updateList, addList, workerBrandAccount, zj);
-                    }
+                    }*/
+
                     // 同步-师傅地理位置
                     // updateWorkerStreet(wvos,workerBrandAccount.getWorkerId(),brand.getBrandId(),ws);
 

+ 0 - 3
src/main/java/com/zfire/jiasm/syncdata/service/impl/InstallProduceDataUploadServiceImpl.java

@@ -213,10 +213,7 @@ public class InstallProduceDataUploadServiceImpl implements InstallProduceDataUp
                                 if (uploadTaskType==222) {
                                     cjOrWg = "wg";
                                 }
-
-                                log.info("aaa");
                                 if (!orderBaseInstallCjOrWgService.orderBaseInstallCjOrWg(cjOrWg, brand, ojtutl, CategoryRefmap)) {
-                                    log.info("bbb");
                                     continue;
                                 }
                             }

+ 1 - 8
src/main/java/com/zfire/jiasm/syncdata/service/impl/OrderBaseInstallCjOrWgServiceImpl.java

@@ -169,16 +169,11 @@ public class OrderBaseInstallCjOrWgServiceImpl implements orderBaseInstallCjOrWg
 
         // 特殊安装确认书图从采集明细表中移到附件表中
         addTSHJP(ojtutl, orderBase);
-
-        log.info("eee");
         // 上传附件表图片信息
         if (uploadOrderDetailFile(ojtutl, CategoryRefmap, orderBase)){
-            log.info("xxx");
+            publicService.updateUploadTaskLisError(ojtutl,"上传附件表图片信息出错");
             return Boolean.FALSE;
         }
-
-        log.info("fff");
-
         // 管理端采集的条码图并没全部给到采集条码表中,这里需要转移到采集条码表中
         details = orderInstallDetailService.lambdaQuery()
                 .eq(OrderInstallDetail::getOrderBaseId, orderBase.getId())
@@ -296,8 +291,6 @@ public class OrderBaseInstallCjOrWgServiceImpl implements orderBaseInstallCjOrWg
                 return Boolean.FALSE;
             }
         }
-
-        log.info("error ");
         return orderInstallCjOrWg(cjOrWg, brand, ojtutl, CategoryRefmap,orderBase);
     }
 

+ 5 - 1
src/main/java/com/zfire/jiasm/syncdata/test.java

@@ -100,7 +100,7 @@ public class test {
         System.out.println(b);
 
 
-
+        System.out.println("uploadfile/");
 
         long timeStamp = 1691132713 * 1000L; // 时间戳,单位:毫秒
         Date date = new Date(timeStamp);
@@ -108,6 +108,10 @@ public class test {
         String formatTime = sdf.format(date);
         System.out.println(formatTime);
 
+        SimpleDateFormat sdfs = new SimpleDateFormat("yyyyMM/");
+        System.out.println(sdfs.format(new Date()));
+
+
 
 
     }