Commit e533a681d6ae661f5deecc4d968aa67e22e2f0ed
1 parent
af1fbe4aaf
Exists in
master
and in
1 other branch
追访相关
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 |