Commit a77a1561e952171d43a0449f4a05fe85e81fc941

Authored by liquanyu
1 parent dd21023933

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 }