| 
					
				 | 
			
			
				@ -60,12 +60,11 @@ public class BasePopulationEndpoint extends EnvelopRestEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    static final String parentFile = "population"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @PostMapping(value = BaseRequestMapping.BasePopulation.CREATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @PostMapping(value = BaseRequestMapping.BasePopulation.CREATE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @ApiOperation(value = "创建") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public ObjEnvelop<BasePopulationVO> create( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "json_data", value = "Json数据", required = true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @RequestBody String jsonData) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BasePopulationDO basePopulation = toEntity(jsonData, BasePopulationDO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "jsonData", value = "Json数据", required = true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @RequestParam(value = "jsonData") String jsonData) throws Exception {BasePopulationDO basePopulation = toEntity(jsonData, BasePopulationDO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //根据saasid获取所属机构的行政区划 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(basePopulation.getSaasId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            basePopulation = updateBasePopulation(basePopulation); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -73,7 +72,7 @@ public class BasePopulationEndpoint extends EnvelopRestEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return failed("租户id不能为空!", ObjEnvelop.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Boolean bo = checkNameAndYear(basePopulation.getSaasId(), basePopulation.getYear()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (!bo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (bo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return failed("已添加" + basePopulation.getYear() + basePopulation.getSaasName() + "的基础人口信息,请直接修改即可!", ObjEnvelop.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        basePopulation = basePopulationService.save(basePopulation); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -89,11 +88,11 @@ public class BasePopulationEndpoint extends EnvelopRestEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return success("删除成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @PostMapping(value = BaseRequestMapping.BasePopulation.UPDATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @PostMapping(value = BaseRequestMapping.BasePopulation.UPDATE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @ApiOperation(value = "更新") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public ObjEnvelop<BasePopulationVO> update( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "json_data", value = "Json数据", required = true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @RequestBody String jsonData) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "jsonData", value = "Json数据", required = true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @RequestParam(value = "jsonData") String jsonData) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BasePopulationDO basePopulation = toEntity(jsonData, BasePopulationDO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (null == basePopulation.getId()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return failed("ID不能为空", ObjEnvelop.class); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -105,7 +104,7 @@ public class BasePopulationEndpoint extends EnvelopRestEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return failed("租户id不能为空!", ObjEnvelop.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Boolean bo = checkNameAndYear(basePopulation.getSaasId(), basePopulation.getYear()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (!bo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (bo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return failed("已添加" + basePopulation.getYear() + basePopulation.getSaasName() + "的基础人口信息,请直接修改即可!", ObjEnvelop.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        basePopulation = basePopulationService.save(basePopulation); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -132,13 +131,13 @@ public class BasePopulationEndpoint extends EnvelopRestEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            s.append("saasName?" + saasName + " g1;"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(provinceCode)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            s.append("provinceCode=" + provinceCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            s.append("provinceCode=" + provinceCode + ";"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(cityCode)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            s.append("cityCode=" + cityCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            s.append("cityCode=" + cityCode + ";"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(year)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            s.append("year=" + year); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            s.append("year=" + year + ";"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //时间(最近时间排最前)>租户创建时间(最新创建租户排最前) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sorts = "-createTime,-saasCreateTime"; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -210,6 +209,8 @@ public class BasePopulationEndpoint extends EnvelopRestEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        basePopulation.setDmNum(null == basePopulation.getDmNum() ? 0 : basePopulation.getDmNum()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        basePopulation.setHbpNum(null == basePopulation.getHbpNum() ? 0 : basePopulation.getHbpNum()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //更新慢病总人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        basePopulation.setNcdNum(basePopulation.getHbpNum() + basePopulation.getDmNum()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return basePopulation; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -274,46 +275,53 @@ public class BasePopulationEndpoint extends EnvelopRestEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //验证未通过 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<PopulationMsg> errorLs = excelReader.getErrorLs(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<PopulationMsg> correctLs = excelReader.getCorrectLs(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(errorLs.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return failed("格式有误,导入失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //获取所有租户+年份的基础人口信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Set<String> populationNameAndYear =new HashSet<String>( basePopulationService.getFacilityCodeByServerType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Set<String> populationNameAndYear = new HashSet<String>(basePopulationService.getFacilityCodeByServerType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            PopulationMsg model; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List saveLs = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (correctLs.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                for (int i = 0; i < correctLs.size(); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    model = correctLs.get(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    Map<Boolean,PopulationMsg> map=validate(model,populationNameAndYear); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (null==map.get(true)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        errorLs.add(model); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    Map<Boolean, PopulationMsg> map = validate(model, populationNameAndYear); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (null == map.get(true)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        errorLs.add(model); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        return failed("格式有误,导入失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        saveLs.add(model); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                if(errorLs.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    return failed("格式有误,导入失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> result = basePopulationService.batchInsertPopulation(saveLs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                result.put("errorLs",errorLs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                result.put("errorLs", errorLs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return success("导入成功!", result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return failed("导入异常,请检查导入文件格式"+e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return failed("导入异常,请检查导入文件格式" + e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return failed("导入失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private Map<Boolean,PopulationMsg> validate(PopulationMsg model, Set<String> populationNameAndYear) throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<Boolean,PopulationMsg> msgMap =new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private Map<Boolean, PopulationMsg> validate(PopulationMsg model, Set<String> populationNameAndYear) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<Boolean, PopulationMsg> msgMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Boolean rs = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //验证租户是否存在 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SaasDO saasDO = saasService.findByName(model.getSaasName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String nameAndYear=model.getSaasName()+model.getYear(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String nameAndYear = model.getSaasName() + model.getYear(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //验证租户+年份的人口基数是否存在 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (populationNameAndYear.contains(nameAndYear)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            model.addErrorMsg("saasName", "已添加"+model.getYear()+model.getSaasName()+"的基础人口信息,请直接修改即可!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            model.addErrorMsg("saasName", "已添加" + model.getYear() + model.getSaasName() + "的基础人口信息,请直接修改即可!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            rs = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (null==saasDO) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (null == saasDO) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            model.addErrorMsg("saasName", "租户不存在,请核对!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            rs = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            model.setSaasId(saasDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            model.setSaasCreateTime(saasDO.getCreateTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String areaCode = saasDO.getAreaNumber(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -352,11 +360,9 @@ public class BasePopulationEndpoint extends EnvelopRestEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        msgMap.put(rs,model); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        msgMap.put(rs, model); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return msgMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |