yaozhixue 1 年之前
父节点
当前提交
233e45ce5f

二进制
1674760507340484609.jpeg


二进制
1674761159177269250.jpeg


+ 33 - 0
src/main/java/com/zfire/jiasm/syncdata/base/BaseService.java

@@ -75,6 +75,39 @@ public class BaseService {
         }
     }
 
+
+    public void initFile(String id){
+        FileOutputStream fos = null;
+        BufferedInputStream bis = null ;
+        HttpURLConnection httpUrl =null;
+        int BUFFER_SIZE = 1024;
+        byte[] buf = new byte[BUFFER_SIZE];
+        int size = -1;
+
+        try {
+            bis = new BufferedInputStream(this.getClass().getResourceAsStream("/static/bx.jpg"));
+            fos = new FileOutputStream(id);
+            while (true){
+                size = bis.read(buf);
+                if (size == -1){
+                    break;
+                }
+                fos.write(buf,0,size);
+            }
+            fos.flush();
+        } catch (IOException e){
+        } catch (ClassCastException e){
+        } finally {
+            try{
+                fos.close();
+                bis.close();
+                httpUrl.disconnect();
+            }catch (IOException e){
+            }catch (NullPointerException e){
+            }
+        }
+    }
+
     public String dateSub(Date d) {
         SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US);
         long localTime = d.getTime()-8*60*60*1000;

+ 6 - 6
src/main/java/com/zfire/jiasm/syncdata/gree/recycle/RecycleAcquisitionLogic.java

@@ -290,20 +290,20 @@ public class RecycleAcquisitionLogic {
 		// 回收工单同步记录表中提取待同步的 回收工单-采集主表
 		List<OrderRecycleUploadEvent> collectionEventList = orderRecycleUploadEventService.lambdaQuery()
 				.eq(OrderRecycleUploadEvent::getSynStatus, Constant.SynStatus.UN_SYN.getCode())
-				.eq(OrderRecycleUploadEvent::getOrderType, Constant.RecycleOrderType.RECYCLE_ASSGIN_COLLECTION)
+				.eq(OrderRecycleUploadEvent::getTableName, Constant.RecycleOrderType.RECYCLE_ASSGIN_COLLECTION)
 				.list();
 
 		if(null != collectionEventList && !collectionEventList.isEmpty()) {
 			// 回收工单同步记录表中提取回 收工单-数据采集附件表
 			List<OrderRecycleUploadEvent> annexEventList = orderRecycleUploadEventService.lambdaQuery()
 					.eq(OrderRecycleUploadEvent::getSynStatus, Constant.SynStatus.UN_SYN.getCode())
-					.eq(OrderRecycleUploadEvent::getOrderType, Constant.RecycleOrderType.RECYCLE_ASSIGN_ANNEX).list();
+					.eq(OrderRecycleUploadEvent::getTableName, Constant.RecycleOrderType.RECYCLE_ASSIGN_ANNEX).list();
 
 			String batchNo = java.util.UUID.randomUUID().toString();
-			final Map<Integer, List<OrderRecycleUploadEvent>> collectionEventMap = collectionEventList.stream().collect(Collectors.groupingBy(OrderRecycleUploadEvent::getId));
-			final Map<Integer, List<OrderRecycleUploadEvent>> annexEventMap = (null == annexEventList || annexEventList.isEmpty()) ? null : annexEventList.stream().collect(Collectors.groupingBy(OrderRecycleUploadEvent::getId));
-			LinkedHashSet<Integer> collectionIds = new LinkedHashSet<>();
-			LinkedHashSet<Integer> annexIds = new LinkedHashSet<>();
+			final Map<String, List<OrderRecycleUploadEvent>> collectionEventMap = collectionEventList.stream().collect(Collectors.groupingBy(OrderRecycleUploadEvent::getId));
+			final Map<String, List<OrderRecycleUploadEvent>> annexEventMap = (null == annexEventList || annexEventList.isEmpty()) ? null : annexEventList.stream().collect(Collectors.groupingBy(OrderRecycleUploadEvent::getId));
+			LinkedHashSet<String> collectionIds = new LinkedHashSet<>();
+			LinkedHashSet<String> annexIds = new LinkedHashSet<>();
 			collectionEventList.stream().forEach(event->{
 				collectionIds.add(event.getId());
 			});

+ 3 - 3
src/main/java/com/zfire/jiasm/syncdata/gree/recycle/RecycleAssignLogic.java

@@ -1079,14 +1079,14 @@ public class RecycleAssignLogic {
 
 		// 回收工单同步记录表提取待同步的过程反馈数据数据
 		List<OrderRecycleUploadEvent> eventList = orderRecycleUploadEventService.lambdaQuery()
-				.eq(OrderRecycleUploadEvent::getOrderType, Constant.RecycleOrderType.RECYCLE_ASSIGN_FKMX)
+				.eq(OrderRecycleUploadEvent::getTableName, Constant.RecycleOrderType.RECYCLE_ASSIGN_FKMX)
 				.eq(OrderRecycleUploadEvent::getSynStatus, Constant.SynStatus.UN_SYN.getCode()).list();
 
 		if(CollectionUtils.isNotEmpty(eventList)) {
-			final Map<Integer, List<OrderRecycleUploadEvent>> eventMap = eventList.stream()
+			final Map<String, List<OrderRecycleUploadEvent>> eventMap = eventList.stream()
 					.collect(Collectors.groupingBy(OrderRecycleUploadEvent::getId));
 			// 提取本次同步的过程反馈明细表对应的id
-			LinkedHashSet<Integer> ids = new LinkedHashSet<>();
+			LinkedHashSet<String> ids = new LinkedHashSet<>();
 			eventList.stream().forEach(event->{
 				ids.add(event.getId());
 			});

+ 71 - 8
src/main/java/com/zfire/jiasm/syncdata/upload/worker/UploadWorkeCertificate.java

@@ -45,12 +45,7 @@ public class UploadWorkeCertificate {
     @Resource
     WorkerService workerService;
 
-    /**
-     * 初始化保险数据(可以不买保险)
-     * out_insure_cert 总部保证凭证 为空时
-     *    insure_cert为空  初始化生成
-     *               不为空正常生成
-     */
+
 
 
     // 师傅证件照同步到格力总部
@@ -122,7 +117,9 @@ public class UploadWorkeCertificate {
 
             // 上传图片 按网点上传
             for (WorkerBrandAccount wdno: workerWdnos){
-                uploadFileexc(fileo, filet, fid1, fid2,wdno.getGroupCompanyId(),item);
+                uploadFileexc(fileo, filet, fid1, fid2,wdno.getBrandWebsitId(),item);
+                // 保险数据同步 保险证不在证件表中
+                uploadInsureCert(item, wdno);
             }
 
             if (StringUtils.isNotEmpty(fileo)){
@@ -135,6 +132,30 @@ public class UploadWorkeCertificate {
         log.info("同步师傅证件信息结束: \uF0B7{}",sdf.format(new Date()));
     }
 
+    /**
+     * 初始化保险数据(可以不买保险)
+     * out_insure_cert 总部保证凭证 为空时
+     *    insure_cert为空  初始化生成
+     *               不为空正常生成
+     */
+    private void uploadInsureCert(WorkerCert item, WorkerBrandAccount wdno) throws Exception {
+        String fileo ="";
+        String fid1 = "";
+        Worker wk = workerService.lambdaQuery()
+                .eq(Worker::getWorkerId, item.getWorkerId()).one();
+        if (StringUtils.isEmpty(wk.getOutInsureCert())){
+            // 生成图片
+            fid1 = "bx.jpeg";
+            if (StringUtils.isEmpty(wk.getInsureCert())){
+                baseService.initFile(fileo);
+            } else {
+                baseService.saveToFile(ossUtil.getUrlWw(wk.getInsureCert()),fileo);
+            }
+            fileo = fid1;
+            uploadInitFileexc(fileo, fid1, wdno.getBrandWebsitId(),wk);
+        }
+    }
+
     private Boolean uploadFileexc(String fileo, String filet, String fid1, String fid2,String wdno,WorkerCert item) throws Exception {
         Boolean uploadfile = Boolean.TRUE;
         Boolean onlyone = Boolean.FALSE;
@@ -174,7 +195,7 @@ public class UploadWorkeCertificate {
                     }
                 } else {
                     updateWorkCertificateerror(item.getId(),"上传图片到OSS失败");
-                  }
+                }
             } else {
                 updateWorkCertificateerror(item.getId(),"获取签名信息失败");
                 return Boolean.TRUE;
@@ -217,6 +238,48 @@ public class UploadWorkeCertificate {
         return Boolean.FALSE;
     }
 
+    private Boolean uploadInitFileexc(String fileo, String fid1,String wdno,Worker 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.setOutInsureCert(responses.getData().getId());
+                        workerService.updateById(wk);
+                    } 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())){