yaozhixue 1 year ago
parent
commit
b55f26982b

+ 4 - 0
src/main/java/com/zfire/jiasm/syncdata/base/WorkerCertificateInfo.java

@@ -26,6 +26,8 @@ public class WorkerCertificateInfo {
     private String bxz;
     @ApiModelProperty(value = "保险证反面")
     private String bxf;
+    @ApiModelProperty(value = "保险编号")
+    private String safeNo;
     @ApiModelProperty(value = "有效期")
     private String bxyxq;
     @ApiModelProperty(value = "复审日期")
@@ -41,6 +43,8 @@ public class WorkerCertificateInfo {
     private String gkzyxq;
     @ApiModelProperty(value = "复审日期 必填")
     private String gkzfsrq;
+    @ApiModelProperty(value = "高空作业证")
+    private String gkzyztp;
 
     @ApiModelProperty(value = "上岗资格证正面")
     private String sgzgzz;

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

@@ -9,6 +9,7 @@ import com.zfire.jiasm.syncdata.utils.ResponseHelper;
 
 import java.io.File;
 import java.io.IOException;
+import java.text.ParseException;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -149,6 +150,8 @@ public interface PublicService {
     void revertRepairFun(OrderBase order,ItfTblAssignDownload lcls);
     String getUUID();
 
+    Date getYearFirstDay(Date date) throws ParseException;
+    Date getYearLastDay(Date date) throws ParseException;
 
 
 

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

@@ -1,8 +1,13 @@
 package com.zfire.jiasm.syncdata.service;
 
+import java.io.IOException;
+import java.text.ParseException;
+
 public interface UploadWorkeCertificateService {
 
     void procesUploadWorkeCert();
 
+    void procesInitWorkeBx() throws ParseException, IOException;
+
     void procesUploadWorkeBx();
 }

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

@@ -1261,7 +1261,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
         if (StringUtils.isNotEmpty(zj.getZjfssj())){
             add.setReviewTime(baseService.utcToDateStr(zj.getZjfssj()));
         }
-        add.setExamineStatus("OK");
+        // add.setExamineStatus("OK");
         add.setSex(wvos.getXingb());
         add.setOutSyncStatus(1);
         add.setOutSyncTime(new Date());
@@ -1339,12 +1339,10 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
             // 保除证
             if (zj.getZjmc().trim().equals("保险证")){
                 if (insure == null){
-                    log.info("总部获取的工程师证件照信息 b:{}");
                     continue;
                 }
                 // 师傅所在网点数据未下载保险证件时才可以下载
                 if (!addBxWorkers.containsKey(workerId)){
-                    log.info("总部获取的工程师证件照信息 a:{}");
                     continue;
                 }
 
@@ -1439,7 +1437,6 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
         // 提取商户售后网点对应的平台售后网点信息 存在一对多的关系 无对应关系退出不处理
         List<WebsitOrderSign> wos = publicService.shShwdToptshwdByBrandWebsitNo(wdno);
         if (CollectionUtils.isEmpty(wos)){
-            log.info("总部获取的工程师证件照信息 c:{}");
             return;
         }
 
@@ -1447,14 +1444,12 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
         for (WebsitOrderSign item : wos){
             // 防重
             if (bxWorkerIdWebsitIds.contains(workerId +item.getWebsitId())){
-                log.info("总部获取的工程师证件照信息 d:{}");
                 continue;
             }
 
             // 对于在商户网点师傅都为无效的状态时在平台网点师傅表中可能是不存在的 需要排除掉
             String websitWorkerId = checkWebsitWorker(workerId, websitWorderwidwdidMap, item);
             if (websitWorkerId == null) {
-                log.info("总部获取的工程师证件照信息 e:{}");
                 continue;
             }
 
@@ -1622,7 +1617,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
         if (StringUtils.isNotEmpty(zj.getZjfssj())){
             add.setReviewTime(baseService.utcToDateStr(zj.getZjfssj()));
         }
-        add.setExamineStatus("OK");
+        // add.setExamineStatus("OK");
         add.setSex(wvos.getXingb());
         add.setOutSyncStatus(1);
         add.setOutSyncTime(new Date());

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

@@ -438,7 +438,7 @@ public class GLPPWXGQueryUpdateServiceImpl implements GLPPWXGQueryUpdateService
             add.setReviewTime(baseService.utcToDateStr(zj.getZjfssj()));
         }
 
-        add.setExamineStatus("OK");
+        // add.setExamineStatus("OK");
         add.setSex(xingb);
         add.setOutSyncStatus(1);
         add.setOutSyncTime(new Date());

+ 20 - 0
src/main/java/com/zfire/jiasm/syncdata/service/impl/PublicServiceImpl.java

@@ -29,6 +29,7 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.io.File;
 import java.io.IOException;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -1699,6 +1700,25 @@ public class PublicServiceImpl implements PublicService {
         return uuId;
     }
 
+    @Override
+    public Date getYearFirstDay(Date date) throws ParseException {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.set(Calendar.MONTH, 0);
+        calendar.set(Calendar.DATE, 1);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        return sdf.parse(sdf.format(calendar.getTime()));
+    }
+    @Override
+    public Date getYearLastDay(Date date) throws ParseException {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.set(Calendar.MONTH, 11);
+        calendar.set(Calendar.DATE, 31);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        return sdf.parse(sdf.format(calendar.getTime()));
+    }
+
     private void setLocationByAddress(OrderBase orderBase) {
         if (StringUtils.isEmpty(orderBase.getLng()) || StringUtils.isEmpty(orderBase.getLat())) {
             String add = "";

+ 298 - 57
src/main/java/com/zfire/jiasm/syncdata/service/impl/UploadWorkeCertificateServiceImpl.java

@@ -1,6 +1,7 @@
 package com.zfire.jiasm.syncdata.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.zfire.jiasm.syncdata.base.BaseService;
 import com.zfire.jiasm.syncdata.gree.GreeLogic;
@@ -16,9 +17,12 @@ import com.zfire.jiasm.syncdata.utils.oss.OSSUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.io.File;
+import java.io.IOException;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -48,6 +52,10 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
     WorkerMrbxService workerMrbxService;
     @Resource
     WebsitWorkerService websitWorkerService;
+    @Resource
+    InsureWorkerInitService insureWorkerInitService;
+    @Resource
+    WorkerCertGreeService workerCertGreeService;
 
 
 
@@ -57,8 +65,11 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
         List<WorkerBrandAccount> workerWdnos = new ArrayList<>();
         String fileo ="";
         String filet ="";
-        String fid3 = "";
         Integer count = 0;
+        Boolean upf=Boolean.TRUE;
+        String outFile="";
+        String outFilet="";
+        List<WorkerCertGree> wcgs = new ArrayList<>();
 
         // 提取品牌信息 用于多品牌数据同步目前仅格力,可以先不用做
         Brand brand = baseService.getBrand();
@@ -67,14 +78,24 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
         }
 
         // 获取待同步到格力总部师傅的证件信息
-        recs = getWorkerUploads();
+        // recs = getWorkerUploads();
+
+        // 测试用
+        recs =  getWorkerUploadstest();
 
         for (WorkerCert item:recs){
             fileo ="";
             filet ="";
             count = 0;
+            outFile="";
+            outFilet="";
 
             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())
@@ -112,19 +133,36 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
 
                 // 上传图片 按网点上传
                 for (WorkerBrandAccount wdno: workerWdnos){
+                    upf=Boolean.TRUE;
+
                     if (StringUtils.isEmpty(wdno.getBrandWebsitId())){
                         continue;
                     }
 
-                    uploadFileexc(fileo, filet,wdno.getBrandWebsitId(),item);
-                    // delfilet(fid3);
-                    // 保险数据同步 保险证不在证件表中
-                    // fid3 = uploadInsureCert(wdno);
-                    // fid3 = uploadInsureBx(wdno);
+                    if (StringUtils.isNotEmpty(fileo)){
+                        outFile = uploadWdnoFile(wdno.getBrandWebsitId(), item, fileo);
+                        if (StringUtils.isEmpty(outFile)){
+                            upf=Boolean.FALSE;
+                        }
+                    }
+
+                    if (StringUtils.isNotEmpty(filet)){
+                        outFilet = uploadWdnoFile(wdno.getBrandWebsitId(), item, filet);
+                        if (StringUtils.isEmpty(outFilet)){
+                            upf=Boolean.FALSE;
+                        }
+                    }
+                    // 网点上传成功 生成对像
+                    if (upf){
+                        getWorkerCertGreeInfo(outFile, outFilet, wcgs, item, wdno);
+                    }
                 }
+                // 上传完后师傅所在网点的证件保存,并写入更新表待师傅证件修改
+                // 保存最后网点图,目的下次无需再同步图片
+                extractedEnd(wcgs, item, outFile, outFilet);
 
                 // 文件清除
-                delfile(fileo, filet, fid3);
+                delfile(fileo, filet, "");
             } catch (Exception ex) {
                 ex.printStackTrace();
                 log.info("同步师傅证件失败:【" + item.getId() + "】");
@@ -137,10 +175,78 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
         }
     }
 
+    @Transactional(rollbackFor = Exception.class)
+    public void extractedEnd(List<WorkerCertGree> wcgs, WorkerCert item, String file, String filet) throws Exception {
+        try{
+            if (wcgs.size()>0){
+                workerCertGreeService.saveOrUpdateBatch(wcgs);
+                wcgs.clear();
+            }
+            updateWorkCertSyncStat(item, file, filet);
+
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            // 抛异常目的是把前期的数据操作回滚
+            throw new Exception(ex);
+        }
+    }
+
+    private void getWorkerCertGreeInfo(String outFile, String outFilet,
+                                       List<WorkerCertGree> wcgs, WorkerCert item, WorkerBrandAccount wdno) {
+        WorkerCertGree  awc = new WorkerCertGree();
+        awc.setWorkerCertGreeId(IdWorker.getIdStr());
+        awc.setWorkerId(wdno.getWorkerId());
+        awc.setBrandWebsitId(wdno.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);
+        }
+        setCertFlag(item.getCertName(), awc);
+        // 存在进行修改
+        setWorkerCertGreeId(wdno, awc);
+        wcgs.add(awc);
+    }
+
+    private void setWorkerCertGreeId(WorkerBrandAccount wdno, WorkerCertGree awc) {
+        WorkerCertGree wcg = workerCertGreeService.lambdaQuery()
+                .eq(WorkerCertGree::getWorkerId, wdno.getWorkerId())
+                .eq(WorkerCertGree::getBrandWebsitId, wdno.getBrandWebsitId())
+                .eq(WorkerCertGree::getCertFlag, awc.getCertFlag())
+                .last("limit 1").one();
+        if (wcg != null) {
+            awc.setWorkerCertGreeId(wcg.getWorkerCertGreeId());
+        }
+    }
+
+    private void setCertFlag(String certName, WorkerCertGree awc) {
+        if ("身份证".equals(certName)) {
+            awc.setCertFlag(1);
+        } else if ("保险证".equals(certName)) {
+            awc.setCertFlag(2);
+        } else if ("高空证".equals(certName)) {
+            awc.setCertFlag(3);
+        } else if ("上岗证".equals(certName)) {
+            awc.setCertFlag(4);
+        } else if ("制冷证".equals(certName)) {
+            awc.setCertFlag(5);
+        } else if ("驾驶证".equals(certName)) {
+            awc.setCertFlag(6);
+        }
+    }
+
     @Override
     public void procesUploadWorkeBx() {
         List<WebsitWorker> wws = new ArrayList<>();
         List<WorkerBrandAccount> workerWdnos = new ArrayList<>();
+        List<WorkerCertGree> wcgs = new ArrayList<>();
         String fileo ="";
         String filet ="";
         String fid3 = "";
@@ -153,8 +259,10 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
         }
 
         // 获取待同步到格力总部师傅的保除证件信息
-        wws = getWorkerUploadsBx();
-        // wws = getWorkerUploadsBxtext();
+        // wws = getWorkerUploadsBx();
+
+        // 测试使用
+        wws = getWorkerUploadsBxtext();
 
         for (WebsitWorker item:wws){
             fileo ="";
@@ -167,6 +275,12 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
                     continue;
                 }
 
+                // 存在保险才同步
+                if (StringUtils.isEmpty(item.getInsureFiles()) &&
+                        StringUtils.isEmpty(item.getInsureFiles().trim())){
+                    continue;
+                }
+
 
                 //  查看师傅是否已选中品牌商网点(这里只提取选中格力品牌商的师傅数据)
                 workerWdnos = workerBrandAccountService.lambdaQuery()
@@ -196,8 +310,17 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
                     if (StringUtils.isEmpty(wdno.getBrandWebsitId())){
                         continue;
                     }
-                    fid3 = uploadInsureBx(wdno);
+                    // 上传保险
+                    fid3 = uploadInsureBx(item,wdno);
+                    // 同步失败
+                    if (StringUtils.isEmpty(fid3)){
+                        continue;
+                    }
+                    // 生成网点保险数据
+                    getWorkerCertGree(wcgs, item, wdno);
                 }
+                // 保存本地表
+                extractedBxEnd(wcgs, item);
                 // 文件清除
                 delfile(fileo, filet, fid3);
             } catch (Exception ex) {
@@ -212,6 +335,72 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
         }
     }
 
+    private void getWorkerCertGree(List<WorkerCertGree> wcgs, WebsitWorker item, WorkerBrandAccount wdno) {
+        WorkerCertGree  awc = new WorkerCertGree();
+        awc.setWorkerCertGreeId(IdWorker.getIdStr());
+        awc.setWorkerId(wdno.getWorkerId());
+        awc.setBrandWebsitId(wdno.getBrandWebsitId());
+        awc.setCertName("保险证");
+        awc.setCertNo(item.getSafeNo());
+        awc.setStartTime(item.getInsureStartTime());
+        awc.setExpireTime(item.getGmbxyxq());
+        awc.setReviewTime(item.getGmbxyxq());
+        awc.setCreateTime(new Date());
+        awc.setOutFileUrl(item.getOutInsureCert());
+        awc.setSafeCompany("人保");
+        setCertFlag("保险证", awc);
+        // 存在进行修改
+        setWorkerCertGreeId(wdno, awc);
+        wcgs.add(awc);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void extractedBxEnd(List<WorkerCertGree> wcgs, WebsitWorker item) throws Exception {
+        try{
+            if (wcgs.size()>0){
+                workerCertGreeService.saveOrUpdateBatch(wcgs);
+                wcgs.clear();
+            }
+            item.updateById();
+
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            // 抛异常目的是把前期的数据操作回滚
+            throw new Exception(ex);
+        }
+    }
+
+    @Override
+    public void procesInitWorkeBx() throws IOException, ParseException {
+        String fileo ="";
+        String fid1 = "";
+
+        // 看是否存在
+        InsureWorkerInit init = insureWorkerInitService.lambdaQuery()
+                .le(InsureWorkerInit::getStartTime,publicService.getYearFirstDay(new Date()))
+                .ge(InsureWorkerInit::getEndTime,publicService.getYearLastDay(new Date()))
+                .last("limit 1").one();
+        if (init == null){
+            // 上传保险数据
+            fid1 = publicService.path("bx.jpg");
+            File nFile = publicService.createf(fid1);
+
+            baseService.initFile(nFile);
+
+            fileo = fid1;
+
+            // uploadInitFileexc(fileo, fid1, wdno.getBrandWebsitId(),wk);
+
+
+
+
+            // uploadInsureCert();
+
+
+        }
+
+    }
+
 
     private void delfile(String fileo,String filet,String file3) {
         if (StringUtils.isNotEmpty(fileo)){
@@ -399,62 +588,48 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
         return fid1;*/
     }
 
-    private String uploadInsureBx(WorkerBrandAccount wdno) throws Exception {
+    private String uploadInsureBx(WebsitWorker item,WorkerBrandAccount wdno) throws Exception {
         String fileo ="";
         String fid1 = "";
         String outInsureCert = "";
         String bxf="";
 
-        WebsitWorker iwcf = websitWorkerService.lambdaQuery()
-                .eq(WebsitWorker::getWorkerId, wdno.getWorkerId())
-                .eq(WebsitWorker::getWebsitId, wdno.getWebsitId())
-                .last("limit 1").one();
-        if (iwcf != null){
-            if (StringUtils.isNotEmpty(iwcf.getOutInsureCert()) &&
-                    StringUtils.isNotEmpty(iwcf.getOutInsureCert().trim())){
-                // 已上传就不需要再上传
-                return fid1;
-            }
-            if (StringUtils.isNotEmpty(iwcf.getInsureFiles())){
-                // 上传
-                if (iwcf.getInsureFiles().contains(",")){
-                    int num=0;
-
-                    List<String> result = Arrays.asList(iwcf.getInsureFiles().split(","));
-                    for (String p:result){
-                        fid1 = publicService.path(p);
-                        File nFile = publicService.createf(fid1);
-                        baseService.saveToFile(ossUtil.getUrlWw(iwcf.getFileUrl()),nFile);
-                        fileo = fid1;
-                        bxf = uploadInitFileBx(fileo, fid1, wdno.getBrandWebsitId());
-                        if (StringUtils.isEmpty(bxf)){
-                            return bxf;
-                        }
+        // 上传
+        if (item.getInsureFiles().contains(",")){
+            int num=0;
 
-                        if (num == 0){
-                            outInsureCert = bxf;
-                        } else {
-                            outInsureCert= outInsureCert +","+bxf;
-                        }
-                        new File(fid1).delete();
-                        num = num +1 ;
-                    }
-                } else {
-                    fid1 = publicService.path(iwcf.getInsureFiles());
-                    File nFile = publicService.createf(fid1);
-                    baseService.saveToFile(ossUtil.getUrlWw(iwcf.getFileUrl()),nFile);
-                    fileo = fid1;
-                    bxf = uploadInitFileBx(fileo, fid1, wdno.getBrandWebsitId());
-                    if (StringUtils.isEmpty(bxf)){
-                        return bxf;
-                    }
+            List<String> result = Arrays.asList(item.getInsureFiles().split(","));
+            for (String p:result){
+                fid1 = publicService.path(p);
+                File nFile = publicService.createf(fid1);
+                baseService.saveToFile(ossUtil.getUrlWw(item.getFileUrl()),nFile);
+                fileo = fid1;
+                bxf = uploadInitFileBx(fileo, fid1, wdno.getBrandWebsitId());
+                if (StringUtils.isEmpty(bxf)){
+                    return bxf;
+                }
+
+                if (num == 0){
                     outInsureCert = bxf;
-                    new File(fid1).delete();
+                } else {
+                    outInsureCert= outInsureCert +","+bxf;
                 }
-                iwcf.setOutInsureCert(outInsureCert);
-                iwcf.updateById();
+                new File(fid1).delete();
+                num = num +1 ;
             }
+        } else {
+            fid1 = publicService.path(item.getInsureFiles());
+            File nFile = publicService.createf(fid1);
+            baseService.saveToFile(ossUtil.getUrlWw(item.getFileUrl()),nFile);
+            fileo = fid1;
+            bxf = uploadInitFileBx(fileo, fid1, wdno.getBrandWebsitId());
+            if (StringUtils.isEmpty(bxf)){
+                return bxf;
+            }
+            outInsureCert = bxf;
+            new File(fid1).delete();
         }
+        item.setOutInsureCert(outInsureCert);
         // 师傅必买保险,所以不会不存在
         return fid1;
     }
@@ -551,6 +726,48 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
     }
 
 
+    private String  uploadWdnoFile(String wdno,WorkerCert item,String certfile) throws Exception {
+        String msg = "";
+        String outFile="";
+
+        // 上传图片
+        // 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()+"/"+certfile);
+            // 2:文件上传
+            PostObjectSample ossPostObject = new PostObjectSample();
+            String result = ossPostObject.PostObject(certfile, resultData.getExtData());
+
+            // 3: 保存文件
+            if (StringUtils.isEmpty(result.trim())){
+                Map<String,String> req = new HashMap<>();
+                // 生成对象
+                getSaveFileInfo(certfile, resultData, req);
+                GreeFileSaveHelper responses = greeLogic.greePostSaveFile(req);
+                if (responses.getStatusCode() == 200){
+                    // 保存文件ID   responses.getData().getId()
+                    // 返回文件
+                    outFile = responses.getData().getId();
+                } else {
+                    msg = "上传证件到格力总部失败";
+                    if (StringUtils.isNotEmpty(responses.getMsg())){
+                        msg = msg + responses.getMsg();
+                    }
+                    updateWorkCertificateerror(item,msg);
+                }
+            } else {
+                updateWorkCertificateerror(item,"上传图片到OSS失败");
+            }
+        } else {
+            updateWorkCertificateerror(item,"获取签名信息失败");
+        }
+
+        return outFile;
+    }
+
+
     private Boolean uploadInitFileexc(String fileo, String fid1,String wdno,InsureWorkerRecord wk) throws Exception {
 
         if (StringUtils.isEmpty(wdno)){
@@ -763,6 +980,24 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
         workerCertService.updateById(v);
     }
 
+    public void updateWorkCertSyncStat(WorkerCert wc,String file, String filet) {
+        WorkerCert v = new WorkerCert();
+        v.setId(wc.getId());
+
+        if (StringUtils.isNotEmpty(file)){
+            v.setOutFileUrl(file);
+        }
+        if (StringUtils.isNotEmpty(filet)){
+            v.setOutFileUrl2(filet);
+        }
+
+        // 不改成 1的目的是留给新增或修改师傅信息同步用
+        v.setOutSyncStatus(0);
+        v.setOutSyncTime(new Date());
+        workerCertService.updateById(v);
+    }
+
+
     private void getSaveFileInfo(String id1, ResultData resultData, Map<String, String> req) {
         req.put("bizAppId","flydiy-auto-sit-default-front-greeshmerge");
         req.put("bizTable","default");
@@ -786,6 +1021,12 @@ public class UploadWorkeCertificateServiceImpl implements UploadWorkeCertificate
                 .list();
     }
 
+    private List<WorkerCert> getWorkerUploadstest() {
+        // 同步标志-synStatus(0:待同步;1:已同步;99:同步失败)
+        return workerCertService.lambdaQuery()
+                .eq(WorkerCert::getWorkerId,"S15112152395")
+                .list();
+    }
 
 
     private List<WebsitWorker> getWorkerUploadsBx() {

+ 262 - 93
src/main/java/com/zfire/jiasm/syncdata/service/impl/UploadWorkerTOGreeServiceImpl.java

@@ -69,6 +69,8 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
     BrandWebsitService brandWebsitService;
     @Resource
     InsureWorkerRecordService insureWorkerRecordService;
+    @Resource
+    WorkerCertGreeService workerCertGreeService;
 
 
 
@@ -79,7 +81,6 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
         List<OutWorkerUpload> recs = new ArrayList<>();
         Worker worker = new Worker();
         List<WorkerBrandAccount> workerBrandAccount = new ArrayList<>();
-        WorkerStreet workerStreet = new WorkerStreet();
         List<SignSplb> jySignSplbList = new ArrayList<>();
         List<SignSplb> sySignSplbList = new ArrayList<>();
         List<SignSplb> jyList = new ArrayList<>();
@@ -145,10 +146,10 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
                     continue;
                 }*/
 
-                // 验证师傅的保险证信息 所有网点都验证 这里只验证是否成功上传了图片
+                /*// 验证师傅的保险证信息 所有网点都验证 这里只验证是否成功上传了图片
                 if (checkBXOutInsureCert(workerBrandAccount)) {
                     continue;
-                }
+                }*/
 
                 // 按网点同步
                 for (WorkerBrandAccount dot: workerBrandAccount){
@@ -344,7 +345,7 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
         }
     }
 
-    private String extracted(List<SignSplb> jySignSplbList, List<SignSplb> sySignSplbList,
+    private String extractedBak(List<SignSplb> jySignSplbList, List<SignSplb> sySignSplbList,
                              List<SignSplb> jyList, List<SignSplb> syList, WebsitQXLB websitqypl,String brandWebsitNumber) {
         String result = "";
         List<String> syfwlbList = new ArrayList<>();
@@ -412,17 +413,74 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
         return result;
     }
 
+    private String extracted(List<SignSplb> jySignSplbList, List<SignSplb> sySignSplbList,
+                             List<SignSplb> jyList, List<SignSplb> syList, WebsitQXLB websitqypl,String brandWebsitNumber) {
+        String result = "";
+
+        if (websitqypl.getJySignSplbList().size()<1 && websitqypl.getSySignSplbList().size()<1){
+            result="网点【"+brandWebsitNumber+"】暂未签约品类";
+            return result;
+        }
+
+        // 过滤商用品类
+        if (websitqypl.getSySignSplbList().size()>0 && sySignSplbList.size()>0){
+            for (SignSplb sy : sySignSplbList) {
+                for (SignSplb wdsy : websitqypl.getSySignSplbList()) {
+                    if (wdsy.getSpdl().equals(sy.getSpdl())){
+                        List<String> syfwlbList = new ArrayList<>();
+                        // 大类名称 取交集
+                        wdsy.getFwlbList().retainAll(sy.getFwlbList());
+                        syfwlbList.addAll(wdsy.getFwlbList());
+                        SignSplb one = new SignSplb();
+                        one.setFwlbList(syfwlbList);
+                        one.setSpdl(wdsy.getSpdl());
+                        one.setSpdlName(wdsy.getSpdlName());
+                        // 以总部的为准
+                        if (wdsy.getSpxl()!=null){
+                            one.setSpxl(wdsy.getSpxl());
+                            one.setSpxlName(wdsy.getSpxlName());
+                        }
+                        syList.add(one);
+                        break;
+                    }
+                }
+            }
+        }
+
+        // 过滤家用品类
+        if (websitqypl.getJySignSplbList().size()>0 && jySignSplbList.size()>0){
+            for (SignSplb jy : jySignSplbList) {
+                for (SignSplb wdjy : websitqypl.getJySignSplbList()) {
+                    if (wdjy.getSpdl().equals(jy.getSpdl()) ){
+                        List<String> jyfwlbList = new ArrayList<>();
+                        // 大类名称 取交集
+                        wdjy.getFwlbList().retainAll(jy.getFwlbList());
+                        jyfwlbList.addAll(wdjy.getFwlbList());
+                        SignSplb one = new SignSplb();
+                        one.setFwlbList(jyfwlbList);
+                        one.setSpdl(wdjy.getSpdl());
+                        one.setSpdlName(wdjy.getSpdlName());
+                        if (wdjy.getSpxl()!=null){
+                            one.setSpxl(wdjy.getSpxl());
+                            one.setSpxlName(wdjy.getSpxlName());
+                        }
+                        jyList.add(one);
+                        break;
+                    }
+                }
+            }
+        }
+
+        return result;
+    }
+
     private Boolean checkNecessary(Worker worker, OutWorkerUpload item, WorkerCertificateInfo workerCertificateInfo) {
         if (StringUtils.isEmpty(workerCertificateInfo.getSfzbh())){
             updateWorkerUploadLag(item,"师傅缺失身份证信息,不上传");
             return Boolean.TRUE;
         }
-        // 可不买保险 虚构保单
-        if (StringUtils.isNotEmpty(workerCertificateInfo.getBxz()) && StringUtils.isEmpty(worker.getSafeNo())){
-            worker.setSafeNo("99999999");
-        }
 
-        if (StringUtils.isEmpty(worker.getSafeNo()) || StringUtils.isEmpty(workerCertificateInfo.getBxz())){
+        if (StringUtils.isEmpty(workerCertificateInfo.getBxz())){
             updateWorkerUploadLag(item,"师傅缺失保险信息,不上传");
             return Boolean.TRUE;
         }
@@ -445,137 +503,146 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
         return Boolean.FALSE;
     }
 
+    // 1:身份证、2:保险,3:高空证(复审时间必填)  这三个条件必备否则无法同步
     private Boolean getCertificateInfo(WorkerCertificateInfo workerCertificateInfo, String workerId, WorkerBrandAccount dot) throws ParseException {
+        // 提取师傅所在网点的证件信息
+        List<WorkerCertGree> wcgs = workerCertGreeService.lambdaQuery()
+                .eq(WorkerCertGree::getWorkerId,workerId)
+                .eq(WorkerCertGree::getBrandWebsitId,dot.getBrandWebsitId()).list();
+
+        if (CollectionUtils.isEmpty(wcgs)){
+            return Boolean.FALSE;
+        }
+
         // 身份证
-        if (getsfz(workerCertificateInfo, workerId)){
+        if (getsfz(workerCertificateInfo, workerId, wcgs)){
             return Boolean.FALSE;
         }
         // 保险证
-        if (getbxz(workerCertificateInfo, dot)){
+        if (getbxz(workerCertificateInfo, dot, wcgs)){
             return Boolean.FALSE;
         }
         // 高空作业证
-        if (getgkz(workerCertificateInfo, workerId)){
+        if (getgkz(workerCertificateInfo, workerId, wcgs)){
             return Boolean.FALSE;
         }
         // 上岗资格证
-        if (getsgz(workerCertificateInfo, workerId)){
-            return Boolean.TRUE;
-        }
+        getsgz(workerCertificateInfo, workerId, wcgs);
+
         // 制冷工证
-        if (getzlz(workerCertificateInfo, workerId)){
-            return Boolean.TRUE;
-        }
+        getzlz(workerCertificateInfo, workerId, wcgs);
+
         // 驾驶证
-        if (getjsz(workerCertificateInfo, workerId)){
-            return Boolean.TRUE;
-        }
+        getjsz(workerCertificateInfo, workerId,wcgs);
 
         return Boolean.FALSE;
     }
 
-    private Boolean getCertificateInfoWorkerCert(WorkerCertificateInfo workerCertificateInfo, String workerId) throws ParseException {
-        // 提取身份证信息 无不同步
-        if (getsfz(workerCertificateInfo, workerId)){
-            return Boolean.TRUE;
-        }
 
-        // 高空作业证
-        if (getgkz(workerCertificateInfo, workerId)){
-            return Boolean.TRUE;
-        }
+    // true为有信息
+    private Boolean getjsz(WorkerCertificateInfo workerCertificateInfo, String workerId, List<WorkerCertGree> wcgs) throws ParseException {
+        WorkerCertGree wcg = null;
 
-        return Boolean.FALSE;
-    }
+        for (WorkerCertGree item :wcgs){
+            if ("驾驶证".equals(item.getCertName())){
+                wcg= item;
+                break;
+            }
+        }
 
-    // true为有信息
-    private Boolean getjsz(WorkerCertificateInfo workerCertificateInfo, String workerId) throws ParseException {
-        WorkerCert certificate = getCertificateInfo(workerId,"驾驶证");
         // 无证件不处理
-        if (certificate == null){
-            return Boolean.FALSE;
-        }
-        // 身份证信息未同步,不操作
-        if (!certificate.getOutSyncStatus().equals(1)){
+        if (wcg == null){
             return Boolean.TRUE;
         }
-        if (StringUtils.isNotEmpty(certificate.getOutFileUrl())){
-            workerCertificateInfo.setJszz(certificate.getOutFileUrl());
+
+
+        if (StringUtils.isNotEmpty(wcg.getOutFileUrl())){
+            workerCertificateInfo.setJszz(wcg.getOutFileUrl());
         }
-        if (StringUtils.isNotEmpty(certificate.getOutFileUrl2())){
-            workerCertificateInfo.setJszf(certificate.getOutFileUrl2());
+        if (StringUtils.isNotEmpty(wcg.getOutFileUrl2())){
+            workerCertificateInfo.setJszf(wcg.getOutFileUrl2());
         }
 
-        if (certificate.getExpireTime() !=null){
-            workerCertificateInfo.setJszyxq(datesub(certificate.getExpireTime()));
+        if (wcg.getExpireTime() !=null){
+            workerCertificateInfo.setJszyxq(datesub(wcg.getExpireTime()));
         }
-        if (certificate.getReviewTime() !=null){
-            workerCertificateInfo.setJszfsrq(datesub(certificate.getReviewTime()));
+        if (wcg.getReviewTime() !=null){
+            workerCertificateInfo.setJszfsrq(datesub(wcg.getReviewTime()));
         }
 
         return Boolean.FALSE;
     }
 
     // true为有信息
-    private Boolean getzlz(WorkerCertificateInfo workerCertificateInfo, String workerId) throws ParseException {
-        WorkerCert certificate = getCertificateInfo(workerId,"制冷证");
-        // 无证件不处理
-        if (certificate == null){
-            return Boolean.FALSE;
+    private Boolean getzlz(WorkerCertificateInfo workerCertificateInfo, String workerId, List<WorkerCertGree> wcgs) throws ParseException {
+        WorkerCertGree wcg = null;
+
+        for (WorkerCertGree item :wcgs){
+            if ("制冷证".equals(item.getCertName())){
+                wcg= item;
+                break;
+            }
         }
-        // 身份证信息未同步,不操作
-        if (!certificate.getOutSyncStatus().equals(1)){
+
+        // 无证件不处理
+        if (wcg == null){
             return Boolean.TRUE;
         }
-        if (StringUtils.isNotEmpty(certificate.getOutFileUrl())){
-            workerCertificateInfo.setZlgz(certificate.getOutFileUrl());
+
+        if (StringUtils.isNotEmpty(wcg.getOutFileUrl())){
+            workerCertificateInfo.setZlgz(wcg.getOutFileUrl());
         }
-        if (StringUtils.isNotEmpty(certificate.getOutFileUrl2())){
-            workerCertificateInfo.setZlgf(certificate.getOutFileUrl2());
+        if (StringUtils.isNotEmpty(wcg.getOutFileUrl2())){
+            workerCertificateInfo.setZlgf(wcg.getOutFileUrl2());
         }
-        workerCertificateInfo.setZlgbh(certificate.getCertNo());
+        workerCertificateInfo.setZlgbh(wcg.getCertNo());
 
-        if (certificate.getExpireTime() !=null){
-            workerCertificateInfo.setZlgyxq(datesub(certificate.getExpireTime()));
+        if (wcg.getExpireTime() !=null){
+            workerCertificateInfo.setZlgyxq(datesub(wcg.getExpireTime()));
         }
-        if (certificate.getReviewTime() !=null){
-            workerCertificateInfo.setZlgfsrq(datesub(certificate.getReviewTime()));
+        if (wcg.getReviewTime() !=null){
+            workerCertificateInfo.setZlgfsrq(datesub(wcg.getReviewTime()));
         }
 
         return Boolean.FALSE;
     }
 
     // true为有证件
-    private Boolean getsgz(WorkerCertificateInfo workerCertificateInfo, String workerId) throws ParseException {
-        WorkerCert certificate = getCertificateInfo(workerId,"上岗证");
-        // 无证件不处理
-        if (certificate == null){
-            return Boolean.FALSE;
+    private Boolean getsgz(WorkerCertificateInfo workerCertificateInfo, String workerId, List<WorkerCertGree> wcgs) throws ParseException {
+        WorkerCertGree wcg = null;
+
+        for (WorkerCertGree item :wcgs){
+            if ("上岗证".equals(item.getCertName())){
+                wcg= item;
+                break;
+            }
         }
-        // 身份证信息未同步,不操作
-        if (!certificate.getOutSyncStatus().equals(1)){
+
+        // 无证件不处理
+        if (wcg == null){
             return Boolean.TRUE;
         }
-        if (StringUtils.isNotEmpty(certificate.getOutFileUrl())){
-            workerCertificateInfo.setSgzgzz(certificate.getOutFileUrl());
+
+        if (StringUtils.isNotEmpty(wcg.getOutFileUrl())){
+            workerCertificateInfo.setSgzgzz(wcg.getOutFileUrl());
         }
-        if (StringUtils.isNotEmpty(certificate.getOutFileUrl2())){
-            workerCertificateInfo.setSgzgzf(certificate.getOutFileUrl2());
+        if (StringUtils.isNotEmpty(wcg.getOutFileUrl2())){
+            workerCertificateInfo.setSgzgzf(wcg.getOutFileUrl2());
         }
-        workerCertificateInfo.setSgzgzbh(certificate.getCertNo());
+        workerCertificateInfo.setSgzgzbh(wcg.getCertNo());
 
-        if (certificate.getExpireTime() !=null){
-            workerCertificateInfo.setSgzgzyxq(datesub(certificate.getExpireTime()));
+        if (wcg.getExpireTime() !=null){
+            workerCertificateInfo.setSgzgzyxq(datesub(wcg.getExpireTime()));
         }
-        if (certificate.getReviewTime() !=null){
-            workerCertificateInfo.setSgzgzfsrq(datesub(certificate.getReviewTime()));
+        if (wcg.getReviewTime() !=null){
+            workerCertificateInfo.setSgzgzfsrq(datesub(wcg.getReviewTime()));
         }
 
         return Boolean.FALSE;
     }
 
     // true为有信息
-    private Boolean getgkz(WorkerCertificateInfo workerCertificateInfo, String workerId) throws ParseException {
+    private Boolean getgkzBak(WorkerCertificateInfo workerCertificateInfo, String workerId) throws ParseException {
         WorkerCert certificate = getCertificateInfo(workerId,"高空证");
         // 无证件不处理
         if (certificate == null){
@@ -603,8 +670,44 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
         return Boolean.FALSE;
     }
 
+    private Boolean getgkz(WorkerCertificateInfo workerCertificateInfo, String workerId,List<WorkerCertGree> wcgs) throws ParseException {
+        WorkerCertGree wcg = null;
+
+        for (WorkerCertGree item :wcgs){
+            if ("高空证".equals(item.getCertName())){
+                wcg= item;
+                break;
+            }
+        }
+
+        // 无证件不处理
+        if (wcg == null){
+            return Boolean.TRUE;
+        }
+
+        if (StringUtils.isNotEmpty(wcg.getOutFileUrl())){
+            workerCertificateInfo.setGkzz(wcg.getOutFileUrl());
+            workerCertificateInfo.setGkzyztp(wcg.getOutFileUrl());
+        }
+        if (StringUtils.isNotEmpty(wcg.getOutFileUrl2())){
+            workerCertificateInfo.setGkzf(wcg.getOutFileUrl2());
+            workerCertificateInfo.setGkzyztp(wcg.getOutFileUrl2());
+        }
+        workerCertificateInfo.setGkzbh(wcg.getCertNo());
+
+
+        if (wcg.getExpireTime() !=null){
+            workerCertificateInfo.setGkzyxq(datesub(wcg.getExpireTime()));
+        }
+        if (wcg.getReviewTime() !=null){
+            workerCertificateInfo.setGkzfsrq(datesub(wcg.getReviewTime()));
+        }
+
+        return Boolean.FALSE;
+    }
+
     // true为有信息
-    private Boolean getbxz(WorkerCertificateInfo workerCertificateInfo,WorkerBrandAccount dot) {
+    private Boolean getbxzBak(WorkerCertificateInfo workerCertificateInfo,WorkerBrandAccount dot) {
         // 查家用保险
         WebsitWorker wk = websitWorkerService.lambdaQuery()
                 .eq(WebsitWorker::getWorkerId, dot.getWorkerId())
@@ -625,6 +728,42 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
         return Boolean.FALSE;
     }
 
+
+    private Boolean getbxz(WorkerCertificateInfo workerCertificateInfo,WorkerBrandAccount dot, List<WorkerCertGree> wcgs) {
+        WorkerCertGree wcg = null;
+
+        for (WorkerCertGree item :wcgs){
+            if ("保险证".equals(item.getCertName())){
+                wcg= item;
+                break;
+            }
+        }
+
+        // 无证件不处理
+        if (wcg == null){
+            return Boolean.TRUE;
+        }
+
+
+        if (StringUtils.isNotEmpty(wcg.getOutFileUrl())){
+            workerCertificateInfo.setBxz(wcg.getOutFileUrl());
+        }
+        if (StringUtils.isNotEmpty(wcg.getOutFileUrl2())){
+            workerCertificateInfo.setBxf(wcg.getOutFileUrl2());
+        }
+        workerCertificateInfo.setSafeNo(wcg.getSafeCompany() + "/" + wcg.getCertNo());
+
+        if (wcg.getExpireTime() !=null){
+            workerCertificateInfo.setBxyxq(datesub(wcg.getExpireTime()));
+        }
+        if (wcg.getReviewTime() !=null){
+            workerCertificateInfo.setBxfsrq(datesub(wcg.getReviewTime()));
+        }
+
+        // 师傅必买保险,所以不会不存在
+        return Boolean.FALSE;
+    }
+
     // true为有信息
     private Boolean getbxzInsBak(WorkerCertificateInfo workerCertificateInfo,WorkerBrandAccount dot) {
         InsureWorkerCommercial iwc = insureWorkerCommercialService.lambdaQuery()
@@ -697,12 +836,14 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
         return Boolean.FALSE;
     }
 
-    private Boolean getsfz(WorkerCertificateInfo workerCertificateInfo, String workerId) throws ParseException {
+    private Boolean getsfzBak(WorkerCertificateInfo workerCertificateInfo, String workerId) throws ParseException {
         WorkerCert certificate = getCertificateInfo(workerId,"身份证");
+
         // 无证件不处理
         if (certificate == null){
             return Boolean.TRUE;
         }
+
         // 身份证信息未同步,不操作
         if (!certificate.getOutSyncStatus().equals(1)){
             return Boolean.TRUE;
@@ -725,6 +866,39 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
         return Boolean.FALSE;
     }
 
+    private Boolean getsfz(WorkerCertificateInfo workerCertificateInfo, String workerId, List<WorkerCertGree> wcgs) throws ParseException {
+        WorkerCertGree wcg = null;
+
+        for (WorkerCertGree item :wcgs){
+            if ("身份证".equals(item.getCertName())){
+                wcg= item;
+                break;
+            }
+        }
+
+        // 无证件不处理
+        if (wcg == null){
+            return Boolean.TRUE;
+        }
+
+        if (StringUtils.isNotEmpty(wcg.getOutFileUrl())){
+            workerCertificateInfo.setSfzz(wcg.getOutFileUrl());
+        }
+        if (StringUtils.isNotEmpty(wcg.getOutFileUrl2())){
+            workerCertificateInfo.setSfzf(wcg.getOutFileUrl2());
+        }
+        workerCertificateInfo.setSfzbh(wcg.getCertNo());
+
+        if (wcg.getExpireTime() !=null){
+            workerCertificateInfo.setSfzyxq(datesub(wcg.getExpireTime()));
+        }
+        if (wcg.getReviewTime() !=null){
+            workerCertificateInfo.setSfzfsrq(datesub(wcg.getReviewTime()));
+        }
+
+        return Boolean.FALSE;
+    }
+
     public String datesub(@NotNull Date d) {
         SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US);
         long localTime = d.getTime()-8*60*60*1000;
@@ -958,15 +1132,10 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
         }
 
         // 保险  必要条件
-        if (StringUtils.isNotEmpty(worker.getSafeNo())){
+        if (StringUtils.isNotEmpty(workerCertificateInfo.getBxz())){
             ZJInfo zjInfo = new ZJInfo();
-            WebsitWorker ww = new WebsitWorker();
-            ww = websitWorkerService.lambdaQuery()
-                    .eq(WebsitWorker::getWebsitWorkerId,websitWorkerId)
-                    .last("limit 1")
-                    .one();
 
-            zjInfo.setZjbh(ww.getSafeCompany()+"/"+ ww.getSafeNo());
+            zjInfo.setZjbh(workerCertificateInfo.getSafeNo());
             zjInfo.setZjmc("保险证");
 
             // 证件路径 必填
@@ -1134,13 +1303,13 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
                               List<String> SYDictDaleiCode, List<WorkerServiceCategoryDetail> wxgCategoryRecs) {
         List<SysDictRef> sysDictRefs = new ArrayList<>();
 
-        // 组装参数类别名称信息
+        // 组装参数类别名称信息  服务类型 分,安装、维修、配送等
         List<String> fwlbList = getCategoryName(wxgCategoryRecs);
 
-        // 获取师傅在品牌商品对应的类别信息
+        // 获取师傅在品牌商品对应的类别信息 这里的类别为师傅服务的有效的大类别信息 sysDictRefs
         getDictRefs(brand, wxgCategoryRecs, sysDictRefs);
 
-        // 组装品类参数
+        // 组装品类参数 大类下的所有小类都放在一起
         for (SysDictRef item:sysDictRefs){
             // 大类对应的小类必填
             // 获取品牌商的大类对应的所有小类信息

+ 39 - 0
src/main/java/com/zfire/jiasm/syncdata/test.java

@@ -162,6 +162,7 @@ public class test {
         // 获取减去一年后的日期
         Date newDate = calendar.getTime();
         System.out.println("减去一年后的日期: " + newDate);*/
+/*
 
         String s="1_p_230913_nobody01_FpNaEGLBtpw5XaYjRgfH59.jpg||1_p_230913_nobody01_4ajNwJC8sS46aWHeScpd97.jpg||1_p_230913_nobody01_w0NQb8gut0KH3tytSOEx95.jpg";
         String x=s.replace("||",",");
@@ -173,7 +174,45 @@ public class test {
         String uuId = UUID.randomUUID().toString().replace("-","").toUpperCase();
         System.out.println(uuId);
 
+*/
+
+
+        // 获取该日期所在年的第一天
+        String firstDay = getYearFirstDay(new Date());
+        System.out.println("指定日期所在年的第一天为:" + firstDay);
+
+        // 获取该日期所在年的最后一天
+        String lastDay = getYearLastDay(new Date());
+        System.out.println("指定日期所在年的最后一天为:" + lastDay);
+
     }
 
 
+    /**
+     * 获取指定日期所在年的第一天
+     * @param date 指定日期
+     * @return 日期字符串
+     */
+    public static String getYearFirstDay(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.set(Calendar.MONTH, 0);
+        calendar.set(Calendar.DATE, 1);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        return sdf.format(calendar.getTime());
+    }
+
+    /**
+     * 获取指定日期所在年的最后一天
+     * @param date 指定日期
+     * @return 日期字符串
+     */
+    public static String getYearLastDay(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.set(Calendar.MONTH, 11);
+        calendar.set(Calendar.DATE, 31);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        return sdf.format(calendar.getTime());
+    }
 }

+ 4 - 1
src/main/java/com/zfire/jiasm/syncdata/upload/worker/UploadWorkBx.java

@@ -8,6 +8,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
@@ -27,7 +28,7 @@ public class UploadWorkBx {
 
     // 师傅证件照同步到格力总部
     @Scheduled(fixedDelayString = "${workercertbx}")
-    public void processUploadTask(){
+    public void processUploadTask() throws ParseException {
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         if (workercertbxc.equals(TaskConfigEnum.FALSE.getCode())){
             return;
@@ -35,6 +36,8 @@ public class UploadWorkBx {
 
         log.info("开始同步师傅保险证件信息: \uF0B7{}",sdf.format(new Date()));
 
+        // uploadWorkeCertificateService.procesInitWorkeBx();
+
         uploadWorkeCertificateService.procesUploadWorkeBx();
 
         log.info("同步师傅保险证件信息结束: \uF0B7{}",sdf.format(new Date()));

+ 46 - 0
src/main/java/com/zfire/jiasm/syncdata/upload/worker/UploadWorkeCertificateBak.java

@@ -0,0 +1,46 @@
+package com.zfire.jiasm.syncdata.upload.worker;
+
+import com.zfire.jiasm.syncdata.constant.TaskConfigEnum;
+import com.zfire.jiasm.syncdata.service.UploadWorkeCertificateService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * 同步证件到格力总部
+ */
+@Slf4j
+@Component
+public class UploadWorkeCertificateBak {
+    @Value("${workercertificatec}")
+    private String workercertificatec = "";
+
+    @Autowired
+    UploadWorkeCertificateService uploadWorkeCertificateService;
+
+
+
+    // 师傅证件照同步到格力总部
+    @Scheduled(fixedDelayString = "${workercertificate}")
+    public void processUploadTask(){
+        if (1==1){
+            return;
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        if (workercertificatec.equals(TaskConfigEnum.FALSE.getCode())){
+            return;
+        }
+
+        log.info("开始同步师傅证件信息: \uF0B7{}",sdf.format(new Date()));
+
+        uploadWorkeCertificateService.procesUploadWorkeCert();
+
+        log.info("同步师傅证件信息结束: \uF0B7{}",sdf.format(new Date()));
+    }
+
+}

+ 2 - 2
src/main/resources/bootstrap-prdt.properties

@@ -295,9 +295,9 @@ SMSSelf_marketing_Rate=5000
 ######################## 同步定时任务配置 ########################
 #师傅 证件、师傅、工单子表信息
 workercertificatec=FALSE
-workerceruploadc=FALSE
+workerceruploadc=TRUE
 detaildownc=FALSE
-workercertbxc=TRUE
+workercertbxc=FALSE
 #回收工单下载、获取工单的反馈明细数据、(获取对应的采集数据、附件数据、条码明细数据)、与总部进行确认下载完成、同步到业务表
 recycledownc=FALSE
 recyclefkdownc=FALSE