Browse Source

定时同步一个月内发货 捕获异常

wzy 10 months ago
parent
commit
9ccd367473

+ 63 - 0
mjava-kabeiyi/src/main/java/com/malk/kabeiyi/controller/KabeiyiController.java

@@ -1,12 +1,18 @@
 package com.malk.kabeiyi.controller;
 
 import com.malk.kabeiyi.service.KabeiyiService;
+import com.malk.server.aliwork.YDConf;
+import com.malk.server.aliwork.YDParam;
+import com.malk.server.common.McException;
 import com.malk.server.common.McR;
+import com.malk.server.dingtalk.DDR_New;
+import com.malk.service.aliwork.YDClient;
 import com.malk.service.dingtalk.DDClient;
 import com.malk.service.dingtalk.DDClient_Workflow;
 import com.malk.utils.UtilDateTime;
 import com.malk.utils.UtilMap;
 import lombok.extern.slf4j.Slf4j;
+import org.slf4j.MDC;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.web.bind.annotation.*;
@@ -98,4 +104,61 @@ public class KabeiyiController {
     public McR getDeliveryInfo(){
         return kabeiyiService.getDeliveryInfo();
     }
+
+    /*@Autowired
+    private YDClient ydClient;
+    @GetMapping("deleteAllData")
+    public McR deleteAllData(){
+        MDC.put("MDC_KEY_PID","1009");
+        DDR_New ddrNew;
+        int pageNumber = 1;
+        int pageSize = 100;
+        String formUuid = "FORM-BE542784AAC04206BD46AF3D9CD1F12DYSKF";
+        List<String> errorList = new ArrayList<>();
+        do {
+            ddrNew = ydClient.queryData(YDParam.builder()
+                    .formUuid(formUuid)
+                    .pageNumber(pageNumber)
+                    .pageSize(pageSize).build(), YDConf.FORM_QUERY.retrieve_search_form_id);
+
+            List<String> list =(List<String>) ddrNew.getData();
+
+            int i=1;
+            boolean flag = false;
+            while (i<=5 && !flag){
+                try {
+                    ydClient.operateData(YDParam.builder()
+                            .formUuid(formUuid)
+                            .asynchronousExecution(false)
+                            .formInstanceIdList(list)
+                            .build(),YDConf.FORM_OPERATION.delete_batch);
+                    flag = true;
+                }catch (McException e){
+                    if (e.getMessage().contains("The request has failed due to a temporary failure of the server.")){
+                        log.info("请求失败,尝试次数:{}",i);
+                        i++;
+                        try {
+                            Thread.sleep(3000);
+                        } catch (InterruptedException ex) {
+                            throw new RuntimeException(ex);
+                        }
+                    }else {
+                        log.info("删除失败 失败原因:{}" , e.getMessage());
+                        errorList.addAll(list);
+                        flag = true;
+                    }
+                }catch (Exception e){
+                    log.info("删除失败 失败原因:{}" , e.getMessage());
+                    errorList.addAll(list);
+                    flag = true;
+                }
+            }
+            if (i>5){
+                log.info("删除失败,重试次数过多");
+            }
+
+        }while (ddrNew.getTotalCount() > 0);
+        log.info("失败列表:{}",errorList);
+        return McR.success();
+    }*/
 }

+ 30 - 4
mjava-kabeiyi/src/main/java/com/malk/kabeiyi/service/impl/KabeiyiServiceImpl.java

@@ -643,7 +643,29 @@ public class KabeiyiServiceImpl implements KabeiyiService {
                 param2.put("id", id);
                 param2.put("ds_sequence", dsSequence);
 
-                Map<String, Object> map2 = get("https://api.yonyouup.com/api/consignment/get", param2, null);
+                Map<String, Object> map2 = new HashMap<>();
+
+                int i1 =1 ;
+                boolean flag1 = false;
+                while (i1<=5 && !flag1) {
+                    try {
+                        map2 = get("https://api.yonyouup.com/api/consignment/get", param2, null);
+                        flag1 = true;
+                    } catch (Exception e) {
+                        log.error("获取发货单详情失败:{}, 重试次数:{}",e.getMessage(),i1);
+                        try {
+                            Thread.sleep(3000);
+                        } catch (InterruptedException ex) {
+                            throw new RuntimeException(ex);
+                        }
+                        i1++;
+                    }
+                }
+                if (i1 > 5){
+                    log.error("获取发货单详情失败");
+                    continue;
+                }
+
 
                 Map consignment2 = (Map) map2.get("consignment");
 
@@ -658,7 +680,7 @@ public class KabeiyiServiceImpl implements KabeiyiService {
                 formData.put("textField_m18qfuiz",getString(consignment2.get("operation_type")));//操作类型
                 formData.put("textField_m18qfuj0",getString(consignment2.get("saletypename")));//销售类型
                 formData.put("textField_m18nvp87",getString(consignment2.get("code")));//发货单code
-                formData.put("dateField_m18nvp7x",DateUtil.parseDate(yesterday).getTime());//发货日期
+                formData.put("dateField_m18nvp7x",DateUtil.parseDate(getString(consignment.get("date"))).getTime());//发货日期
                 formData.put("textField_m18nvp7z",getString(consignment2.get("deptname")));//部门
                 formData.put("textField_m18nvp81",getString(consignment2.get("maker")));//生产员
                 formData.put("textField_m18nvp80",getString(consignment2.get("verifier")));//质检员
@@ -679,8 +701,9 @@ public class KabeiyiServiceImpl implements KabeiyiService {
                     detail.put("numberField_m18nvp8m", getString(item.get("sum")));//含税总价
                     detail.put("numberField_m18nvp8n", getString(item.get("taxrate")));//税率
                     detail.put("numberField_m18nvp8o", getString(item.get("tax")));//总税价
-                    detail.put("dateField_m18yzlob", DateUtil.parseDate(yesterday).getTime());//发货日期
+                    detail.put("dateField_m18yzlob", DateUtil.parseDate(getString(consignment.get("date"))).getTime());//发货日期
                     detail.put("textField_m18z3yn8", getString(consignment2.get("cusname")));//客户名称
+                    detail.put("textField_m1odluob", factory.get(dsSequence));//工厂名称
 
                     return detail;
                 }).collect(Collectors.toList());
@@ -698,13 +721,16 @@ public class KabeiyiServiceImpl implements KabeiyiService {
                         flag = true;
                     }catch (McException e){
                         if (e.getMessage().contains("The request has failed due to a temporary failure of the server.")){
-                            log.info("请求失败,尝试次数:{}",i);
+                            log.error("请求失败,尝试次数:{}",i);
                             i++;
                             try {
                                 Thread.sleep(3000);
                             } catch (InterruptedException ex) {
                                 throw new RuntimeException(ex);
                             }
+                        }else {
+                            log.error("删除失败 失败原因:{}" , e.getMessage());
+                            flag = true;
                         }
                     }catch (Exception e){
                         log.error("发货单:{} 同步失败 失败原因:{}",getString(consignment2.get("code")) , e.getMessage());