From fc0ebd2837961c23f04918a869d799e48b24e29f Mon Sep 17 00:00:00 2001 From: litao Date: Mon, 24 Apr 2017 18:05:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A7=E6=A3=80=E5=8C=BB=E7=94=9F=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operate/web/controller/ReportController.java | 52 ++++++++++++++++++-- .../operate/web/service/IReportService.java | 6 ++- .../web/service/impl/ReportServiceImpl.java | 56 ++++++++++++++++++---- 3 files changed, 101 insertions(+), 13 deletions(-) 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 f010d35..828b205 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 @@ -1,6 +1,7 @@ package com.lyms.platform.operate.web.controller; import com.lyms.platform.common.base.BaseController; +import com.lyms.platform.common.base.LoginContext; import com.lyms.platform.common.result.BaseObjectResponse; import com.lyms.platform.operate.web.service.IReportService; import org.springframework.beans.factory.annotation.Autowired; @@ -9,6 +10,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** @@ -51,7 +53,6 @@ public class ReportController extends BaseController { @RequestMapping(value = "/check/export", method = RequestMethod.GET) public void exportCheck(String startDate, String endDate, Integer startWeek, Integer endWeek, Integer childBirth, HttpServletResponse resp) { reportService.exportCheck(startDate, endDate, startWeek, endWeek, childBirth, resp); - } /** @@ -75,6 +76,27 @@ public class ReportController extends BaseController { } /** + * 孕产妇明细导出 + * @param startDate 建档开始时间 + * @param endDate 建档结束时间 + * @param startWeek 孕周开始时间 + * @param endWeek 孕周结束时间 + * @param childBirth 统计范围 1=孕妇 3=产妇 不传=全部 + * @param number 检查次数 + * @param name 医生名称 + * @return + */ + @RequestMapping(method = RequestMethod.GET,value = "/checkInfo/export") +// @TokenRequired + public void exportCheckInfo(Integer childBirth, String startDate, String endDate, Integer startWeek, Integer endWeek, Integer number, + String name, HttpServletRequest request, HttpServletResponse resp) { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); +// reportService.exportCheckInfo(childBirth, startDate, endDate, startWeek, endWeek, number, name, loginState.getId()); + reportService.exportCheckInfo(childBirth, startDate, endDate, startWeek, endWeek, number, name, loginState.getId(), resp); + } + + + /** * 产检医生统计 * @param startDate 建档开始时间 * @param endDate 建档结束时间 @@ -94,12 +116,36 @@ public class ReportController extends BaseController { * @param childBirth 统计范围 1=孕妇 3=产妇 不传=全部 * @param number 产检次数 点的是产检人次的话就传1, 2次(含)以上就传2, 5次(含)以上就传5 * @param name 医生名称 + * @param currentPage 当前页 + * @param pageSize 每页显示的数量 * @return */ @RequestMapping(method = RequestMethod.GET,value = "/doctorInfo") @ResponseBody - public BaseObjectResponse doctorInfo(String startDate, String endDate, Integer childBirth, Integer number, String name,Integer currentPage, Integer pageSize) { - return reportService.doctorInfo(startDate, endDate, childBirth, number, name,currentPage, pageSize); +// @TokenRequired + public BaseObjectResponse doctorInfo(String startDate, String endDate, Integer childBirth, Integer number, String name, + Integer currentPage, Integer pageSize, HttpServletRequest request) { +// LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); +// return reportService.doctorInfo(startDate, endDate, childBirth, number, name,currentPage, pageSize, loginState.getId()); + return reportService.doctorInfo(startDate, endDate, childBirth, number, name,currentPage, pageSize, 753); + } + + /** + * 产检医生统计详情导出 + * @param startDate 建档开始时间 + * @param endDate 建档结束时间 + * @param childBirth 统计范围 1=孕妇 3=产妇 不传=全部 + * @param number 产检次数 点的是产检人次的话就传1, 2次(含)以上就传2, 5次(含)以上就传5 + * @param name 医生名称 + * @return + */ + @RequestMapping(method = RequestMethod.GET,value = "/doctorInfo/export") +// @TokenRequired + public void exportDoctorInfo(String startDate, String endDate, Integer childBirth, Integer number, String name, + 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/IReportService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IReportService.java index dcd2773..0a09236 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 @@ -59,5 +59,9 @@ public interface IReportService extends IBaseService { void exportDoctor(String startDate, String endDate, Integer childBirth, HttpServletResponse resp); - BaseObjectResponse doctorInfo(String startDate, String endDate, Integer childBirth, Integer number, String name, Integer currentPage, Integer pageSize); + BaseObjectResponse doctorInfo(String startDate, String endDate, Integer childBirth, Integer number, String name, Integer currentPage, Integer pageSize, Integer userId); + + void exportDoctorInfo(String startDate, String endDate, Integer childBirth, Integer number, String name, Integer userId, HttpServletResponse resp); + + void exportCheckInfo(Integer childBirth, String startDate, String endDate, Integer startWeek, Integer endWeek, Integer number, String name, Integer userId, HttpServletResponse resp); } 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 2eeec1b..27231f7 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 @@ -4,6 +4,7 @@ import com.lyms.hospitalapi.pojo.ReportModel; import com.lyms.platform.common.result.BaseObjectResponse; import com.lyms.platform.common.result.PageResult; import com.lyms.platform.operate.web.dao.IReportDao; +import com.lyms.platform.operate.web.facade.AutoMatchFacade; import com.lyms.platform.operate.web.service.IReportService; import com.lyms.platform.operate.web.utils.MathUtil; import com.lyms.platform.operate.web.utils.ResponseUtil; @@ -25,6 +26,9 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService @Autowired private IReportDao reportDao; + @Autowired + AutoMatchFacade autoMatchFacade; + @Override public BaseObjectResponse areaCountFacade(String startDate, String endDate, Integer startWeek, Integer endWeek, Integer childBirth) { BaseObjectResponse rest = new BaseObjectResponse(); @@ -219,15 +223,46 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService } @Override - public BaseObjectResponse doctorInfo(String startDate, String endDate, Integer childBirth, Integer number,String name, Integer currentPage, Integer pageSize) { + public BaseObjectResponse doctorInfo(String startDate, String endDate, Integer childBirth, Integer number,String name, Integer currentPage, Integer pageSize, Integer userId) { BaseObjectResponse rest = new BaseObjectResponse(); List params = new ArrayList<>(); - PageResult page = findPage(getDoctorInfoSql(startDate, endDate, childBirth, number, name, params), currentPage, pageSize, params); + String hospitalId = autoMatchFacade.getHospitalId(userId); + PageResult page = findPage(getDoctorInfoSql(startDate, endDate, childBirth, number, name, hospitalId, params), currentPage, pageSize, params); rest.setData(page); return rest; } - private String getDoctorInfoSql(String startDate, String endDate, Integer childBirth, Integer number, String name, List params) { + @Override + public void exportDoctorInfo(String startDate, String endDate, Integer childBirth, Integer number, String name, Integer userId, HttpServletResponse resp) { + List params = new ArrayList<>(); + String hospitalId = autoMatchFacade.getHospitalId(userId); + Map cnames = new LinkedHashMap<>(); + cnames.put("id", "#"); + cnames.put("NAME", "姓名"); + cnames.put("YUNZHOU", "当前孕周"); + cnames.put("BENYUAN_NUM", "本院产检次数"); + cnames.put("TOTAL_NUM", "总产检次数"); + cnames.put("HIGH_RISK_GRADE", "高危等级"); + cnames.put("HIGH_RISK_FACTOR", "风险因数"); + cnames.put("EDD_DATE", "预产期/分娩日期"); + cnames.put("LAST_EXAMINE_DATE", "最后产检日期"); + cnames.put("DOCTOR_NAME", "最后产检医生"); + + List> results = new ArrayList<>(); + List> list = reportDao.findList(getDoctorInfoSql(startDate, endDate, childBirth, number, name, hospitalId, params), params); + for (Map map : list) { + results.add(map); + } + + ResponseUtil.responseExcel(cnames,results, resp); + } + + @Override + public void exportCheckInfo(Integer childBirth, String startDate, String endDate, Integer startWeek, Integer endWeek, Integer number, String name, Integer userId, HttpServletResponse resp) { + + } + + private String getDoctorInfoSql(String startDate, String endDate, Integer childBirth, Integer number, String name, String hospitalId, List params) { StringBuilder sql = new StringBuilder(); sql.append("SELECT A.NAME, ") .append("(CASE WHEN A.IS_CHILDBIRTH=3 THEN '已分娩' ELSE (CASE WHEN A.NOW_WEEKS_DAY<>0 THEN '孕'||A.NOW_WEEKS||'周+'||A.NOW_WEEKS_DAY||'天' ELSE '孕'||A.NOW_WEEKS||'周' END) END) AS YUNZHOU, ") @@ -246,13 +281,16 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService .append("INNER JOIN ODS_F_EXAMINE_HISTORY_ASC F ON D.EXAMINE_ID=F.EXAMINE_ID ") .append("WHERE 1 = 1 "); - // sql.append(" AND C.YCY_STSTEM_ID=?"); 医院ID条件 - if(childBirth != null) { sql.append("AND A.IS_CHILDBIRTH = ? "); params.add(childBirth); } + if(StringUtils.isNotBlank(hospitalId)) { + sql.append("AND C.YCY_STSTEM_ID = ? "); + params.add(hospitalId); + } + if(startDate != null && endDate != null) { sql.append("AND A.CREATE_DATE BETWEEN to_date(?,'yyyy-mm-dd') AND to_date(?,'yyyy-mm-dd') "); params.add(startDate); @@ -269,10 +307,10 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService params.add(name); } - if(number != null) { -// sql.append("AND A.RECORD_ID IN (SELECT RECORD_ID FROM ODS_F_EXAMINE_HISTORY_ASC A1,ODS_D_HOSPITAL A2 WHERE A1.HOSPITAL_NO=A2.HOSPITAL_NO AND A2.YCY_STSTEM_ID=? AND EXAMINE_HISTORY_NUM=?) "); -// params.add(STSTEM_ID); 医院id -// params.add(number); + if(number != null && StringUtils.isNotBlank(hospitalId)) { + sql.append("AND A.RECORD_ID IN (SELECT RECORD_ID FROM ODS_F_EXAMINE_HISTORY_ASC A1,ODS_D_HOSPITAL A2 WHERE A1.HOSPITAL_NO=A2.HOSPITAL_NO AND A2.YCY_STSTEM_ID=? AND EXAMINE_HISTORY_NUM=?) "); + params.add(hospitalId); + params.add(number); } sql.append("GROUP BY A.RECORD_ID, ") -- 1.8.3.1