From def12ea40ddf6c1703a98d9adffeb3ed929b2976 Mon Sep 17 00:00:00 2001 From: litao Date: Tue, 4 Jul 2017 17:28:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=8D=E6=9F=A5=E7=AE=A1=E7=90=86=E5=AF=BC?= =?UTF-8?q?=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lyms/platform/common/utils/DateUtil.java | 36 ++++++++++++++--- .../web/controller/PostReviewController.java | 16 ++++++++ .../operate/web/controller/ReportController.java | 26 ++++++++++++- .../operate/web/service/IPostReviewService.java | 3 ++ .../operate/web/service/IReportService.java | 3 ++ .../web/service/impl/PostReviewServiceImpl.java | 41 ++++++++++++++++++++ .../web/service/impl/ReportServiceImpl.java | 45 +++++++++++++++------- 7 files changed, 149 insertions(+), 21 deletions(-) diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java b/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java index 2755dee..c4721f6 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java @@ -2,9 +2,11 @@ package com.lyms.platform.common.utils; import org.joda.time.DateTime; +import java.sql.*; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; +import java.util.Date; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; @@ -969,12 +971,6 @@ public class DateUtil { return result; } - public static void main(String[] arg) throws Exception { - - System.out.println(parseYMDHMS("2017-02-10")); -// System.out.println(getMonth(start)); -// System.out.println(getMonth(end)); - } /** @@ -1002,4 +998,32 @@ public class DateUtil { calendar.setTime(date); return calendar.get(Calendar.MONTH) + 1; } + + /** + * 返回当前时间 只包括年月日 + * @return + */ + public static Date getYMDTime(){ + try { + Date now = new SimpleDateFormat("yyyy-MM-dd").parse(getymd()); + return now; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + /** + * 获取当前时间加上多少周的时间 + * @param week + * @return + */ + public static Date getWeekDay(Integer week) { + Date now = getYMDTime(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(now); + calendar.add(Calendar.WEEK_OF_YEAR, week); + return calendar.getTime(); + } + } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PostReviewController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PostReviewController.java index ded8300..d4c6938 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PostReviewController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PostReviewController.java @@ -18,6 +18,7 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.Date; @@ -132,4 +133,19 @@ public class PostReviewController extends BaseController { String key, Integer page, Integer limit, HttpServletRequest request) { return postReviewService.postpartumReview(getUserId(request), startDate, endDate, doctorId, key, page, limit); } + + /** + * 复查管理导出 + * @param startDate + * @param endDate + * @param doctorId + * @param key 姓名/联系方式/就诊卡 + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/postpartum/review/export") + @TokenRequired + public void postpartumReviewExport(Date startDate, Date endDate, String doctorId, + String key, HttpServletRequest request, HttpServletResponse response) { + postReviewService.postpartumReviewExport(getUserId(request), startDate, endDate, doctorId, key, response); + } } \ No newline at end of file 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 06b2992..f62b378 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 @@ -31,7 +31,7 @@ public class ReportController extends BaseController { private IReportService reportService; /** - * 产检次数分布统计 + * 产检次数分布统计(已废弃 采用 getCheckNumber) * * @param startDate 建档开始时间 * @param endDate 建档结束时间 @@ -43,6 +43,7 @@ public class ReportController extends BaseController { @RequestMapping(method = RequestMethod.GET, value = "/getCheckStatistics") @ResponseBody @TokenRequired + @Deprecated public BaseObjectResponse getCheckStatistics(String startDate, String endDate, Integer startWeek, Integer endWeek, Integer childBirth, HttpServletRequest request) { LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); @@ -50,6 +51,28 @@ public class ReportController extends BaseController { // return reportService.areaCountFacade(startDate, endDate, startWeek, endWeek, childBirth, 753); } + /** + * 产检次数分布统计 + * + * @param startDate 建档开始时间 + * @param endDate 建档结束时间 + * @param startWeek 孕周开始时间 + * @param endWeek 孕周结束时间 + * @param childBirth 统计范围 1=孕妇 3=产妇 不传=全部 + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/getCheckNumber") + @ResponseBody + @TokenRequired + public BaseObjectResponse getCheckNumber(Date startDate, Date endDate, + Integer startWeek, Integer endWeek, Integer childBirth, HttpServletRequest request) { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + return reportService.getCheckNumber(startDate, endDate, startWeek, endWeek, childBirth, loginState.getId()); +// return reportService.areaCountFacade(startDate, endDate, startWeek, endWeek, childBirth, 753); + } + + + /** * 产检次数分布统计 excel 导出 @@ -170,7 +193,6 @@ public class ReportController extends BaseController { HttpServletRequest request, HttpServletResponse resp) { LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); reportService.exportDoctorInfo(startDate, endDate, childBirth, number, name, loginState.getId(), resp); -// reportService.exportDoctorInfo(startDate, endDate, childBirth, number, name, 753, resp); } /** diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IPostReviewService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IPostReviewService.java index 63b0c96..78969e4 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IPostReviewService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IPostReviewService.java @@ -2,6 +2,7 @@ package com.lyms.platform.operate.web.service; import com.lyms.platform.common.result.BaseObjectResponse; +import javax.servlet.http.HttpServletResponse; import java.util.Date; /** @@ -9,4 +10,6 @@ import java.util.Date; */ public interface IPostReviewService extends IBaseService { BaseObjectResponse postpartumReview(Integer userId, Date startDate, Date endDate, String doctorId, String key, Integer page, Integer limit); + + void postpartumReviewExport(Integer userId, Date startDate, Date endDate, String doctorId, String key, HttpServletResponse response); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IReportService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IReportService.java index f447e2f..75df522 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IReportService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IReportService.java @@ -3,6 +3,7 @@ package com.lyms.platform.operate.web.service; import com.lyms.platform.common.result.BaseObjectResponse; import javax.servlet.http.HttpServletResponse; +import java.util.Date; import java.util.Map; /** @@ -76,4 +77,6 @@ public interface IReportService extends IBaseService { void exportCouponInfo(Map param, HttpServletResponse response); BaseObjectResponse patient(Integer userId, String s, String provinceId, String cityId, String year); + + BaseObjectResponse getCheckNumber(Date startDate, Date endDate, Integer startWeek, Integer endWeek, Integer childBirth, Integer userId); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PostReviewServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PostReviewServiceImpl.java index 8e54d34..ccaf62c 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PostReviewServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PostReviewServiceImpl.java @@ -8,6 +8,7 @@ import com.lyms.platform.common.utils.StringUtils; import com.lyms.platform.operate.web.facade.AutoMatchFacade; import com.lyms.platform.operate.web.service.IPostReviewService; import com.lyms.platform.operate.web.utils.MongoUtil; +import com.lyms.platform.operate.web.utils.ResponseUtil; import com.lyms.platform.permission.dao.master.MasterUsersMapper; import com.lyms.platform.permission.model.Users; import com.lyms.platform.pojo.Patients; @@ -20,6 +21,7 @@ import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletResponse; import java.util.*; /** @@ -93,4 +95,43 @@ public class PostReviewServiceImpl extends BaseServiceImpl implements IPostRevie pageResult.setGrid(rest); return RespBuilder.buildSuccess(pageResult); } + + @Override + public void postpartumReviewExport(Integer userId, Date startDate, Date endDate, String doctorId, String key, HttpServletResponse response) { + BaseObjectResponse rest = postpartumReview(userId, startDate, endDate, doctorId, key, 1, Integer.MAX_VALUE); + PageResult pageResult = (PageResult) rest.getData(); + List> datas = (List>) pageResult.getGrid(); + Map cnames = new LinkedHashMap<>(); + cnames.put("id", "#"); + cnames.put("checkTime", "复查日期"); + cnames.put("hcertificateNum", "证件号"); + cnames.put("username", "姓名"); + cnames.put("age", "年龄"); + cnames.put("day", "产后天数"); + cnames.put("reviewCount", "复查次数"); + cnames.put("reviewHospitalCount", "本院复查次数"); + cnames.put("doctorName", "检查医生"); + cnames.put("phone", "联系电话"); + + List> results = new ArrayList<>(); + if(CollectionUtils.isNotEmpty(datas)) { + int i = 0; + for (Map data : datas) { + Map result = new LinkedHashMap<>(); + result.put("id", ++i); + result.put("checkTime", data.get("checkTime")); + result.put("hcertificateNum", data.get("hcertificateNum")); + result.put("username", data.get("username")); + result.put("age", data.get("age")); + result.put("day", data.get("day")); + result.put("reviewCount", data.get("reviewCount")); + result.put("reviewHospitalCount", data.get("reviewHospitalCount")); + result.put("doctorName", data.get("doctorName")); + result.put("phone", data.get("phone")); + results.add(result); + } + } + + ResponseUtil.responseExcel(cnames, results, response); + } } 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 e5f1253..4c8984f 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 @@ -15,6 +15,7 @@ import com.lyms.platform.operate.web.utils.*; import com.lyms.platform.permission.dao.master.CouponMapper; import com.lyms.platform.pojo.*; import com.lymsh.platform.reportdata.model.echarts.Series; +import javafx.scene.shape.Circle; import org.apache.commons.collections.MapUtils; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -1149,22 +1150,40 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService List series = createPatientSeries(mapList); reportModel.setSeries(series); + return RespBuilder.buildSuccess("patients", mapList, "report", reportModel); + } - /*Map countMap = new HashMap<>(); - countMap.put("id", -1); - countMap.put("parentId", null); - countMap.put("name", "建册人数(按居住地)"); - List qhdData = series.get(0).getData(); - List otherData = series.get(0).getData(); - Integer count = 0; - for(int i = 0; i< 12; i++) { - countMap.put(i + 1 + "", Integer.parseInt(qhdData.get(i) + "") + Integer.parseInt(otherData.get(i) + "")); - count += Integer.parseInt(qhdData.get(i) + "") + Integer.parseInt(otherData.get(i) + ""); + @Override + public BaseObjectResponse getCheckNumber(Date startDate, Date endDate, Integer startWeek, Integer endWeek, Integer childBirth, Integer userId) { + BaseObjectResponse rest = new BaseObjectResponse(); + Criteria criteria = Criteria.where("hospitalId").is(autoMatchFacade.getHospitalId(userId)); + if(startDate != null && endDate != null) { + criteria.and("bookbuildingDate").gte(startDate).lt(DateUtil.addDay(endDate, 1)); + } + if(startWeek != null) { /** 末次月经 到 现在相隔的周数 */ + criteria.and("lastMenses").lt(DateUtil.addDay(DateUtil.getWeekDay(startWeek), 1)); + } + if(endWeek != null) { /** 末次月经 到 现在相隔的周数 */ + criteria.and("lastMenses").gte(DateUtil.addDay(DateUtil.getWeekDay(startWeek), 1)); } - countMap.put("count", count); - mapList.add(countMap);*/ - return RespBuilder.buildSuccess("patients", mapList, "report", reportModel); + List patients = mongoUtil.findField(Patients.class, criteria, "id"); + System.out.println(patients.size()); +// List antExChuModels = mongoTemplate.find(antexcQuery, AntExChuModel.class); + +// mongoUtil.findField(AntExChuModel.class, antexcQuery, ""); + + /*Map restMap = new HashMap<>(); + List params = new ArrayList<>(); + String hospitalId = autoMatchFacade.getHospitalId(userId); + List> mapList = reportDao.findList(getAreaCountFacadeSql(startDate, endDate, startWeek, endWeek, childBirth, hospitalId, params), params); + List peopleList = createPeoples(mapList); + restMap.put("grid", createGrid( createPeoples(mapList), createProportion(peopleList))); + restMap.put("xAxis", Arrays.asList("1次", "2次", "3次", "4次", "5次", "6次", "7次", "8次", "9次", "10次", "11次", "12次", "≥13次")); *//** x轴数据 *//* + restMap.put("yAxis", createYData(peopleList)); + + rest.setData(restMap);*/ + return rest; } private List createPatientSeries(List> datas) { -- 1.8.3.1