From 4632256b4056ab3a63da6aea1745a042e8e4e16a Mon Sep 17 00:00:00 2001
From: YYC <1833023622@qq.com>
Date: 星期五, 18 八月 2023 19:52:17 +0800
Subject: [PATCH] 基础数据上报--单位、库区、仓房

---
 src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java |  102 ++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 89 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..4ec8b8c 100644
--- a/src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java
+++ b/src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java
@@ -4,23 +4,25 @@
 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.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 +47,8 @@
     private ApiLogRep apiLogRep;
     @Autowired
     private Api1102Rep api1102Rep;
+    @Autowired
+    private Api1104Rep api1104Rep;
 
     @Override
     public String getProtocol() {
@@ -60,7 +64,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 +75,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 +101,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 +112,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 +144,85 @@
      * @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 {
             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