Commit fc0ebd2837961c23f04918a869d799e48b24e29f
1 parent
9c9f93529d
Exists in
master
and in
6 other branches
产检医生详情导出
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, ") |