Commit da45ca1cccefdd535c0a6e96d5eb3f4e5c44839c

Authored by [wangbo]
1 parent c79ff174a1

孕妇概况导出

Showing 4 changed files with 158 additions and 3 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TrackDownController.java View file @ da45ca1
... ... @@ -92,6 +92,18 @@
92 92 page, limit, getUserId(request), type, check, checkup, pregnantBuild, followupStatus, isDeliver);
93 93 }
94 94  
  95 +
  96 + @ResponseBody
  97 + @TokenRequired
  98 + @RequestMapping(value = "/allExport", method = RequestMethod.GET)
  99 + public void allExport(Date buildStart, Date buildEnd, Date checkStart, Date checkEnd, Date fmStart, Date fmEnd, String key, Integer type,
  100 + @RequestParam Integer page, @RequestParam Integer limit, HttpServletRequest request,
  101 + Integer check, String checkup, String pregnantBuild, Integer followupStatus, Boolean isDeliver, HttpServletResponse response) {
  102 + trackDownService.Export(buildStart, buildEnd, checkStart, checkEnd, fmStart, fmEnd, key,
  103 + page, limit, getUserId(request), type, check, checkup, pregnantBuild, followupStatus, isDeliver, response);
  104 + }
  105 +
  106 +
95 107 @ResponseBody
96 108 @RequestMapping(method = RequestMethod.POST)
97 109 @TokenRequired
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java View file @ da45ca1
... ... @@ -1025,7 +1025,6 @@
1025 1025 System.out.println(System.currentTimeMillis());
1026 1026 start = System.currentTimeMillis();
1027 1027 for (TrackDownRecord track : trackDownRecord) {
1028   -
1029 1028 System.out.println("id:" + track.getId());
1030 1029 trackDown.setAppointmentDate(track.getCreated());
1031 1030 trackDown.setStop("0");
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/ITrackDownService.java View file @ da45ca1
... ... @@ -17,7 +17,12 @@
17 17 BaseObjectResponse list(String provinceId, String cityId, String areaId, String streetId, String key, Integer trackType, Integer page, Integer limit, Integer userId);
18 18  
19 19 BaseObjectResponse all(Date buildStart, Date buildEnd, Date checkStart, Date checkEnd, Date fmStart,
20   - Date fmEnd, String key, Integer page, Integer limit, Integer userId, Integer type, Integer check, String checkup, String pregnantBuild, Integer followupStatus, Boolean isDeliver);
  20 + Date fmEnd, String key, Integer page, Integer limit, Integer userId, Integer type,
  21 + Integer check, String checkup, String pregnantBuild, Integer followupStatus, Boolean isDeliver);
  22 +
  23 + void Export(Date buildStart, Date buildEnd, Date checkStart, Date checkEnd, Date fmStart, Date fmEnd, String key,
  24 + Integer page, Integer limit, Integer userId, Integer type, Integer check, String checkup, String pregnantBuild,
  25 + Integer followupStatus, Boolean isDeliver, HttpServletResponse response);
21 26  
22 27 BaseObjectResponse info(String patientId, Integer trackType, Integer buildType);
23 28  
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TrackDownServiceImpl.java View file @ da45ca1
... ... @@ -72,7 +72,8 @@
72 72 */
73 73 @Override
74 74 public BaseObjectResponse all(Date buildStart, Date buildEnd, Date checkStart, Date checkEnd, Date fmStart, Date fmEnd, String key,
75   - Integer page, Integer limit, Integer userId, Integer type, Integer check, String checkup, String pregnantBuild, Integer followupStatus, Boolean isDeliver) {
  75 + Integer page, Integer limit, Integer userId, Integer type, Integer check, String checkup, String pregnantBuild,
  76 + Integer followupStatus, Boolean isDeliver) {
76 77 String hospitalId = autoMatchFacade.getHospitalId(userId);
77 78 List<Map<String, Object>> restList = new ArrayList<>();
78 79 Integer archiveModelCount = 0;
... ... @@ -165,6 +166,66 @@
165 166 return RespBuilder.buildSuccess("tabList", new PageResult(archiveModelCount, page, limit, restList));
166 167 }
167 168  
  169 + @Override
  170 + public void Export(Date buildStart, Date buildEnd, Date checkStart, Date checkEnd, Date fmStart, Date fmEnd, String key,
  171 + Integer page, Integer limit, Integer userId, Integer type, Integer check, String checkup, String pregnantBuild,
  172 + Integer followupStatus, Boolean isDeliver, HttpServletResponse response) {
  173 + String hospitalId = autoMatchFacade.getHospitalId(userId);
  174 + List<Map<String, Object>> restList = new ArrayList<>();
  175 + Integer archiveModelCount = 0;
  176 + if (type == 1) {//查询妇女建档为主数据
  177 + //查询条件
  178 + ResidentsArchiveQuery query = new ResidentsArchiveQuery();
  179 + query.setLimit(limit);
  180 + query.setPage(page);
  181 + query.setNeed("1");
  182 + query.setYn(YnEnums.YES.getId());
  183 + query.setQueryNo(key);
  184 + query.setHospitalId(hospitalId);
  185 + //只查询女性
  186 + query.setSex(SystemConfig.WOMAN_ID);
  187 + query.setStartBuildDay(buildStart);
  188 + query.setEndBuildDay(buildEnd);
  189 + query.setCheckup(checkup);
  190 + query.setPregnantBuild(pregnantBuild);
  191 + query.setFollowupStatus(followupStatus);
  192 + //妇女建档主数据
  193 + List<ResidentsArchiveModel> modelList = residentsArchiveService.queryResident(query);
  194 + restList = getResidentMainData(modelList);
  195 + this.surveyExport(restList, response);
  196 +
  197 + } else {//孕妇建档主数据
  198 + PatientsQuery patientsQuery = new PatientsQuery();
  199 + patientsQuery.setBookbuildingDateStart(checkStart);
  200 + patientsQuery.setBookbuildingDateEnd(checkEnd);
  201 + patientsQuery.setFmDateStart(fmStart);
  202 + patientsQuery.setFmDateEnd(fmEnd);
  203 + patientsQuery.setTypeList(Arrays.asList(1, 3));
  204 + patientsQuery.setYn(YnEnums.YES.getId());
  205 + patientsQuery.setNeed("need");
  206 + patientsQuery.setLimit(limit);
  207 + patientsQuery.setPage(page);
  208 + patientsQuery.setHospitalId(hospitalId);
  209 + patientsQuery.setQueryNo(key);
  210 + patientsQuery.setFollowupStatus(followupStatus);
  211 + patientsQuery.setDeliver(isDeliver);
  212 +
  213 + List<Patients> patientsList = patientsService.queryPatient(patientsQuery);
  214 + StopWatch stopWatch = new StopWatch("孕妇建档主数据");
  215 + //优化前
  216 + // stopWatch.start("孕妇建档优化前");
  217 + // restList = getPatientMainData(patientsList);
  218 + // stopWatch.stop();
  219 + // System.out.println(stopWatch.toString());
  220 + //优化后
  221 + stopWatch.start("孕妇建档优化后");
  222 + restList = dispPatient(patientsList, hospitalId);
  223 + this.surveyExport(restList, response);
  224 + }
  225 +
  226 +
  227 + }
  228 +
168 229 private List<Map<String, Object>> dispResidentMainData(List<ResidentsArchiveModel> residentsArchiveModels, String hospitalId) {
169 230 List<Map<String, Object>> archiveModelList = new ArrayList<>();
170 231  
... ... @@ -1277,6 +1338,84 @@
1277 1338 }
1278 1339 }
1279 1340  
  1341 + ResponseUtil.responseExcel(cnames, results, response);
  1342 + }
  1343 +
  1344 + public void surveyExport(List<Map<String, Object>> datas, HttpServletResponse response) {
  1345 + Map<String, String> cnames = new LinkedHashMap<>();
  1346 + cnames.put("id", "#");
  1347 + cnames.put("username", "姓名");
  1348 + cnames.put("age", "年龄");
  1349 + cnames.put("phone", "联系电话");
  1350 + cnames.put("bookbuild", "孕期建档");
  1351 + cnames.put("bookbuildDate", "孕期建档日期");
  1352 + cnames.put("check", "婚检");
  1353 + cnames.put("cqsc", "产前筛查");
  1354 + cnames.put("cqzd", "产前诊断");
  1355 + cnames.put("fm", "是否分娩");
  1356 + cnames.put("resident", "妇女建档");
  1357 + cnames.put("residentDate", "妇女建档日期");
  1358 + cnames.put("yjcount", "产检次数");
  1359 + List<Map<String, Object>> results = new ArrayList<>();
  1360 + int i = 0;
  1361 + if (CollectionUtils.isNotEmpty(datas)) {
  1362 + for (Map<String, Object> data : datas) {
  1363 + Map<String, Object> result = new LinkedHashMap<>();
  1364 + result.put("id", ++i);
  1365 + result.put("username", data.get("username"));
  1366 + result.put("age", data.get("age"));
  1367 + result.put("phone", data.get("phone"));
  1368 + if ((int) (data.get("bookbuild")) == 1) {
  1369 + result.put("bookbuild", "√");
  1370 + } else if ((int) (data.get("bookbuild")) == 2) {
  1371 + result.put("bookbuild", "×");
  1372 + } else {
  1373 + result.put("bookbuild", "--");
  1374 + }
  1375 + result.put("bookbuildDate", data.get("bookbuildDate"));
  1376 +
  1377 + if ((int) (data.get("check")) == 1) {
  1378 + result.put("check", "√");
  1379 + } else if ((int) (data.get("check")) == 2) {
  1380 + result.put("check", "×");
  1381 + } else {
  1382 + result.put("check", "--");
  1383 + }
  1384 + if ((int) data.get("cqsc") == 1) {
  1385 + result.put("cqsc", "√");
  1386 + } else if ((int) data.get("cqsc") == 2) {
  1387 + result.put("cqsc", "×");
  1388 + } else {
  1389 + result.put("cqsc", "--");
  1390 + }
  1391 +
  1392 + if ((int) data.get("cqzd") == 1) {
  1393 + result.put("cqzd", "√");
  1394 + } else if ((int) data.get("cqzd") == 2) {
  1395 + result.put("cqzd", "×");
  1396 + } else {
  1397 + result.put("cqzd", "--");
  1398 + }
  1399 + if ((int) data.get("fm") == 1) {
  1400 + result.put("fm", "√");
  1401 + } else if ((int) data.get("fm") == 2) {
  1402 + result.put("fm", "×");
  1403 + } else {
  1404 + result.put("fm", "--");
  1405 + }
  1406 + if ((int) data.get("resident") == 1) {
  1407 + result.put("resident", "√");
  1408 + } else if ((int) data.get("resident") == 2) {
  1409 + result.put("resident", "×");
  1410 + } else {
  1411 + result.put("resident", "--");
  1412 + }
  1413 +
  1414 + result.put("residentDate", data.get("residentDate"));
  1415 + result.put("yjcount", data.get("yjcount"));
  1416 + results.add(result);
  1417 + }
  1418 + }
1280 1419 ResponseUtil.responseExcel(cnames, results, response);
1281 1420 }
1282 1421