From 15c542eb3964bc33b5bfd00998f1bcd095bf1dfe Mon Sep 17 00:00:00 2001
From: YYC <1833023622@qq.com>
Date: 星期六, 19 八月 2023 17:59:21 +0800
Subject: [PATCH] 上海数据上报

---
 src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java |  222 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 209 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java b/src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java
index d7ce01a..6c56254 100644
--- a/src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java
+++ b/src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java
@@ -4,23 +4,26 @@
 import com.fzzy.api.data.ApiParam;
 import com.fzzy.api.data.PushProtocol;
 import com.fzzy.api.dto.ResponseDto;
-import com.fzzy.api.entity.Api1102;
-import com.fzzy.api.entity.ApiConfs;
-import com.fzzy.api.entity.ApiLog;
+import com.fzzy.api.entity.*;
 import com.fzzy.api.service.ApiCommonService;
 import com.fzzy.api.service.ApiRemoteService;
 import com.fzzy.api.service.ApiTriggerService;
 import com.fzzy.api.utils.*;
 import com.fzzy.api.view.repository.Api1102Rep;
+import com.fzzy.api.view.repository.Api1104Rep;
+import com.fzzy.api.view.repository.Api1202Rep;
 import com.fzzy.api.view.repository.ApiLogRep;
-import com.fzzy.push.sh2023.dto.SH2023ReqDto;
-import com.fzzy.push.sh2023.dto.SH2023RespDto;
+import com.fzzy.push.sh2023.dto.*;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.time.DateFormatUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -45,6 +48,10 @@
     private ApiLogRep apiLogRep;
     @Autowired
     private Api1102Rep api1102Rep;
+    @Autowired
+    private Api1104Rep api1104Rep;
+    @Autowired
+    private Api1202Rep api1202Rep;
 
     @Override
     public String getProtocol() {
@@ -60,7 +67,8 @@
     public ResponseDto pushData(ApiParam param, ApiConfs conf, Object data) {
         String inteId = param.getInteId();
         String kqdm = param.getKqdm();
-
+        //鏌ヨ搴撳尯淇℃伅琛屾斂鍖哄垝鐮�
+        List<Api1102> api1102List = api1102Rep.findPushData(conf.getKqdm());
         try {
             if (null == conf) {
                 conf = apiCommonService.getConf(kqdm);
@@ -70,7 +78,7 @@
             ApiLog apiLog = new ApiLog();
             apiLog.setId(ContextUtil.getUUID());
             apiLog.setInteId(inteId);
-            String jsonData = getJsonData(inteId, data);
+            String jsonData = getJsonData(inteId, data, api1102List.get(0).getXzqhdm());
             log.info("鎺ュ彛鏁版嵁淇℃伅=" + jsonData);
 
             if (StringUtils.isEmpty(inteId)) {
@@ -96,8 +104,7 @@
             SH2023ReqDto reqData = new SH2023ReqDto();
             reqData.setId(ContextUtil.getUUID());
             //鑾峰彇韬唤ID锛屽嵆琛屾斂鍖哄垝鐮�
-            List<Api1102> api1102List = api1102Rep.findPushData(conf.getKqdm());
-            if(null == api1102List || api1102List.isEmpty()){
+            if (null == api1102List || api1102List.isEmpty()) {
                 ResponseDto responseDto = new ResponseDto(99, "娌℃湁鑾峰彇鍒拌韩浠絀D");
                 apiLog.setStatus(99);
                 apiLog.setResult("娌℃湁鑾峰彇鍒拌韩浠絀D");
@@ -108,9 +115,9 @@
             //鎸囦护id
             reqData.setOrderid(param.getOrderid());
             //韬唤绛惧悕锛屽鍦板尯琛屾斂鍖哄垝浠g爜_褰撳ぉ鏃ユ湡杩涜MD5绠楁硶绛惧悕
-            reqData.setAccess_token(RSAUtils.encryptData(reqData.getUid() + "_" + DateFormatUtils.format(new Date(), "yyyy-MM-dd"),conf.getPublicKey()));
+            reqData.setAccess_token(RSAUtils.encryptData(reqData.getUid() + "_" + DateFormatUtils.format(new Date(), "yyyy-MM-dd"), conf.getPublicKey()));
             //鏁版嵁鎬绘潯鏁�
-            List<Object> list  = (List<Object>)data;
+            List<Object> list = (List<Object>) data;
             reqData.setDatalength(list.size());
             //鏁版嵁杩涜SM4鍔犲瘑
             reqData.setData(jsonData);
@@ -140,13 +147,202 @@
      * @return
      * @throws Exception
      */
-    private String getJsonData(String inteId, Object data) {
+    private String getJsonData(String inteId, Object data, String code) {
         //鍏蜂綋鏍规嵁鎺ュ彛杩涜灏佽
         if (SH2023Constant.SH_2023_API_CODE_1101.equals(inteId)) {
-            return JSON.toJSONString(data);
+            SH2023Api1101 api1101;
+            //鏈�鍚庤浆鎹负json
+            List<SH2023Api1101> list = new ArrayList<>();
+            //鎶奷ata杞寲鎴恖ist闆嗗悎
+            List<Api1101> api1101List = castList(data, Api1101.class);
+            //鏌ヨ寤掗棿鏁�
+            List<Api1104> api1104List = api1104Rep.findPushData(api1101List.get(0).getKqdm());
+            for (Api1101 apiData : api1101List) {
+                api1101 = new SH2023Api1101();
+                BeanUtils.copyProperties(apiData, api1101);
+                api1101.setAjs(api1104List.size());
+                api1101.setBjw(ShAreaBjw.getBjw(code));
+                list.add(api1101);
+            }
+            return JSON.toJSONString(list);
+        } else if (SH2023Constant.SH_2023_API_CODE_1102.equals(inteId)) {
+            SH2023Api1102 api1102;
+            //鏈�鍚庤浆鎹负json
+            List<SH2023Api1102> list = new ArrayList<>();
+            //鎶奷ata杞寲鎴恖ist闆嗗悎
+            List<Api1102> api1101List = castList(data, Api1102.class);
+            //鏌ヨ寤掗棿鏁�
+            List<Api1104> api1104List = api1104Rep.findPushData(api1101List.get(0).getKqdm());
+            //璁$畻鍌ㄥ浠撳
+            Double count = 0.0;
+            for (Api1104 api1104 : api1104List) {
+                count = count + api1104.getAjsjcrong();
+            }
+            for (Api1102 apiData : api1101List) {
+                api1102 = new SH2023Api1102();
+                BeanUtils.copyProperties(apiData, api1102);
+                api1102.setAjs(api1104List.size());
+                api1102.setBjw(ShAreaBjw.getBjw(code));
+                api1102.setCbcr(count);
+                list.add(api1102);
+            }
+            return JSON.toJSONString(list);
+        } else if (SH2023Constant.SH_2023_API_CODE_1103.equals(inteId)) {
+            SH2023Api1103 api1103;
+            //鏈�鍚庤浆鎹负json
+            List<SH2023Api1103> list = new ArrayList<>();
+            //鎶奷ata杞寲鎴恖ist闆嗗悎
+            List<Api1103> api1103List = castList(data, Api1103.class);
+            //鏌ヨ寤掗棿鏁�
+            List<Api1104> api1104List = api1104Rep.findPushData(api1103List.get(0).getKqdm());
+            for (Api1103 apiData : api1103List) {
+                api1103 = new SH2023Api1103();
+                BeanUtils.copyProperties(apiData, api1103);
+                api1103.setAjs(api1104List.size());
+                api1103.setBjw(ShAreaBjw.getBjw(code));
+                list.add(api1103);
+            }
+            return JSON.toJSONString(list);
+        } else if (SH2023Constant.SH_2023_API_CODE_1104.equals(inteId)) {
+            SH2023Api1104 api1104;
+            //鏈�鍚庤浆鎹负json
+            List<SH2023Api1104> list = new ArrayList<>();
+            //鎶奷ata杞寲鎴恖ist闆嗗悎
+            List<Api1104> api1104List = castList(data, Api1104.class);
+            for (Api1104 apiData : api1104List) {
+                api1104 = new SH2023Api1104();
+                BeanUtils.copyProperties(apiData, api1104);
+                api1104.setAjdm(apiData.getAjdh());
+                api1104.setCfdm(apiData.getCfbh());
+                api1104.setSykqdm(apiData.getKqdm());
+                api1104.setBjw(ShAreaBjw.getBjw(code));
+                list.add(api1104);
+            }
+            return JSON.toJSONString(list);
+        } else if (SH2023Constant.SH_2023_API_CODE_1105.equals(inteId)) {
+            SH2023Api1105 api1105;
+            //鏈�鍚庤浆鎹负json
+            List<SH2023Api1105> list = new ArrayList<>();
+            //鎶奷ata杞寲鎴恖ist闆嗗悎
+            List<Api1105> api1105List = castList(data, Api1105.class);
+            for (Api1105 apiData : api1105List) {
+                api1105 = new SH2023Api1105();
+                BeanUtils.copyProperties(apiData, api1105);
+                api1105.setBjw(ShAreaBjw.getBjw(code));
+                list.add(api1105);
+            }
+            return JSON.toJSONString(list);
+        } else if (SH2023Constant.SH_2023_API_CODE_1106.equals(inteId)) {
+            SH2023Api1106 api1106;
+            //鏈�鍚庤浆鎹负json
+            List<SH2023Api1106> list = new ArrayList<>();
+            //鎶奷ata杞寲鎴恖ist闆嗗悎
+            List<Api1106> api1106List = castList(data, Api1106.class);
+            for (Api1106 apiData : api1106List) {
+                api1106 = new SH2023Api1106();
+                BeanUtils.copyProperties(apiData, api1106);
+                api1106.setBjw(ShAreaBjw.getBjw(code));
+                list.add(api1106);
+            }
+            return JSON.toJSONString(list);
+        } else if (SH2023Constant.SH_2023_API_CODE_1201.equals(inteId)) {
+            SH2023Api1201 api1201;
+            //鏈�鍚庤浆鎹负json
+            List<SH2023Api1201> list = new ArrayList<>();
+            //鎶奷ata杞寲鎴恖ist闆嗗悎
+            List<Api1201> api1201List = castList(data, Api1201.class);
+            for (Api1201 apiData : api1201List) {
+                api1201 = new SH2023Api1201();
+                BeanUtils.copyProperties(apiData, api1201);
+                api1201.setBjw(ShAreaBjw.getBjw(code));
+                api1201.setHtsfzz("0");
+                list.add(api1201);
+            }
+            return JSON.toJSONString(list);
+        } else if (SH2023Constant.SH_2023_API_CODE_1202.equals(inteId)) {
+            SH2023Api1202 api1202;
+            //鏈�鍚庤浆鎹负json
+            List<SH2023Api1202> list = new ArrayList<>();
+            //鎶奷ata杞寲鎴恖ist闆嗗悎
+            List<Api1202> api1202List = castList(data, Api1202.class);
+            for (Api1202 apiData : api1202List) {
+                api1202 = new SH2023Api1202();
+                BeanUtils.copyProperties(apiData, api1202);
+                api1202.setBjw(ShAreaBjw.getBjw(code));
+                api1202.setPch(apiData.getHwdm() + apiData.getShnd());
+                //todo 椹宠繍鍗曞彿(2104)  妫�鏂ゅ崟鍙�(2101)   鍧囦负闈炲繀濉�
+                api1202.setJzrq(apiData.getCmsj());
+                list.add(api1202);
+            }
+            return JSON.toJSONString(list);
+        } else if (SH2023Constant.SH_2023_API_CODE_1203.equals(inteId)) {
+            SH2023Api1203 api1203;
+            //鏈�鍚庤浆鎹负json
+            List<SH2023Api1203> list = new ArrayList<>();
+            //鎶奷ata杞寲鎴恖ist闆嗗悎
+            List<Api1203> api1203List = castList(data, Api1203.class);
+            for (Api1203 apiData : api1203List) {
+                api1203 = new SH2023Api1203();
+                BeanUtils.copyProperties(apiData, api1203);
+                api1203.setBjw(ShAreaBjw.getBjw(code));
+                //鏌ヨ鏀惰幏骞翠唤
+                List<Api1202> api1202List = api1202Rep.getDataById(apiData.getRkywdh());
+                api1203.setPch(apiData.getHwdm() + api1202List.get(0).getShnd());
+                list.add(api1203);
+            }
+            return JSON.toJSONString(list);
+        } else if (SH2023Constant.SH_2023_API_CODE_1204.equals(inteId)) {
+            SH2023Api1204 api1204;
+            //鏈�鍚庤浆鎹负json
+            List<SH2023Api1204> list = new ArrayList<>();
+            //鎶奷ata杞寲鎴恖ist闆嗗悎
+            List<Api1204> api1204List = castList(data, Api1204.class);
+            for (Api1204 apiData : api1204List) {
+                api1204 = new SH2023Api1204();
+                BeanUtils.copyProperties(apiData, api1204);
+                api1204.setBjw(ShAreaBjw.getBjw(code));
+                api1204.setPch(apiData.getHwdm() + DateFormatUtils.format(apiData.getJssj(), "yyyy"));
+                list.add(api1204);
+            }
+            return JSON.toJSONString(list);
+        } else if (SH2023Constant.SH_2023_API_CODE_1205.equals(inteId)) {
+            SH2023Api1205 api1205;
+            //鏈�鍚庤浆鎹负json
+            List<SH2023Api1205> list = new ArrayList<>();
+            //鎶奷ata杞寲鎴恖ist闆嗗悎
+            List<Api1205> api1205List = castList(data, Api1205.class);
+            for (Api1205 apiData : api1205List) {
+                api1205 = new SH2023Api1205();
+                BeanUtils.copyProperties(apiData, api1205);
+                api1205.setBjw(ShAreaBjw.getBjw(code));
+                api1205.setPch(apiData.getHwdm() + DateFormatUtils.format(apiData.getCmsj(), "yyyy"));
+                api1205.setJzrq(apiData.getCmsj());
+                list.add(api1205);
+            }
+            return JSON.toJSONString(list);
         } else {
             return JSON.toJSONString(data);
         }
     }
 
+    /**
+     * Object绫诲瀷杞彉涓篖ist
+     *
+     * @param obj
+     * @param clazz
+     * @param <T>
+     * @return
+     */
+    public static <T> List<T> castList(Object obj, Class<T> clazz) {
+        List<T> result = new ArrayList<T>();
+        if (obj instanceof List<?>) {
+            for (Object o : (List<?>) obj) {
+                result.add(clazz.cast(o));
+            }
+            return result;
+        }
+        return null;
+    }
+
+
 }
\ No newline at end of file

--
Gitblit v1.9.3