From 3c80f195c8b0eb5a479257b7883970c73b69c6ea Mon Sep 17 00:00:00 2001 From: "litao@lymsh.com" Date: Thu, 11 Jan 2018 13:31:20 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=BD=E8=AE=BF=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/lyms/platform/pojo/TrackDown.java | 13 +++++ .../web/controller/TrackDownController.java | 6 ++ .../web/service/impl/TrackDownServiceImpl.java | 64 +++++++++++++++++++--- .../lyms/platform/operate/web/utils/MongoUtil.java | 10 ++++ 4 files changed, 84 insertions(+), 9 deletions(-) diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/TrackDown.java b/platform-dal/src/main/java/com/lyms/platform/pojo/TrackDown.java index 3cc15bd..ab79b3a 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/TrackDown.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/TrackDown.java @@ -58,6 +58,11 @@ public class TrackDown extends BaseModel { private Date reservatDate; /** + * 追访结果 + */ + private String result; + + /** * 追访转接 */ private Integer trackDownTransfer; @@ -194,4 +199,12 @@ public class TrackDown extends BaseModel { public void setTrackDownDateType(Integer trackDownDateType) { this.trackDownDateType = trackDownDateType; } + + public String getResult() { + return result; + } + + public void setResult(String result) { + this.result = result; + } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TrackDownController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TrackDownController.java index c7c9b19..7bec2ff 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TrackDownController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TrackDownController.java @@ -23,6 +23,12 @@ public class TrackDownController extends BaseController { private ITrackDownService trackDownService; @ResponseBody + @RequestMapping(value = "/init", method = RequestMethod.GET) + public BaseResponse init() { + return trackDownService.init(); + } + + @ResponseBody @TokenRequired @RequestMapping(value = "/all", method = RequestMethod.GET) public BaseResponse all(Date buildStart, Date buildEnd, Date checkStart, Date checkEnd, Date fmStart, Date fmEnd, String key, @RequestParam Integer page, @RequestParam Integer limit, HttpServletRequest request) { diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TrackDownServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TrackDownServiceImpl.java index 980c0b2..83bedd0 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TrackDownServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TrackDownServiceImpl.java @@ -1,19 +1,18 @@ package com.lyms.platform.operate.web.service.impl; import com.lyms.platform.biz.service.TrackDownService; -import com.lyms.platform.common.enums.FmTypeEnums; -import com.lyms.platform.common.enums.TrackDownDateEnums; -import com.lyms.platform.common.enums.TrackDownTransferEnums; -import com.lyms.platform.common.enums.YnEnums; +import com.lyms.platform.common.enums.*; import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.common.result.PageResult; import com.lyms.platform.common.result.RespBuilder; import com.lyms.platform.common.utils.DateUtil; +import com.lyms.platform.common.utils.EnumUtil; import com.lyms.platform.common.utils.StringUtils; import com.lyms.platform.operate.web.facade.AutoMatchFacade; import com.lyms.platform.operate.web.service.ITrackDownService; import com.lyms.platform.operate.web.utils.CollectionUtils; import com.lyms.platform.operate.web.utils.MongoUtil; +import com.lyms.platform.permission.dao.master.CouponMapper; import com.lyms.platform.pojo.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort; @@ -39,6 +38,9 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS @Autowired private MongoUtil mongoUtil; + @Autowired + private CouponMapper couponMapper; + @Override public BaseResponse all(Date buildStart, Date buildEnd, Date checkStart, Date checkEnd, Date fmStart, Date fmEnd, String key, Integer page, Integer limit, Integer userId) { String hospitalId = autoMatchFacade.getHospitalId(userId); @@ -86,7 +88,6 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS temp.put("yj", yjCount > 0 ? 1 : isExitTrackDown(patient.getId(), TrackDownDateEnums.C)); temp.put("yjcount", yjCount); // 孕检次数 = 初诊 + 复诊 - // 产前筛查 有产晒记录>勾勾 没有: 有产前筛查追访并且流转至下一流程 勾勾 反之xx temp.put("cqsc", mongoTemplate.count(Query.query(Criteria.where("parentId").is(patient.getId()).and("yn").is(1)), AntExChuModel.class) > 0L ? 1 : isExitTrackDown(patient.getId(), TrackDownDateEnums.D)); @@ -190,8 +191,10 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS public BaseResponse list(String provinceId, String cityId, String areaId, String streetId, String key, Integer trackType, Integer page, Integer limit, Integer userId) { PageResult pageResult = new PageResult(); List> restList = new ArrayList<>(); - Criteria criteria = new Criteria(); - if(StringUtils.isNotEmpty(provinceId) || StringUtils.isNotEmpty(cityId) || StringUtils.isNotEmpty(areaId) || StringUtils.isNotEmpty(streetId) ) { + boolean flag = false; // 判断需不需要对patients进行查询 + Set parentIds = new HashSet<>(); + if(StringUtils.isNotEmpty(provinceId) || StringUtils.isNotEmpty(cityId) || StringUtils.isNotEmpty(areaId) || StringUtils.isNotEmpty(streetId) || StringUtils.isNotEmpty(key)) { + flag = true; Criteria patientCriteria = new Criteria(); if(StringUtils.isNotEmpty(provinceId)) { patientCriteria.and("provinceRegisterId").is(provinceId); @@ -205,7 +208,13 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS if(StringUtils.isNotEmpty(streetId)) { patientCriteria.and("streetRegisterId").is(streetId); } + if(StringUtils.isNotEmpty(key)) { + patientCriteria.orOperator(Criteria.where("phone").regex(key), Criteria.where("username").regex(key), Criteria.where("cardNo").is(key)); + } List patients = mongoTemplate.find(Query.query(patientCriteria.and("yn").is(1)), Patients.class); + for (Patients patient : patients) { + parentIds.add(patient.getId()); + } } if(trackType == TrackDownDateEnums.A.getId()) { @@ -246,6 +255,29 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS temp.put("yyTime", trackDown == null ? "--" : DateUtil.getyyyy_MM_dd(trackDown.getReservatDate())); restList.add(temp); } + } else { + Criteria trackDowncCriteria = new Criteria(); + if(flag) { + trackDowncCriteria.and("parentId").in(parentIds); + } + trackDowncCriteria.and("yn").is(1).and("trackDownTransfer").in(Arrays.asList(2, 3)); + PageResult mongoPage = findMongoPage(TrackDown.class, Query.query(trackDowncCriteria).with(new Sort(Sort.Direction.DESC, "created")), page, limit); + List trackDowns = (List) mongoPage.getGrid(); + for (TrackDown trackDown : trackDowns) { + Map temp = new HashMap<>(); + temp.put("id", trackDown.getId()); + temp.put("parentId", trackDown.getParentId()); + Patients patients = mongoTemplate.findById(trackDown.getParentId(), Patients.class); + if(patients != null) { + temp.put("username", patients.getUsername()); + temp.put("cardNo", StringUtils.encryCardNo(patients.getCardNo())); + temp.put("residenceAddress", mongoUtil.findAddressName(patients.getProvinceId(), patients.getCityId(), patients.getAreaId(), patients.getStreetId())); /** 居住地 */ + temp.put("phone", StringUtils.encryPhone(patients.getPhone())); + } + temp.put("end", trackDown.getResult()); // 婚检追访结果 + temp.put("trackDownTime", trackDown == null ? "--" : DateUtil.getyyyy_MM_dd(trackDown.getTrackDownDate())); // 追访时间 + temp.put("yyTime", trackDown == null ? "--" : DateUtil.getyyyy_MM_dd(trackDown.getReservatDate())); // 预约时间 + } } pageResult.setGrid(restList); return RespBuilder.buildSuccess(pageResult); @@ -253,12 +285,26 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS @Override public BaseResponse info(String patientId, Integer trackType) { - return null; + List> tabList = new ArrayList<>(); + List trackDowns = mongoTemplate.find(Query.query(Criteria.where("parentId").is(patientId).and("trackType").is(trackType)), TrackDown.class); + for (TrackDown trackDown : trackDowns) { + Map temp = new HashMap<>(); + temp.put("trackDownDate", DateUtil.getyyyy_MM_dd_hms(trackDown.getTrackDownDate())); + temp.put("trackDownUser", couponMapper.findUserName(trackDown.getTrackDownUserId())); + temp.put("trackDownType", TrackDownTypeEnums.getName(trackDown.getTrackDownDateType())); + temp.put("result", StringUtils.isEmpty(trackDown.getResult()) ? "--" : trackDown.getResult()); + temp.put("reservatDate", DateUtil.getyyyy_MM_dd(trackDown.getReservatDate())); + tabList.add(temp); + } + return RespBuilder.buildSuccess(tabList); } @Override public BaseResponse init() { - return null; + List> trackTypes = EnumUtil.toJson(TrackDownTypeEnums.class); // 追访方式 + List> dataTypes = EnumUtil.toJson(TrackDownDateEnums.class); // 追访相关数据类型 + List> transfers = EnumUtil.toJson(TrackDownTransferEnums.class); // 追访转接 + return RespBuilder.buildSuccess("trackTypes", trackTypes, "dataTypes", dataTypes, "transfers", transfers); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/MongoUtil.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/MongoUtil.java index 2c73a38..9f89240 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/MongoUtil.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/MongoUtil.java @@ -330,6 +330,16 @@ public class MongoUtil { return null; } + public String findPatientName(String id) { + if(StringUtils.isNotEmpty(id)) { + Patients patients = mongoTemplate.findById(id, Patients.class); + if(patients != null) { + return patients.getUsername(); + } + } + return null; + } + public String findAddressName(Object ... ids) { StringBuilder sb = new StringBuilder(); if(ids != null && ids.length > 0) { -- 1.8.3.1