Ver código fonte

NPO对接数据定时器处理

CRK 3 semanas atrás
pai
commit
30b2908cce

+ 17 - 10
mjava-ts/src/main/java/com/malk/taisen/Timers/Time.java

@@ -1,5 +1,7 @@
 package com.malk.taisen.Timers;
 
+import java.time.LocalDateTime;
+
 import com.alibaba.fastjson.JSON;
 import com.malk.server.aliwork.YDConf;
 import com.malk.server.aliwork.YDParam;
@@ -9,6 +11,7 @@ import com.malk.utils.UtilMap;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -21,6 +24,8 @@ import java.util.Map;
 @Slf4j
 @Configuration
 @EnableScheduling
+@ConditionalOnProperty(name = {"npo.scheduling"}, havingValue = "true")
+
 public class Time {
 
     private YDClient ydClient;
@@ -28,18 +33,20 @@ public class Time {
     private NonPoServer nonPoServer;
 
     /**
-     * 每半小时查询下 NPO 流程结束待推送的数据
+     * 每5分钟时查询下 NPO 流程结束待推送的数据
      */
     //暂不开启
 //
-//    @Value(value = "${sap.QA_sapUrl_Poc}")
-//    private String QA_sapUrl;
-//    @Scheduled(fixedRate = 1000 * 1800)
-//    public void JX() throws Exception {
-//       // nonPoServer.NonPoinsetSAP0005list();
-//
-//      System.out.println("QA_sapUrl:"+QA_sapUrl);
-//
-//    }
+    @Value(value = "${sap.QA_sapUrl_Poc}")
+    private String QA_sapUrl;
+
+    //    @Scheduled(fixedRate = 1000 * 1800)
+    @Scheduled(fixedRate = 1000 * 60 * 5)   //05   10   15  25  30   35  40  45  50  55  60
+    public void JX() throws Exception {
+       nonPoServer.NonPoinsetSAP0005list();
+
+        System.out.println("每5分钟时查询下 NPO 流程结束待推送的数据   QA_sapUrl:" + QA_sapUrl);
+
+    }
 
 }

+ 28 - 16
mjava-ts/src/main/java/com/malk/taisen/service/impl/NonPoServerImpl.java

@@ -30,6 +30,9 @@ import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 
 @Slf4j
@@ -111,7 +114,7 @@ public class NonPoServerImpl implements NonPoServer {
                 }
             }
             // uid="CHN-01000332";
-         //  uid = "CHN-01000332";//测试过账人
+            //  uid = "CHN-01000332";//测试过账人
             sapJson.put("USNAM", uid);   //过账人
             sapJson.put("BUDAT", CusutUtil.getFormatDate((Long) dataForm.get("dateField_mhxdzyaa")));  //过账日期
             sapJson.put("ZOA_TYPE", dataForm.get("selectField_mejfoona").equals("无票预付") || dataForm.get("selectField_mejfoona").equals("100%清预付款") || dataForm.get("selectField_mejfoona").equals("100%清收据") ? "AD" : "NP");//OA单据类型
@@ -445,14 +448,20 @@ public class NonPoServerImpl implements NonPoServer {
     @Override
     public void NonPoinsetSAP0005list() {
         List<Map<String, Object>> conditions = new ArrayList<>(Arrays.asList(buildCondition("selectField_mi72r4s6", "待推送", "TEXT", "eq", "SelectField")));
+
+        LocalDateTime now = LocalDateTime.now();// 10:05
+        LocalDateTime end = now.minusMinutes(2);
+        LocalDateTime start = end.minusMinutes(10);
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        String startStr = start.format(formatter);
+        String endStr = end.format(formatter);
         String listJson = JSON.toJSONString(conditions);
-        YDParam YGydParam = _getNPonlist(listJson);
+        YDParam YGydParam = _getNPonlist(listJson, startStr, endStr);
         List<Map> dataList = (List<Map>) ydClient.queryData(YGydParam, YDConf.FORM_QUERY.retrieve_search_process).getData();
         if (dataList != null && dataList.size() > 0) {
             for (Map<String, Object> map : dataList) {
                 String insetid = map.get("formInstanceId").toString();
-
-                // this.NonPoinsetSAP0005("", insetid);
+                this.NonPoinsetSAP0005("", insetid, "FORM-E9A6EBE00F3E4DA68681107F85600D80ZJUT");
 
             }
         }
@@ -667,7 +676,7 @@ public class NonPoServerImpl implements NonPoServer {
                     uid = "CHN-0" + uid;
                 }
             }
-          //  uid = "CHN-01000332";
+            //  uid = "CHN-01000332";
 
             List<Map> tableFils = ydService.queryDetails(YDParam.builder().formInstanceId(InstanceId).formUuid(formUuid).tableFieldId("tableField_mkxd96yv").build());
             log.info("NPO冲销行项目, {}, {}", InstanceId, tableFils.size());
@@ -685,10 +694,11 @@ public class NonPoServerImpl implements NonPoServer {
                     if (detail.containsKey("textField_mkxd96yz")) {
                         if (detail.get("textField_mkxd96yz").toString() != "") {
                             body.put("ZOA_NUMBER", CusutUtil.getFormatDate((long) detail.get("textField_mkxd96yz")));
-                        }else {
+                        } else {
                             body.put("ZOA_NUMBER", ZOA_NUMBER);
                         }
-                    } {
+                    }
+                    {
                         body.put("ZOA_NUMBER", ZOA_NUMBER);
                     }
 
@@ -698,21 +708,22 @@ public class NonPoServerImpl implements NonPoServer {
                     body.put("BELNR", UtilMap.getString(detail, "textField_mkxd96yx"));
 
                     body.put("GJAHR", UtilMap.getString(detail, "textField_mkxd96yy"));
-                    if ("当前期间冲销".equals(UtilMap.getString(detail, "selectField_mkxd96z6"))){
-                        body.put("STGRD","01" );
+                    if ("当前期间冲销".equals(UtilMap.getString(detail, "selectField_mkxd96z6"))) {
+                        body.put("STGRD", "01");
                     }
-                    if ("关闭期间冲销".equals(UtilMap.getString(detail, "selectField_mkxd96z6"))){
-                        body.put("STGRD","02" );
+                    if ("关闭期间冲销".equals(UtilMap.getString(detail, "selectField_mkxd96z6"))) {
+                        body.put("STGRD", "02");
                     }
 
                     body.put("USNAM", uid);
                     if (detail.containsKey("dateField_mkxd96z1")) {
                         if (detail.get("dateField_mkxd96z1").toString() != "") {
                             body.put("BUDAT", CusutUtil.getFormatDate((long) detail.get("dateField_mkxd96z1")));
-                        }else {
+                        } else {
                             body.put("BUDAT", "");
                         }
-                    } {
+                    }
+                    {
                         body.put("BUDAT", "");
                     }
 
@@ -787,7 +798,7 @@ public class NonPoServerImpl implements NonPoServer {
         return val instanceof String ? (String) val : "";
     }
 
-    private void                                                                                                                                                                                                                                                 updateMainFormError(String instanceId, String errorMsg) {
+    private void updateMainFormError(String instanceId, String errorMsg) {
         ydClient.operateData(
                 YDParam.builder()
                         .appType("APP_N9NPHVTQLPBPO8MR6WFG")
@@ -951,8 +962,9 @@ public class NonPoServerImpl implements NonPoServer {
         return YDParam.builder().appType("APP_N9NPHVTQLPBPO8MR6WFG").systemToken("UM6660D1PGF2O34KAVVKG8XZ756E3O06MZX5LW").formUuid("FORM-4J7669A10FO250UJ9C6Q7CM00PC62YPW8DD6LT").searchFieldJson(searchFieldJson).build();
     }
 
-    public static YDParam _getNPonlist(String searchFieldJson) {
-        return YDParam.builder().appType("APP_N9NPHVTQLPBPO8MR6WFG").systemToken("UM6660D1PGF2O34KAVVKG8XZ756E3O06MZX5LW").formUuid("FORM-E9A6EBE00F3E4DA68681107F85600D80ZJUT").searchFieldJson(searchFieldJson).approvedResult("agree").build();
+    public static YDParam _getNPonlist(String searchFieldJson, String start, String end) {
+        return YDParam.builder().appType("APP_N9NPHVTQLPBPO8MR6WFG").systemToken("UM6660D1PGF2O34KAVVKG8XZ756E3O06MZX5LW").formUuid("FORM-E9A6EBE00F3E4DA68681107F85600D80ZJUT").searchFieldJson(searchFieldJson).approvedResult("agree").modifiedFromTimeGMT(String.valueOf(start)).modifiedToTimeGMT(String.valueOf(end)).build();
+        // return YDParam.builder().appType("APP_N9NPHVTQLPBPO8MR6WFG").systemToken("UM6660D1PGF2O34KAVVKG8XZ756E3O06MZX5LW").formUuid("FORM-E9A6EBE00F3E4DA68681107F85600D80ZJUT").modifiedFromTimeGMT(String.valueOf(start)).modifiedToTimeGMT(String.valueOf(end)).build();
     }
 
 

+ 2 - 0
mjava-ts/src/main/resources/application-dev.yml

@@ -3,6 +3,8 @@ server:
   port: 9090
   servlet:
     context-path: /api/ts
+npo:
+  scheduling: false
 
 enable:
   scheduling: false

+ 3 - 0
mjava-ts/src/main/resources/application-prod.yml

@@ -4,6 +4,9 @@ server:
   servlet:
     context-path: /apitsprod
 
+npo:
+  scheduling: true
+
 enable:
   scheduling: false
 

+ 3 - 1
mjava-ts/src/main/resources/application-test.yml

@@ -4,6 +4,9 @@ server:
   servlet:
     context-path: /apits
 
+npo:
+  scheduling: false
+
 enable:
   scheduling: false
 
@@ -29,7 +32,6 @@ spring:
     database: MYSQL
     database-platform: org.hibernate.dialect.MySQL57Dialect
 
-
 # dingtal泰森
 dingtalk:
   agentId: 4105843375