Commit fc0ebd2837961c23f04918a869d799e48b24e29f

Authored by litao
1 parent 9c9f93529d

产检医生详情导出

Showing 3 changed files with 101 additions and 13 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java View file @ fc0ebd2
1 1 package com.lyms.platform.operate.web.controller;
2 2  
3 3 import com.lyms.platform.common.base.BaseController;
  4 +import com.lyms.platform.common.base.LoginContext;
4 5 import com.lyms.platform.common.result.BaseObjectResponse;
5 6 import com.lyms.platform.operate.web.service.IReportService;
6 7 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -9,6 +10,7 @@
9 10 import org.springframework.web.bind.annotation.RequestMethod;
10 11 import org.springframework.web.bind.annotation.ResponseBody;
11 12  
  13 +import javax.servlet.http.HttpServletRequest;
12 14 import javax.servlet.http.HttpServletResponse;
13 15  
14 16 /**
... ... @@ -51,7 +53,6 @@
51 53 @RequestMapping(value = "/check/export", method = RequestMethod.GET)
52 54 public void exportCheck(String startDate, String endDate, Integer startWeek, Integer endWeek, Integer childBirth, HttpServletResponse resp) {
53 55 reportService.exportCheck(startDate, endDate, startWeek, endWeek, childBirth, resp);
54   -
55 56 }
56 57  
57 58 /**
... ... @@ -75,6 +76,27 @@
75 76 }
76 77  
77 78 /**
  79 + * 孕产妇明细导出
  80 + * @param startDate 建档开始时间
  81 + * @param endDate 建档结束时间
  82 + * @param startWeek 孕周开始时间
  83 + * @param endWeek 孕周结束时间
  84 + * @param childBirth 统计范围 1=孕妇 3=产妇 不传=全部
  85 + * @param number 检查次数
  86 + * @param name 医生名称
  87 + * @return
  88 + */
  89 + @RequestMapping(method = RequestMethod.GET,value = "/checkInfo/export")
  90 +// @TokenRequired
  91 + public void exportCheckInfo(Integer childBirth, String startDate, String endDate, Integer startWeek, Integer endWeek, Integer number,
  92 + String name, HttpServletRequest request, HttpServletResponse resp) {
  93 + LoginContext loginState = (LoginContext) request.getAttribute("loginContext");
  94 +// reportService.exportCheckInfo(childBirth, startDate, endDate, startWeek, endWeek, number, name, loginState.getId());
  95 + reportService.exportCheckInfo(childBirth, startDate, endDate, startWeek, endWeek, number, name, loginState.getId(), resp);
  96 + }
  97 +
  98 +
  99 + /**
78 100 * 产检医生统计
79 101 * @param startDate 建档开始时间
80 102 * @param endDate 建档结束时间
81 103  
... ... @@ -94,12 +116,36 @@
94 116 * @param childBirth 统计范围 1=孕妇 3=产妇 不传=全部
95 117 * @param number 产检次数 点的是产检人次的话就传1, 2次(含)以上就传2, 5次(含)以上就传5
96 118 * @param name 医生名称
  119 + * @param currentPage 当前页
  120 + * @param pageSize 每页显示的数量
97 121 * @return
98 122 */
99 123 @RequestMapping(method = RequestMethod.GET,value = "/doctorInfo")
100 124 @ResponseBody
101   - public BaseObjectResponse doctorInfo(String startDate, String endDate, Integer childBirth, Integer number, String name,Integer currentPage, Integer pageSize) {
102   - return reportService.doctorInfo(startDate, endDate, childBirth, number, name,currentPage, pageSize);
  125 +// @TokenRequired
  126 + public BaseObjectResponse doctorInfo(String startDate, String endDate, Integer childBirth, Integer number, String name,
  127 + Integer currentPage, Integer pageSize, HttpServletRequest request) {
  128 +// LoginContext loginState = (LoginContext) request.getAttribute("loginContext");
  129 +// return reportService.doctorInfo(startDate, endDate, childBirth, number, name,currentPage, pageSize, loginState.getId());
  130 + return reportService.doctorInfo(startDate, endDate, childBirth, number, name,currentPage, pageSize, 753);
  131 + }
  132 +
  133 + /**
  134 + * 产检医生统计详情导出
  135 + * @param startDate 建档开始时间
  136 + * @param endDate 建档结束时间
  137 + * @param childBirth 统计范围 1=孕妇 3=产妇 不传=全部
  138 + * @param number 产检次数 点的是产检人次的话就传1, 2次(含)以上就传2, 5次(含)以上就传5
  139 + * @param name 医生名称
  140 + * @return
  141 + */
  142 + @RequestMapping(method = RequestMethod.GET,value = "/doctorInfo/export")
  143 +// @TokenRequired
  144 + public void exportDoctorInfo(String startDate, String endDate, Integer childBirth, Integer number, String name,
  145 + HttpServletRequest request, HttpServletResponse resp) {
  146 +// LoginContext loginState = (LoginContext) request.getAttribute("loginContext");
  147 +// reportService.exportDoctorInfo(startDate, endDate, childBirth, number, name, loginState.getId(), resp);
  148 + reportService.exportDoctorInfo(startDate, endDate, childBirth, number, name, 753, resp);
103 149 }
104 150  
105 151 /**
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IReportService.java View file @ fc0ebd2
... ... @@ -59,6 +59,10 @@
59 59  
60 60 void exportDoctor(String startDate, String endDate, Integer childBirth, HttpServletResponse resp);
61 61  
62   - BaseObjectResponse doctorInfo(String startDate, String endDate, Integer childBirth, Integer number, String name, Integer currentPage, Integer pageSize);
  62 + BaseObjectResponse doctorInfo(String startDate, String endDate, Integer childBirth, Integer number, String name, Integer currentPage, Integer pageSize, Integer userId);
  63 +
  64 + void exportDoctorInfo(String startDate, String endDate, Integer childBirth, Integer number, String name, Integer userId, HttpServletResponse resp);
  65 +
  66 + void exportCheckInfo(Integer childBirth, String startDate, String endDate, Integer startWeek, Integer endWeek, Integer number, String name, Integer userId, HttpServletResponse resp);
63 67 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java View file @ fc0ebd2
... ... @@ -4,6 +4,7 @@
4 4 import com.lyms.platform.common.result.BaseObjectResponse;
5 5 import com.lyms.platform.common.result.PageResult;
6 6 import com.lyms.platform.operate.web.dao.IReportDao;
  7 +import com.lyms.platform.operate.web.facade.AutoMatchFacade;
7 8 import com.lyms.platform.operate.web.service.IReportService;
8 9 import com.lyms.platform.operate.web.utils.MathUtil;
9 10 import com.lyms.platform.operate.web.utils.ResponseUtil;
... ... @@ -25,6 +26,9 @@
25 26 @Autowired
26 27 private IReportDao reportDao;
27 28  
  29 + @Autowired
  30 + AutoMatchFacade autoMatchFacade;
  31 +
28 32 @Override
29 33 public BaseObjectResponse areaCountFacade(String startDate, String endDate, Integer startWeek, Integer endWeek, Integer childBirth) {
30 34 BaseObjectResponse rest = new BaseObjectResponse();
31 35  
32 36  
... ... @@ -219,15 +223,46 @@
219 223 }
220 224  
221 225 @Override
222   - public BaseObjectResponse doctorInfo(String startDate, String endDate, Integer childBirth, Integer number,String name, Integer currentPage, Integer pageSize) {
  226 + public BaseObjectResponse doctorInfo(String startDate, String endDate, Integer childBirth, Integer number,String name, Integer currentPage, Integer pageSize, Integer userId) {
223 227 BaseObjectResponse rest = new BaseObjectResponse();
224 228 List<Object> params = new ArrayList<>();
225   - PageResult page = findPage(getDoctorInfoSql(startDate, endDate, childBirth, number, name, params), currentPage, pageSize, params);
  229 + String hospitalId = autoMatchFacade.getHospitalId(userId);
  230 + PageResult page = findPage(getDoctorInfoSql(startDate, endDate, childBirth, number, name, hospitalId, params), currentPage, pageSize, params);
226 231 rest.setData(page);
227 232 return rest;
228 233 }
229 234  
230   - private String getDoctorInfoSql(String startDate, String endDate, Integer childBirth, Integer number, String name, List<Object> params) {
  235 + @Override
  236 + public void exportDoctorInfo(String startDate, String endDate, Integer childBirth, Integer number, String name, Integer userId, HttpServletResponse resp) {
  237 + List<Object> params = new ArrayList<>();
  238 + String hospitalId = autoMatchFacade.getHospitalId(userId);
  239 + Map<String, String> cnames = new LinkedHashMap<>();
  240 + cnames.put("id", "#");
  241 + cnames.put("NAME", "姓名");
  242 + cnames.put("YUNZHOU", "当前孕周");
  243 + cnames.put("BENYUAN_NUM", "本院产检次数");
  244 + cnames.put("TOTAL_NUM", "总产检次数");
  245 + cnames.put("HIGH_RISK_GRADE", "高危等级");
  246 + cnames.put("HIGH_RISK_FACTOR", "风险因数");
  247 + cnames.put("EDD_DATE", "预产期/分娩日期");
  248 + cnames.put("LAST_EXAMINE_DATE", "最后产检日期");
  249 + cnames.put("DOCTOR_NAME", "最后产检医生");
  250 +
  251 + List<Map<String,Object>> results = new ArrayList<>();
  252 + List<Map<String, Object>> list = reportDao.findList(getDoctorInfoSql(startDate, endDate, childBirth, number, name, hospitalId, params), params);
  253 + for (Map<String, Object> map : list) {
  254 + results.add(map);
  255 + }
  256 +
  257 + ResponseUtil.responseExcel(cnames,results, resp);
  258 + }
  259 +
  260 + @Override
  261 + public void exportCheckInfo(Integer childBirth, String startDate, String endDate, Integer startWeek, Integer endWeek, Integer number, String name, Integer userId, HttpServletResponse resp) {
  262 +
  263 + }
  264 +
  265 + private String getDoctorInfoSql(String startDate, String endDate, Integer childBirth, Integer number, String name, String hospitalId, List<Object> params) {
231 266 StringBuilder sql = new StringBuilder();
232 267 sql.append("SELECT A.NAME, ")
233 268 .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, ")
234 269  
... ... @@ -246,13 +281,16 @@
246 281 .append("INNER JOIN ODS_F_EXAMINE_HISTORY_ASC F ON D.EXAMINE_ID=F.EXAMINE_ID ")
247 282 .append("WHERE 1 = 1 ");
248 283  
249   - // sql.append(" AND C.YCY_STSTEM_ID=?"); 医院ID条件
250   -
251 284 if(childBirth != null) {
252 285 sql.append("AND A.IS_CHILDBIRTH = ? ");
253 286 params.add(childBirth);
254 287 }
255 288  
  289 + if(StringUtils.isNotBlank(hospitalId)) {
  290 + sql.append("AND C.YCY_STSTEM_ID = ? ");
  291 + params.add(hospitalId);
  292 + }
  293 +
256 294 if(startDate != null && endDate != null) {
257 295 sql.append("AND A.CREATE_DATE BETWEEN to_date(?,'yyyy-mm-dd') AND to_date(?,'yyyy-mm-dd') ");
258 296 params.add(startDate);
... ... @@ -269,10 +307,10 @@
269 307 params.add(name);
270 308 }
271 309  
272   - if(number != null) {
273   -// 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=?) ");
274   -// params.add(STSTEM_ID); 医院id
275   -// params.add(number);
  310 + if(number != null && StringUtils.isNotBlank(hospitalId)) {
  311 + 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=?) ");
  312 + params.add(hospitalId);
  313 + params.add(number);
276 314 }
277 315  
278 316 sql.append("GROUP BY A.RECORD_ID, ")