From 166bd93d9577dd4b543004bdef4829bf0c6bcb05 Mon Sep 17 00:00:00 2001 From: liquanyu Date: Wed, 29 Nov 2017 21:14:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operate/web/facade/RiskReportFacade.java | 439 ++++++++++++--------- .../web/request/RiskPatientsCountRequest.java | 12 +- .../operate/web/service/SyncDataTaskService.java | 1 + 3 files changed, 263 insertions(+), 189 deletions(-) diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java index 544b4ef..74b3ba3 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java @@ -304,181 +304,176 @@ public class RiskReportFacade { int orgNumTotal = 0; //统计城市和区县表格数据 -// if (addrType < 3) -// { -// List configList = basicConfigService.queryBasicConfig(basicQuery); -// OrganizationQuery query = new OrganizationQuery(); -// query.setYn(YnEnums.YES.getId()); -// if (CollectionUtils.isNotEmpty(configList)) -// { -// for(BasicConfig c : configList) -// { -// if (addrType == 1) -// { -// query.setCityId(c.getId()); -// } -// else if(addrType == 2) -// { -// query.setAreaId(c.getId()); -// } -// //查询机构数 -// List orgs = organizationService.queryOrganization(query); -// -// orgNumTotal += CollectionUtils.isNotEmpty(orgs) ? orgs.size() : 0 ; -// -// List hids = getConditionHospitalIds(currentUserHospPermissions,orgs); -// -// for (BasicConfig level : riskLevelConfig) -// { -// -// List topList = new ArrayList<>(); -// topList.add(String.valueOf(++seq)); -// topList.add(c.getName()); -// topList.add(orgs == null ? "0" : String.valueOf(orgs.size())); -// topList.add(level.getName()); -// int riskPatientCount = 0; -// -// if (StringUtils.isNotEmpty(countRequest.getTimeStart()) ) -// { -// if (CollectionUtils.isNotEmpty(times)) -// { -// for (Map time : times) -// { -// if (CollectionUtils.isNotEmpty(hids)) -// { -// patientsQuery.setBookbuildingDateStart(time.get("start")); -// patientsQuery.setBookbuildingDateEnd(time.get("end")); -// -// //权限 -// patientsQuery.setHospitalList(hids); -// -// //高危等级 -// patientsQuery.setrLevel(level.getId()); -// -// riskPatientCount = patientsService.queryPatientCount(patientsQuery); -// } -// topList.add(String.valueOf(riskPatientCount)); -// } -// } -// } -// -// -// //权限和筛选条件不未空的时候就查询孕妇高危数量 -// if (CollectionUtils.isNotEmpty(hids)) -// { -// -// //权限 -// patientsQuery.setHospitalList(hids); -// -// //高危等级 -// patientsQuery.setrLevel(level.getId()); -// -// -// //单个高危因素孕产妇条数 -// riskPatientCount = patientsService.queryPatientCount(patientsQuery); -// } -// -// topList.add(String.valueOf(riskPatientCount)); -// result.add(topList); -// } -// } -// } -// } -// //统计医院的表格数据 -// else -// { -// OrganizationQuery query = new OrganizationQuery(); -// query.setYn(YnEnums.YES.getId()); -// query.setAreaId(countRequest.getAreaId()); -// List orgs = organizationService.queryOrganization(query); -// if (CollectionUtils.isNotEmpty(orgs)) { -// for (Organization org : orgs) { -// for (BasicConfig level : riskLevelConfig) { -// List topList = new ArrayList<>(); -// topList.add(String.valueOf(++seq)); -// topList.add(org.getName()); -// topList.add(level.getName()); -// -// int riskPatientCount = 0; -// -// if (StringUtils.isNotEmpty(countRequest.getTimeStart()) ) -// { -// if (CollectionUtils.isNotEmpty(times)) -// { -// for (Map time : times) -// { -// if (currentUserHospPermissions.contains(String.valueOf(org.getId()))) -// { -// patientsQuery.setBookbuildingDateStart(time.get("start")); -// patientsQuery.setBookbuildingDateEnd(time.get("end")); -// -// List hids = new ArrayList<>(); -// hids.add(String.valueOf(org.getId())); -// //权限 -// patientsQuery.setHospitalList(hids); -// -// //高危等级 -// patientsQuery.setrLevel(level.getId()); -// -// riskPatientCount = patientsService.queryPatientCount(patientsQuery); -// } -// topList.add(String.valueOf(riskPatientCount)); -// } -// } -// } -// -// if (currentUserHospPermissions.contains(String.valueOf(org.getId()))) -// { -// List hids = new ArrayList<>(); -// hids.add(String.valueOf(org.getId())); -// //权限 -// patientsQuery.setHospitalList(hids); -// //高危等级 -// patientsQuery.setrLevel(level.getId()); -// //单个高危因素孕产妇条数 -// riskPatientCount = patientsService.queryPatientCount(patientsQuery); -// } -// -// topList.add(String.valueOf(riskPatientCount)); -// result.add(topList); -// } -// } -// } -// } -// -// //表格合计计算 -// if(CollectionUtils.isNotEmpty(result)) -// { -// -// List> totalAllList = new ArrayList<>(); -// for (BasicConfig level : riskLevelConfig) { -// List totalList = new ArrayList<>(); -// totalList.add(String.valueOf(++seq)); -// totalList.add("合计"); -// -// if (addrType < 3) { -// totalList.add(String.valueOf(orgNumTotal)); -// } -// totalList.add(level.getName()); -// -// int index = addrType < 3 ? 4 : 3; -// -// for (int i = index ; i <= (times == null ? 0+index : times.size()+index) ; i++) -// { -// int total = 0; -// for (List items : result) -// { -// if (items.contains(level.getName())) -// { -// total+=Integer.valueOf(items.get(i)); -// } -// } -// totalList.add(String.valueOf(total)); -// } -// totalAllList.add(totalList); -// } -// result.addAll(totalAllList); -// } + if (addrType < 3) + { + List configList = basicConfigService.queryBasicConfig(basicQuery); + OrganizationQuery query = new OrganizationQuery(); + query.setYn(YnEnums.YES.getId()); + if (CollectionUtils.isNotEmpty(configList)) + { + for(BasicConfig c : configList) + { + if (addrType == 1) + { + query.setCityId(c.getId()); + } + else if(addrType == 2) + { + query.setAreaId(c.getId()); + } + //查询机构数 + List orgs = organizationService.queryOrganization(query); + + orgNumTotal += CollectionUtils.isNotEmpty(orgs) ? orgs.size() : 0 ; + + List hids = getConditionHospitalIds(currentUserHospPermissions,orgs); + + for (BasicConfig level : riskLevelConfig) + { + List topList = new ArrayList<>(); + topList.add(String.valueOf(++seq)); + topList.add(c.getName()); + topList.add(orgs == null ? "0" : String.valueOf(orgs.size())); + topList.add(level.getName()); + int riskPatientCount = 0; + + if (StringUtils.isNotEmpty(countRequest.getTimeStart()) ) + { + if (CollectionUtils.isNotEmpty(times)) + { + for (Map time : times) + { + if (CollectionUtils.isNotEmpty(hids)) + { + patientsQuery.setBookbuildingDateStart(time.get("start")); + patientsQuery.setBookbuildingDateEnd(time.get("end")); + + //权限 + patientsQuery.setHospitalList(hids); + + //高危等级 + patientsQuery.setrLevel(level.getId()); + + riskPatientCount = patientsService.queryPatientCount(patientsQuery); + } + topList.add(String.valueOf(riskPatientCount)); + } + } + } + + //权限和筛选条件不未空的时候就查询孕妇高危数量 + if (CollectionUtils.isNotEmpty(hids)) + { + //权限 + patientsQuery.setHospitalList(hids); + + //高危等级 + patientsQuery.setrLevel(level.getId()); + + //单个高危因素孕产妇条数 + riskPatientCount = patientsService.queryPatientCount(patientsQuery); + } + + topList.add(String.valueOf(riskPatientCount)); + result.add(topList); + } + } + } + } + //统计医院的表格数据 + else + { + OrganizationQuery query = new OrganizationQuery(); + query.setYn(YnEnums.YES.getId()); + query.setAreaId(countRequest.getAreaId()); + List orgs = organizationService.queryOrganization(query); + if (CollectionUtils.isNotEmpty(orgs)) { + for (Organization org : orgs) { + for (BasicConfig level : riskLevelConfig) { + List topList = new ArrayList<>(); + topList.add(String.valueOf(++seq)); + topList.add(org.getName()); + topList.add(level.getName()); + + int riskPatientCount = 0; + + if (StringUtils.isNotEmpty(countRequest.getTimeStart()) ) + { + if (CollectionUtils.isNotEmpty(times)) + { + for (Map time : times) + { + if (currentUserHospPermissions.contains(String.valueOf(org.getId()))) + { + patientsQuery.setBookbuildingDateStart(time.get("start")); + patientsQuery.setBookbuildingDateEnd(time.get("end")); + + List hids = new ArrayList<>(); + hids.add(String.valueOf(org.getId())); + //权限 + patientsQuery.setHospitalList(hids); + + //高危等级 + patientsQuery.setrLevel(level.getId()); + + riskPatientCount = patientsService.queryPatientCount(patientsQuery); + } + topList.add(String.valueOf(riskPatientCount)); + } + } + } + + if (currentUserHospPermissions.contains(String.valueOf(org.getId()))) + { + List hids = new ArrayList<>(); + hids.add(String.valueOf(org.getId())); + //权限 + patientsQuery.setHospitalList(hids); + //高危等级 + patientsQuery.setrLevel(level.getId()); + //单个高危因素孕产妇条数 + riskPatientCount = patientsService.queryPatientCount(patientsQuery); + } + + topList.add(String.valueOf(riskPatientCount)); + result.add(topList); + } + } + } + } + + //表格合计计算 + if(CollectionUtils.isNotEmpty(result)) + { + List> totalAllList = new ArrayList<>(); + for (BasicConfig level : riskLevelConfig) { + List totalList = new ArrayList<>(); + totalList.add(String.valueOf(++seq)); + totalList.add("合计"); + + if (addrType < 3) { + totalList.add(String.valueOf(orgNumTotal)); + } + totalList.add(level.getName()); + + int index = addrType < 3 ? 4 : 3; + + for (int i = index ; i <= (times == null ? 0+index : times.size()+index) ; i++) + { + int total = 0; + for (List items : result) + { + if (items.contains(level.getName())) + { + total+=Integer.valueOf(items.get(i)); + } + } + totalList.add(String.valueOf(total)); + } + totalAllList.add(totalList); + } + result.addAll(totalAllList); + } // // for (List items : result) // { @@ -558,10 +553,6 @@ public class RiskReportFacade { map.put("data",items); series.add(map); } - - //计算占比 - List> bfbItem = handzb(series); - series.addAll(bfbItem); } } else if (addrType == 3) @@ -607,10 +598,6 @@ public class RiskReportFacade { } series.add(map); } - - //计算占比 - List> bfbItem = handzb(series); - series.addAll(bfbItem); } } datas.put("series",series); @@ -1006,4 +993,90 @@ public class RiskReportFacade { return hids; } + + + //计算占比 +// List> proportion = handzb(series); +// series.addAll(proportion); + + + //计算环比 +// List> mom = new ArrayList<>(); +// +// //环比 1月 2 季度 3半年 4年 +// Integer momType = countRequest.getMomType(); +// +// String requestStart = countRequest.getTimeStart(); +// Date requestStartDate = DateUtil.parseYMD(requestStart); +// +// Date previousMomStart = null; +// Date previousMomEnd = null; +// +// Date momStart = null; +// Date momEnd = null; +// if (momType == 1) +// { +// momStart = DateUtil.getMonthDay(requestStartDate, 0, 1); +// momEnd = DateUtil.addDay(DateUtil.getMonthDay(requestStartDate, 0, 0), 1); +// +// previousMomStart = DateUtil.addMonth(momStart, -1); +// previousMomEnd = DateUtil.addMonth(momEnd, -1); +// +// System.out.println(DateUtil.getyyyy_MM_dd(momStart)); +// System.out.println(DateUtil.getyyyy_MM_dd(momEnd)); +// System.out.println(DateUtil.getyyyy_MM_dd(previousMomStart)); +// System.out.println(DateUtil.getyyyy_MM_dd(previousMomEnd)); +// } +// +// OrganizationQuery idQuery = new OrganizationQuery(); +// idQuery.setYn(YnEnums.YES.getId()); +// +// for (BasicConfig config : riskLevelConfig) +// { +// +// Map momMap = new HashMap<>(); +// momMap.put("name",config.getName()); +// momMap.put("type", "line"); +// +// List momParcent = new ArrayList<>(); +// for (Map addr : list) +// { +// +// String id = String.valueOf(addr.get("id")); +// if (addrType == 1) +// { +// idQuery.setCityId(id); +// } +// else if(addrType == 2) +// { +// idQuery.setAreaId(id); +// } +// +// //查询机构数 +// List orgs = organizationService.queryOrganization(idQuery); +// List hids = getConditionHospitalIds(currentUserHospPermissions, orgs); +// +// patientsQuery.setHospitalList(hids); +// //高危等级 +// patientsQuery.setrLevel(config.getId()); +// patientsQuery.setLastCTimeStart(momStart); +// patientsQuery.setLastCTimeEnd(momEnd); +// //当前值 +// int num = patientsService.queryPatientCount(patientsQuery); +// +// patientsQuery.setLastCTimeStart(previousMomStart); +// patientsQuery.setLastCTimeEnd(previousMomEnd); +// //上期值 +// int num1 = patientsService.queryPatientCount(patientsQuery); +// String momValue = MathUtil.getProportion(num-num1,num1); +// momParcent.add(momValue); +// } +// momMap.put("data",momParcent); +// +// mom.add(momMap); +// } +// +// series.addAll(mom); + + } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/RiskPatientsCountRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/RiskPatientsCountRequest.java index 095b3ca..20d5b22 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/RiskPatientsCountRequest.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/RiskPatientsCountRequest.java @@ -45,8 +45,8 @@ public class RiskPatientsCountRequest extends BasePageQueryRequest { //对比指标 1 占比 2 环比 private Integer compareType; - //环比 周 1月 2 季度 3半年 4年 - private Integer hbType; + //环比 1月 2 季度 3半年 4年 + private Integer momType; //孕周 0 全部孕周 1:孕12周前 2:13-19 3:20-25 4:26-30 5:31-36 6:37-40 7:40-分娩前 private Integer week; @@ -75,12 +75,12 @@ public class RiskPatientsCountRequest extends BasePageQueryRequest { this.queryStreetId = queryStreetId; } - public Integer getHbType() { - return hbType; + public Integer getMomType() { + return momType; } - public void setHbType(Integer hbType) { - this.hbType = hbType; + public void setMomType(Integer momType) { + this.momType = momType; } public Integer getWeek() { diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/SyncDataTaskService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/SyncDataTaskService.java index c8926f6..1658a0b 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/SyncDataTaskService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/SyncDataTaskService.java @@ -56,6 +56,7 @@ public class SyncDataTaskService { urls.put("area-kaifeng-api.healthbaby.com.cn:12356","开封"); urls.put("area-weixian-api.healthbaby.com.cn:12356","威县"); urls.put("area-zhucheng-api.healthbaby.com.cn:12356","诸城市妇幼保健院"); + urls.put("area-weihai.healthbaby.com.cn:12356","威海"); } @Autowired -- 1.8.3.1