Commit e533a681d6ae661f5deecc4d968aa67e22e2f0ed
1 parent
af1fbe4aaf
Exists in
master
and in
6 other branches
追访相关
Showing 4 changed files with 163 additions and 24 deletions
- platform-common/src/main/java/com/lyms/platform/common/enums/FmTypeEnums.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TrackDownController.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/ITrackDownService.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TrackDownServiceImpl.java
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 |