From a82631013be641db3979e11013b2cf6e937a3e7b Mon Sep 17 00:00:00 2001
From: CZT <czt18638530771@163.com>
Date: 星期二, 12 十二月 2023 14:24:51 +0800
Subject: [PATCH] 武汉省平台-共享接口实现1

---
 src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java |  271 +++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 206 insertions(+), 65 deletions(-)

diff --git a/src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java b/src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java
index 25bdc64..b6ee00b 100644
--- a/src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java
+++ b/src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java
@@ -16,6 +16,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.time.DateFormatUtils;
+import com.fzzy.api.utils.NumberUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -46,6 +47,8 @@
     private Api1101Rep api1101Rep;
     @Autowired
     private Api1102Rep api1102Rep;
+    @Autowired
+    private Api1103Rep api1103Rep;
     @Autowired
     private Api1104Rep api1104Rep;
     @Autowired
@@ -221,9 +224,25 @@
         if (SH2023Constant.SH_2023_API_CODE_1104.equals(inteId)) {
             SH2023Api1104 api1104 = new SH2023Api1104();
             Api1104 apiData = (Api1104) data;
+
+            //鏌ヨ浠撴埧淇℃伅
+            List<Api1103> api1103List = api1103Rep.findPushDataByCfdm(apiData.getCfbh());
+            List<Api1104> api1104List = api1104Rep.findDataByCfbh(apiData.getCfbh());
+            int num = 2;
+            if (null != api1104List && api1104List.size() > 0) {
+                num = api1104List.size();
+            }
+            if (null != api1103List && api1103List.size() > 0) {
+                Api1103 api1103 = api1103List.get(0);
+                BeanUtils.copyProperties(api1103, api1104);
+                api1104.setCwc(api1103.getCwc() / num);
+                api1104.setCnc(api1103.getCnc() / num);
+                api1104.setSjcr(api1103.getSjcr() / num);
+            }
             BeanUtils.copyProperties(apiData, api1104);
             api1104.setAjdm(apiData.getAjdh());
             api1104.setCfdm(apiData.getCfbh());
+            api1104.setLsxzdm("122");
 
             //璁剧疆绌哄睘鎬т负榛樿鍊�
             changeObject(api1104);
@@ -275,6 +294,8 @@
             api1109.setWjl(JSON.toJSONString(map));
             //涓婃捣甯傚钩鍙版枃浠跺悕绉拌鍒欙細搴撳尯缂栫爜_涓氬姟娴佹按鍙穇鍒嗙被鐮乢椤哄簭鐮�.jpg锛屼緥濡傦細91310114703439394M001_142211080101_GL_00.jpg
             api1109.setWjmc(getWjmc(api1109.getWjlx(), api1109.getWjmc()));
+            //涓氬姟绫诲瀷
+            api1109.setYwdh(getYwdh(api1109.getWjlx(), api1109.getWjmc()));
             //璁剧疆绌哄睘鎬т负榛樿鍊�
             changeObject(api1109);
             return api1109;
@@ -333,6 +354,11 @@
             if (StringUtils.isEmpty(api1201.getShr())) {
                 api1201.setShr("瀹℃壒浜�");
             }
+            //璁剧疆璐攢鏂瑰紡,榛樿瀹㈡埛缁熶竴淇$敤鐮佷负绌猴紝鍒欎负浜ч攢锛屽弽涔嬩负绔炰环锛�(1-瀹氬悜锛�2-绔炰环锛�3-浜ч攢)
+            api1201.setGxfs("2");
+            if(StringUtils.isEmpty(api1201.getKhtyshxydm())){
+                api1201.setGxfs("3");
+            }
             //璁剧疆绌哄睘鎬т负榛樿鍊�
             changeObject(api1201);
             return api1201;
@@ -352,13 +378,13 @@
 
             //璁剧疆绮杞崲骞村害
             List<Api1404> api1404List = api1404Rep.getDataByJhmxdh(apiData.getJhmxh());
-            if(null != api1404List && api1404List.size() >0){
+            if (null != api1404List && api1404List.size() > 0) {
                 api1202.setLhnd(api1404List.get(0).getShnd());
             }
 
             //璁剧疆鎵规鍙�
             List<Api1208> api1208List = api1208Rep.findDataByHwdm(api1202.getHwdm());
-            if(null != api1208List && api1208List.size() > 0){
+            if (null != api1208List && api1208List.size() > 0) {
                 api1202.setPch(apiData.getHwdm() + api1208List.get(0).getShnd());
             }
             //璁剧疆绌哄睘鎬т负榛樿鍊�
@@ -384,7 +410,7 @@
             }
             //璁剧疆鎵规鍙�
             List<Api1208> api1208List = api1208Rep.findDataByHwdm(api1203.getHwdm());
-            if(null != api1208List && api1208List.size() > 0){
+            if (null != api1208List && api1208List.size() > 0) {
                 api1203.setPch(apiData.getHwdm() + api1208List.get(0).getShnd());
             }
 
@@ -399,13 +425,19 @@
             api1204.setBjw(ShAreaBjw.getBjw(code));
 
             //璁剧疆鎵规鍙�
-            if(StringUtils.isNotEmpty(api1204.getHth())){
+            if (StringUtils.isNotEmpty(api1204.getHth())) {
                 List<Api1202> api1202List = api1202Rep.getDataByRkjsdh(api1204.getRkjsdh());
-                if(null != api1202List && api1202List.size() > 0){
+                if (null != api1202List && api1202List.size() > 0) {
                     List<Api1208> api1208List = api1208Rep.findDataByHwdm(api1202List.get(0).getHwdm());
-                    if(null != api1208List && api1208List.size() > 0){
+                    if (null != api1208List && api1208List.size() > 0) {
                         api1204.setPch(api1208List.get(0).getHwdm() + api1208List.get(0).getShnd());
                     }
+                }
+            }
+            if (StringUtils.isNotEmpty(api1204.getHwdm())) {
+                List<Api1208> api1208List = api1208Rep.findDataByHwdm(api1204.getHwdm());
+                if (null != api1208List && api1208List.size() > 0) {
+                    api1204.setPch(api1208List.get(0).getHwdm() + api1208List.get(0).getShnd());
                 }
             }
 
@@ -430,13 +462,13 @@
 
             //璁剧疆绮杞崲骞村害
             List<Api1404> api1404List = api1404Rep.getDataByJhmxdh(apiData.getJhmxh());
-            if(null != api1404List && api1404List.size() >0){
+            if (null != api1404List && api1404List.size() > 0) {
                 api1205.setLhnd(api1404List.get(0).getShnd());
             }
 
             //璁剧疆鎵规鍙�
             List<Api1208> api1208List = api1208Rep.findDataByHwdm(api1205.getHwdm());
-            if(null != api1208List && api1208List.size() > 0){
+            if (null != api1208List && api1208List.size() > 0) {
                 api1205.setPch(apiData.getHwdm() + api1208List.get(0).getShnd());
             }
 
@@ -450,16 +482,15 @@
             BeanUtils.copyProperties(apiData, api1206);
             api1206.setBjw(ShAreaBjw.getBjw(code));
             //鎵规鍙�
-            if(StringUtils.isNotEmpty(api1206.getHth())){
+            if (StringUtils.isNotEmpty(api1206.getHth())) {
                 List<Api1205> api1205List = api1205Rep.getDataByCkjsdh(api1206.getCkjsdh());
-                if(null != api1205List && api1205List.size() > 0){
+                if (null != api1205List && api1205List.size() > 0) {
                     List<Api1208> api1208List = api1208Rep.findDataByHwdm(api1205List.get(0).getHwdm());
-                    if(null != api1208List && api1208List.size() > 0){
+                    if (null != api1208List && api1208List.size() > 0) {
                         api1206.setPch(api1208List.get(0).getHwdm() + api1208List.get(0).getShnd());
                     }
                 }
             }
-
             //璁剧疆绌哄睘鎬т负榛樿鍊�
             changeObject(api1206);
             return api1206;
@@ -474,7 +505,7 @@
             api1207.setBjw(ShAreaBjw.getBjw(code));
 
             List<Api1208> api1208List = api1208Rep.findDataByHwdm(api1207.getDchwdm());
-            if(null != api1208List && api1208List.size() > 0){
+            if (null != api1208List && api1208List.size() > 0) {
                 api1207.setPch(api1207.getDchwdm() + api1208List.get(0).getShnd());
             }
 
@@ -510,7 +541,7 @@
             api1209.setBjw(ShAreaBjw.getBjw(code));
             api1209.setJzrq(apiData.getYwrq());
             List<Api1208> api1208List = api1208Rep.findDataByHwdm(api1209.getHwdm());
-            if(null != api1208List && api1208List.size() > 0){
+            if (null != api1208List && api1208List.size() > 0) {
                 api1209.setPch(api1209.getHwdm() + api1208List.get(0).getShnd());
             }
 
@@ -525,7 +556,7 @@
             BeanUtils.copyProperties(apiData, api1210);
             api1210.setBjw(ShAreaBjw.getBjw(code));
             List<Api1208> api1208List = api1208Rep.findDataByHwdm(api1210.getHwdm());
-            if(null != api1208List && api1208List.size() > 0){
+            if (null != api1208List && api1208List.size() > 0) {
                 api1210.setPch(apiData.getHwdm() + api1208List.get(0).getShnd());
             }
 
@@ -542,7 +573,7 @@
             api1211.setBjw(ShAreaBjw.getBjw(code));
             api1211.setPch(apiData.getHwdm() + DateFormatUtils.format(apiData.getYwrq(), "yyyyMM"));
             List<Api1208> api1208List = api1208Rep.findDataByHwdm(api1211.getHwdm());
-            if(null != api1208List && api1208List.size() > 0){
+            if (null != api1208List && api1208List.size() > 0) {
                 api1211.setPch(apiData.getHwdm() + api1208List.get(0).getShnd());
             }
 
@@ -573,16 +604,14 @@
             Api1302 apiData = (Api1302) data;
             BeanUtils.copyProperties(apiData, api1302);
             api1302.setBjw(ShAreaBjw.getBjw(code));
-            api1302.setCpjw(String.valueOf(apiData.getLspjw()));
-            api1302.setCzgw(String.valueOf(apiData.getLspjw()));
-            api1302.setCzdw(String.valueOf(apiData.getLspjw()));
-            api1302.setGfwjw(String.valueOf(apiData.getLspjw()));
-            api1302.setLwmx(apiData.getLswdzjh());
-
+            api1302.setLqjs("1");
+            //鎵规鍙�
             List<Api1208> api1208List = api1208Rep.findDataByHwdm(api1302.getHwdm());
-            if(null != api1208List && api1208List.size() > 0){
+            if (null != api1208List && api1208List.size() > 0) {
                 api1302.setPch(apiData.getHwdm() + api1208List.get(0).getShnd());
             }
+            //缁熻灞傞珮銆佸眰浣庛�佸眰鍧囨俯绛変俊鎭�
+            api1302 = packageData1302(api1302);
 
             //璁剧疆绌哄睘鎬т负榛樿鍊�
             changeObject(api1302);
@@ -594,7 +623,7 @@
             BeanUtils.copyProperties(apiData, api1303);
             api1303.setBjw(ShAreaBjw.getBjw(code));
             List<Api1208> api1208List = api1208Rep.findDataByHwdm(api1303.getHwdm());
-            if(null != api1208List && api1208List.size() > 0){
+            if (null != api1208List && api1208List.size() > 0) {
                 api1303.setPch(apiData.getHwdm() + api1208List.get(0).getShnd());
             }
             //璁剧疆绌哄睘鎬т负榛樿鍊�
@@ -607,7 +636,7 @@
             BeanUtils.copyProperties(apiData, api1304);
             api1304.setBjw(ShAreaBjw.getBjw(code));
             List<Api1208> api1208List = api1208Rep.findDataByHwdm(api1304.getHwdm());
-            if(null != api1208List && api1208List.size() > 0){
+            if (null != api1208List && api1208List.size() > 0) {
                 api1304.setPch(apiData.getHwdm() + api1208List.get(0).getShnd());
             }
 
@@ -693,8 +722,8 @@
             String lsxzdm = "122";
             String pch = "";
             List<Api1208> api1208List = api1208Rep.getDataByHwdm(api1310.getHwdm());
-            if(null != api1208List && api1208List.size() > 0){
-                if(StringUtils.isNotEmpty(api1208List.get(0).getLsxzdm())){
+            if (null != api1208List && api1208List.size() > 0) {
+                if (StringUtils.isNotEmpty(api1208List.get(0).getLsxzdm())) {
                     lsxzdm = api1208List.get(0).getLsxzdm();
                     pch = apiData.getHwdm() + api1208List.get(0).getShnd();
                 }
@@ -702,16 +731,16 @@
             //璁剧疆鎵规鍙�
             api1310.setPch(pch);
             api1310.setLsxzdm(lsxzdm);
-            if (api1310.getYpsl() == 0.0){
+            if (api1310.getYpsl() == 0.0) {
                 api1310.setYpsl(5.0);
             }
-            if(StringUtils.isEmpty(api1310.getQyrxm())){
+            if (StringUtils.isEmpty(api1310.getQyrxm())) {
                 api1310.setQyrxm("鎵︽牱浜�");
             }
-            if(StringUtils.isEmpty(api1310.getJdrxm())){
+            if (StringUtils.isEmpty(api1310.getJdrxm())) {
                 api1310.setJdrxm("鐩戠潱浜�");
             }
-            if(StringUtils.isEmpty(api1310.getShrxm())){
+            if (StringUtils.isEmpty(api1310.getShrxm())) {
                 api1310.setShrxm("瀹℃牳浜�");
             }
 
@@ -779,7 +808,7 @@
             SH2023Api2102 apiData = new SH2023Api2102();
             BeanUtils.copyProperties(data, apiData);
             List<Api1208> api1208List = api1208Rep.findDataByHwdm(apiData.getDrhwdm());
-            if(null != api1208List && api1208List.size() > 0){
+            if (null != api1208List && api1208List.size() > 0) {
                 apiData.setPch(apiData.getDrhwdm() + api1208List.get(0).getShnd());
             }
             //璁剧疆绌哄睘鎬т负榛樿鍊�
@@ -814,16 +843,124 @@
         return data;
     }
 
-    private String getWjmc(String wjlx, String wjmc){
-        if("2".equals(wjlx) || "3".equals(wjlx) || "4".equals(wjlx) || "5".equals(wjlx)){
-            if(wjmc.endsWith(".jpg")) {
-                wjmc = wjmc.replaceAll(".jpg", "_00.jpg");
+    /**
+     * 鏍规嵁涓婃捣鏁版嵁鏍煎紡杩涜灏佽
+     * 灞傚潎娓╋細
+     * 灞傞珮娓╋細
+     * 灞備綆娓╋細
+     * 鍚勮寖鍥村潎娓╋細
+     * 绮俯鏄庣粏锛�
+     * 绮俯鐘舵�侊細
+     * 寮傚父鐐逛釜鏁帮細
+     *
+     * @param data
+     * @return
+     */
+    private SH2023Api1302 packageData1302(SH2023Api1302 data) {
+        if (StringUtils.isEmpty(data.getLswdzjh())) {
+            return data;
+        }
+        String lswdzjh = data.getLswdzjh();
+        String[] split = lswdzjh.split("\\|");
+        Map<Integer, List<Double>> map = new HashMap<>();
+        Integer ceng;
+        Integer errorNum = 0;  //寮傚父鐐逛釜鏁�
+        String lwmx = "";   //绮俯鏄庣粏
+        String lwzt = "0";  //绮俯鐘舵��
+        String gfwjw = "";  //鍚勮寖鍥村潎娓�
+        for (String s : split) {
+            String[] grain = s.split(",");
+            ceng = Integer.valueOf(grain[1]);
+            if (null == map.get(ceng)) {
+                map.put(ceng, new ArrayList<>());
             }
-            if(wjmc.endsWith(".png")) {
-                wjmc = wjmc.replaceAll(".png", "_00.png");
+            map.get(ceng).add(Double.valueOf(grain[0]));
+            lwmx += grain[1] + ":" + grain[2] + ":" + grain[3] + "$" + grain[0];
+            if (Double.valueOf(grain[0]) <= -100) {
+                lwmx += "$" + "1" + "#";
+                errorNum++;
+            } else {
+                lwmx += "$" + "5" + "#";
             }
         }
-        return wjmc;
+        String cpjw = "";  //灞傚钩鍧囨俯
+        String czgw = "";  //灞傛渶楂樻俯
+        String czdw = "";  //灞傛渶浣庢俯
+
+        List<Double> payPoints;
+        Double sum;
+        int num;
+        Double tempH;
+        Double tempL;
+        Double tempA;
+        Double tempValue1 = 0.0; //鑼冨洿鍧囨俯1
+        Double tempValue2 = 0.0; //鑼冨洿鍧囨俯2
+        Double tempValue3 = 0.0; //鑼冨洿鍧囨俯3
+        Integer numValue = 0; //璁$畻鑼冨洿鍧囨俯
+        for (Integer cengNum : map.keySet()) {
+            payPoints = map.get(cengNum);
+            sum = 0.0;
+            num = 0;
+            tempH = null;
+            tempL = null;
+            tempA = 0.0;
+            for (Double point : payPoints) {
+                if(point > -100){
+                    sum += point;
+                    num++;
+                    if (tempH == null) {
+                        tempH = point;
+                    }
+                    if (tempL == null) {
+                        tempL = point;
+                    }
+                    if (tempH < point) {
+                        tempH = point;
+                    }
+                    if (tempL > point) {
+                        tempL = point;
+                    }
+                }
+            }
+            if (num > 0) {
+                tempA = sum / num;
+            }
+            cpjw += cengNum + "$" + NumberUtil.keepPrecision(tempA, 1) + "#";
+            czgw += cengNum + "$" + tempH + "#";
+            czdw += cengNum + "$" + tempL + "#";
+            //鑼冨洿鍧囨俯灏佽
+            if (cengNum == 1) {
+                tempValue1 = NumberUtil.keepPrecision(tempA, 1);
+            } else if (cengNum == map.keySet().size()) {
+                tempValue3 = NumberUtil.keepPrecision(tempA, 1);
+            } else {
+                tempValue2 += tempA;
+                numValue++;
+            }
+        }
+
+        if (errorNum > 0) {
+            lwzt = "2";
+        }
+        if (numValue > 0) {
+            tempValue2 = NumberUtil.keepPrecision(tempValue2 / numValue, 1);
+        }
+        gfwjw += tempValue1 + "#";
+        if (map.keySet().size() == 2) {
+            gfwjw += tempValue3 + "#";
+        }
+        if (map.keySet().size() > 3) {
+            gfwjw += tempValue2 + "#" + tempValue3 + "#";
+        }
+        data.setCpjw(cpjw);
+        data.setCzgw(czgw);
+        data.setCzdw(czdw);
+        data.setGfwjw(gfwjw);
+        data.setLwmx(lwmx);
+        data.setLwzt(lwzt);
+        data.setYcdgs(errorNum);
+
+        return data;
     }
 
     /**
@@ -844,28 +981,7 @@
         }
     }
 
-    /**
-     * 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;
-    }
-
-
-    private List<SHFinanceDto> copyApi1503(Api1503 data) {
-        Api1503 api1503 = data;
+    private List<SHFinanceDto> copyApi1503(Api1503 api1503) {
         List<SHFinanceDto> list = new ArrayList<>();
         SHFinanceDto shFinanceDto = new SHFinanceDto();
         shFinanceDto.setDwdm(api1503.getDwdm());
@@ -915,8 +1031,7 @@
         return list;
     }
 
-    private List<SHFinanceDto> copyApi1502(Api1502 data) {
-        Api1502 api1502 = data;
+    private List<SHFinanceDto> copyApi1502(Api1502 api1502) {
         List<SHFinanceDto> list = new ArrayList<>();
         SHFinanceDto shFinanceDto = new SHFinanceDto();
         shFinanceDto.setDwdm(api1502.getDwdm());
@@ -968,8 +1083,7 @@
         return list;
     }
 
-    private List<SHFinanceDto> copyApi1501(Api1501 data) {
-        Api1501 api1501 = data;
+    private List<SHFinanceDto> copyApi1501(Api1501 api1501) {
         List<SHFinanceDto> list = new ArrayList<>();
         SHFinanceDto shFinanceDto = new SHFinanceDto();
         shFinanceDto.setDwdm(api1501.getDwdm());
@@ -1066,6 +1180,26 @@
         list.add(shFinanceDto);
     }
 
+    private String getWjmc(String wjlx, String wjmc) {
+        if ("2".equals(wjlx) || "3".equals(wjlx) || "4".equals(wjlx) || "5".equals(wjlx)) {
+            if (wjmc.endsWith(".jpg")) {
+                wjmc = wjmc.replaceAll(".jpg", "_00.jpg");
+            }
+            if (wjmc.endsWith(".png")) {
+                wjmc = wjmc.replaceAll(".png", "_00.png");
+            }
+        }
+        return wjmc;
+    }
+    private String getYwdh(String wjlx, String wjmc) {
+        String ywdh = "";
+        String[] s = wjmc.split("_");
+        if ("2".equals(wjlx) || "3".equals(wjlx)) {
+            ywdh = s[1];
+        }
+        return ywdh;
+    }
+
     private Object changeObject(Object object) {
         // 浣跨敤鍙嶅皠鑾峰彇灞炴�у垪琛� vo涓哄疄浣撳璞″悕
         Field[] fields = object.getClass().getDeclaredFields();
@@ -1094,4 +1228,11 @@
         }
         return object;
     }
+
+    @Override
+    public ResponseDto pullData(ApiParam param, ApiConfs conf) {
+        //璇ュ崗璁棤姝ゅ疄鐜�
+        return null;
+    }
+
 }
\ No newline at end of file

--
Gitblit v1.9.3