From 17cb52bf01d1ead961a72760ba5f05f7741c1856 Mon Sep 17 00:00:00 2001
From: 陈战涛 <chenzhantao7055@sina.com>
Date: 星期二, 09 五月 2023 16:54:44 +0800
Subject: [PATCH] 提交配置信息

---
 src/main/java/com/fzzy/api/service/ApiTriggerService.java              |    1 
 src/main/java/com/fzzy/api/data/PushProtocol.java                      |    3 
 src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService14.java    |   41 ++++
 src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023HttpClientUtil.java   |   98 +++++++++
 src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService11.java    |   41 ++++
 src/main/java/com/fzzy/push/shjdjw2023/ShjdjwApiCodeConstant.java      |   47 ++++
 src/main/java/com/fzzy/push/gd2022/GD2022PushService11.java            |    3 
 src/main/java/com/fzzy/push/impl/ComPushService11.java                 |   30 +++
 src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService12.java    |   48 ++++
 src/main/java/com/fzzy/api/utils/AESUtils.java                         |   31 +++
 src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService13.java    |   41 ++++
 src/main/java/com/fzzy/push/shjdjw2023/ShjdjwApiRemoteService2023.java |  151 +++++++++++++++
 src/main/java/com/fzzy/push/shjdjw2023/dto/ShjdjwReqDto.java           |   23 ++
 src/main/java/com/fzzy/api/view/repository/Api1101Rep.java             |   10 +
 14 files changed, 565 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/fzzy/api/data/PushProtocol.java b/src/main/java/com/fzzy/api/data/PushProtocol.java
index 4b40b15..56510dd 100644
--- a/src/main/java/com/fzzy/api/data/PushProtocol.java
+++ b/src/main/java/com/fzzy/api/data/PushProtocol.java
@@ -15,7 +15,8 @@
     SB_GD_2022("SB_GD_2022", "骞夸笢鐪佸钩鍙�2022鐗�"),
     SB_GD_2020("SB_GD_2020", "骞夸笢鐪佸钩鍙�2020鐗�"),
     SB_HN_2022("SB_HN_2022", "娌冲崡鐪佸钩鍙�2022鐗�"),
-    HB_FZZY_JG_2022("HB_FZZY_JG_2022", "椋庢鑷磋繙鐩戠2022鐗堟湰");
+    HB_FZZY_JG_2022("HB_FZZY_JG_2022", "椋庢鑷磋繙鐩戠2022鐗堟湰"),
+    SB_SHJdJW_2023("SB_SHJdJW_2023", "涓婃捣鍢夊畾绾鐩戠骞冲彴2023鐗�");
 
 
     private String code;
diff --git a/src/main/java/com/fzzy/api/service/ApiTriggerService.java b/src/main/java/com/fzzy/api/service/ApiTriggerService.java
index 2d02c2c..3a0a609 100644
--- a/src/main/java/com/fzzy/api/service/ApiTriggerService.java
+++ b/src/main/java/com/fzzy/api/service/ApiTriggerService.java
@@ -179,6 +179,7 @@
         list.add(new ApiTrigger(PushProtocol.SB_GD_2022.getCode(), PushProtocol.SB_GD_2022.getName()));
         list.add(new ApiTrigger(PushProtocol.SB_GD_2020.getCode(), PushProtocol.SB_GD_2020.getName()));
         list.add(new ApiTrigger(PushProtocol.HB_FZZY_JG_2022.getCode(), PushProtocol.HB_FZZY_JG_2022.getName()));
+        list.add(new ApiTrigger(PushProtocol.SB_SHJdJW_2023.getCode(), PushProtocol.SB_SHJdJW_2023.getName()));
         return list;
     }
 
diff --git a/src/main/java/com/fzzy/api/utils/AESUtils.java b/src/main/java/com/fzzy/api/utils/AESUtils.java
index 624c31d..ef9d6d1 100644
--- a/src/main/java/com/fzzy/api/utils/AESUtils.java
+++ b/src/main/java/com/fzzy/api/utils/AESUtils.java
@@ -1,6 +1,7 @@
 package com.fzzy.api.utils;
 
 import javax.crypto.Cipher;
+import javax.crypto.KeyGenerator;
 import javax.crypto.SecretKey;
 import javax.crypto.spec.SecretKeySpec;
 
@@ -29,6 +30,8 @@
      * 鍔犺В瀵嗘柟寮�
      */
     private final static String ALGORITHM  = "AES";
+    private final static String ALGORITHM_ECB  = "ECB";
+    private final static int KEY_SIZE_128 = 128;
 
     /**
      *鍔犲瘑妯″紡鍙婂~鍏呮柟寮�
@@ -81,5 +84,33 @@
         return new String(encryptData,ENCODING);
     }
 
+    /**
+     * AES鍔犲瘑-ECB鏂瑰紡
+     * @param plainText
+     * @param key
+     * @return
+     * @throws Exception
+     */
+    public static String encryptByEcb(String plainText, String key) throws Exception {
+        if (key == null) {
+            System.out.print("Key涓虹┖null");
+            return null;
+        }
+
+        // 鍒ゆ柇Key鏄惁涓�16浣�
+//        if (key.length() != 16) {
+//            System.out.print("Key闀垮害涓嶆槸16浣�");
+//            return null;
+//        }
+        SecretKey secretKey = new SecretKeySpec(key.getBytes(ENCODING), ALGORITHM_ECB);
+        // AES鍔犲瘑閲囩敤pkcs5padding濉厖
+        Cipher cipher = Cipher.getInstance(PATTERN);
+        //鐢ㄥ瘑鍖欏垵濮嬪寲Cipher瀵硅薄
+        cipher.init(Cipher.ENCRYPT_MODE, secretKey);
+        //鎵ц鍔犲瘑鎿嶄綔
+        byte[] encryptData = cipher.doFinal(plainText.getBytes(ENCODING));
+        return Base64.getEncoder().encodeToString(encryptData);
+    }
+
 
 }
\ No newline at end of file
diff --git a/src/main/java/com/fzzy/api/view/repository/Api1101Rep.java b/src/main/java/com/fzzy/api/view/repository/Api1101Rep.java
index 368cfe4..9365832 100644
--- a/src/main/java/com/fzzy/api/view/repository/Api1101Rep.java
+++ b/src/main/java/com/fzzy/api/view/repository/Api1101Rep.java
@@ -3,11 +3,14 @@
 
 import com.fzzy.api.entity.Api1101;
 
+import com.fzzy.api.entity.Api1111;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.query.Param;
 import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
 
 
 public interface Api1101Rep extends JpaRepository<Api1101, String> {
@@ -24,4 +27,11 @@
     @Query("update Api1101 set czbz=:czbz where dwdm=:id ")
     int updateStatus(@Param("id") String id, @Param("czbz") String czbz);
 
+    /**
+     * 鏌ヨ鎵�鏈夌殑鐩戞帶鐐逛綅淇℃伅
+     * @param kqdm
+     * @return
+     */
+    @Query("from Api1101 where kqdm=:kqdm ")
+    List<Api1101> findPushData(@Param("kqdm") String kqdm);
 }
diff --git a/src/main/java/com/fzzy/push/gd2022/GD2022PushService11.java b/src/main/java/com/fzzy/push/gd2022/GD2022PushService11.java
index 6a51a4a..8be0d24 100644
--- a/src/main/java/com/fzzy/push/gd2022/GD2022PushService11.java
+++ b/src/main/java/com/fzzy/push/gd2022/GD2022PushService11.java
@@ -3,7 +3,6 @@
 import com.fzzy.api.data.ApiParam;
 import com.fzzy.api.data.PushProtocol;
 import com.fzzy.api.service.PushService11;
-import com.fzzy.push.gd2020.GDApiRemoteService;
 import com.fzzy.push.impl.ComPushService11;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -19,7 +18,7 @@
 public class GD2022PushService11 implements PushService11 {
 
     @Autowired
-    private GDApiRemoteService apiRemoteService;
+    private GD2022ApiRemoteService2022 apiRemoteService;
 
     @Autowired
     private ComPushService11 pushService;
diff --git a/src/main/java/com/fzzy/push/impl/ComPushService11.java b/src/main/java/com/fzzy/push/impl/ComPushService11.java
index 78705ed..403e048 100644
--- a/src/main/java/com/fzzy/push/impl/ComPushService11.java
+++ b/src/main/java/com/fzzy/push/impl/ComPushService11.java
@@ -3,8 +3,10 @@
 import com.fzzy.api.Constant;
 import com.fzzy.api.data.ApiParam;
 import com.fzzy.api.dto.ResponseDto;
+import com.fzzy.api.entity.Api1101;
 import com.fzzy.api.entity.Api1111;
 import com.fzzy.api.service.ApiRemoteService;
+import com.fzzy.api.view.repository.Api1101Rep;
 import com.fzzy.api.view.repository.Api1111Rep;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -20,9 +22,37 @@
 public class ComPushService11 {
 
     @Autowired
+    private Api1101Rep api1101Rep;
+    @Autowired
     private Api1111Rep api1111Rep;
 
     /**
+     * 1101 鍗曚綅淇℃伅
+     */
+    public void pushData1101(ApiRemoteService apiRemoteService, ApiParam param) {
+
+        List<Api1101> items = api1101Rep.findPushData(param.getKqdm());
+        if (null == items || items.isEmpty()) {
+            return;
+        }
+
+        param.setInteCategory(Constant.API_CATEGORY_11);
+        param.setInteId(Constant.API_CODE_1111);
+
+        ResponseDto responseDto;
+        for (Api1101 data : items) {
+            param.setBizId(data.getBizId());
+            responseDto = apiRemoteService.pushData(param, data);
+
+            if (responseDto.getSuccess() == 0) {
+                if (Constant.CZBZ_I.equals(data.getCzbz())) {
+                    api1101Rep.updateStatus(data.getDwdm(), Constant.CZBZ_U);
+                }
+            }
+        }
+    }
+
+    /**
      * 1111 搴撳尯鍥捐棰戠洃鎺ц澶囩偣浣嶆爣娉�
      */
     public void pushData1111(ApiRemoteService apiRemoteService, ApiParam param) {
diff --git a/src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023HttpClientUtil.java b/src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023HttpClientUtil.java
new file mode 100644
index 0000000..bb7f07f
--- /dev/null
+++ b/src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023HttpClientUtil.java
@@ -0,0 +1,98 @@
+package com.fzzy.push.shjdjw2023;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.TypeReference;
+import com.fzzy.api.entity.ApiConfs;
+import com.fzzy.api.utils.AESUtils;
+import com.fzzy.api.utils.MyMD5Util;
+import com.fzzy.api.utils.SnowflakeIdWorker;
+import com.fzzy.push.gd2022.dto.GD2022AuthToken;
+import com.fzzy.push.gd2022.dto.GD2022ResponseDto;
+import lombok.extern.slf4j.Slf4j;
+
+import java.io.*;
+import java.lang.reflect.Type;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.Map;
+import java.util.UUID;
+
+/**
+ * 涓婃捣鍢夊畾绾鐩戠骞冲彴-涓婁紶鏁版嵁鏈嶅姟绫�
+ * @author czt
+ * @date 2023/5/9  14:21
+ */
+@Slf4j
+public class Shjdjw2023HttpClientUtil {
+
+    /**
+     * post formData
+     * @param url
+     * @return
+     * @throws Exception
+     */
+    @SuppressWarnings("resource")
+    public static GD2022ResponseDto postPushData(String url, String data , ApiConfs apiConfs) throws Exception {
+        log.info("---------鎺ュ彛璇锋眰鍦板潃锛�" +url+ "----------鍙傛暟锛�" + data +"---------");
+        BufferedReader in = null;
+        URL urls = new URL(url);
+        HttpURLConnection connection = null;
+        OutputStream outputStream = null;
+        String rs = "";
+        GD2022ResponseDto responseDto;
+        try {
+            String md = AESUtils.encryptByEcb(data, apiConfs.getPublicKey());
+            log.info("---------鎺ュ彛璇锋眰鍦板潃锛�" +url+ "----------瀵嗘枃鍙傛暟锛�" + md +"---------");
+            connection = (HttpURLConnection) urls.openConnection();
+            connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
+            connection.setDoOutput(true);
+            connection.setDoInput(true);
+            connection.setRequestProperty("Accept-Language", "zh-CN,zh;q=0.8");
+            connection.setRequestProperty("Accept", "*/*");
+            connection.setRequestProperty("Range", "bytes=" + "");
+            connection.setRequestProperty("token", apiConfs.getPassword());
+            connection.setConnectTimeout(20000);
+            connection.setReadTimeout(30000);
+            connection.setRequestMethod("POST");
+            StringBuffer buffer = new StringBuffer();
+            buffer.append(md);
+            outputStream = connection.getOutputStream();
+            outputStream.write(buffer.toString().getBytes("UTF-8"));
+            try {
+                connection.connect();
+                if (connection.getResponseCode() == 200) {
+                    in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
+                    String line = "";
+                    while ((line = in.readLine()) != null) {
+                        rs += line;
+                    }
+                }else{
+                    log.error("http鐘舵�侊細" + connection.getResponseCode());
+                    log.error("http娑堟伅锛�" + connection.getResponseMessage());
+                }
+
+            } catch (Exception e) {
+                System.out.println("鍙戠敓寮傚父");
+                log.error(e.getMessage(),e);
+                rs = null;
+                return new GD2022ResponseDto(99,e.getMessage());
+            }
+            log.info("---------鎺ュ彛杩斿洖锛�" + rs +"---------");
+            responseDto = JSON.parseObject(rs,GD2022ResponseDto.class);
+            if(responseDto == null )   return new GD2022ResponseDto(99,"鎺ュ彛璇锋眰鍙戠敓鏈煡閿欒");
+            return responseDto;
+        } finally {
+            try {
+                outputStream.close();
+                if (in != null){
+                    in.close();
+                }
+            } catch (Exception e) {
+            }
+            outputStream = null;
+            if (connection != null)
+                connection.disconnect();
+            connection = null;
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService11.java b/src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService11.java
new file mode 100644
index 0000000..a1eacc3
--- /dev/null
+++ b/src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService11.java
@@ -0,0 +1,41 @@
+package com.fzzy.push.shjdjw2023;
+
+import com.fzzy.api.data.ApiParam;
+import com.fzzy.api.data.PushProtocol;
+import com.fzzy.api.service.PushService11;
+import com.fzzy.push.impl.ComPushService11;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 涓婃捣鍢夊畾绾鐩戠骞冲彴-鍩虹鏁版嵁涓婁紶
+ * @author czt
+ * @date 2023/5/9  16:21
+ */
+@Slf4j
+@Component
+public class Shjdjw2023PushService11 implements PushService11 {
+
+    @Autowired
+    private ShjdjwApiRemoteService2023 apiRemoteService;
+
+    @Autowired
+    private ComPushService11 pushService;
+
+    @Override
+    public String getProtocol() {
+        return PushProtocol.SB_GD_2022.getCode();
+    }
+
+    @Override
+    public void pushData(ApiParam param) {
+        log.info("------->>>>鍩虹淇℃伅 鎺ュ彛妯″潡涓婃姤寮�濮�");
+
+        //TODO 鍗曚綅淇℃伅
+
+        log.info("------->>>>鍩虹淇℃伅 鎺ュ彛妯″潡涓婃姤缁撴潫");
+
+    }
+
+}
diff --git a/src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService12.java b/src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService12.java
new file mode 100644
index 0000000..f9022c6
--- /dev/null
+++ b/src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService12.java
@@ -0,0 +1,48 @@
+package com.fzzy.push.shjdjw2023;
+
+import com.fzzy.api.data.ApiParam;
+import com.fzzy.api.data.PushProtocol;
+import com.fzzy.api.service.PushService12;
+import com.fzzy.push.impl.ComPushService12;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 涓婃捣鍢夊畾绾鐩戠骞冲彴-绮璐攢鏁版嵁涓婁紶
+ * @author czt
+ * @date 2023/5/9  16:23
+ */
+@Slf4j
+@Component
+public class Shjdjw2023PushService12 implements PushService12 {
+
+    @Autowired
+    private ShjdjwApiRemoteService2023 apiRemoteService;
+
+    @Autowired
+    private ComPushService12 pushService;
+
+    @Override
+    public String getProtocol() {
+        return PushProtocol.SB_GD_2022.getCode();
+    }
+
+    @Override
+    public void pushData(ApiParam param) {
+        log.info("------->>>>绮璐攢 鎺ュ彛妯″潡涓婃姤寮�濮�");
+
+
+        //TODO 绮鍏ュ簱淇℃伅
+
+        //TODO 绮鍏ュ簱璐ㄦ淇℃伅
+
+        //TODO 绮鍑哄簱淇℃伅
+
+        //TODO 绮搴撳瓨淇℃伅
+
+        //TODO 鎹熺泭鍗曚俊鎭�
+
+        log.info("------->>>>绮璐攢 鎺ュ彛妯″潡涓婃姤缁撴潫");
+    }
+}
diff --git a/src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService13.java b/src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService13.java
new file mode 100644
index 0000000..0628cd2
--- /dev/null
+++ b/src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService13.java
@@ -0,0 +1,41 @@
+package com.fzzy.push.shjdjw2023;
+
+import com.fzzy.api.data.ApiParam;
+import com.fzzy.api.data.PushProtocol;
+import com.fzzy.api.service.PushService13;
+import com.fzzy.push.impl.ComPushService13;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 涓婃捣鍢夊畾绾鐩戠骞冲彴-绮绠$悊鏁版嵁涓婁紶
+ * @author czt
+ * @date 2023/5/9  16:25
+ */
+@Slf4j
+@Component
+public class Shjdjw2023PushService13 implements PushService13 {
+
+    @Autowired
+    private ShjdjwApiRemoteService2023 apiRemoteService;
+
+    @Autowired
+    private ComPushService13 pushService;
+
+
+    @Override
+    public String getProtocol() {
+        return PushProtocol.SB_GD_2022.getCode();
+    }
+
+    @Override
+    public void pushData(ApiParam param) {
+        log.info("------->>>>绮绠$悊 鎺ュ彛妯″潡涓婃姤寮�濮�");
+
+        //TODO 璐ㄦ淇℃伅
+
+        log.info("------->>>>绮绠$悊 鎺ュ彛妯″潡涓婃姤缁撴潫");
+    }
+
+}
diff --git a/src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService14.java b/src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService14.java
new file mode 100644
index 0000000..c9f3529
--- /dev/null
+++ b/src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService14.java
@@ -0,0 +1,41 @@
+package com.fzzy.push.shjdjw2023;
+
+import com.fzzy.api.data.ApiParam;
+import com.fzzy.api.data.PushProtocol;
+import com.fzzy.api.service.PushService14;
+import com.fzzy.push.impl.ComPushService14;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 涓婃捣鍢夊畾绾鐩戠骞冲彴-琛屾斂绠$悊鏁版嵁涓婁紶
+ * @author czt
+ * @date 2023/5/9  16:27
+ */
+@Slf4j
+@Component
+public class Shjdjw2023PushService14 implements PushService14 {
+
+    @Autowired
+    private ShjdjwApiRemoteService2023 apiRemoteService;
+    @Autowired
+    private ComPushService14 pushService;
+
+
+    @Override
+    public String getProtocol() {
+        return PushProtocol.SB_GD_2022.getCode();
+    }
+
+    @Override
+    public void pushData(ApiParam param) {
+        log.info("------->>>>琛屾斂绠$悊 鎺ュ彛妯″潡涓婃姤寮�濮�");
+
+        //TODO 杞崲璁″垝淇℃伅
+
+        //TODO 杞崲璁″垝瀹屾垚淇℃伅
+
+        log.info("------->>>>琛屾斂绠$悊 鎺ュ彛妯″潡涓婃姤缁撴潫");
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/fzzy/push/shjdjw2023/ShjdjwApiCodeConstant.java b/src/main/java/com/fzzy/push/shjdjw2023/ShjdjwApiCodeConstant.java
new file mode 100644
index 0000000..945c3e5
--- /dev/null
+++ b/src/main/java/com/fzzy/push/shjdjw2023/ShjdjwApiCodeConstant.java
@@ -0,0 +1,47 @@
+package com.fzzy.push.shjdjw2023;
+
+/**
+ * 涓婃捣鍢夊畾绾鐩戠骞冲彴-鎺ュ彛缂栫爜
+ * @author czt
+ * @date 2023/5/9  14:25
+ */
+public class ShjdjwApiCodeConstant {
+
+    /**
+     * 鎺ュ彛缂栫爜-1101 鍗曚綅淇℃伅
+     */
+    public static String API_CODE_LS1101 = "ls1101";
+    /**
+     * 鎺ュ彛缂栫爜-1201 璐ㄦ
+     */
+    public static String API_CODE_LS1201 = "ls1201";
+    /**
+     * 鎺ュ彛缂栫爜-1302 绮鍏ュ簱
+     */
+    public static String API_CODE_LS1302 = "ls1302";
+    /**
+     * 鎺ュ彛缂栫爜-1303 鍏ュ簱璐ㄦ
+     */
+    public static String API_CODE_LS1303 = "ls1303";
+    /**
+     * 鎺ュ彛缂栫爜-1306 绮鍑哄簱
+     */
+    public static String API_CODE_LS1306 = "ls1306";
+    /**
+     * 鎺ュ彛缂栫爜-1310 绮搴撳瓨
+     */
+    public static String API_CODE_LS1310 = "ls1310";
+    /**
+     * 鎺ュ彛缂栫爜-1311 鎹熺泭鍗�
+     */
+    public static String API_CODE_LS1311 = "ls1311";
+    /**
+     * 鎺ュ彛缂栫爜-101 杞崲璁″垝
+     */
+    public static String API_CODE_LS1501 = "ls1501";
+    /**
+     * 鎺ュ彛缂栫爜-1502 杞崲璁″垝瀹屾垚鎯呭喌
+     */
+    public static String API_CODE_LS1502 = "ls1502";
+
+}
diff --git a/src/main/java/com/fzzy/push/shjdjw2023/ShjdjwApiRemoteService2023.java b/src/main/java/com/fzzy/push/shjdjw2023/ShjdjwApiRemoteService2023.java
new file mode 100644
index 0000000..7a56cfa
--- /dev/null
+++ b/src/main/java/com/fzzy/push/shjdjw2023/ShjdjwApiRemoteService2023.java
@@ -0,0 +1,151 @@
+package com.fzzy.push.shjdjw2023;
+
+import com.alibaba.fastjson.JSON;
+import com.fzzy.api.Constant;
+import com.fzzy.api.data.ApiParam;
+import com.fzzy.api.data.PushProtocol;
+import com.fzzy.api.dto.ResponseDto;
+import com.fzzy.api.entity.ApiConfs;
+import com.fzzy.api.entity.ApiLog;
+import com.fzzy.api.service.ApiCommonService;
+import com.fzzy.api.service.ApiRemoteService;
+import com.fzzy.api.utils.ContextUtil;
+import com.fzzy.api.utils.RedisUtil;
+import com.fzzy.api.view.repository.ApiLogRep;
+import com.fzzy.push.gd2022.dto.*;
+import com.fzzy.push.shjdjw2023.dto.ShjdjwReqDto;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+
+/**
+ * 涓婃捣鍢夊畾绾鐩戠骞冲彴-涓婁紶鏁版嵁鏈嶅姟绫�
+ *
+ * @author czt
+ * @date 2023/5/9  14:09
+ */
+@Slf4j
+@Data
+@Service
+public class ShjdjwApiRemoteService2023 implements ApiRemoteService {
+
+    @Autowired
+    private RedisUtil redisUtil;
+
+    @Autowired
+    private ApiCommonService apiCommonService;
+
+    @Autowired
+    private ApiLogRep apiLogRep;
+
+
+    @Override
+    public String getProtocol() {
+        return PushProtocol.SB_SHJdJW_2023.getCode();
+    }
+
+    @Override
+    public ResponseDto pushData(ApiParam param, Object data) {
+        return pushData(param, null, data);
+    }
+
+    @Override
+    public ResponseDto pushData(ApiParam param, ApiConfs conf, Object data) {
+        String inteId = param.getInteId();
+        String kqdm = param.getKqdm();
+        String bizId = param.getBizId();
+
+        try {
+            if (null == conf) {
+                conf = apiCommonService.getConf(kqdm);
+            }
+            //娣诲姞鏃ュ織
+            ApiLog apiLog = new ApiLog();
+            apiLog.setId(ContextUtil.getUUID());
+            apiLog.setInteId(param.getInteId());
+
+            //鑾峰彇鎺ュ彛缂栫爜
+            String interfaceId = getDataId(inteId);
+
+            //鑾峰彇json鏁版嵁
+            String jsonData = getJsonData(inteId, data, interfaceId);
+
+            if (StringUtils.isEmpty(interfaceId)) {
+                ResponseDto responseDto = new ResponseDto(99, "娌℃湁鑾峰彇鍒版帴鍙�", bizId);
+                apiLog.setStatus(99);
+                apiLog.setResult("娌℃湁鑾峰彇鍒版帴鍙�");
+                apiLogRep.save(apiLog);
+                return responseDto;
+            }
+            apiLog.setData(jsonData);
+            apiLog.setKqdm(kqdm);
+            apiLog.setUploadTime(new Date());
+
+            if (conf == null) {
+                ResponseDto responseDto = new ResponseDto(99, "娌℃湁鑾峰彇鍒颁笂浼犻厤缃�", bizId);
+                apiLog.setStatus(99);
+                apiLog.setResult("娌℃湁鑾峰彇鍒颁笂浼犻厤缃�");
+                apiLogRep.save(apiLog);
+                return responseDto;
+            }
+
+            Map<String, Object> map = new HashMap<>();
+            GD2022ResponseDto responseDto = Shjdjw2023HttpClientUtil.postPushData(conf.getApiUrl() + inteId, jsonData, conf);
+            responseDto.setBizId(bizId);
+            apiLog.setStatus(responseDto.getCode() == 200 ? 0 : responseDto.getCode());
+            apiLog.setResult(responseDto.getMsg());
+            apiLogRep.save(apiLog);
+            ResponseDto resd = new ResponseDto();
+            resd.setSuccess(responseDto.getCode() == 200 ? 0 : responseDto.getCode());
+            resd.setMsg(responseDto.getMsg());
+            //updateGD2022AuthToken(responseDto,conf, token);
+            return resd;
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            return new ResponseDto(99, e.getMessage());
+        }
+    }
+
+    /**
+     * 璋冩暣鏁版嵁灏佽锛岃幏鍙杍son鏁版嵁
+     *
+     * @param inteId
+     * @param data
+     * @return
+     * @throws Exception
+     */
+    private String getJsonData(String inteId, Object data, String interfaceId){
+        ShjdjwReqDto<List<Object>> dto = new ShjdjwReqDto<>();
+        dto.setId(getDataId(interfaceId));
+        List<Object> list = new ArrayList<>();
+        //杞崲灏佽
+        if(Constant.API_CODE_1101.equals(inteId)){
+            list.add(data);
+        }else{
+            list.add(data);
+        }
+
+        dto.setData(list);
+        return JSON.toJSONString(dto);
+    }
+
+    /**
+     * 鑾峰彇鎺ュ彛缂栫爜
+     *
+     * @param inteId
+     * @return
+     */
+    private String getDataId(String inteId) {
+        switch (inteId) {
+            case "1101":
+                return ShjdjwApiCodeConstant.API_CODE_LS1101;
+            default:
+                return inteId;
+        }
+
+    }
+}
diff --git a/src/main/java/com/fzzy/push/shjdjw2023/dto/ShjdjwReqDto.java b/src/main/java/com/fzzy/push/shjdjw2023/dto/ShjdjwReqDto.java
new file mode 100644
index 0000000..e53fed2
--- /dev/null
+++ b/src/main/java/com/fzzy/push/shjdjw2023/dto/ShjdjwReqDto.java
@@ -0,0 +1,23 @@
+package com.fzzy.push.shjdjw2023.dto;
+
+import lombok.Data;
+import java.io.Serializable;
+
+/**
+ * 涓婃捣鍢夊畾绾鐩戠骞冲彴-鏁版嵁灏佽
+ * @author czt
+ * @date 2023/5/9  14:35
+ */
+@Data
+public class ShjdjwReqDto<T> implements Serializable {
+
+    /**
+     * 鎺ュ彛缂栫爜
+     */
+    private String id;
+
+    /**
+     * 涓婁紶鏁版嵁(闆嗗悎褰㈠紡)
+     */
+    private T data;
+}

--
Gitblit v1.9.3