|  | @ -1,15 +1,19 @@
 | 
												
													
														
															|  | package com.yihu.figure.controller.patient;
 |  | package com.yihu.figure.controller.patient;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | import com.yihu.figure.controller.BaseController;
 |  | import com.yihu.figure.controller.BaseController;
 | 
												
													
														
															|  | 
 |  | import com.yihu.figure.model.dict.SystemDict;
 | 
												
													
														
															|  | import com.yihu.figure.model.patient.portrait.UserPortrait;
 |  | import com.yihu.figure.model.patient.portrait.UserPortrait;
 | 
												
													
														
															|  | import com.yihu.figure.service.PortraitService;
 |  | import com.yihu.figure.service.PortraitService;
 | 
												
													
														
															|  | 
 |  | import com.yihu.figure.service.dict.SystemDictService;
 | 
												
													
														
															|  | import com.yihu.figure.util.DateUtil;
 |  | import com.yihu.figure.util.DateUtil;
 | 
												
													
														
															|  | import io.swagger.annotations.Api;
 |  | import io.swagger.annotations.Api;
 | 
												
													
														
															|  | import io.swagger.annotations.ApiOperation;
 |  | import io.swagger.annotations.ApiOperation;
 | 
												
													
														
															|  | import io.swagger.annotations.ApiParam;
 |  | import io.swagger.annotations.ApiParam;
 | 
												
													
														
															|  | 
 |  | import org.json.JSONArray;
 | 
												
													
														
															|  | import org.json.JSONObject;
 |  | import org.json.JSONObject;
 | 
												
													
														
															|  | import org.springframework.beans.factory.annotation.Autowired;
 |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
												
													
														
															|  | import org.springframework.http.MediaType;
 |  | import org.springframework.http.MediaType;
 | 
												
													
														
															|  | 
 |  | import org.springframework.util.StringUtils;
 | 
												
													
														
															|  | import org.springframework.web.bind.annotation.RequestMapping;
 |  | import org.springframework.web.bind.annotation.RequestMapping;
 | 
												
													
														
															|  | import org.springframework.web.bind.annotation.RequestMethod;
 |  | import org.springframework.web.bind.annotation.RequestMethod;
 | 
												
													
														
															|  | import org.springframework.web.bind.annotation.RequestParam;
 |  | import org.springframework.web.bind.annotation.RequestParam;
 | 
												
											
												
													
														
															|  | @ -31,6 +35,9 @@ public class PortraitController extends BaseController {
 | 
												
													
														
															|  |     @Autowired
 |  |     @Autowired
 | 
												
													
														
															|  |     private PortraitService portraitService;
 |  |     private PortraitService portraitService;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     @Autowired
 | 
												
													
														
															|  | 
 |  |     private SystemDictService systemDictService;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  |     @ApiOperation(value = " 生成用户标签")
 |  |     @ApiOperation(value = " 生成用户标签")
 | 
												
													
														
															|  |     @RequestMapping(value = "newPortrait", method = RequestMethod.POST)
 |  |     @RequestMapping(value = "newPortrait", method = RequestMethod.POST)
 | 
												
													
														
															|  |     public String newPortrait(
 |  |     public String newPortrait(
 | 
												
											
												
													
														
															|  | @ -57,47 +64,108 @@ public class PortraitController extends BaseController {
 | 
												
													
														
															|  |             return error(-1, e.getMessage());
 |  |             return error(-1, e.getMessage());
 | 
												
													
														
															|  |         }
 |  |         }
 | 
												
													
														
															|  |     }
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     @ApiOperation(value = " 获取患者的全部标签的全部服务")
 | 
												
													
														
															|  | 
 |  |     @RequestMapping(value = "/findPortraitServices", method = RequestMethod.GET)
 | 
												
													
														
															|  | 
 |  |     public String findPortraitServices(
 | 
												
													
														
															|  | 
 |  |             @ApiParam(name = "userCode", value = "用户code", required = true) @RequestParam(value = "userCode", required = true) String userCode) {
 | 
												
													
														
															|  | 
 |  |         try {
 | 
												
													
														
															|  | 
 |  |             List<UserPortrait> ups= portraitService.findPortraits(userCode);
 | 
												
													
														
															|  | 
 |  |             JSONArray jsonArray=new JSONArray();
 | 
												
													
														
															|  | 
 |  |             ups.stream().forEach(userPortrait->{
 | 
												
													
														
															|  | 
 |  |                 if(!StringUtils.isEmpty(userPortrait.getRecommendService())){
 | 
												
													
														
															|  | 
 |  |                     JSONArray second=new JSONArray(userPortrait.getRecommendService());
 | 
												
													
														
															|  | 
 |  |                     jsonArray.put(second);
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |             });
 | 
												
													
														
															|  | 
 |  |             return write(200, "获取成功!", "data", jsonArray);
 | 
												
													
														
															|  | 
 |  |         } catch (Exception e) {
 | 
												
													
														
															|  | 
 |  |             e.printStackTrace();
 | 
												
													
														
															|  | 
 |  |             return error(-1, e.getMessage());
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  |     @ApiOperation(value = "获取疾病-所在区域")
 |  |     @ApiOperation(value = "获取疾病-所在区域")
 | 
												
													
														
															|  |     @RequestMapping(value = "getPortraitsTown", method = RequestMethod.GET)
 |  |     @RequestMapping(value = "getPortraitsTown", method = RequestMethod.GET)
 | 
												
													
														
															|  |     public String getPortraits1002001(
 |  |     public String getPortraits1002001(
 | 
												
													
														
															|  |             @ApiParam(name = "value", value = "疾病名称(糖尿病,高血压)", required = true) @RequestParam(value = "value", required = true) String value) {
 |  |             @ApiParam(name = "value", value = "疾病名称(糖尿病,高血压)", required = true) @RequestParam(value = "value", required = true) String value) {
 | 
												
													
														
															|  |         try {
 |  |         try {
 | 
												
													
														
															|  |             Map<String, Integer> data = portraitService.getPortraits("1001005", value);
 |  |             Map<String, Integer> data = portraitService.getPortraits("1001005", value);
 | 
												
													
														
															|  |             Map<String, String> returnData = new HashMap<>();
 |  | 
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |             JSONObject returnjo=new JSONObject();
 | 
												
													
														
															|  | 
 |  |             JSONObject return1 = new JSONObject();
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  |             for (Map.Entry<String, Integer> one : data.entrySet()) {
 |  |             for (Map.Entry<String, Integer> one : data.entrySet()) {
 | 
												
													
														
															|  |                 if (!one.getKey().equals("allSize")) {
 |  |                 if (!one.getKey().equals("allSize")) {
 | 
												
													
														
															|  |                     returnData.put(one.getKey(), round(one.getValue(), data.get("allSize"), 2) + "");
 |  | 
 | 
												
													
														
															|  | 
 |  |                     return1.put(one.getKey(), round(one.getValue(), data.get("allSize"), 2) + "");
 | 
												
													
														
															|  |                 }
 |  |                 }
 | 
												
													
														
															|  |             }
 |  |             }
 | 
												
													
														
															|  |             return write(200, "获取成功!", "data", returnData);
 |  | 
 | 
												
													
														
															|  | 
 |  |             returnjo.put("data",return1);
 | 
												
													
														
															|  | 
 |  |             String name=getNameTownByKey(value);
 | 
												
													
														
															|  | 
 |  |             List<SystemDict> systemDicts = systemDictService.getDictByDictName(name);
 | 
												
													
														
															|  | 
 |  |             if(systemDicts!=null&&systemDicts.size()==1){
 | 
												
													
														
															|  | 
 |  |                 returnjo.put("message",systemDicts.get(0).getValue());//文字
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |             return write(200, "获取成功!", "data", returnjo);
 | 
												
													
														
															|  |         } catch (Exception e) {
 |  |         } catch (Exception e) {
 | 
												
													
														
															|  |             error(e);
 |  |             error(e);
 | 
												
													
														
															|  |             return invalidUserException(e, -1, "启动失败:" + e.getMessage());
 |  |             return invalidUserException(e, -1, "启动失败:" + e.getMessage());
 | 
												
													
														
															|  |         }
 |  |         }
 | 
												
													
														
															|  |     }
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     private String getNameTownByKey(String value) {
 | 
												
													
														
															|  | 
 |  |         switch (value){
 | 
												
													
														
															|  | 
 |  |             case "高血压":{
 | 
												
													
														
															|  | 
 |  |                 return "TOWN_GXY";
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |             case "糖尿病":{
 | 
												
													
														
															|  | 
 |  |                 return "TOWN_TNB";
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         return "";
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  |     @ApiOperation(value = "获取疾病-所在年龄")
 |  |     @ApiOperation(value = "获取疾病-所在年龄")
 | 
												
													
														
															|  |     @RequestMapping(value = "getPortraitsAge", method = RequestMethod.GET)
 |  |     @RequestMapping(value = "getPortraitsAge", method = RequestMethod.GET)
 | 
												
													
														
															|  |     public String getPortraits1002003(
 |  |     public String getPortraits1002003(
 | 
												
													
														
															|  |             @ApiParam(name = "value", value = "疾病名称(糖尿病,高血压)", required = true) @RequestParam(value = "value", required = true) String value) {
 |  |             @ApiParam(name = "value", value = "疾病名称(糖尿病,高血压)", required = true) @RequestParam(value = "value", required = true) String value) {
 | 
												
													
														
															|  |         try {
 |  |         try {
 | 
												
													
														
															|  |             Map<String, Integer> data = portraitService.getPortraits("1001003", value);
 |  |             Map<String, Integer> data = portraitService.getPortraits("1001003", value);
 | 
												
													
														
															|  |             Map<String, String> returnData = new HashMap<>();
 |  | 
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |             JSONObject returnjo=new JSONObject();
 | 
												
													
														
															|  | 
 |  |             JSONObject return1 = new JSONObject();
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  |             for (Map.Entry<String, Integer> one : data.entrySet()) {
 |  |             for (Map.Entry<String, Integer> one : data.entrySet()) {
 | 
												
													
														
															|  |                 if (!one.getKey().equals("allSize")) {
 |  |                 if (!one.getKey().equals("allSize")) {
 | 
												
													
														
															|  |                     returnData.put(one.getKey(), round(one.getValue(), data.get("allSize"), 2) + "");
 |  | 
 | 
												
													
														
															|  | 
 |  |                     return1.put(one.getKey(), round(one.getValue(), data.get("allSize"), 2) + "");
 | 
												
													
														
															|  |                 }
 |  |                 }
 | 
												
													
														
															|  |             }
 |  |             }
 | 
												
													
														
															|  |             return write(200, "获取成功!", "data", returnData);
 |  | 
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |             returnjo.put("data",return1);
 | 
												
													
														
															|  | 
 |  |             String name=getNameAgeByKey(value);
 | 
												
													
														
															|  | 
 |  |             List<SystemDict> systemDicts = systemDictService.getDictByDictName(name);
 | 
												
													
														
															|  | 
 |  |             if(systemDicts!=null&&systemDicts.size()==1){
 | 
												
													
														
															|  | 
 |  |                 returnjo.put("message",systemDicts.get(0).getValue());//文字
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |             return write(200, "获取成功!", "data", returnjo);
 | 
												
													
														
															|  |         } catch (Exception e) {
 |  |         } catch (Exception e) {
 | 
												
													
														
															|  |             error(e);
 |  |             error(e);
 | 
												
													
														
															|  |             return invalidUserException(e, -1, "启动失败:" + e.getMessage());
 |  |             return invalidUserException(e, -1, "启动失败:" + e.getMessage());
 | 
												
													
														
															|  |         }
 |  |         }
 | 
												
													
														
															|  |     }
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     private String getNameAgeByKey(String value) {
 | 
												
													
														
															|  | 
 |  |         switch (value){
 | 
												
													
														
															|  | 
 |  |             case "高血压":{
 | 
												
													
														
															|  | 
 |  |                 return "AGE_GXY";
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |             case "糖尿病":{
 | 
												
													
														
															|  | 
 |  |                 return "AGE_TNB";
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         return "";
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  |     @ApiOperation(value = "获取疾病-所在性别")
 |  |     @ApiOperation(value = "获取疾病-所在性别")
 | 
												
													
														
															|  |     @RequestMapping(value = "getPortraitsSex", method = RequestMethod.GET)
 |  |     @RequestMapping(value = "getPortraitsSex", method = RequestMethod.GET)
 | 
												
													
														
															|  |     public String getPortraits1001001(
 |  |     public String getPortraits1001001(
 | 
												
											
												
													
														
															|  | @ -105,26 +173,48 @@ public class PortraitController extends BaseController {
 | 
												
													
														
															|  |         try {
 |  |         try {
 | 
												
													
														
															|  |             Map<String, Integer> data = portraitService.getPortraits("1001001", value);
 |  |             Map<String, Integer> data = portraitService.getPortraits("1001001", value);
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  |             Map<String, String> returnData = new HashMap<>();
 |  | 
 | 
												
													
														
															|  | 
 |  |             JSONObject returnjo=new JSONObject();
 | 
												
													
														
															|  | 
 |  |             JSONObject return1 = new JSONObject();
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  |             for (Map.Entry<String, Integer> one : data.entrySet()) {
 |  |             for (Map.Entry<String, Integer> one : data.entrySet()) {
 | 
												
													
														
															|  |                 if (!one.getKey().equals("allSize")) {
 |  |                 if (!one.getKey().equals("allSize")) {
 | 
												
													
														
															|  |                     returnData.put(one.getKey(), round(one.getValue(), data.get("allSize"), 2) + "");
 |  | 
 | 
												
													
														
															|  | 
 |  |                     return1.put(one.getKey(), round(one.getValue(), data.get("allSize"), 2) + "");
 | 
												
													
														
															|  |                 }
 |  |                 }
 | 
												
													
														
															|  |             }
 |  |             }
 | 
												
													
														
															|  |             return write(200, "获取成功!", "data", returnData);
 |  | 
 | 
												
													
														
															|  | 
 |  |             returnjo.put("data",return1);
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |             String name=getNameSexByKey(value);
 | 
												
													
														
															|  | 
 |  |             List<SystemDict> systemDicts = systemDictService.getDictByDictName(name);
 | 
												
													
														
															|  | 
 |  |             if(systemDicts!=null&&systemDicts.size()==1){
 | 
												
													
														
															|  | 
 |  |                 returnjo.put("message",systemDicts.get(0).getValue());//文字
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |             return write(200, "获取成功!", "data", returnjo);
 | 
												
													
														
															|  |         } catch (Exception e) {
 |  |         } catch (Exception e) {
 | 
												
													
														
															|  |             error(e);
 |  |             error(e);
 | 
												
													
														
															|  |             return invalidUserException(e, -1, "启动失败:" + e.getMessage());
 |  |             return invalidUserException(e, -1, "启动失败:" + e.getMessage());
 | 
												
													
														
															|  |         }
 |  |         }
 | 
												
													
														
															|  |     }
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     private String getNameSexByKey(String value) {
 | 
												
													
														
															|  | 
 |  |         switch (value){
 | 
												
													
														
															|  | 
 |  |             case "高血压":{
 | 
												
													
														
															|  | 
 |  |                 return "SEX_GXY";
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |             case "糖尿病":{
 | 
												
													
														
															|  | 
 |  |                 return "SEX_TNB";
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         return "";
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  |     @ApiOperation(value = "获取一级的标签信息")
 |  |     @ApiOperation(value = "获取一级的标签信息")
 | 
												
													
														
															|  |     @RequestMapping(value = "getPortraitsLevel1", method = RequestMethod.GET)
 |  |     @RequestMapping(value = "getPortraitsLevel1", method = RequestMethod.GET)
 | 
												
													
														
															|  |     public String getPortraitsLevel1(
 |  |     public String getPortraitsLevel1(
 | 
												
													
														
															|  |             @ApiParam(name = "key", value = "1 疾病 2 健康分布", required = true) @RequestParam(value = "key", required = true) String key) {
 |  |             @ApiParam(name = "key", value = "1 疾病 2 健康分布", required = true) @RequestParam(value = "key", required = true) String key) {
 | 
												
													
														
															|  |         try {
 |  |         try {
 | 
												
													
														
															|  |             Map<String, Integer> data = portraitService.getPortraitsLevel1(key);
 |  |             Map<String, Integer> data = portraitService.getPortraitsLevel1(key);
 | 
												
													
														
															|  | 
 |  |             JSONObject returnjo=new JSONObject();
 | 
												
													
														
															|  |             JSONObject return1 = new JSONObject();
 |  |             JSONObject return1 = new JSONObject();
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  |             for (Map.Entry<String, Integer> one : data.entrySet()) {
 |  |             for (Map.Entry<String, Integer> one : data.entrySet()) {
 | 
												
											
												
													
														
															|  | @ -135,13 +225,35 @@ public class PortraitController extends BaseController {
 | 
												
													
														
															|  |                     return1.put(one.getKey(), return2);
 |  |                     return1.put(one.getKey(), return2);
 | 
												
													
														
															|  |                 }
 |  |                 }
 | 
												
													
														
															|  |             }
 |  |             }
 | 
												
													
														
															|  |             return write(200, "获取成功!", "data", return1);
 |  | 
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |             returnjo.put("data",return1);//数据
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |             String name=getNameByKey(key);
 | 
												
													
														
															|  | 
 |  |             List<SystemDict> systemDicts = systemDictService.getDictByDictName(name);
 | 
												
													
														
															|  | 
 |  |             if(systemDicts!=null&&systemDicts.size()==1){
 | 
												
													
														
															|  | 
 |  |                 returnjo.put("message",systemDicts.get(0).getValue());//文字
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |             return write(200, "获取成功!", "data", returnjo);
 | 
												
													
														
															|  |         } catch (Exception e) {
 |  |         } catch (Exception e) {
 | 
												
													
														
															|  |             error(e);
 |  |             error(e);
 | 
												
													
														
															|  |             return invalidUserException(e, -1, "启动失败:" + e.getMessage());
 |  |             return invalidUserException(e, -1, "启动失败:" + e.getMessage());
 | 
												
													
														
															|  |         }
 |  |         }
 | 
												
													
														
															|  |     }
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     private String getNameByKey(String key) {
 | 
												
													
														
															|  | 
 |  |         switch (key){
 | 
												
													
														
															|  | 
 |  |             case "1":{
 | 
												
													
														
															|  | 
 |  |                 return "DISEASE_MESSAGE";
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |             case "2":{
 | 
												
													
														
															|  | 
 |  |                 return "HEALTH_MESSAGE";
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         return "";
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  |     /**
 |  |     /**
 | 
												
													
														
															|  |      * 计算百分比的函数
 |  |      * 计算百分比的函数
 | 
												
													
														
															|  |      * @param up  分子
 |  |      * @param up  分子
 |