From d3417c8de69f3cb7e88d63607631aa69a1800e57 Mon Sep 17 00:00:00 2001 From: "litao@lymsh.com" Date: Wed, 22 Nov 2017 11:01:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=99bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/AreaCountController.java | 6 ++++ .../operate/web/controller/ReportController.java | 6 ++-- .../operate/web/facade/AreaCountFacade.java | 21 ++++++++++++ .../web/service/impl/ReportServiceImpl.java | 38 +++++++++++++++++++++- .../lyms/platform/operate/web/utils/MongoUtil.java | 15 +++++++++ 5 files changed, 82 insertions(+), 4 deletions(-) diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AreaCountController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AreaCountController.java index 35d7239..19a69c1 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AreaCountController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AreaCountController.java @@ -30,6 +30,12 @@ public class AreaCountController extends BaseController { return areaCountFacade.getAreaChilds(provinceName, cityName, areaName); } + @RequestMapping(value = "/get/area/id", method = RequestMethod.GET) + @ResponseBody + public BaseResponse getAreaId(@RequestParam String provinceName, @RequestParam String cityName, String areaName) { + return areaCountFacade.getAreaId(provinceName, cityName, areaName); + } + /** * 产检节点统计 * @param request diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java index c864a84..aa3b637 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java @@ -54,12 +54,12 @@ public class ReportController extends BaseController { * @return */ @ResponseBody -// @TokenRequired + @TokenRequired @RequestMapping(value = "/patients/export", method = RequestMethod.GET) public void patientsExport(String provinceId, String cityId, String aredId, String streetId, @RequestParam Integer statistType, Integer ageType, Integer patientType, Date startDate, Date endDate, HttpServletRequest request, HttpServletResponse response) { -// reportService.patientsExport(provinceId, cityId, aredId, streetId, statistType, ageType, patientType, startDate, endDate, getUserId(request), response); - reportService.patientsExport(provinceId, cityId, aredId, streetId, statistType, ageType, patientType, startDate, endDate, 1000000185, response); + reportService.patientsExport(provinceId, cityId, aredId, streetId, statistType, ageType, patientType, startDate, endDate, getUserId(request), response); +// reportService.patientsExport(provinceId, cityId, aredId, streetId, statistType, ageType, patientType, startDate, endDate, 1000000185, response); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java index 225f05e..a872874 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java @@ -870,6 +870,27 @@ public class AreaCountFacade { return RespBuilder.buildSuccess(childs); } + public BaseResponse getAreaId(String provinceName, String cityName, String areaName) { + BasicConfig province = mongoTemplate.findOne(Query.query(Criteria.where("name").is(provinceName).and("typeId").is("b7ea005c-dfac-4c2a-bdae-25239b3f44fd")), BasicConfig.class); + if (province != null) { + List citys = mongoTemplate.find(Query.query(Criteria.where("parentId").is(province.getId()).and("typeId").is("b7ea005c-dfac-4c2a-bdae-25239b3f44fd")), BasicConfig.class); + for (BasicConfig city : citys) { + if (cityName.equals(city.getName())) { + if (StringUtils.isEmpty(areaName)) { + return RespBuilder.buildSuccess(city.getId()); + } else { + List areas = mongoTemplate.find(Query.query(Criteria.where("parentId").is(city.getId()).and("typeId").is("b7ea005c-dfac-4c2a-bdae-25239b3f44fd")), BasicConfig.class); + for (BasicConfig area : areas) { + if (areaName.equals(area.getName())) { + return RespBuilder.buildSuccess(area.getId()); + } + } + } + } + } + } + return RespBuilder.buildSuccess("not found"); + } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java index d9ae005..1844dc6 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java @@ -27,6 +27,9 @@ import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.aggregation.Aggregation; +import org.springframework.data.mongodb.core.aggregation.AggregationResults; +import org.springframework.data.mongodb.core.aggregation.GroupOperation; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; @@ -190,7 +193,40 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService public BaseObjectResponse patients(String provinceId, String cityId, String aredId, String streetId, Integer statistType, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId) { List patients = getPatients(provinceId, cityId, aredId, streetId, ageType, patientType, startDate, endDate, userId); - return null; + Map restMap = new HashMap<>(); + List xDatas = new ArrayList<>(); + List> series = new ArrayList<>(); + List legend = Arrays.asList("建档总数"); + + List patientIds = new ArrayList<>(); + for (Patients patient : patients) { + patientIds.add(patient.getId()); + } + + GroupOperation groupOperation = Aggregation.group("hospitalId").count().as("count"); + Aggregation agg = Aggregation.newAggregation(Patients.class, Aggregation.match(Criteria.where("id").in(patientIds)), groupOperation); + AggregationResults results = mongoTemplate.aggregate(agg, Patients.class, Map.class); + List mappedResults = results.getMappedResults(); + + List bar = new ArrayList<>(); + List port = new ArrayList<>(); + Map barMap = new HashMap<>(); + barMap.put("data", new ArrayList<>()); + Map portMap = new HashMap<>(); + portMap.put("data", new ArrayList<>()); + for (Map mappedResult : mappedResults) { + xDatas.add(couponMapper.findHospitalNameById((String) mappedResult.get("_id"))); + bar.add(mappedResult.get("count")); + } + barMap.put("data", bar); + barMap.put("type", "bar"); + barMap.put("name", "建档总数"); + series.add(barMap); + + restMap.put("legend", legend); + restMap.put("series", series); + restMap.put("xDatas", xDatas); + return RespBuilder.buildSuccess(restMap); } @Override diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/MongoUtil.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/MongoUtil.java index 77ab9e3..8ceadf4 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/MongoUtil.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/MongoUtil.java @@ -51,6 +51,21 @@ public class MongoUtil { @Autowired private CouponMapper couponMapper; + public List> getChilds(String id) { + List> childList = new ArrayList<>(); + BasicConfig basicConfig = mongoTemplate.findById(id, BasicConfig.class); + if(basicConfig != null) { + List childs = mongoTemplate.find(Query.query(Criteria.where("parentId").is(basicConfig.getId()).and("typeId").is("b7ea005c-dfac-4c2a-bdae-25239b3f44fd")), BasicConfig.class); + for (BasicConfig child : childs) { + Map temp = new HashMap<>(); + temp.put("id", child.getId()); + temp.put("name", child.getName()); + childList.add(temp); + } + } + return childList; + } + public List> getHospitals(Integer userId, String provinceId, String cityId, String areaId, String streetId) { List hospitalIds = accessPermissionFacade.getCurrentUserHospPermissions(userId); List> hospitals= couponMapper.findHospitalInfoByIds2(CollectionUtils.createMap("list", hospitalIds, "provinceId", provinceId, "cityId", cityId, "areaId", areaId, "streetId", streetId)); -- 1.8.3.1