Commit e533a681d6ae661f5deecc4d968aa67e22e2f0ed

Authored by litao@lymsh.com
1 parent af1fbe4aaf

追访相关

Showing 4 changed files with 163 additions and 24 deletions

platform-common/src/main/java/com/lyms/platform/common/enums/FmTypeEnums.java View file @ e533a68
... ... @@ -41,6 +41,16 @@
41 41 return null;
42 42 }
43 43  
  44 + public static String getFmNameById2(String id)
  45 + {
  46 + for (FmTypeEnums e : FmTypeEnums.values()) {
  47 + if (e.getId().equals(id))
  48 + {
  49 + return e.getName();
  50 + }
  51 + }
  52 + return "--";
  53 + }
44 54  
45 55 public static String getFmScNameById(String id)
46 56 {
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TrackDownController.java View file @ e533a68
... ... @@ -10,6 +10,7 @@
10 10 import org.springframework.web.bind.annotation.*;
11 11  
12 12 import javax.servlet.http.HttpServletRequest;
  13 +import javax.servlet.http.HttpServletResponse;
13 14 import java.util.Date;
14 15  
15 16 /**
... ... @@ -54,6 +55,12 @@
54 55 @RequestMapping(method = RequestMethod.GET)
55 56 public BaseResponse list(String provinceId, String cityId, String areaId, String streetId, String key, @RequestParam Integer trackType, @RequestParam Integer page, @RequestParam Integer limit, HttpServletRequest request) {
56 57 return trackDownService.list(provinceId, cityId, areaId, streetId, key, trackType, page, limit, getUserId(request));
  58 + }
  59 +
  60 + @TokenRequired
  61 + @RequestMapping(value = "/export", method = RequestMethod.GET)
  62 + public void export(String provinceId, String cityId, String areaId, String streetId, String key, @RequestParam Integer trackType, HttpServletRequest request, HttpServletResponse response) {
  63 + trackDownService.export(provinceId, cityId, areaId, streetId, key, trackType, getUserId(request), response);
57 64 }
58 65  
59 66 /**
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/ITrackDownService.java View file @ e533a68
1 1 package com.lyms.platform.operate.web.service;
2 2  
3   -import com.lyms.platform.common.result.BaseResponse;
  3 +import com.lyms.platform.common.result.BaseObjectResponse;
4 4 import com.lyms.platform.pojo.TrackDown;
5 5  
  6 +import javax.servlet.http.HttpServletResponse;
6 7 import java.util.Date;
7 8  
8 9 public interface ITrackDownService extends IBaseService {
9 10  
10   - BaseResponse add(Integer userId, TrackDown trackDown);
  11 + BaseObjectResponse add(Integer userId, TrackDown trackDown);
11 12  
12   - BaseResponse list(String provinceId, String cityId, String areaId, String streetId, String key, Integer trackType, Integer page, Integer limit, Integer userId);
  13 + BaseObjectResponse list(String provinceId, String cityId, String areaId, String streetId, String key, Integer trackType, Integer page, Integer limit, Integer userId);
13 14  
14   - BaseResponse all(Date buildStart, Date buildEnd, Date checkStart, Date checkEnd, Date fmStart, Date fmEnd, String key, Integer page, Integer limit, Integer userId);
  15 + BaseObjectResponse all(Date buildStart, Date buildEnd, Date checkStart, Date checkEnd, Date fmStart, Date fmEnd, String key, Integer page, Integer limit, Integer userId);
15 16  
16   - BaseResponse info(String patientId, Integer trackType);
  17 + BaseObjectResponse info(String patientId, Integer trackType);
17 18  
18   - BaseResponse init();
  19 + BaseObjectResponse init();
19 20  
20   - BaseResponse mother(String parentId, Integer userId);
  21 + BaseObjectResponse mother(String parentId, Integer userId);
  22 +
  23 + void export(String provinceId, String cityId, String areaId, String streetId, String key, Integer trackType, Integer userId, HttpServletResponse response);
21 24 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TrackDownServiceImpl.java View file @ e533a68
... ... @@ -2,7 +2,8 @@
2 2  
3 3 import com.lyms.platform.biz.service.TrackDownService;
4 4 import com.lyms.platform.common.enums.*;
5   -import com.lyms.platform.common.result.BaseResponse;
  5 +import com.lyms.platform.common.result.BaseObjectResponse;
  6 +import com.lyms.platform.common.result.BaseObjectResponse;
6 7 import com.lyms.platform.common.result.PageResult;
7 8 import com.lyms.platform.common.result.RespBuilder;
8 9 import com.lyms.platform.common.utils.DateUtil;
... ... @@ -12,6 +13,7 @@
12 13 import com.lyms.platform.operate.web.service.ITrackDownService;
13 14 import com.lyms.platform.operate.web.utils.CollectionUtils;
14 15 import com.lyms.platform.operate.web.utils.MongoUtil;
  16 +import com.lyms.platform.operate.web.utils.ResponseUtil;
15 17 import com.lyms.platform.permission.dao.master.CouponMapper;
16 18 import com.lyms.platform.pojo.*;
17 19 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -21,6 +23,7 @@
21 23 import org.springframework.data.mongodb.core.query.Query;
22 24 import org.springframework.stereotype.Service;
23 25  
  26 +import javax.servlet.http.HttpServletResponse;
24 27 import java.util.*;
25 28  
26 29 @Service
... ... @@ -42,7 +45,7 @@
42 45 private CouponMapper couponMapper;
43 46  
44 47 @Override
45   - public BaseResponse all(Date buildStart, Date buildEnd, Date checkStart, Date checkEnd, Date fmStart, Date fmEnd, String key, Integer page, Integer limit, Integer userId) {
  48 + public BaseObjectResponse all(Date buildStart, Date buildEnd, Date checkStart, Date checkEnd, Date fmStart, Date fmEnd, String key, Integer page, Integer limit, Integer userId) {
46 49 String hospitalId = autoMatchFacade.getHospitalId(userId);
47 50 Criteria patientCriteria = new Criteria();
48 51 Criteria residentCriteria = new Criteria();
... ... @@ -173,7 +176,7 @@
173 176 return antexcCount + antexCount;
174 177 }
175 178  
176   - public BaseResponse add(Integer userId, TrackDown trackDown) {
  179 + public BaseObjectResponse add(Integer userId, TrackDown trackDown) {
177 180 String hospitalId = autoMatchFacade.getHospitalId(userId);
178 181 if(StringUtils.isNotEmpty(trackDown.getResidentsArchiveId())) { // 怀孕建档是lyms_resident
179 182 ResidentsArchiveModel archiveModel = mongoTemplate.findById(trackDown.getResidentsArchiveId(), ResidentsArchiveModel.class);
... ... @@ -198,7 +201,7 @@
198 201 }
199 202  
200 203 @Override
201   - public BaseResponse list(String provinceId, String cityId, String areaId, String streetId, String key, Integer trackType, Integer page, Integer limit, Integer userId) {
  204 + public BaseObjectResponse list(String provinceId, String cityId, String areaId, String streetId, String key, Integer trackType, Integer page, Integer limit, Integer userId) {
202 205 PageResult pageResult = null;
203 206 String hospitalId = autoMatchFacade.getHospitalId(userId);
204 207 Criteria patientCriteria = new Criteria();
205 208  
... ... @@ -281,9 +284,14 @@
281 284 temp.put("phone", StringUtils.encryPhone(patient.getPhone()));
282 285 temp.put("id", patient.getId());
283 286 temp.put("dueDate", DateUtil.getyyyy_MM_dd(patient.getDueDate()));
  287 + temp.put("week", DateUtil.getWeekDesc(patient.getLastMenses(), new Date())); /** 孕周 */
  288 + temp.put("cjDate", ""); /** 产检日期 */
  289 + temp.put("yycjDate", ""); /** 预约产检日期 */
  290 + temp.put("cjzfDate", ""); /** 产检追访时间 */
284 291 TrackDown trackDown = mongoTemplate.findOne(Query.query(Criteria.where("yn").is(1).and("parentId").is(patient.getId())).with(new Sort(Sort.Direction.DESC, "created")), TrackDown.class);
285 292 if(trackDown != null) {
286 293 temp.put("result", StringUtils.isEmpty(trackDown.getResult()) ? "--" : trackDown.getResult()); // 婚检追访结果
  294 + temp.put("result", getResultByType(trackType, patient.getId(), new Sort(Sort.Direction.DESC, "created"))); // 婚检追访结果
287 295 temp.put("trackDownTime", trackDown == null ? "--" : DateUtil.getyyyy_MM_dd(trackDown.getTrackDownDate())); // 追访时间
288 296 temp.put("yyTime", trackDown == null ? "--" : DateUtil.getyyyy_MM_dd(trackDown.getReservatDate())); // 预约时间
289 297 } else {
... ... @@ -298,6 +306,13 @@
298 306 /** 初次复查日期 */
299 307 TrackDown t = mongoTemplate.findOne(Query.query(Criteria.where("yn").is(1).and("parentId").is(patient.getId()).and("trackDownDateType").is(7)).with(new Sort(Sort.Direction.ASC, "created")), TrackDown.class);
300 308 temp.put("ccfcDate", t == null ? "--" : DateUtil.getyyyy_MM_dd(t.getCreated()));
  309 + /** 预约复查日期 */
  310 + TrackDown t2 = mongoTemplate.findOne(Query.query(Criteria.where("yn").is(1).and("parentId").is(patient.getId()).and("trackDownDateType").is(7)).with(new Sort(Sort.Direction.DESC, "created")), TrackDown.class);
  311 + temp.put("yyfcDate ", t2 == null ? "--" : DateUtil.getyyyy_MM_dd(t2.getReservatDate()));
  312 + /** 生产方式 */
  313 + temp.put("scType", FmTypeEnums.getFmNameById2(patient.getFmType()));
  314 +
  315 + } else if(trackType == TrackDownDateEnums.C.getId()) {
301 316 }
302 317 restList.add(temp);
303 318 }
304 319  
... ... @@ -312,8 +327,17 @@
312 327 return RespBuilder.buildSuccess(pageResult);
313 328 }
314 329  
  330 + private String getResultByType(Integer type, String parentId, Sort sort) {
  331 + Query query = Query.query(Criteria.where("yn").is(1).and("parentId").is(parentId).and("trackDownDateType").is(type));
  332 + if(sort != null) {
  333 + query.with(sort);
  334 + }
  335 + TrackDown t = mongoTemplate.findOne(query, TrackDown.class);
  336 + return (t == null || StringUtils.isEmpty(t.getResult()) ? "--" : t.getResult());
  337 + }
  338 +
315 339 @Override
316   - public BaseResponse info(String patientId, Integer trackType) {
  340 + public BaseObjectResponse info(String patientId, Integer trackType) {
317 341 List<Map<String, Object>> tabList = new ArrayList<>();
318 342 if(trackType == 0) {
319 343 List<TrackDown> trackDowns = mongoTemplate.find(Query.query(Criteria.where("parentId").is(patientId).and("yn").is(1)).with(new Sort(Sort.Direction.DESC, "created")), TrackDown.class);
... ... @@ -348,7 +372,6 @@
348 372 chfcList.add(temp);
349 373 }
350 374 }
351   - setTrackType();
352 375 return RespBuilder.buildSuccess("hqjcList", hqjcList, "hyjdList", hyjdList, "cqjcList", cqjcList, "cqscList", cqscList, "zyfmList", zyfmList, "chfsList", chfsList, "chfcList", chfcList);
353 376 }
354 377 List<TrackDown> trackDowns = mongoTemplate.find(Query.query(Criteria.where("parentId").is(patientId).and("trackDownDateType").is(trackType).and("yn").is(1)), TrackDown.class);
355 378  
... ... @@ -364,17 +387,8 @@
364 387 return RespBuilder.buildSuccess(tabList);
365 388 }
366 389  
367   - private void setTrackType(List<Map<String, Object>> ... datas) {
368   - for (List<Map<String, Object>> data : datas) {
369   -
370   - for (Map<String, Object> map : data) {
371   -
372   - }
373   - }
374   - }
375   -
376 390 @Override
377   - public BaseResponse init() {
  391 + public BaseObjectResponse init() {
378 392 List<Map<String, Object>> trackTypes = EnumUtil.toJson(TrackDownTypeEnums.class); // 追访方式
379 393 List<Map<String, Object>> dataTypes = EnumUtil.toJson(TrackDownDateEnums.class); // 追访相关数据类型
380 394 List<Map<String, Object>> transfers = EnumUtil.toJson(TrackDownTransferEnums.class); // 追访转接
... ... @@ -382,7 +396,7 @@
382 396 }
383 397  
384 398 @Override
385   - public BaseResponse mother(String parentId, Integer userId) {
  399 + public BaseObjectResponse mother(String parentId, Integer userId) {
386 400 Patients patients = mongoTemplate.findById(parentId, Patients.class);
387 401 String hospitalId = autoMatchFacade.getHospitalId(userId);
388 402 Map<String, Object> map = new HashMap<>();
... ... @@ -394,6 +408,7 @@
394 408 map.put("week", DateUtil.getWeekDesc(patients.getLastMenses(), new Date()));
395 409 map.put("dueDate", DateUtil.getyyyy_MM_dd(patients.getDueDate())); /** 预产期 */
396 410 map.put("trackCount", mongoTemplate.count(Query.query(Criteria.where("parentId").is(parentId).and("trackDownDateType").is(TrackDownDateEnums.F.getId()).and("yn").is(1)), TrackDown.class)); /** 访视次数 */
  411 + map.put("fmDate", DateUtil.getyyyy_MM_dd(patients.getFmDate()));
397 412  
398 413 TrackDown tc = mongoTemplate.findOne(Query.query(Criteria.where("parentId").is(parentId).and("trackDownDateType").is(TrackDownDateEnums.E.getId()).and("yn").is(1)).with(new Sort(Sort.Direction.DESC, "created")), TrackDown.class);
399 414 if(tc != null) {
... ... @@ -419,6 +434,110 @@
419 434  
420 435 }
421 436 return RespBuilder.buildSuccess(map);
  437 + }
  438 +
  439 + @Override
  440 + public void export(String provinceId, String cityId, String areaId, String streetId, String key, Integer trackType, Integer userId, HttpServletResponse response) {
  441 + BaseObjectResponse rest = list(provinceId, cityId, areaId, streetId, key, trackType, 1, 20, userId);
  442 + PageResult pageResult = (PageResult) rest.getData();
  443 + List<Map<String, Object>> datas = (List<Map<String, Object>>) pageResult.getGrid();
  444 + Map<String, String> cnames = new LinkedHashMap<>();
  445 + cnames.put("id", "#");
  446 + cnames.put("username", "姓名");
  447 + cnames.put("age", "年龄");
  448 + cnames.put("cardNo", "证件号");
  449 + cnames.put("residenceAddress", "居住地址");
  450 + cnames.put("phone", "联系方式");
  451 + if (trackType == 1) { // 婚前检查
  452 + cnames.put("result", "婚检追访结果");
  453 + cnames.put("trackDownTime", "婚检追访时间");
  454 + cnames.put("yyTime", "预约时间");
  455 + } else if (trackType == 2) { // 怀孕建档
  456 + cnames.put("result", "追访结果");
  457 + cnames.put("trackDownTime", "建档追访时间");
  458 + cnames.put("yyTime", "预约时间");
  459 + } else if (trackType == 3) { // 产前检查
  460 + cnames.put("week", "孕周");
  461 + cnames.put("checkCount", "本院产检次数");
  462 + cnames.put("yyTime", "产检日期");
  463 + cnames.put("yycjDate", "预约产检日期");
  464 + cnames.put("cjzfDate", "产检追访时间");
  465 + cnames.put("result", "产检追访结果");
  466 + } else if (trackType == 4) { // 产前筛查
  467 + cnames.put("week", "孕周");
  468 + cnames.put("yycsDate", "预约产筛日期");
  469 + cnames.put("zfDate", "追访时间");
  470 + cnames.put("result", "追访结果");
  471 + } else if (trackType == 5) { // 分娩住院
  472 + cnames.put("dueDate", "预产期");
  473 + cnames.put("yyzyDate", "预约住院时间");
  474 + cnames.put("zyzfDate", "住院追访时间");
  475 + cnames.put("result", "追访结果");
  476 + } else if (trackType == 6) { // 产后访视
  477 + cnames.put("fmDate", "分娩时间");
  478 + cnames.put("yyTime", "访视预约时间");
  479 + cnames.put("trackCount", "访视次数");
  480 + cnames.put("trackDownTime", "访视追访时间");
  481 + } else if (trackType == 7) { // 产后复查
  482 + cnames.put("fmDate", "分娩时间");
  483 + cnames.put("scType", "生产方式");
  484 + cnames.put("chfcCount", "复查次数");
  485 + cnames.put("ccfcDate", "初次复查日期");
  486 + cnames.put("yyfcDate", "预约复查日期");
  487 + cnames.put("result", "追访结果");
  488 + }
  489 +
  490 + List<Map<String,Object>> results = new ArrayList<>();
  491 + if(org.apache.commons.collections.CollectionUtils.isNotEmpty(datas)) {
  492 + int i = 0;
  493 + for (Map<String, Object> data : datas) {
  494 + Map<String, Object> result = new LinkedHashMap<>();
  495 + result.put("id", ++i);
  496 + result.put("username", data.get("username"));
  497 + result.put("age", data.get("age"));
  498 + result.put("cardNo", data.get("cardNo"));
  499 + result.put("residenceAddress", data.get("residenceAddress"));
  500 + result.put("phone", data.get("phone"));
  501 + if (trackType == 1 || trackType == 2) {
  502 + result.put("result", data.get("result"));
  503 + result.put("trackDownTime", data.get("trackDownTime"));
  504 + result.put("yyTime", data.get("yyTime"));
  505 + } else if (trackType == 3) { // 产前检查
  506 + result.put("week", data.get("week"));
  507 + result.put("checkCount", data.get("checkCount"));
  508 + result.put("yyTime", data.get("yyTime"));
  509 + result.put("yycjDate", data.get("yycjDate"));
  510 + result.put("cjzfDate", data.get("cjzfDate"));
  511 + result.put("result", data.get("result"));
  512 + } else if (trackType == 4) { // 产前筛查
  513 + result.put("week", data.get("week"));
  514 + result.put("yycsDate", data.get("yycsDate"));
  515 + result.put("zfDate", data.get("zfDate"));
  516 + result.put("result", data.get("result"));
  517 + } else if (trackType == 5) { // 分娩住院
  518 + result.put("dueDate", data.get("dueDate"));
  519 + result.put("yyzyDate", data.get("yyzyDate"));
  520 + result.put("zyzfDate", data.get("zyzfDate"));
  521 + result.put("result", data.get("result"));
  522 + } else if (trackType == 6) { // 产后访视
  523 + result.put("fmDate", data.get("fmDate"));
  524 + result.put("yyTime", data.get("yyTime"));
  525 + result.put("trackCount", data.get("trackCount"));
  526 + result.put("trackDownTime", data.get("trackDownTime"));
  527 + result.put("result", data.get("result"));
  528 + } else if (trackType == 7) { // 产后复查
  529 + result.put("fmDate", data.get("fmDate"));
  530 + result.put("scType", data.get("scType"));
  531 + result.put("chfcCount", data.get("chfcCount"));
  532 + result.put("ccfcDate", data.get("ccfcDate"));
  533 + result.put("yyfcDate", data.get("yyfcDate"));
  534 + result.put("result", data.get("result"));
  535 + }
  536 + results.add(result);
  537 + }
  538 + }
  539 +
  540 + ResponseUtil.responseExcel(cnames, results, response);
422 541 }
423 542  
424 543