yaozhixue 1 rok pred
rodič
commit
25de9fa6a4

+ 226 - 9
src/main/java/com/zfire/jiasm/syncdata/service/impl/UploadWorkeCertificateServiceImpl.java

@@ -7,14 +7,8 @@ import com.zfire.jiasm.syncdata.gree.GreeLogic;
 import com.zfire.jiasm.syncdata.helper.GreeFileResponseHelper;
 import com.zfire.jiasm.syncdata.helper.GreeFileSaveHelper;
 import com.zfire.jiasm.syncdata.http.PostObjectSample;
-import com.zfire.jiasm.syncdata.plus.entity.Brand;
-import com.zfire.jiasm.syncdata.plus.entity.InsureWorkerRecord;
-import com.zfire.jiasm.syncdata.plus.entity.WorkerBrandAccount;
-import com.zfire.jiasm.syncdata.plus.entity.WorkerCert;
-import com.zfire.jiasm.syncdata.plus.service.InsureWorkerRecordService;
-import com.zfire.jiasm.syncdata.plus.service.WebsitWorkerService;
-import com.zfire.jiasm.syncdata.plus.service.WorkerBrandAccountService;
-import com.zfire.jiasm.syncdata.plus.service.WorkerCertService;
+import com.zfire.jiasm.syncdata.plus.entity.*;
+import com.zfire.jiasm.syncdata.plus.service.*;
 import com.zfire.jiasm.syncdata.response.ResultData;
 import com.zfire.jiasm.syncdata.service.PublicService;
 import com.zfire.jiasm.syncdata.service.UploadWorkeCertificateService;
@@ -46,6 +40,12 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
     PublicService publicService;
     @Resource
     InsureWorkerRecordService insureWorkerRecordService;
+    @Resource
+    InsureWorkerCommercialService insureWorkerCommercialService;
+    @Resource
+    InsureWorkerCommercialFileService insureWorkerCommercialFileService;
+    @Resource
+    WorkerMrbxService workerMrbxService;
 
 
 
@@ -113,10 +113,15 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
 
                 // 上传图片 按网点上传
                 for (WorkerBrandAccount wdno: workerWdnos){
+                    if (StringUtils.isEmpty(wdno.getBrandWebsitId())){
+                        continue;
+                    }
+
                     uploadFileexc(fileo, filet,wdno.getBrandWebsitId(),item);
                     delfilet(fid3);
                     // 保险数据同步 保险证不在证件表中
-                    fid3 = uploadInsureCert(wdno);
+                    // fid3 = uploadInsureCert(wdno);
+                    fid3 = uploadInsureBx(wdno);
                 }
 
                 // 文件清除
@@ -191,6 +196,136 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
         return fid1;
     }
 
+
+    private String uploadInsureBx(WorkerBrandAccount wdno) throws Exception {
+        SimpleDateFormat sdfs = new SimpleDateFormat("yyyyMM/");
+        String fileo ="";
+        String fid1 = "";
+
+        InsureWorkerCommercial iwc = insureWorkerCommercialService.lambdaQuery()
+                .eq(InsureWorkerCommercial::getWorkerId, wdno.getWorkerId())
+                .eq(InsureWorkerCommercial::getWebsitId, wdno.getWebsitId())
+                .last("limit 1").one();
+        if (iwc != null){
+            InsureWorkerCommercialFile iwcf = insureWorkerCommercialFileService.lambdaQuery()
+                    .eq(InsureWorkerCommercialFile::getInsureWorkerCommercialId,iwc.getId())
+                    .last("limit 1").one();
+            if (iwcf !=null){
+                if (StringUtils.isNotEmpty(iwcf.getOutZjlj())){
+                    // 已上传就不需要再上传
+                    return fid1;
+                }
+                if (StringUtils.isNotEmpty(iwcf.getFileUrl())){
+                    // 上传
+                    fid1 = publicService.path(iwcf.getFileUrl());
+                    File nFile = publicService.createf(fid1);
+                    baseService.saveToFile(ossUtil.getUrlWw(iwcf.getFileUrl()),nFile);
+                    fileo = fid1;
+                    uploadInitFile(fileo, fid1, wdno.getBrandWebsitId(),iwcf);
+                    return fid1;
+                }
+            }
+        }
+        // 查家用保险
+        InsureWorkerRecord wk = insureWorkerRecordService.lambdaQuery()
+                .eq(InsureWorkerRecord::getWorkerId, wdno.getWorkerId())
+                .eq(InsureWorkerRecord::getWebsitId, wdno.getWebsitId())
+                .last("limit 1").one();
+        if (wk !=null){
+            if (StringUtils.isNotEmpty(wk.getOutVoucher())){
+                // 已上传就不需要再上传
+                return fid1;
+            }
+            if (StringUtils.isNotEmpty(wk.getVoucher())){
+                // 上传
+                fid1 = publicService.path(wk.getVoucher());
+                File nFile = publicService.createf(fid1);
+                baseService.saveToFile(ossUtil.getUrlWw(wk.getVoucher()),nFile);
+                fileo = fid1;
+                uploadInitFileexc(fileo, fid1, wdno.getBrandWebsitId(),wk);
+                return fid1;
+            }
+        }
+
+
+        // 加上getWebsitId条件找不到时,去掉getWebsitId条件
+        InsureWorkerCommercial iwcc = insureWorkerCommercialService.lambdaQuery()
+                .eq(InsureWorkerCommercial::getWorkerId, wdno.getWorkerId())
+                // .eq(InsureWorkerCommercial::getWebsitId, wdno.getWebsitId())
+                .orderByDesc(InsureWorkerCommercial::getEndTime)
+                .last("limit 1").one();
+        if (iwcc != null){
+            InsureWorkerCommercialFile iwcf = insureWorkerCommercialFileService.lambdaQuery()
+                    .eq(InsureWorkerCommercialFile::getInsureWorkerCommercialId,iwcc.getId())
+                    .last("limit 1").one();
+            if (iwcf !=null){
+                if (StringUtils.isNotEmpty(iwcf.getOutZjlj())){
+                    // 已上传就不需要再上传
+                    return fid1;
+                }
+                if (StringUtils.isNotEmpty(iwcf.getFileUrl())){
+                    // 上传
+                    fid1 = publicService.path(iwcf.getFileUrl());
+                    File nFile = publicService.createf(fid1);
+                    baseService.saveToFile(ossUtil.getUrlWw(iwcf.getFileUrl()),nFile);
+                    fileo = fid1;
+                    uploadInitFile(fileo, fid1, wdno.getBrandWebsitId(),iwcf);
+                    return fid1;
+                }
+            }
+        }
+        // 查家用保险
+        InsureWorkerRecord wkk = insureWorkerRecordService.lambdaQuery()
+                .eq(InsureWorkerRecord::getWorkerId, wdno.getWorkerId())
+                // .eq(InsureWorkerRecord::getWebsitId, wdno.getWebsitId())
+                .orderByDesc(InsureWorkerRecord::getEndTime)
+                .last("limit 1").one();
+        if (wkk !=null){
+            if (StringUtils.isNotEmpty(wkk.getOutVoucher())){
+                // 已上传就不需要再上传
+                return fid1;
+            }
+            if (StringUtils.isNotEmpty(wkk.getVoucher())){
+                // 上传
+                fid1 = publicService.path(wkk.getVoucher());
+                File nFile = publicService.createf(fid1);
+                baseService.saveToFile(ossUtil.getUrlWw(wkk.getVoucher()),nFile);
+                fileo = fid1;
+                uploadInitFileexc(fileo, fid1, wdno.getBrandWebsitId(),wkk);
+                return fid1;
+            }
+        }
+
+
+
+
+        // 师傅必买保险,所以不会不存在
+        return fid1;
+
+        /*// 增加一个已上传过的表判断
+        WorkerMrbx mbx = workerMrbxService.lambdaQuery()
+                .eq(WorkerMrbx::getWorkerId, wdno.getWorkerId())
+                .eq(WorkerMrbx::getWebsitId, wdno.getWebsitId())
+                .isNotNull(WorkerMrbx::getOutZjlj)
+                .last("limit 1").one();
+        if (mbx != null){
+            // 存在上传过的默认就不再上传 无论传的是哪一个师傅的 统一使用一个默认的
+            return fid1;
+        }
+
+        // 都没有时上传 默认
+        WorkerMrbx wmrbx = new WorkerMrbx();
+        wmrbx.setId(IdWorker.getIdStr());
+        wmrbx.setWorkerId(wdno.getWorkerId());
+        wmrbx.setWebsitId(wdno.getWebsitId());
+        fid1 = publicService.path("bx.jpg");
+        baseService.initFile(fid1);
+        fileo = fid1;
+        uploadInitMRFileexc(fileo, fid1, wdno.getBrandWebsitId(),wmrbx);
+
+        return fid1;*/
+    }
+
     private Boolean uploadFileexc(String fileo, String filet, String wdno,WorkerCert item) throws Exception {
         Boolean uploadfile = Boolean.TRUE;
         Boolean onlyone = Boolean.FALSE;
@@ -325,6 +460,88 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
         return Boolean.FALSE;
     }
 
+
+    private Boolean uploadInitMRFileexc(String fileo, String fid1,String wdno,WorkerMrbx wk) throws Exception {
+
+        if (StringUtils.isEmpty(wdno)){
+            return Boolean.TRUE;
+        }
+
+        if (StringUtils.isNotEmpty(fileo)){
+            // 1: 获取签名信息
+            GreeFileResponseHelper response =  greeLogic.ossGetSignt(wdno,"GET");
+            if (response.getStatusCode() == 200){
+                ResultData resultData = JSONObject.parseObject(response.getData().toString(), ResultData.class);
+                resultData.getExtData().setDir(resultData.getExtData().getDir()+"/"+fid1);
+                // 2:文件上传
+                PostObjectSample ossPostObject = new PostObjectSample();
+                String result = ossPostObject.PostObject(fileo, resultData.getExtData());
+                // 3: 保存文件
+                if (StringUtils.isEmpty(result.trim())){
+                    Map<String,String>req = new HashMap<>();
+                    // 生成对象
+                    getSaveFileInfo(fid1, resultData, req);
+                    GreeFileSaveHelper responses = greeLogic.greePostSaveFile(req);
+
+                    if (responses.getStatusCode() == 200){
+                        // 保存文件ID   responses.getData().getId()
+                        wk.setOutZjlj(responses.getData().getId());
+                        wk.setSyncTime(new Date());
+                        workerMrbxService.save(wk);
+                    } else {
+                        // 失败
+                        log.info("保存保险证件文件到格力总部失败");
+                    }
+                } else {
+                    log.info("保险证件上传图片到OSS失败");
+                }
+            } else {
+                log.info("获取签名信息失败");
+                return Boolean.TRUE;
+            }
+        }
+
+        return Boolean.FALSE;
+    }
+
+    private Boolean uploadInitFile(String fileo, String fid1,String wdno,InsureWorkerCommercialFile wk) throws Exception {
+        if (StringUtils.isNotEmpty(fileo)){
+            // 1: 获取签名信息
+            GreeFileResponseHelper response =  greeLogic.ossGetSignt(wdno,"GET");
+            if (response.getStatusCode() == 200){
+                ResultData resultData = JSONObject.parseObject(response.getData().toString(), ResultData.class);
+                resultData.getExtData().setDir(resultData.getExtData().getDir()+"/"+fid1);
+                // 2:文件上传
+                PostObjectSample ossPostObject = new PostObjectSample();
+                String result = ossPostObject.PostObject(fileo, resultData.getExtData());
+                // 3: 保存文件
+                if (StringUtils.isEmpty(result.trim())){
+                    Map<String,String>req = new HashMap<>();
+                    // 生成对象
+                    getSaveFileInfo(fid1, resultData, req);
+                    GreeFileSaveHelper responses = greeLogic.greePostSaveFile(req);
+
+                    if (responses.getStatusCode() == 200){
+                        // 保存文件ID   responses.getData().getId()
+                        wk.setOutZjlj(responses.getData().getId());
+                        wk.setOutZjljProcess(1);
+                        wk.updateById();
+                    } else {
+                        // 失败
+                        log.info("保存保险证件文件到格力总部失败");
+                    }
+                } else {
+                    log.info("保险证件上传图片到OSS失败");
+                }
+            } else {
+                log.info("获取签名信息失败");
+                return Boolean.TRUE;
+            }
+        }
+
+        return Boolean.FALSE;
+    }
+
     private Integer getCount(List<WorkerBrandAccount> workerWdnos, Integer count) {
         for (WorkerBrandAccount w: workerWdnos){
             if (StringUtils.isEmpty(w.getBrandWebsitId())){

+ 51 - 16
src/main/java/com/zfire/jiasm/syncdata/service/impl/UploadWorkerTOGreeServiceImpl.java

@@ -24,6 +24,7 @@ import org.jetbrains.annotations.Nullable;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.io.File;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -59,6 +60,14 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
     PublicService publicService;
     @Resource
     WebsitWorkerService websitWorkerService;
+    @Resource
+    InsureWorkerCommercialService insureWorkerCommercialService;
+    @Resource
+    InsureWorkerCommercialFileService insureWorkerCommercialFileService;
+    @Resource
+    WorkerMrbxService workerMrbxService;
+    @Resource
+    InsureWorkerRecordService insureWorkerRecordService;
 
 
 
@@ -144,7 +153,7 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
                 for (WorkerBrandAccount dot: workerBrandAccount){
 
                     // 提取师傅证件信息,未同步时不处理
-                    if (getCertificateInfo(workerCertificateInfo, worker.getWorkerId(),dot.getWebsitWorkerId())){
+                    if (getCertificateInfo(workerCertificateInfo, worker.getWorkerId(),dot)){
                         break;
                     }
 
@@ -210,7 +219,7 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
                         // 重值部分数据 以格力门店数据为准
                         resetParameter(wdwxgGlMap, req,workerStreet);
                     } else {
-                        extractedPCAS(req, workerStreet);
+                        // extractedPCAS(req, workerStreet);
                     }
                     // 所属网点
                     req.setWdno(dot.getBrandWebsitId());
@@ -383,13 +392,13 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
         return Boolean.FALSE;
     }
 
-    private Boolean getCertificateInfo(WorkerCertificateInfo workerCertificateInfo, String workerId, String websitWorkerId) throws ParseException {
+    private Boolean getCertificateInfo(WorkerCertificateInfo workerCertificateInfo, String workerId, WorkerBrandAccount dot) throws ParseException {
         // 身份证
         if (getsfz(workerCertificateInfo, workerId)){
             return Boolean.FALSE;
         }
         // 保险证
-        if (getbxz(workerCertificateInfo, workerId, websitWorkerId)){
+        if (getbxz(workerCertificateInfo, dot)){
             return Boolean.FALSE;
         }
         // 高空作业证
@@ -542,21 +551,47 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
     }
 
     // true为有信息
-    private Boolean getbxz(WorkerCertificateInfo workerCertificateInfo, String workerId, String websitWorkerId) throws ParseException {
-        WebsitWorker wk = websitWorkerService.lambdaQuery()
-                .eq(WebsitWorker::getWebsitWorkerId,websitWorkerId)
-                .last("limit 1")
-                .one();
-
-        // 证件信息未同步,不操作
-        if (StringUtils.isEmpty(wk.getOutInsureCert())){
-            return Boolean.TRUE;
+    private Boolean getbxz(WorkerCertificateInfo workerCertificateInfo,WorkerBrandAccount dot) {
+        InsureWorkerCommercial iwc = insureWorkerCommercialService.lambdaQuery()
+                .eq(InsureWorkerCommercial::getWorkerId, dot.getWorkerId())
+                // .eq(InsureWorkerCommercial::getWebsitId, dot.getWebsitId())
+                .orderByDesc(InsureWorkerCommercial::getEndTime)
+                .last("limit 1").one();
+        if (iwc != null){
+            InsureWorkerCommercialFile iwcf = insureWorkerCommercialFileService.lambdaQuery()
+                    .eq(InsureWorkerCommercialFile::getInsureWorkerCommercialId,iwc.getId())
+                    .last("limit 1").one();
+            if (iwcf !=null){
+                if (org.apache.commons.lang3.StringUtils.isEmpty(iwcf.getOutZjlj())){
+                    // 证件信息未同步,不操作
+                    return Boolean.TRUE;
+                }
+                workerCertificateInfo.setBxz(iwcf.getOutZjlj());
+                if (iwc.getEndTime() !=null){
+                    workerCertificateInfo.setBxyxq(datesub(iwc.getEndTime()));
+                }
+                return Boolean.FALSE;
+            }
         }
-        workerCertificateInfo.setBxz(wk.getOutInsureCert());
-        if (wk.getGmbxyxq() !=null){
-            workerCertificateInfo.setBxyxq(datesub(wk.getGmbxyxq()));
+
+        // 查家用保险
+        InsureWorkerRecord wk = insureWorkerRecordService.lambdaQuery()
+                .eq(InsureWorkerRecord::getWorkerId, dot.getWorkerId())
+                //.eq(InsureWorkerRecord::getWebsitId, dot.getWebsitId())
+                .orderByDesc(InsureWorkerRecord::getEndTime)
+                .last("limit 1").one();
+        if (wk !=null){
+            if (org.apache.commons.lang3.StringUtils.isEmpty(wk.getOutVoucher())){
+                // 证件信息未同步,不操作
+                return Boolean.TRUE;
+            }
+            workerCertificateInfo.setBxz(wk.getOutVoucher());
+            if (wk.getEndTime() !=null){
+                workerCertificateInfo.setBxyxq(datesub(wk.getEndTime()));
+            }
         }
 
+        // 师傅必买保险,所以不会不存在
         return Boolean.FALSE;
     }