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, ") |