Commit a77a1561e952171d43a0449f4a05fe85e81fc941
1 parent
dd21023933
Exists in
master
and in
8 other branches
code update
Showing 3 changed files with 265 additions and 6 deletions
platform-common/src/main/java/com/lyms/platform/common/utils/ExcelUtil.java
View file @
a77a156
| ... | ... | @@ -96,6 +96,70 @@ |
| 96 | 96 | } |
| 97 | 97 | return out; |
| 98 | 98 | } |
| 99 | + | |
| 100 | + | |
| 101 | + public static OutputStream toChanExcel(OutputStream out, List<Map<String, Object>> data, Map<String, String> columName) | |
| 102 | + { | |
| 103 | + WritableWorkbook wwb; | |
| 104 | + try | |
| 105 | + { | |
| 106 | + wwb = Workbook.createWorkbook(out); | |
| 107 | + WritableSheet ws = wwb.createSheet("sheet", 0); // 创建一个工作表 | |
| 108 | + /** | |
| 109 | + * 设置单元格样式 | |
| 110 | + */ | |
| 111 | + WritableFont wf = new WritableFont(WritableFont.ARIAL, 12, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.BLACK); | |
| 112 | + WritableCellFormat wcf = new WritableCellFormat(wf); | |
| 113 | + ws.setRowView(0, 300); // 设置指定行高 | |
| 114 | + // 设置列宽 | |
| 115 | + for (int j = 0, columLen = columName.size(); j < columLen; j++) | |
| 116 | + { | |
| 117 | + ws.setColumnView(j, 15); | |
| 118 | + } | |
| 119 | + // 填充数据的内容 | |
| 120 | + Map<String, Object> map; | |
| 121 | + for (int i = 0, len = data.size(); i < len; i++) | |
| 122 | + { | |
| 123 | + map = data.get(i); | |
| 124 | + Iterator<String> ite = columName.keySet().iterator(); | |
| 125 | + int j = 0; | |
| 126 | + String keyORvalue = ""; | |
| 127 | + String keyName = ""; | |
| 128 | + while (ite.hasNext()) | |
| 129 | + { | |
| 130 | + keyName = ite.next(); | |
| 131 | + if (i > 0) | |
| 132 | + { // 类容数据 | |
| 133 | + keyORvalue = map.get(keyName).toString(); | |
| 134 | + } | |
| 135 | + else | |
| 136 | + { // 第一行列名 | |
| 137 | + keyORvalue = map.get(keyName).toString(); | |
| 138 | + keyName = columName.get(keyName); | |
| 139 | + ws.addCell(new Label(j, 0, keyName, wcf)); | |
| 140 | + } | |
| 141 | + ws.addCell(new Label(j, 1 + i, keyORvalue)); | |
| 142 | + j++; | |
| 143 | + } | |
| 144 | + } | |
| 145 | + | |
| 146 | + wwb.write(); | |
| 147 | + wwb.close(); | |
| 148 | + } | |
| 149 | + catch (IOException e) | |
| 150 | + { | |
| 151 | + e.printStackTrace(); | |
| 152 | + } | |
| 153 | + catch (RowsExceededException e) | |
| 154 | + { | |
| 155 | + e.printStackTrace(); | |
| 156 | + } | |
| 157 | + catch (WriteException e) | |
| 158 | + { | |
| 159 | + e.printStackTrace(); | |
| 160 | + } | |
| 161 | + return out; | |
| 162 | + } | |
| 99 | 163 | |
| 100 | 164 | |
| 101 | 165 |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BookbuildingController.java
View file @
a77a156
| ... | ... | @@ -2,6 +2,7 @@ |
| 2 | 2 | |
| 3 | 3 | |
| 4 | 4 | import javax.servlet.http.HttpServletRequest; |
| 5 | +import javax.servlet.http.HttpServletResponse; | |
| 5 | 6 | import javax.validation.Valid; |
| 6 | 7 | |
| 7 | 8 | import com.lyms.platform.common.annotation.TokenRequired; |
| ... | ... | @@ -9,6 +10,7 @@ |
| 9 | 10 | import com.lyms.platform.common.utils.StringUtils; |
| 10 | 11 | import com.lyms.platform.operate.web.facade.AntenatalExaminationFacade; |
| 11 | 12 | import com.lyms.platform.operate.web.request.AntenatalExaminationQueryRequest; |
| 13 | +import com.lyms.platform.operate.web.request.BabyManageRequest; | |
| 12 | 14 | import org.springframework.beans.factory.annotation.Autowired; |
| 13 | 15 | import org.springframework.stereotype.Controller; |
| 14 | 16 | import org.springframework.web.bind.annotation.*; |
| 15 | 17 | |
| ... | ... | @@ -188,10 +190,10 @@ |
| 188 | 190 | exDateStart, |
| 189 | 191 | exDateEnd, |
| 190 | 192 | name, |
| 191 | - weekStarts, | |
| 193 | + weekStarts, | |
| 192 | 194 | weekEnds, |
| 193 | 195 | hbsab, |
| 194 | - hbeag, | |
| 196 | + hbeag, | |
| 195 | 197 | hbeab, |
| 196 | 198 | hbcab, |
| 197 | 199 | syphilis, |
| ... | ... | @@ -203,6 +205,42 @@ |
| 203 | 205 | |
| 204 | 206 | ); |
| 205 | 207 | return objectResponse; |
| 208 | + } | |
| 209 | + | |
| 210 | + | |
| 211 | + @RequestMapping(value = "/exportChanReport", method = RequestMethod.GET) | |
| 212 | + @TokenRequired | |
| 213 | + public void exportChanReport(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse, | |
| 214 | + @RequestParam(required = false) String exDateStart, | |
| 215 | + @RequestParam(required = false) String exDateEnd, | |
| 216 | + @RequestParam(required = false) String name, | |
| 217 | + @RequestParam(required = false) Integer weekStarts, | |
| 218 | + @RequestParam(required = false) Integer weekEnds, | |
| 219 | + @RequestParam(required = false) String hbsab, | |
| 220 | + @RequestParam(required = false) String hbeag, | |
| 221 | + @RequestParam(required = false) String hbeab, | |
| 222 | + @RequestParam(required = false) String hbcab, | |
| 223 | + @RequestParam(required = false) String syphilis, | |
| 224 | + @RequestParam(required = false) String hiv, | |
| 225 | + @RequestParam(required = false) String hcv, | |
| 226 | + @RequestParam(required = false) String doctorNo, | |
| 227 | + @RequestParam(required = false) Integer page, | |
| 228 | + @RequestParam(required = false) Integer limit){ | |
| 229 | + LoginContext loginState = (LoginContext) httpServletRequest.getAttribute("loginContext"); | |
| 230 | + bookbuildingFacade.exportChanReport(loginState.getId(), httpServletResponse, | |
| 231 | + exDateStart, | |
| 232 | + exDateEnd, | |
| 233 | + name, | |
| 234 | + weekStarts, | |
| 235 | + weekEnds, | |
| 236 | + hbsab, | |
| 237 | + hbeag, | |
| 238 | + hbeab, | |
| 239 | + hbcab, | |
| 240 | + syphilis, | |
| 241 | + hiv, | |
| 242 | + hcv, | |
| 243 | + doctorNo); | |
| 206 | 244 | } |
| 207 | 245 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java
View file @
a77a156
| ... | ... | @@ -36,6 +36,8 @@ |
| 36 | 36 | import com.lyms.platform.common.result.BaseObjectResponse; |
| 37 | 37 | import com.lyms.platform.operate.web.request.YunBookbuildingAddRequest; |
| 38 | 38 | |
| 39 | +import javax.servlet.http.HttpServletResponse; | |
| 40 | +import java.io.OutputStream; | |
| 39 | 41 | import java.util.*; |
| 40 | 42 | |
| 41 | 43 | /** |
| ... | ... | @@ -1085,7 +1087,7 @@ |
| 1085 | 1087 | "WHERE C.YCY_STSTEM_ID= '"+hospitalId +"'"; |
| 1086 | 1088 | |
| 1087 | 1089 | |
| 1088 | - String sql = "SELECT * FROM ( SELECT A.EXAMINE_DATE,\n" + | |
| 1090 | + String sql = "SELECT * FROM ( SELECT A.*, ROWNUM RN FROM ( SELECT A.EXAMINE_DATE,\n" + | |
| 1089 | 1091 | " A.NAME,\n" + |
| 1090 | 1092 | " A.AGE,\n" + |
| 1091 | 1093 | " A.NOW_WEEKS,\n" + |
| ... | ... | @@ -1116,7 +1118,6 @@ |
| 1116 | 1118 | " B.CITY_ID,\n" + |
| 1117 | 1119 | " B.CITY,\n" + |
| 1118 | 1120 | " B.PROVINCE_ID,\n" + |
| 1119 | - " B.PROVINCE,\n" + | |
| 1120 | 1121 | " B.PROVINCE\n" + |
| 1121 | 1122 | " FROM ODS_F_AUXILIARY_EXAMI A " + |
| 1122 | 1123 | " INNER JOIN ODS_F_GRAVIDA_RECORD B ON A.RECORD_ID=B.RECORD_ID \n" + |
| ... | ... | @@ -1199,8 +1200,6 @@ |
| 1199 | 1200 | |
| 1200 | 1201 | sql+=" order by A.EXAMINE_DATE DESC,A.Name ASC ) A WHERE ROWNUM <= "+end+" ) WHERE RN >= "+start; |
| 1201 | 1202 | |
| 1202 | - // order by A.EXAMINE_DATE DESC" | |
| 1203 | - | |
| 1204 | 1203 | logger.info(sql); |
| 1205 | 1204 | List<Map<String,Object>> list = JdbcUtil.getListDataBySql(sql); |
| 1206 | 1205 | |
| ... | ... | @@ -1215,6 +1214,164 @@ |
| 1215 | 1214 | listResponse.setErrorcode(ErrorCodeConstants.SUCCESS); |
| 1216 | 1215 | listResponse.setErrormsg("成功"); |
| 1217 | 1216 | return listResponse; |
| 1217 | + } | |
| 1218 | + | |
| 1219 | + | |
| 1220 | + public void exportChanReport(Integer userId, HttpServletResponse httpServletResponse, | |
| 1221 | + String exDateStart, | |
| 1222 | + String exDateEnd, | |
| 1223 | + String name, | |
| 1224 | + Integer weekStarts, | |
| 1225 | + Integer weekEnds, | |
| 1226 | + String hbsag, | |
| 1227 | + String hbeag, | |
| 1228 | + String hbeab, | |
| 1229 | + String hbcab, | |
| 1230 | + String syphilis, | |
| 1231 | + String hiv, | |
| 1232 | + String hcv, | |
| 1233 | + String doctorNo) { | |
| 1234 | + String hospitalId = autoMatchFacade.getHospitalId(userId); | |
| 1235 | + String sql = "SELECT * FROM ( SELECT A.EXAMINE_DATE,\n" + | |
| 1236 | + " A.NAME,\n" + | |
| 1237 | + " A.AGE,\n" + | |
| 1238 | + " A.NOW_WEEKS,\n" + | |
| 1239 | + " A.NOW_WEEKS_DAY, \n" + | |
| 1240 | + " B.EDD_DATE,\n" + | |
| 1241 | + " A.HBSAG,\n" + | |
| 1242 | + " A.HBSAB,\n" + | |
| 1243 | + " A.HBEAG,\n" + | |
| 1244 | + " A.HBEAB,\n" + | |
| 1245 | + " A.HBCAB,\n" + | |
| 1246 | + " A.SYPHILIS,\n" + | |
| 1247 | + " A.HIV,\n" + | |
| 1248 | + " A.HCV,\n" + | |
| 1249 | + " (CASE WHEN A.HIGH_RISK_GRADE IS NULL THEN '绿色预警' ELSE A.HIGH_RISK_GRADE END) AS HIGH_RISK_GRADE,\n" + | |
| 1250 | + " (CASE WHEN A.HIGH_RISK_FACTOR IS NULL THEN '健康' ELSE A.HIGH_RISK_FACTOR END) AS HIGH_RISK_FACTOR,\n" + | |
| 1251 | + " A.NEXT_EXAMINE_DATE,\n" + | |
| 1252 | + " A.EXAMINE_HISTORY_NUM,\n" + | |
| 1253 | + " A.DOCTOR_NAME,\n" + | |
| 1254 | + " A.DOCTOR_NAME AS BOOKER,\n" + | |
| 1255 | + " DECODE(B.IS_VIP_ID,1,'增值服务','标准服务') AS SERVICE_STATUS,\n" + | |
| 1256 | + " A.SUGGESTION,\n" + | |
| 1257 | + " B.TEL_NO,\n" + | |
| 1258 | + " B.HOME_ADDR,\n" + | |
| 1259 | + " B.STREET_VALLAGE_ID,\n" + | |
| 1260 | + " B.STREET_VALLAGE,\n" + | |
| 1261 | + " B.AREA_COUNTY_ID,\n" + | |
| 1262 | + " B.AREA_COUNTY,\n" + | |
| 1263 | + " B.CITY_ID,\n" + | |
| 1264 | + " B.CITY,\n" + | |
| 1265 | + " B.PROVINCE_ID,\n" + | |
| 1266 | + " B.PROVINCE,\n" + | |
| 1267 | + " B.PROVINCE\n" + | |
| 1268 | + " FROM ODS_F_AUXILIARY_EXAMI A " + | |
| 1269 | + " INNER JOIN ODS_F_GRAVIDA_RECORD B ON A.RECORD_ID=B.RECORD_ID \n" + | |
| 1270 | + " INNER JOIN ODS_D_HOSPITAL C ON A.HOSPITAL_NO=C.HOSPITAL_NO AND C.VER_NO=2 \n" + | |
| 1271 | + " WHERE C.YCY_STSTEM_ID= '"+hospitalId +"'"; | |
| 1272 | + if (StringUtils.isNotEmpty(exDateStart)) | |
| 1273 | + { | |
| 1274 | + sql += " AND A.EXAMINE_DATE>= to_date('"+exDateStart+"','yyyy-MM-dd')"; | |
| 1275 | + } | |
| 1276 | + if (StringUtils.isNotEmpty(exDateEnd)) | |
| 1277 | + { | |
| 1278 | + sql += " AND A.EXAMINE_DATE <= to_date('"+exDateEnd+"','yyyy-MM-dd')"; | |
| 1279 | + } | |
| 1280 | + | |
| 1281 | + if (StringUtils.isNotEmpty(name)) | |
| 1282 | + { | |
| 1283 | + sql += " AND A.NAME LIKE '%"+name+"%'"; | |
| 1284 | + } | |
| 1285 | + | |
| 1286 | + if (weekStarts != null) | |
| 1287 | + { | |
| 1288 | + sql += " AND A.NOW_WEEKS>= "+weekStarts; | |
| 1289 | + } | |
| 1290 | + | |
| 1291 | + if (weekEnds != null) | |
| 1292 | + { | |
| 1293 | + sql += " AND A.NOW_WEEKS <= "+weekEnds; | |
| 1294 | + } | |
| 1295 | + | |
| 1296 | + if (StringUtils.isNotEmpty(hbsag)) | |
| 1297 | + { | |
| 1298 | + sql += " AND A.HBSAG = "+hbsag; | |
| 1299 | + } | |
| 1300 | + | |
| 1301 | + if (StringUtils.isNotEmpty(hbeag)) | |
| 1302 | + { | |
| 1303 | + sql += " AND A.HBEAG = "+hbeag; | |
| 1304 | + } | |
| 1305 | + | |
| 1306 | + if (StringUtils.isNotEmpty(hbeab)) | |
| 1307 | + { | |
| 1308 | + sql += " AND A.HBEAB = "+hbeab; | |
| 1309 | + } | |
| 1310 | + | |
| 1311 | + if (StringUtils.isNotEmpty(hbcab)) | |
| 1312 | + { | |
| 1313 | + sql += " AND A.HBCAB = "+hbcab; | |
| 1314 | + } | |
| 1315 | + if (StringUtils.isNotEmpty(syphilis)) | |
| 1316 | + { | |
| 1317 | + sql += " AND A.SYPHILIS = "+syphilis; | |
| 1318 | + } | |
| 1319 | + | |
| 1320 | + if (StringUtils.isNotEmpty(hiv)) | |
| 1321 | + { | |
| 1322 | + sql += " AND A.HIV = "+hiv; | |
| 1323 | + } | |
| 1324 | + | |
| 1325 | + if (StringUtils.isNotEmpty(hcv)) | |
| 1326 | + { | |
| 1327 | + sql += " AND A.HCV = "+hcv; | |
| 1328 | + } | |
| 1329 | + if (StringUtils.isNotEmpty(doctorNo)) | |
| 1330 | + { | |
| 1331 | + sql += " AND A.DOCTOR_NO = "+doctorNo; | |
| 1332 | + } | |
| 1333 | + | |
| 1334 | + sql+=" order by A.EXAMINE_DATE DESC,A.Name ASC "; | |
| 1335 | + | |
| 1336 | + logger.info(sql); | |
| 1337 | + try { | |
| 1338 | + List<Map<String,Object>> datas = JdbcUtil.getListDataBySql(sql); | |
| 1339 | + OutputStream out = httpServletResponse.getOutputStream(); | |
| 1340 | + Map<String,String> cnames = new HashMap<>(); | |
| 1341 | + cnames.put("EXAMINE_DATE", "产检日期"); | |
| 1342 | + cnames.put("NAME", "姓名"); | |
| 1343 | + cnames.put("AGE", "年龄"); | |
| 1344 | + cnames.put("NOW_WEEKS", "孕周"); | |
| 1345 | + cnames.put("EDD_DATE", "预产期"); | |
| 1346 | + cnames.put("HBEAG", "乙肝表面抗原"); | |
| 1347 | + cnames.put("HBSAB", "乙肝表面抗体"); | |
| 1348 | + cnames.put("HBEAG", "乙肝e抗原"); | |
| 1349 | + cnames.put("HBEAB", "乙肝e抗体"); | |
| 1350 | + cnames.put("HBCAB", "乙肝核心抗体"); | |
| 1351 | + cnames.put("SYPHILIS", "梅毒"); | |
| 1352 | + cnames.put("HIV", "HIV"); | |
| 1353 | + cnames.put("HCV", "丙肝"); | |
| 1354 | + cnames.put("HIGH_RISK_GRADE", "高危等级"); | |
| 1355 | + cnames.put("HIGH_RISK_FACTOR", "高危因素"); | |
| 1356 | + cnames.put("NEXT_EXAMINE_DATE", "预约产检日期"); | |
| 1357 | + cnames.put("EXAMINE_HISTORY_NUM", "本院产检次数"); | |
| 1358 | + cnames.put("DOCTOR_NAME", "产检医生"); | |
| 1359 | + cnames.put("BOOKER", "登记人"); | |
| 1360 | + cnames.put("SERVICE_STATUS", "服务类型"); | |
| 1361 | + cnames.put("SUGGESTION", "处理意见"); | |
| 1362 | + cnames.put("TEL_NO", "联系方式"); | |
| 1363 | + cnames.put("HOME_ADDR", "居住地"); | |
| 1364 | + | |
| 1365 | + httpServletResponse.setContentType("application/octet-stream"); | |
| 1366 | + httpServletResponse.setCharacterEncoding("UTF-8"); | |
| 1367 | + httpServletResponse.setHeader("Content-Disposition", "attachment;fileName="+"产检统计表.xls"); | |
| 1368 | + ExcelUtil.toExcel(out,datas,cnames); | |
| 1369 | + }catch (Exception e) | |
| 1370 | + { | |
| 1371 | + | |
| 1372 | + } | |
| 1373 | + | |
| 1374 | + | |
| 1218 | 1375 | } |
| 1219 | 1376 | } |