Browse Source

Merge remote-tracking branch 'origin/master'

liuqiwen 3 years ago
parent
commit
a351e2e640

+ 15 - 13
dgtis-modules/dgtis-modules-data/src/main/java/com/dgtis/data/api/CustomerApiController.java

@@ -678,23 +678,25 @@ public class CustomerApiController {
 
                     }
 
-                }
-
-                //String risk_categories = _source.getString("risk_categories");
-                String risk_categories_name = _source.getString("risk_categories_name");
+                    //String risk_categories = _source.getString("risk_categories");
+                    String risk_categories_name = _source.getString("risk_categories_name");
 
-                if(majorCategorie.containsKey(risk_categories_name)){
-                    double risk =  Double.parseDouble(majorCategorie.get(risk_categories_name).toString());
-                    if(_source.containsKey("risk")){
-                        risk += _source.getDouble("risk");
-                    }
-                    majorCategorie.put(risk_categories_name,risk);
-                }else{
-                    if(_source.containsKey("risk") && StringUtils.isNotEmpty(risk_categories_name)){
-                        majorCategorie.put(risk_categories_name,_source.getDouble("risk"));
+                    if(majorCategorie.containsKey(risk_categories_name)){
+                        double risk =  Double.parseDouble(majorCategorie.get(risk_categories_name).toString());
+                        if(_source.containsKey("risk")){
+                            risk += _source.getDouble("risk");
+                        }
+                        majorCategorie.put(risk_categories_name,risk);
+                    }else{
+                        if(_source.containsKey("risk") && StringUtils.isNotEmpty(risk_categories_name)){
+                            majorCategorie.put(risk_categories_name,_source.getDouble("risk"));
+                        }
                     }
+
                 }
 
+
+
             }
 
             expectedData.put("data",edata);

+ 177 - 79
dgtis-modules/dgtis-modules-data/src/main/java/com/dgtis/data/api/IndexApiController.java

@@ -47,45 +47,44 @@ public class IndexApiController extends BaseController {
     public AjaxResult riskcode() {
 
 
-
         // 获取索引的别名,字段,创建时间
         List xaxisData = new ArrayList();//存放险种
         List seriesData = new ArrayList();//客户数量和保单数量
         try {
-            logger.info("进险种类别时间:"+DateUtils.getTime());
+            logger.info("进险种类别时间:" + DateUtils.getTime());
             Map<String, String> paramMap = new HashMap<String, String>();
             paramMap.put("pretty", "true");
 
             Request scriptRequest = new Request("GET", "/shanglifeecif.riskcode_statistics/_search?pretty=true");
 
             Response response = restClient.performRequest(scriptRequest);
-            logger.info("险种类别请求响应时间:"+DateUtils.getTime());
+            logger.info("险种类别请求响应时间:" + DateUtils.getTime());
             /*Map<String, String> paramMap = new HashMap<String, String>();
             paramMap.put("pretty", "true");*/
 //            Response response = restClient.performRequest("GET", "shanglifeecif.riskcode_statistics/_search?", paramMap);
             String jsonStr = EntityUtils.toString(response.getEntity());
-            if(StringUtils.isNotEmpty(jsonStr)){
+            if (StringUtils.isNotEmpty(jsonStr)) {
                 JSONObject jsonObject = JSONUtil.parseObj(jsonStr);
                 jsonObject = jsonObject.getJSONObject("hits");
-                if(jsonObject!=null){
+                if (jsonObject != null) {
                     JSONArray hits = jsonObject.getJSONArray("hits");
-                    if(hits!=null && hits.size()>0){
+                    if (hits != null && hits.size() > 0) {
                         List khnum = new ArrayList();//客户数量
                         List bdtotalPrem = new ArrayList();//保单数量
-                        for (Object o:hits) {
+                        for (Object o : hits) {
                             JSONObject object = JSONUtil.parseObj(o);
-                            if(object!=null){
+                            if (object != null) {
                                 JSONObject source = object.getJSONObject("_source");
                                 xaxisData.add(source.getStr("kindname"));
                                 String num = source.getStr("khnum");
                                 khnum.add(num);
                                 String tatolprem = source.getStr("tatolprem");
 
-                                if("0".equals(num)){
+                                if ("0".equals(num)) {
                                     bdtotalPrem.add("0");
-                                }else {
+                                } else {
 
-                                    bdtotalPrem.add(String.format("%.2f", Float.parseFloat(tatolprem)/Float.parseFloat(num)));
+                                    bdtotalPrem.add(String.format("%.2f", Float.parseFloat(tatolprem) / Float.parseFloat(num)));
                                 }
 
 
@@ -94,28 +93,28 @@ public class IndexApiController extends BaseController {
                         }
 
                         Map code1 = new HashMap();
-                        code1.put("name","客户数量");
-                        code1.put("data",khnum);
+                        code1.put("name", "客户数量");
+                        code1.put("data", khnum);
                         seriesData.add(code1);
                         Map code2 = new HashMap();
-                        code2.put("name","人均保额");
-                        code2.put("data",bdtotalPrem);
+                        code2.put("name", "人均保额");
+                        code2.put("data", bdtotalPrem);
                         seriesData.add(code2);
 
                     }
                 }
             }
         } catch (Exception e) {
-            logger.info("险种类别报错时间:"+DateUtils.getTime());
+            logger.info("险种类别报错时间:" + DateUtils.getTime());
             e.printStackTrace();
             return AjaxResult.error("获取数据失败");
         }
 
         Map data = new HashMap();
-        data.put("xaxisData",xaxisData);
-        data.put("seriesData",seriesData);
-        logger.info("出险种类别时间:"+DateUtils.getTime());
-        return AjaxResult.success("险种数据返回成功!",data);
+        data.put("xaxisData", xaxisData);
+        data.put("seriesData", seriesData);
+        logger.info("出险种类别时间:" + DateUtils.getTime());
+        return AjaxResult.success("险种数据返回成功!", data);
     }
 
     @GetMapping("/bdNumDis")
@@ -124,76 +123,75 @@ public class IndexApiController extends BaseController {
         // 获取索引的别名,字段,创建时间
         Map[] seriesData = new HashMap[8];
         try {
-            logger.info("进保单件数时间:"+DateUtils.getTime());
+            logger.info("进保单件数时间:" + DateUtils.getTime());
             Map<String, String> paramMap = new HashMap<String, String>();
             paramMap.put("pretty", "true");
             Request scriptRequest = new Request("GET", "/shanglifeecif.bdnum_distribution/_search?pretty=true");
 
             Response response = restClient.performRequest(scriptRequest);
-            logger.info("保单件数请求响应时间:"+DateUtils.getTime());
-//            Response response = restClient.performRequest("GET", "shanglifeecif.bdnum_distribution/_search?", paramMap);
+            logger.info("保单件数请求响应时间:" + DateUtils.getTime());
             String jsonStr = EntityUtils.toString(response.getEntity());
-            if(StringUtils.isNotEmpty(jsonStr)){
+            if (StringUtils.isNotEmpty(jsonStr)) {
                 JSONObject jsonObject = JSONUtil.parseObj(jsonStr);
                 jsonObject = jsonObject.getJSONObject("hits");
-                if(jsonObject!=null){
+                if (jsonObject != null) {
                     JSONArray hits = jsonObject.getJSONArray("hits");
-                    if(hits!=null && hits.size()>0){
-                        for (Object o:hits) {
+                    if (hits != null && hits.size() > 0) {
+                        for (Object o : hits) {
                             JSONObject object = JSONUtil.parseObj(o);
-                            if(object!=null){
+                            if (object != null) {
                                 JSONObject source = object.getJSONObject("_source");
                                 String labelname = source.getStr("labelname").trim();
                                 Map m = new HashMap();
                                 String bdnum = source.getStr("bdnum");
-                                m.put("value",StringUtils.isEmpty(bdnum)?"0":bdnum);
-                                if(labelname.contains("无保单")){
+                                m.put("value", StringUtils.isEmpty(bdnum) ? "0" : bdnum);
+                                if (labelname.contains("无保单")) {
                                     seriesData[0] = m;
-                                    m.put("name","无保单");
-                                }else if(labelname.contains("1件")){
+                                    m.put("name", "无保单");
+                                } else if (labelname.contains("1件")) {
                                     seriesData[1] = m;
-                                    m.put("name","1件");
-                                }else if(labelname.contains("2件")){
+                                    m.put("name", "1件");
+                                } else if (labelname.contains("2件")) {
                                     seriesData[2] = m;
-                                    m.put("name","2件");
-                                }else if(labelname.contains("3-5件")){
+                                    m.put("name", "2件");
+                                } else if (labelname.contains("3-5件")) {
                                     seriesData[3] = m;
-                                    m.put("name","3-5件");
-                                }else if(labelname.contains("6-10件")){
+                                    m.put("name", "3-5件");
+                                } else if (labelname.contains("6-10件")) {
                                     seriesData[4] = m;
-                                    m.put("name","6-10件");
-                                }else if(labelname.contains("11-20件")){
+                                    m.put("name", "6-10件");
+                                } else if (labelname.contains("11-20件")) {
                                     seriesData[5] = m;
-                                    m.put("name","11-20件");
-                                }else if(labelname.contains("21-50件")){
+                                    m.put("name", "11-20件");
+                                } else if (labelname.contains("21-50件")) {
                                     seriesData[6] = m;
-                                    m.put("name","21-50件");
-                                }else{
+                                    m.put("name", "21-50件");
+                                } else {
                                     seriesData[7] = m;
-                                    m.put("name","50件以上");
+                                    m.put("name", "50件以上");
                                 }
                             }
 
                         }
-                       if(seriesData[7]==null){
+                        if (seriesData[7] == null) {
                             Map map = new HashMap();
-                            map.put("name","50件以上");
-                            map.put("value","0");
-                           seriesData[7] = map;
-                       }
+                            map.put("name", "50件以上");
+                            map.put("value", "0");
+                            seriesData[7] = map;
+                        }
                     }
                 }
             }
         } catch (Exception e) {
-            logger.error("保单件数出错时间:"+DateUtils.getTime());
+            logger.error("保单件数出错时间:" + DateUtils.getTime());
             e.printStackTrace();
             return AjaxResult.error("获取数据失败");
         }
 
         Map data = new HashMap();
-        data.put("seriesData",seriesData);
-        logger.info("出保单件数时间:"+DateUtils.getTime());
-        return AjaxResult.success("保单件数分布数据返回成功!",data);
+        data.put("seriesData", seriesData);
+        logger.info("出保单件数时间:" + DateUtils.getTime());
+        return AjaxResult.success("保单件数分布数据返回成功!", data);
     }
 
 
@@ -213,53 +211,53 @@ public class IndexApiController extends BaseController {
         List seriesData = new ArrayList();//性别,年龄段数据
 
         try {
-            logger.info("进客户年龄段时间:"+DateUtils.getTime());
+            logger.info("进客户年龄段时间:" + DateUtils.getTime());
             Map<String, String> paramMap = new HashMap<String, String>();
             paramMap.put("pretty", "true");
             Request scriptRequest = new Request("GET", "/shanglifeecif.age_sex_distribution/_search?pretty=true");
 
             Response response = restClient.performRequest(scriptRequest);
-            logger.info("客户年龄段请求响应时间:"+DateUtils.getTime());
+            logger.info("客户年龄段请求响应时间:" + DateUtils.getTime());
 //            Response response = restClient.performRequest("GET", "shanglifeecif.age_sex_distribution/_search?", paramMap);
             String jsonStr = EntityUtils.toString(response.getEntity());
-            if(StringUtils.isNotEmpty(jsonStr)){
+            if (StringUtils.isNotEmpty(jsonStr)) {
                 JSONObject jsonObject = JSONUtil.parseObj(jsonStr);
                 jsonObject = jsonObject.getJSONObject("hits");
-                if(jsonObject!=null){
+                if (jsonObject != null) {
                     JSONArray hits = jsonObject.getJSONArray("hits");
-                    if(hits!=null && hits.size()>0){
+                    if (hits != null && hits.size() > 0) {
                         String[] manNum = new String[5];
                         String[] womanNum = new String[5];
-                        for (Object o:hits) {
+                        for (Object o : hits) {
                             JSONObject object = JSONUtil.parseObj(o);
-                            if(object!=null){
+                            if (object != null) {
                                 JSONObject source = object.getJSONObject("_source");
                                 String gender = source.getStr("gender");
                                 String labelname = source.getStr("labelname").trim();
                                 String cusnum = source.getStr("cusnum");
-                                if("0".equals(gender)){
-                                    if("儿童".equals(labelname)){
+                                if ("0".equals(gender)) {
+                                    if ("儿童".equals(labelname)) {
                                         manNum[0] = cusnum;
-                                    }else if("少年".equals(labelname)){
+                                    } else if ("少年".equals(labelname)) {
                                         manNum[1] = cusnum;
-                                    }else if("青年".equals(labelname)){
+                                    } else if ("青年".equals(labelname)) {
                                         manNum[2] = cusnum;
-                                    }else if("中年".equals(labelname)){
+                                    } else if ("中年".equals(labelname)) {
                                         manNum[3] = cusnum;
-                                    }else {
+                                    } else {
                                         manNum[4] = cusnum;
                                     }
 
-                                }else {
-                                    if("儿童".equals(labelname)){
+                                } else {
+                                    if ("儿童".equals(labelname)) {
                                         womanNum[0] = cusnum;
-                                    }else if("少年".equals(labelname)){
+                                    } else if ("少年".equals(labelname)) {
                                         womanNum[1] = cusnum;
-                                    }else if("青年".equals(labelname)){
+                                    } else if ("青年".equals(labelname)) {
                                         womanNum[2] = cusnum;
-                                    }else if("中年".equals(labelname)){
+                                    } else if ("中年".equals(labelname)) {
                                         womanNum[3] = cusnum;
-                                    }else {
+                                    } else {
                                         womanNum[4] = cusnum;
                                     }
                                 }
@@ -272,18 +270,118 @@ public class IndexApiController extends BaseController {
                 }
             }
         } catch (Exception e) {
-            logger.info("客户年龄段报错时间:"+DateUtils.getTime());
+            logger.info("客户年龄段报错时间:" + DateUtils.getTime());
             e.printStackTrace();
             return AjaxResult.error("获取数据失败");
         }
 
         Map data = new HashMap();
-        data.put("legendData",legendData);
-        data.put("xaxisData",xaxisData);
-        data.put("seriesData",seriesData);
-        logger.info("出客户年龄段时间:"+DateUtils.getTime());
-        return AjaxResult.success("客户年龄段性别分布数据返回成功!",data);
+        data.put("legendData", legendData);
+        data.put("xaxisData", xaxisData);
+        data.put("seriesData", seriesData);
+        logger.info("出客户年龄段时间:" + DateUtils.getTime());
+        return AjaxResult.success("客户年龄段性别分布数据返回成功!", data);
     }
 
 
+    /**
+     * 有效客户
+     *
+     * @return
+     */
+    @GetMapping("/effectiveCustomer")
+    @ResponseBody
+    public AjaxResult effectiveCustomer() {
+
+        // 获取索引的别名,字段,创建时间
+        List<String> xaxisData = new ArrayList();//存放投保年份
+        List seriesData = new ArrayList();//存放级别数据
+        Map map0 = new HashMap();//客户等级为0 无
+        Map map1 = new HashMap();//客户等级为1 钻石
+        Map map2 = new HashMap();//客户等级为2 白金
+        Map map3 = new HashMap();//客户等级为3 黄金
+        Map map4 = new HashMap();//客户等级为4 普通
+
+        List list0 = new ArrayList();//存放级别数据
+        List list1 = new ArrayList();//存放级别数据
+        List list2 = new ArrayList();//存放级别数据
+        List list3 = new ArrayList();//存放级别数据
+        List list4 = new ArrayList();//存放级别数据
+
+        Map map = new HashMap();
+        Map mapData = new HashMap();
+        try {
+            logger.info("进有效客户时间:" + DateUtils.getTime());
+            Request scriptRequest = new Request("GET", "/shanglifeecif.effectivecustomer/_search?sort=fadatey:asc&size=100&pretty=true");
+            Response response = restClient.performRequest(scriptRequest);
+            logger.info("有效客户请求响应时间:" + DateUtils.getTime());
+            String jsonStr = EntityUtils.toString(response.getEntity());
+            if (StringUtils.isNotEmpty(jsonStr)) {
+                JSONObject jsonObject = JSONUtil.parseObj(jsonStr);
+                jsonObject = jsonObject.getJSONObject("hits");
+                if (jsonObject != null) {
+                    JSONArray hits = jsonObject.getJSONArray("hits");
+
+                    if (hits != null && hits.size() > 0) {
+
+                        for (Object o : hits) {
+                            JSONObject object = JSONUtil.parseObj(o);
+                            if (object != null) {
+                                JSONObject source = object.getJSONObject("_source");
+                                String fadatey = source.getStr("fadatey").trim();//投保年份
+                                String custclass = source.getStr("custclass").trim();//客户等级
+                                String cnum = source.getStr("cnum").trim();//客户数量
+                                if(!map.containsKey(fadatey)){
+                                    xaxisData.add(fadatey);
+                                    map.put(fadatey,fadatey);
+                                }
+                                mapData.put(fadatey+custclass,cnum);
+
+                            }
+
+                        }
+                    }
+                }
+            }
+        } catch (Exception e) {
+            logger.info("有效客户报错时间:" + DateUtils.getTime());
+            e.printStackTrace();
+            return AjaxResult.error("获取数据失败");
+        }
+
+        for (int i = 0; i <xaxisData.size() ; i++) {
+            list0.add(mapData.get(xaxisData.get(i)+"0"));
+            list1.add(mapData.get(xaxisData.get(i)+"1"));
+            list2.add(mapData.get(xaxisData.get(i)+"2"));
+            list3.add(mapData.get(xaxisData.get(i)+"3"));
+            list4.add(mapData.get(xaxisData.get(i)+"4"));
+        }
+
+
+        map1.put("name","钻石");
+        map1.put("data",list1);
+
+        map2.put("name","白金");
+        map2.put("data",list2);
+
+        map3.put("name","黄金");
+        map3.put("data",list3);
+
+        map4.put("name","普通");
+        map4.put("data",list4);
+
+        map0.put("name","无");
+        map0.put("data",list0);
+
+        seriesData.add(map1);
+        seriesData.add(map2);
+        seriesData.add(map3);
+        seriesData.add(map4);
+        seriesData.add(map0);
+        Map data = new HashMap();
+        data.put("xaxisData", xaxisData);
+        data.put("seriesData", seriesData);
+        logger.info("出有效客户时间:" + DateUtils.getTime());
+        return AjaxResult.success("有效客户数据返回成功!", data);
+    }
 }