yaozhixue 2 年之前
父节点
当前提交
993a049060

+ 1 - 0
src/main/java/com/zfire/jiasm/syncdata/service/UploadWorkeCertificateService.java

@@ -15,4 +15,5 @@ public interface UploadWorkeCertificateService {
 
 
     Boolean uploadWorkeBx(OutWorkerUpload owu);
+    Boolean UploadWorkeCert(OutWorkerUpload owu);
 }

+ 1 - 0
src/main/java/com/zfire/jiasm/syncdata/service/impl/AddInstallBusinessImpl.java

@@ -2677,6 +2677,7 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
             op.setSeriesName(sysDictRefXiLieMap.get(mx.getXiid()).get(0).getDictValue());
         }
 
+        // 改成 product 表中的 product_id
         op.setProductId(mx.getJxno());
         op.setProductName(mx.getJxmc());
         op.setInsideCode(mx.getNjtm());

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

@@ -551,8 +551,8 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
 
         // 自生成 一定要与websit_worker.websit_worker_id相同
         // websitId + 手机号
-        add.setWebsitWorkerId(workerIdCardMap.get(m.getSfzen().trim()).get(0).getWorkerId() +
-                workerIdCardMap.get(m.getSfzen().trim()).get(0).getMobile());
+        // 存放总部的师傅编号
+        add.setWebsitWorkerId(m.getWxgno());
 
         add.setGroupCompanyId(i.getGroupCompanyId());
         add.setGroupCompanyName(i.getGroupCompanyName());

+ 160 - 43
src/main/java/com/zfire/jiasm/syncdata/service/impl/UploadWorkeCertificateServiceImpl.java

@@ -243,12 +243,10 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
 
     @Override
     public Boolean uploadWorkeBx(OutWorkerUpload owu){
-        List<WorkerBrandAccount> workerWdnos = new ArrayList<>();
         List<WorkerCertGree> wcgs = new ArrayList<>();
         String fileo = "";
-        Integer count = 0;
 
-        // 查看指定网点的师傅保险数据是否已生成
+        // 查看指定网点、师傅的保险数据是否已生成
         WorkerCertGree workerbx = new WorkerCertGree();
         workerCertGreeService.lambdaQuery()
                 .eq(WorkerCertGree::getWorkerId,owu.getWorkerId())
@@ -263,22 +261,23 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
         // 提取品牌信息 用于多品牌数据同步目前仅格力,可以先不用做
         Brand brand = baseService.getBrand();
         if (brand == null) {
+            updateOutWorkerUploadError(owu,"格力品牌信息不存在");
             return Boolean.FALSE;
         }
 
 
-        // 获取指定师傅指定网点的保险证
+        // 获取指定师傅网点的保险证
         WebsitWorker item = websitWorkerService.lambdaQuery()
                 .eq(WebsitWorker::getWorkerId,owu.getWorkerId())
                 .eq(WebsitWorker::getWebsitId,owu.getWebsitId())
                 .one();
-        // 若未同步生成三方文件不处理,等待其他定时任务处理
+        // 若未同步生成三方文件不处理,等待其他定时任务处理 processUploadTask
         if (StringUtils.isEmpty(item.getOutInsureCert())){
+            updateOutWorkerUploadError(owu,"等待同步保险信息");
             return Boolean.FALSE;
         }
 
         fileo ="";
-        count = 0;
         try{
             // 存在保险才同步
             if (StringUtils.isEmpty(item.getInsureFiles()) &&
@@ -286,51 +285,30 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
                 return Boolean.FALSE;
             }
 
-
             //  查看师傅是否已选中品牌商网点(这里只提取选中格力品牌商的师傅数据)
-            workerWdnos = workerBrandAccountService.lambdaQuery()
-                    .eq(WorkerBrandAccount::getWorkerId, item.getWorkerId())
-                    .eq(WorkerBrandAccount::getWebsitWorkerId, item.getWebsitWorkerId())
-                    .eq(WorkerBrandAccount::getWebsitId, item.getWebsitId())
-                    .eq(WorkerBrandAccount::getBrandWorkerStatus,"ON")
-                    .eq(WorkerBrandAccount::getDel,0)
-                    .eq(WorkerBrandAccount::getGroupCompanyId, brand.getBrandId()).list();
+            WorkerBrandAccount wbaRecord = workerBrandAccountService.lambdaQuery()
+                    .eq(WorkerBrandAccount::getWorkerId, owu.getWorkerId())
+                    .eq(WorkerBrandAccount::getBrandWebsitId, owu.getBrandWebsitId())
+                    .eq(WorkerBrandAccount::getGroupCompanyId, brand.getBrandId()).last("limit 1").one();
 
             // 未选择品牌商
-            if (workerWdnos.size()<1){
-                updateWebsitWorkererror(item,"师傅未选择格力品牌商信息");
+            if (wbaRecord ==null ){
+                updateOutWorkerUploadError(owu,"师傅未选择格力品牌商信息");
                 return Boolean.FALSE;
             }
 
-            //  判断师傅入驻的商户网点
-            count = getCount(workerWdnos, count);
-            if (count.equals(workerWdnos.size())){
-                updateWebsitWorkererror(item,"师傅未入驻品牌商网点");
-                return Boolean.FALSE;
-            }
 
             // 上传图片 按师傅所在网点上传保险证数据
-            for (WorkerBrandAccount wdno: workerWdnos){
-                // 找出指定网点 三方网点与平台网点
-                if (!(wdno.getBrandWebsitId().equals(owu.getBrandWebsitId()) &&
-                        wdno.getWebsitId().equals(owu.getWebsitId()))){
-                    continue;
-                }
-
-
-                delfilet(fileo);
-                if (StringUtils.isEmpty(wdno.getBrandWebsitId())){
-                    continue;
-                }
-                // 上传保险
-                fileo = uploadInsureBx(item,wdno);
-                // 同步失败
-                if (StringUtils.isEmpty(fileo)){
-                    continue;
-                }
-                // 生成网点保险数据
-                getWorkerCertBxGree(wcgs, item, wdno);
+            delfilet(fileo);
+            // 上传保险
+            fileo = uploadInsureBx(item,wbaRecord);
+            // 同步失败
+            if (StringUtils.isEmpty(fileo)){
+                return Boolean.FALSE;
             }
+            // 生成网点保险数据实体
+            getWorkerCertBxGree(wcgs, item, wbaRecord);
+
             // 保存本地表
             extractedUploadBxEnd(wcgs);
             // 文件清除
@@ -342,13 +320,144 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
             if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(ex.getMessage())){
                 msg = msg + ex.getMessage();
             }
-            updateWebsitWorkererror(item,msg);
+            updateOutWorkerUploadError(owu,msg);
         }
 
         return Boolean.TRUE;
     }
 
     @Override
+    public Boolean UploadWorkeCert(OutWorkerUpload owu){
+        List<WorkerCert> recs = new ArrayList<>();
+        List<WorkerBrandAccount> workerWdnos = new ArrayList<>();
+        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();
+
+        for (WorkerCert item:recs){
+            count = 0;
+
+            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 (workerWdnos.size()<1){
+                    updateWorkCertificateerror(item,"师傅未选择格力品牌商信息");
+                    continue;
+                }
+
+                //  判断师傅入驻的商户网点
+                count = getCount(workerWdnos, count);
+                if (count.equals(workerWdnos.size())){
+                    updateWorkCertificateerror(item,"师傅未入驻品牌商网点");
+                    continue;
+                }
+
+                // 生成图片 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(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);
+
+                // 文件清除
+                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);
+            }
+        }
+        return Boolean.TRUE;
+    }
+
+    @Override
     public void procesUploadWorkeBx() {
         List<WebsitWorker> wws = new ArrayList<>();
         List<WorkerBrandAccount> workerWdnos = new ArrayList<>();
@@ -1109,6 +1218,14 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
         websitWorkerService.updateById(v);
     }
 
+    private void updateOutWorkerUploadError(OutWorkerUpload owu, String msg) {
+        owu.setSyncErrorMsg(msg);
+        if (msg.length()>250){
+            owu.setSyncErrorMsg(msg.substring(0,250));
+        }
+        owu.updateById();
+    }
+
 
     private void updateWorkCertificatesave(WorkerCert i, String file, Integer flag,
                                            Boolean bool, Boolean onlyOne) {

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

@@ -338,8 +338,24 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
         for (OutWorkerUpload item:recs){
             try{
                 // 先同步保险数据
-                uploadWorkeCertificateService.uploadWorkeBx(item);
+                if (!uploadWorkeCertificateService.uploadWorkeBx(item)){
+                    continue;
+                }
+
+                // 再同步其他证件数据
+                if (!uploadWorkeCertificateService.UploadWorkeCert(item)){
+                    continue;
+                }
+
+
+
+
+
+
+
+
 
+                /////////////////////////////////////////////
 
 
                 WorkUploadInfo req = new WorkUploadInfo();

+ 4 - 0
src/main/java/com/zfire/jiasm/syncdata/upload/worker/UploadWorkerTOGree.java

@@ -77,6 +77,10 @@ public class UploadWorkerTOGree {
     //师傅入驻格力新网点
     @Scheduled(fixedDelayString = "${workercerupload}")
     public void workAddProcess() throws Exception {
+        if (1==1){
+            return;
+        }
+
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         if (workerceruploadc.equals(TaskConfigEnum.FALSE.getCode())){
             return;