From 9149e48f78437e04725e24d98e2a75872f86d671 Mon Sep 17 00:00:00 2001
From: WS <1143478319@qq.com>
Date: 星期四, 25 五月 2023 20:10:55 +0800
Subject: [PATCH] 上海嘉定纪委优化3

---
 src/main/java/com/fzzy/api/view/repository/Api1404Rep.java             |    3 +
 src/main/java/com/fzzy/api/view/repository/Api1202Rep.java             |    5 +
 src/main/java/com/fzzy/push/shjdjw2023/dto/Shjdjw1502.java             |    2 
 src/main/java/com/fzzy/push/shjdjw2023/ShjdjwApiRemoteService2023.java |  114 ++++++++++++++++++++++++++++---------
 4 files changed, 94 insertions(+), 30 deletions(-)

diff --git a/src/main/java/com/fzzy/api/view/repository/Api1202Rep.java b/src/main/java/com/fzzy/api/view/repository/Api1202Rep.java
index 97be837..1a0442a 100644
--- a/src/main/java/com/fzzy/api/view/repository/Api1202Rep.java
+++ b/src/main/java/com/fzzy/api/view/repository/Api1202Rep.java
@@ -10,6 +10,8 @@
 import org.springframework.data.repository.query.Param;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.xml.crypto.Data;
+import java.util.Date;
 import java.util.List;
 
 
@@ -25,4 +27,7 @@
 
     @Query("from Api1202 where rkywdh=:rkywdh ")
     List<Api1202> getDataById(@Param("rkywdh") String rkywdh);
+
+    @Query("from Api1202 where cmsj>:start and cmsj<:end")
+    List<Api1202> getDataByTime(@Param("start") Date start, @Param("end") Date end);
 }
diff --git a/src/main/java/com/fzzy/api/view/repository/Api1404Rep.java b/src/main/java/com/fzzy/api/view/repository/Api1404Rep.java
index 1ae94ab..1504874 100644
--- a/src/main/java/com/fzzy/api/view/repository/Api1404Rep.java
+++ b/src/main/java/com/fzzy/api/view/repository/Api1404Rep.java
@@ -24,4 +24,7 @@
 
     @Query("from Api1404 where jhmxdh=:jhmxdh ")
     List<Api1404> getDataByJhmxdh(@Param("jhmxdh") String jhmxdh);
+
+    @Query("from Api1404 where lhjhdh=:lhjhdh ")
+    List<Api1404> getDataByLhjhdh(@Param("lhjhdh") String lhjhdh);
 }
diff --git a/src/main/java/com/fzzy/push/shjdjw2023/ShjdjwApiRemoteService2023.java b/src/main/java/com/fzzy/push/shjdjw2023/ShjdjwApiRemoteService2023.java
index d1c2d98..6060f6e 100644
--- a/src/main/java/com/fzzy/push/shjdjw2023/ShjdjwApiRemoteService2023.java
+++ b/src/main/java/com/fzzy/push/shjdjw2023/ShjdjwApiRemoteService2023.java
@@ -1,6 +1,7 @@
 package com.fzzy.push.shjdjw2023;
 
 import com.alibaba.fastjson.JSON;
+import com.bstek.dorado.util.DateUtils;
 import com.fzzy.api.Constant;
 import com.fzzy.api.data.ApiParam;
 import com.fzzy.api.data.PushProtocol;
@@ -20,6 +21,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.text.DateFormat;
 import java.util.*;
 
 /**
@@ -53,6 +55,9 @@
     private Api1104Rep api1104Rep;
     @Autowired
     private Api1208Rep api1208Rep;
+    @Autowired
+    private Api1404Rep api1404Rep;
+
 
     @Override
     public String getProtocol() {
@@ -113,6 +118,29 @@
             resd.setSuccess(responseDto.getCode() == 1 ? 0 : responseDto.getCode());
             resd.setMsg(responseDto.getDescription());
 
+            if (Constant.API_CODE_1403.equals(inteId)) {
+                //杞崲璁″垝瀹屾垚鎯呭喌鏁版嵁灏佽
+                Shjdjw1502 shjdjw1502 = copy1502((Api1403) data);
+                ShjdjwReqDto<Object> dto = new ShjdjwReqDto<>();
+                dto.setId(getDataId(ShjdjwApiCodeConstant.API_CODE_LS1502));
+                List<Object> list = new ArrayList<>();
+                list.add(shjdjw1502);
+                dto.setData(list);
+                String json = JSON.toJSONString(dto);
+
+                //杞崲璁″垝瀹屾垚鎯呭喌鏁版嵁涓婁紶
+                apiLog.setData(json);
+                apiLog.setKqdm(kqdm);
+                apiLog.setUploadTime(new Date());
+                ShjdjwRespDto shjdjwresponseDto = Shjdjw2023HttpClientUtil.postPushData(conf.getApiUrl(), json, conf);
+                responseDto.setBizId(bizId);
+                apiLog.setStatus(shjdjwresponseDto.getCode() == 1 ? 0 : shjdjwresponseDto.getCode());
+                apiLog.setResult(shjdjwresponseDto.getDescription());
+                apiLogRep.save(apiLog);
+                ResponseDto response = new ResponseDto();
+                response.setSuccess(shjdjwresponseDto.getCode() == 1 ? 0 : shjdjwresponseDto.getCode());
+                response.setMsg(shjdjwresponseDto.getDescription());
+            }
             return resd;
         } catch (Exception e) {
             log.error(e.getMessage(), e);
@@ -193,19 +221,9 @@
             list.add(shjdjwApi1310);
         } else if (Constant.API_CODE_1403.equals(inteId)) {
             //杞崲璁″垝鏁版嵁灏佽
-            ShjdjwApi1403 shjdjwApi1403 = new ShjdjwApi1403();
-            Api1403 api1403 = (Api1403) data;
-            BeanUtils.copyProperties(api1403, shjdjwApi1403);
-
-            shjdjwApi1403.setJhbm(api1403.getLhjhdh());
-            shjdjwApi1403.setPch("0");
+            ShjdjwApi1403 shjdjwApi1403 = copyApi1403((Api1403) data);
 
             list.add(shjdjwApi1403);
-        } else if (Constant.API_CODE_1404.equals(inteId)) {
-            //杞崲璁″垝瀹屾垚鎯呭喌鏁版嵁灏佽
-            ShjdjwApi1404 shjdjwApi1404 = copyApi1404((Api1404) data);
-
-            list.add(shjdjwApi1404);
         } else {
 
             list.add(data);
@@ -214,25 +232,66 @@
         return JSON.toJSONString(dto);
     }
 
-    private ShjdjwApi1404 copyApi1404(Api1404 api1404) {
-        ShjdjwApi1404 shjdjwApi1404 = new ShjdjwApi1404();
+    private ShjdjwApi1403 copyApi1403(Api1403 api1403) {
+        ShjdjwApi1403 shjdjwApi1403 = new ShjdjwApi1403();
+        BeanUtils.copyProperties(api1403, shjdjwApi1403);
+        List<Double> lhsl = getLhsl(api1403);
+        shjdjwApi1403.setLrsl(lhsl.get(1));
+        shjdjwApi1403.setLrsl(lhsl.get(0));
+        shjdjwApi1403.setJhbm(api1403.getLhjhdh());
+        shjdjwApi1403.setPch("0");
+        return shjdjwApi1403;
+    }
 
-        BeanUtils.copyProperties(api1404, shjdjwApi1404);
-
-        //鏌ヨ鍗曚綅淇℃伅
-        List<Api1101> listApi1101 = api1101Rep.findPushData(api1404.getKqdm());
-        if (null != listApi1101 && listApi1101.size() > 0) {
-            shjdjwApi1404.setDwmc(listApi1101.get(0).getDwmc());
+    /**
+     * 鑾峰彇杞叆鍜岃疆鍑洪噸閲�
+     * @param api1403
+     * @return
+     */
+    private List<Double> getLhsl(Api1403 api1403) {
+        List<Api1404> api1404List = api1404Rep.getDataByLhjhdh(api1403.getLhjhdh());
+        List<Double> lhsl = new ArrayList<>();
+        if(null != api1404List && api1404List.size() > 0){
+//            double sum = api1404List.stream().mapToDouble(Api1404::getLhsl).summaryStatistics().getSum();
+            double lcSum = api1404List.stream()
+                    .filter(x->x.getLhlx().equals("1"))
+                    .mapToDouble(Api1404::getLhsl)
+                    .summaryStatistics().getSum();
+            double lrSum = api1404List.stream()
+                    .filter(x->x.getLhlx().equals("2"))
+                    .mapToDouble(Api1404::getLhsl)
+                    .summaryStatistics().getSum();
+            lhsl.add(lcSum);
+            lhsl.add(lrSum);
         }
+        return lhsl;
+    }
 
-        //TODO 璁″垝骞村害 璁″垝鏁伴噺 宸叉墽琛屾暟閲� 鎵ц姣斾緥 鎷涙爣/绔炰环姣斾緥
-        shjdjwApi1404.setJhnd("0");
-        shjdjwApi1404.setJhsl("0");
-        shjdjwApi1404.setYzxsl("0");
-        shjdjwApi1404.setZxbl("0");
-        shjdjwApi1404.setZbjjbl("0");
+    private Shjdjw1502 copy1502(Api1403 api1403) {
+        Shjdjw1502 shjdjw1502 = new Shjdjw1502();
+        shjdjw1502.setDwmc(api1403.getLhjhdh());
+        shjdjw1502.setJhnd(api1403.getJhnd());
 
-        return shjdjwApi1404;
+        // 璁″垝鏁伴噺
+        List<Double> lhsl = getLhsl(api1403);
+        Double sum = lhsl.stream().reduce(0d, Double::sum);
+        // 宸叉墽琛屾暟閲�
+        List<Api1202> api1202List = api1202Rep.getDataByTime(api1403.getKszxrq(), api1403.getJzzxrq());
+//                DateUtils.format("yyyy-MM-dd HH:mm:ss", api1403.getKszxrq()),
+//                DateUtils.format("yyyy-MM-dd HH:mm:ss", api1403.getJzzxrq()));
+        Double yzxsl = api1202List.stream()
+                .mapToDouble(Api1202::getJz)
+                .summaryStatistics().getSum();
+        shjdjw1502.setJhsl(sum.toString());
+        shjdjw1502.setYzxsl(yzxsl.toString());
+        //鎵ц姣斾緥
+        shjdjw1502.setZxbl(String.valueOf((yzxsl/sum*100)));
+
+        // 鎷涙爣/绔炰环姣斾緥
+        shjdjw1502.setZbjjbl("100");
+        shjdjw1502.setCzbz(api1403.getCzbz());
+
+        return shjdjw1502;
     }
 
     private ShjdjwApi1203 copyApi1203(Api1203 api1203) {
@@ -437,9 +496,6 @@
             case "1403":
                 //杞崲璁″垝鎺ュ彛缂栫爜
                 return ShjdjwApiCodeConstant.API_CODE_LS1501;
-            case "1404":
-                //杞崲璁″垝瀹屾垚鎯呭喌鎺ュ彛缂栫爜
-                return ShjdjwApiCodeConstant.API_CODE_LS1502;
             default:
                 return inteId;
         }
diff --git a/src/main/java/com/fzzy/push/shjdjw2023/dto/ShjdjwApi1404.java b/src/main/java/com/fzzy/push/shjdjw2023/dto/Shjdjw1502.java
similarity index 92%
rename from src/main/java/com/fzzy/push/shjdjw2023/dto/ShjdjwApi1404.java
rename to src/main/java/com/fzzy/push/shjdjw2023/dto/Shjdjw1502.java
index bbca162..ac00f8e 100644
--- a/src/main/java/com/fzzy/push/shjdjw2023/dto/ShjdjwApi1404.java
+++ b/src/main/java/com/fzzy/push/shjdjw2023/dto/Shjdjw1502.java
@@ -8,7 +8,7 @@
 
 @Data
 @EqualsAndHashCode(callSuper = false)
-public class ShjdjwApi1404 implements Serializable {
+public class Shjdjw1502 implements Serializable {
 
     @PropertyDef(label = "鍗曚綅鍚嶇О")
     private String dwmc;

--
Gitblit v1.9.3