yaozhixue há 1 ano atrás
pai
commit
0fb40a19e1

+ 8 - 2
src/main/java/com/zfire/jiasm/syncdata/service/impl/GLPPWXGQueryAddServiceImpl.java

@@ -1487,7 +1487,10 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
             return true;
         }
         // 若存在有效期,有效期需变大才可以更新
-        if (ptzjyxq.compareTo(zjyxq)>0){
+        if (StringUtils.isNotEmpty(zj.getZjlj()) && zj.getZjlj().equals(ptzjlj) &&
+                ptzjbh.equals(zjbh) &&
+                ptzjfssj.equals(zjfssj) &&
+                ptzjyxq.compareTo(zjyxq)>0){
             return true;
         }
         return false;
@@ -1633,7 +1636,10 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
             return null;
         }
         // 若存在有效期,有效期需变大才可以更新
-        if (ptzjyxq.compareTo(zjyxq)>0){
+        if (StringUtils.isNotEmpty(zj.getZjlj()) && zj.getZjlj().equals(ptzjlj) &&
+                ptzjbh.equals(zjbh) &&
+                ptSafeCompany.equals(safeCompany) &&
+                ptzjyxq.compareTo(zjyxq)>0){
             return null;
         }
         return ww;

+ 81 - 123
src/main/java/com/zfire/jiasm/syncdata/service/impl/UploadWorkeCertificateServiceImpl.java

@@ -229,6 +229,29 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
         wcgs.add(awc);
     }
 
+    private void getWorkerCertGreeOtherInfo(String outFile, String outFilet,
+                                       List<WorkerCertGree> wcgs, WorkerCert item,
+                                            OutWorkerUpload owu) {
+        WorkerCertGree  awc = new WorkerCertGree();
+        awc.setWorkerCertGreeId(IdWorker.getIdStr());
+        awc.setWorkerId(owu.getWorkerId());
+        awc.setBrandWebsitId(owu.getBrandWebsitId());
+        awc.setCertName(item.getCertName());
+        awc.setCertNo(item.getCertNo());
+        awc.setStartTime(item.getStartTime());
+        awc.setExpireTime(item.getExpireTime());
+        awc.setReviewTime(item.getReviewTime());
+        awc.setCreateTime(new Date());
+        if (StringUtils.isNotEmpty(outFile)){
+            awc.setOutFileUrl(outFile);
+        }
+        if (StringUtils.isNotEmpty(outFilet)){
+            awc.setOutFileUrl2(outFilet);
+        }
+        publicService.setCertFlag(item.getCertName(), awc);
+        wcgs.add(awc);
+    }
+
     private void setWorkerCertGreeIdbak(WorkerBrandAccount wdno, WorkerCertGree awc) {
         WorkerCertGree wcg = workerCertGreeService.lambdaQuery()
                 .eq(WorkerCertGree::getWorkerId, wdno.getWorkerId())
@@ -281,6 +304,8 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
             // 存在保险才同步
             if (StringUtils.isEmpty(item.getInsureFiles()) &&
                     StringUtils.isEmpty(item.getInsureFiles().trim())){
+                owu.setSyncStatus(99);
+                updateOutWorkerUploadError(owu,"师傅保险信息不存在");
                 return Boolean.FALSE;
             }
 
@@ -292,6 +317,7 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
 
             // 未选择品牌商
             if (wbaRecord ==null ){
+                owu.setSyncStatus(99);
                 updateOutWorkerUploadError(owu,"师傅未选择格力品牌商信息");
                 return Boolean.FALSE;
             }
@@ -303,6 +329,7 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
             fileo = uploadInsureBx(item,wbaRecord);
             // 同步失败
             if (StringUtils.isEmpty(fileo)){
+                updateOutWorkerUploadError(owu,"同步师傅保险证件失败");
                 return Boolean.FALSE;
             }
             // 生成网点保险数据实体
@@ -320,6 +347,7 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
                 msg = msg + ex.getMessage();
             }
             updateOutWorkerUploadError(owu,msg);
+            return Boolean.FALSE;
         }
 
         return Boolean.TRUE;
@@ -330,7 +358,7 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
         List<WorkerCertGree> workerbx = new ArrayList<>();
         List<String> workerbxList = new ArrayList<>();
         Boolean isok = Boolean.TRUE;
-
+        List<WorkerCertGree> wcgs = new ArrayList<>();
 
         // 提取师傅的证件数据
         List<WorkerCert> recs = workerCertService.lambdaQuery()
@@ -340,7 +368,6 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
             return Boolean.FALSE;
         }
 
-
         // 提取指定网点、师傅的证件数据
         workerbx =  workerCertGreeService.lambdaQuery()
                 .eq(WorkerCertGree::getWorkerId,owu.getWorkerId())
@@ -353,8 +380,6 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
             workerbx.clear();
         }
 
-
-
         for (WorkerCert item :recs){
             isok = Boolean.FALSE;
             // 证件已同步无需再次同步或是更新
@@ -378,146 +403,79 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
             }
 
             // 证件同步到总部对应的网点
-
-
-
-
-
+            if (!extractedUpCert(owu, wcgs, item)){
+                return Boolean.FALSE;
+            }
         }
+        return Boolean.TRUE;
+    }
 
-
-
-
-
-
-
-
-
-
-        List<WorkerBrandAccount> workerWdnos = new ArrayList<>();
+    private Boolean extractedUpCert(OutWorkerUpload owu, List<WorkerCertGree> wcgs, WorkerCert item) {
         String filePatho ="";
         String filePatht ="";
         String fileIdo ="";
         String fileIdt ="";
-        Integer count = 0;
         Boolean upf=Boolean.TRUE;
         String outFile="";
         String outFilet="";
-        List<WorkerCertGree> wcgs = new ArrayList<>();
-        Map<String,String> wcgids = new HashMap<>();
-
-        // 提取品牌信息 用于多品牌数据同步目前仅格力,可以先不用做
-        Brand brand = baseService.getBrand();
-        if (brand == null) {
-            return Boolean.FALSE;
-        }
-
-
-        List<WorkerCertGree> wcgsold = workerCertGreeService.lambdaQuery().list();
-        if (CollectionUtils.isNotEmpty(wcgsold)){
-            wcgsold.stream().forEach(event->{
-                wcgids.put(event.getWorkerId() + event.getBrandWebsitId() + event.getCertName(),event.getWorkerCertGreeId());
-            });
-            wcgsold.clear();
-        }
-
 
-        // 获取待同步到格力总部师傅的证件信息
-        recs = getWorkerUploads();
-
-        // 测试用
-        // recs =  getWorkerUploadstest();
+        try{
 
-        for (WorkerCert item:recs){
-            count = 0;
+            // 生成图片 System.getProperty("java.io.tmpdir")
+            if (StringUtils.isNotEmpty(item.getFileUrl()) && (StringUtils.isEmpty(item.getOutFileUrl()))){
+                fileIdo = IdWorker.getIdStr() + ".jpeg";
+                filePatho = publicService.pathToGree(fileIdo);
+                File nFile = publicService.createf(filePatho);
+                // 下载文件生成新文件 fid1
+                baseService.saveToFile(ossUtil.getUrlWw(item.getFileUrl()),nFile);
 
-            try{
-                // 证件已同步无需再次同步或是更新
-                if ((StringUtils.isNotEmpty(item.getFileUrl()) && (StringUtils.isNotEmpty(item.getOutFileUrl()))) &&
-                        (StringUtils.isNotEmpty(item.getFileUrl2()) && (StringUtils.isNotEmpty(item.getOutFileUrl2())))){
-                    continue;
-                }
-                //  查看师傅是否已选中品牌商网点(这里只提取选中格力品牌商的师傅数据)
-                workerWdnos = workerBrandAccountService.lambdaQuery()
-                        .eq(WorkerBrandAccount::getWorkerId, item.getWorkerId())
-                        .eq(WorkerBrandAccount::getBrandWorkerStatus,"ON")
-                        .eq(WorkerBrandAccount::getDel,0)
-                        .eq(WorkerBrandAccount::getGroupCompanyId, brand.getBrandId()).list();
+            }
+            if (StringUtils.isNotEmpty(item.getFileUrl2()) && (StringUtils.isEmpty(item.getOutFileUrl2()))){
+                fileIdt = IdWorker.getIdStr() + ".jpeg";
+                filePatht = publicService.pathToGree(fileIdt);
+                File nFile = publicService.createf(filePatht);
+                // 下载文件生成新文件 fid2
+                baseService.saveToFile(ossUtil.getUrlWw(item.getFileUrl2()),nFile);
+            }
 
-                // 未选择品牌商
-                if (workerWdnos.size()<1){
-                    updateWorkCertificateerror(item,"师傅未选择格力品牌商信息");
-                    continue;
-                }
 
-                //  判断师傅入驻的商户网点
-                count = getCount(workerWdnos, count);
-                if (count.equals(workerWdnos.size())){
-                    updateWorkCertificateerror(item,"师傅未入驻品牌商网点");
-                    continue;
+            // 上传图片 按网点上传
+            if (StringUtils.isNotEmpty(filePatho)){
+                outFile = uploadWdnoFile(owu.getBrandWebsitId(), item, filePatho, fileIdo);
+                if (StringUtils.isEmpty(outFile)){
+                    upf=Boolean.FALSE;
                 }
+            }
 
-                // 生成图片 System.getProperty("java.io.tmpdir")
-                if (StringUtils.isNotEmpty(item.getFileUrl()) && (StringUtils.isEmpty(item.getOutFileUrl()))){
-                    fileIdo = IdWorker.getIdStr() + ".jpeg";
-                    filePatho = publicService.pathToGree(fileIdo);
-                    File nFile = publicService.createf(filePatho);
-                    // 下载文件生成新文件 fid1
-                    baseService.saveToFile(ossUtil.getUrlWw(item.getFileUrl()),nFile);
-
+            if (StringUtils.isNotEmpty(filePatht)){
+                outFilet = uploadWdnoFile(owu.getBrandWebsitId(), item, filePatht, fileIdt);
+                if (StringUtils.isEmpty(outFilet)){
+                    upf=Boolean.FALSE;
                 }
-                if (StringUtils.isNotEmpty(item.getFileUrl2()) && (StringUtils.isEmpty(item.getOutFileUrl2()))){
-                    fileIdt = IdWorker.getIdStr() + ".jpeg";
-                    filePatht = publicService.pathToGree(fileIdt);
-                    File nFile = publicService.createf(filePatht);
-                    // 下载文件生成新文件 fid2
-                    baseService.saveToFile(ossUtil.getUrlWw(item.getFileUrl2()),nFile);
-                }
-
-                // 上传图片 按网点上传
-                for (WorkerBrandAccount wdno: workerWdnos){
-                    outFile="";
-                    outFilet="";
-                    upf=Boolean.TRUE;
-
-                    if (StringUtils.isEmpty(wdno.getBrandWebsitId())){
-                        continue;
-                    }
-
-                    if (StringUtils.isNotEmpty(filePatho)){
-                        outFile = uploadWdnoFile(wdno.getBrandWebsitId(), item, filePatho, fileIdo);
-                        if (StringUtils.isEmpty(outFile)){
-                            upf=Boolean.FALSE;
-                        }
-                    }
+            }
 
-                    if (StringUtils.isNotEmpty(filePatht)){
-                        outFilet = uploadWdnoFile(wdno.getBrandWebsitId(), item, filePatht, fileIdt);
-                        if (StringUtils.isEmpty(outFilet)){
-                            upf=Boolean.FALSE;
-                        }
-                    }
-                    // 网点上传成功 生成对像
-                    if (upf){
-                        getWorkerCertGreeInfo(outFile, outFilet, wcgs, item, wdno, wcgids);
-                    }
-                }
-                // 上传完后师傅所在网点的证件保存,并写入更新表待师傅证件修改
-                // 保存最后网点图,目的下次无需再同步图片
-                extractedEnd(wcgs, item, outFile, outFilet);
+            // 网点上传成功 生成对像
+            if (upf){
+                getWorkerCertGreeOtherInfo(outFile, outFilet, wcgs, item, owu);
+            }
+            // 保存网点证件,目的下次无需再同步图片
+            if (wcgs.size()>0){
+                workerCertGreeService.saveOrUpdateBatch(wcgs);
+                wcgs.clear();
+            }
 
-                // 文件清除
-                delfile(filePatho, filePatht, "");
+            // 文件清除
+            delfile(filePatho, filePatht, "");
 
-            } catch (Exception ex) {
-                ex.printStackTrace();
-                log.info("同步师傅证件失败:【" + item.getId() + "】");
-                String msg = "同步师傅证件失败:";
-                if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(ex.getMessage())){
-                    msg = msg + ex.getMessage();
-                }
-                updateWorkCertificateerror(item,msg);
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            log.info("同步师傅入驻新网点证件失败:【" + item.getId() + "】");
+            String msg = "同步师傅入驻新网点证件失败:";
+            if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(ex.getMessage())){
+                msg = msg + ex.getMessage();
             }
+            updateOutWorkerUploadError(owu,msg);
+            return Boolean.FALSE;
         }
         return Boolean.TRUE;
     }

+ 1 - 166
src/main/java/com/zfire/jiasm/syncdata/service/impl/UploadWorkerTOGreeServiceImpl.java

@@ -297,37 +297,6 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
     @Override
     public void procesAddCertWorker(){
         List<OutWorkerUpload> recs = new ArrayList<>();
-        Worker worker = new Worker();
-        List<WorkerBrandAccount> workerBrandAccount = new ArrayList<>();
-        List<SignSplb> jySignSplbList = new ArrayList<>();
-        List<SignSplb> sySignSplbList = new ArrayList<>();
-        List<SignSplb> jyList = new ArrayList<>();
-        List<SignSplb> syList = new ArrayList<>();
-        WebsitQXLB websitqypl = new WebsitQXLB();
-        List<ItfTblWangdianPositionDownload> wdwxgGl = new ArrayList<>();
-        Map<String,List<ItfTblWangdianPositionDownload>> wdwxgGlMap = new HashMap<>();
-        Map<String,List<Worker>> workersMap = new HashMap<>();
-
-        String wxgaddapi = "/outapp/wxg/add";
-        String wdqyapi = "/outapp/wxg/base";
-
-        // 提取品牌信息
-        Brand brand = baseService.getBrand();
-        if (brand == null) {
-            return;
-        }
-
-        wdwxgGl = itfTblWangdianPositionDownloadService.lambdaQuery().list();
-        wdwxgGlMap = wdwxgGl.stream().
-                collect(Collectors.groupingBy(ItfTblWangdianPositionDownload::getWxgno));
-
-        // 只提取已入驻的师傅信息
-        List<Worker> workers = workerService.lambdaQuery()
-                .eq(Worker::getStatus,"ON").list();
-        if (CollectionUtils.isNotEmpty(workers)){
-            workersMap = workers.stream().
-                    collect(Collectors.groupingBy(Worker::getWorkerId));
-        }
 
         // 获取待入驻的新网点师傅数据
         recs = getWorkerUploads(1);
@@ -346,143 +315,9 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
                 if (!uploadWorkeCertificateService.UploadWorkeCert(item)){
                     continue;
                 }
-
-
-
-
-
-
-
-
-
-                /////////////////////////////////////////////
-
-
-                WorkUploadInfo req = new WorkUploadInfo();
-                WorkerCertificateInfo workerCertificateInfo = new WorkerCertificateInfo();
-
-                // 获取师傅信息  需要同步的师傅必须在平台系统中存在
-                if (!workersMap.containsKey(item.getWorkerId())){
-                    // 写入表备注信息
-                    updateWorkerUploadLag(item,"师傅尚未在平台中入驻");
-                    continue;
-                }
-                worker = workersMap.get(item.getWorkerId()).get(0);
-
-                // 查看师傅是否已选中品牌商 同步状态为有效状态
-                // 这里存在一个商户网点对应平台多个网点
-                workerBrandAccount = getWorkerBrandAccount(brand, item, worker);
-                if (CollectionUtils.isEmpty(workerBrandAccount)) {
-                    continue;
-                }
-
-                // 格力一个师傅最多三个有效网点超3个网点不能同步
-                if (checkWebsitSum(workerBrandAccount,item)){
-                    continue;
-                }
-
-                // 按网点同步
-
-                for (WorkerBrandAccount dot: workerBrandAccount){
-                    // 找出指定网点 三方网点与平台网点
-                    if (!(dot.getBrandWebsitId().equals(item.getBrandWebsitId()) &&
-                            dot.getWebsitId().equals(item.getWebsitId()))){
-                        continue;
-                    }
-
-                    // 必填参数 省份-城市-区县-乡镇 找一个即可
-                    if (getaddres(item, req, dot)) {
-                        continue;
-                    }
-
-                    // 提取师傅证件信息,未同步时不处理
-                    if (getCertificateInfo(workerCertificateInfo, worker.getWorkerId(),dot)){
-                        continue;
-                    }
-
-                    /**
-                     * 必要条件必须满足,否则不进行数据上传动作 身份证、高空证、保险证
-                     * 师傅信息同步到总部的必要条件:
-                     * 1:身份证、2:保险,3:高空证(复审时间必填)  这三个条件必备否则无法同步
-                     * 制冷证可以没有,如果填了复审时间则必填
-                     */
-                    if (checkNecessary(item, workerCertificateInfo)){
-                        continue;
-                    }
-
-                    // 获取签约品类
-                    if (getCategory(brand, jySignSplbList, sySignSplbList, worker, item, dot.getWebsitId())){
-                        continue;
-                    }
-
-                    // 生成数据对象 证件
-                    getreq(workerCertificateInfo, req, worker,dot.getWebsitWorkerId());
-
-                    // 师傅所在网点状态
-                    req.setFlag("有效");
-                    if (worker.getStatus().equals("OFF") || dot.getBrandWorkerStatus().equals("OFF")){
-                        req.setFlag("无效");
-                    }
-
-                    //网点未签约品类时该网点师傅信息不同步
-                    GreeResponseHelper response = getwdqylbxx(wdqyapi,dot.getBrandWebsitId());
-                    if (response.getStatus() == 200){
-                        // 获取网点签约的品类信息
-                        websitqypl = JSONObject.parseObject(response.getData().toString(), WebsitQXLB.class);
-                        log.info("总部网点签约的品类信息{}-{}",dot.getBrandWebsitId(),JSONObject.toJSONString(websitqypl));
-                    } else {
-                        // 写入表备注信息
-                        updateWorkerUploadLag(item,"获取网点签约的品类信息失败["+
-                                dot.getBrandWebsitId()+"]-"+
-                                (StringUtils.isEmpty(response.getMsg()) ? "":response.getMsg()));
-                        continue;
-                    }
-
-                    log.info("平台师傅签约的品类信息[{}-{}] 家用:{} 商用:{}",
-                            worker.getWorkerId(),dot.getWebsitId(),
-                            JSONObject.toJSONString(jySignSplbList),JSONObject.toJSONString(sySignSplbList));
-
-                    // 从网点签约的品类信息中过滤师傅的品类信息
-                    String result = extracted(jySignSplbList, sySignSplbList, jyList, syList, websitqypl,dot.getBrandWebsitId());
-                    if (result.length()>0){
-                        // 写入表备注信息
-                        updateWorkerUploadLag(item,result);
-                        continue;
-                    }
-
-                    // 过滤后无品类,不能上传
-                    if (jyList.size()<1 && syList.size()<1){
-                        // 写入表备注信息
-                        updateWorkerUploadLag(item,"师傅签约品类过滤后不能同时为空");
-                        continue;
-                    }
-
-                    // 按网点过滤师傅的类别信息
-                    req.setJySignSplbList(jyList);
-                    req.setSySignSplbList(syList);
-
-                    // 服务人员编号(不填值为新增,填值为修改)
-                    if (StringUtils.isNotEmpty(dot.getBrandWorkerNumber())){
-                        req.setWxgno(dot.getBrandWorkerNumber());
-                        // 重置部分数据 以格力门店数据为准
-                        resetParameter(wdwxgGlMap, req);
-                    }
-
-                    // 所属网点
-                    req.setWdno(dot.getBrandWebsitId());
-
-                    // 日志
-                    log.info("创建或修改师傅信息request:{}",JSONObject.toJSONString(req));
-
-                    // 同步
-                    syncData(dot.getId(), wxgaddapi, item, req,dot.getBrandWebsitId());
-
-                    jyList.clear();
-                    syList.clear();
-                }
             } catch (Exception ex) {
                 ex.printStackTrace();
-                String msg ="向总部创建师傅同步失败";
+                String msg ="向总部同步师傅入驻指定网点证件失败";
                 if (ex.getMessage() != null){
                     msg = ex.getMessage();
                 }

+ 1 - 1
src/main/resources/mapper/AzWgmxJyktDownloadMapper.xml

@@ -13,7 +13,7 @@
                if(length(a.sjcjgps)>100,left(a.sjcjgps,100),a.sjcjgps) as gps_address,0 as is_sync,IFNULL(a.jsdwxtbh, '') as settle_websit_id,
                a.zjssj as settle_time,a.last_modified_date as update_time,b.sale_type as sales_type,b.sale_websit_id as sales_websit_id,
                p.inside_num,p.out_num,a.pgguid,a.pgwcmxid,0 as detail_source,'NO' as is_cj_send,'NO' as is_wg_send,
-               if(length(p.id)>50,left(p.id,50),p.id) as pgmxid,
+               if(length(p.pgmxid)>50,left(p.pgmxid,50),p.pgmxid) as pgmxid,
                a.czren as operator_account,a.czren as operator_name,a.czwd as operator_websit_id,b.worker_id as main_worker_id,
                b.worker_name as main_worker_name,a.cjren as create_by,a.cjdt as create_time,a.last_modified_by as update_by,
                case a.installenvironment when 1 then 'YES' else 'NO' end as is_special,a.flbz as assist_remark,