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 | } |