Commit 3c80f195c8b0eb5a479257b7883970c73b69c6ea

Authored by litao@lymsh.com
1 parent b42af41404

追访相关

Showing 4 changed files with 84 additions and 9 deletions

platform-dal/src/main/java/com/lyms/platform/pojo/TrackDown.java View file @ 3c80f19
... ... @@ -58,6 +58,11 @@
58 58 private Date reservatDate;
59 59  
60 60 /**
  61 + * 追访结果
  62 + */
  63 + private String result;
  64 +
  65 + /**
61 66 * 追访转接
62 67 */
63 68 private Integer trackDownTransfer;
... ... @@ -193,6 +198,14 @@
193 198  
194 199 public void setTrackDownDateType(Integer trackDownDateType) {
195 200 this.trackDownDateType = trackDownDateType;
  201 + }
  202 +
  203 + public String getResult() {
  204 + return result;
  205 + }
  206 +
  207 + public void setResult(String result) {
  208 + this.result = result;
196 209 }
197 210 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TrackDownController.java View file @ 3c80f19
... ... @@ -23,6 +23,12 @@
23 23 private ITrackDownService trackDownService;
24 24  
25 25 @ResponseBody
  26 + @RequestMapping(value = "/init", method = RequestMethod.GET)
  27 + public BaseResponse init() {
  28 + return trackDownService.init();
  29 + }
  30 +
  31 + @ResponseBody
26 32 @TokenRequired
27 33 @RequestMapping(value = "/all", method = RequestMethod.GET)
28 34 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) {
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TrackDownServiceImpl.java View file @ 3c80f19
1 1 package com.lyms.platform.operate.web.service.impl;
2 2  
3 3 import com.lyms.platform.biz.service.TrackDownService;
4   -import com.lyms.platform.common.enums.FmTypeEnums;
5   -import com.lyms.platform.common.enums.TrackDownDateEnums;
6   -import com.lyms.platform.common.enums.TrackDownTransferEnums;
7   -import com.lyms.platform.common.enums.YnEnums;
  4 +import com.lyms.platform.common.enums.*;
8 5 import com.lyms.platform.common.result.BaseResponse;
9 6 import com.lyms.platform.common.result.PageResult;
10 7 import com.lyms.platform.common.result.RespBuilder;
11 8 import com.lyms.platform.common.utils.DateUtil;
  9 +import com.lyms.platform.common.utils.EnumUtil;
12 10 import com.lyms.platform.common.utils.StringUtils;
13 11 import com.lyms.platform.operate.web.facade.AutoMatchFacade;
14 12 import com.lyms.platform.operate.web.service.ITrackDownService;
15 13 import com.lyms.platform.operate.web.utils.CollectionUtils;
16 14 import com.lyms.platform.operate.web.utils.MongoUtil;
  15 +import com.lyms.platform.permission.dao.master.CouponMapper;
17 16 import com.lyms.platform.pojo.*;
18 17 import org.springframework.beans.factory.annotation.Autowired;
19 18 import org.springframework.data.domain.Sort;
... ... @@ -39,6 +38,9 @@
39 38 @Autowired
40 39 private MongoUtil mongoUtil;
41 40  
  41 + @Autowired
  42 + private CouponMapper couponMapper;
  43 +
42 44 @Override
43 45 public BaseResponse all(Date buildStart, Date buildEnd, Date checkStart, Date checkEnd, Date fmStart, Date fmEnd, String key, Integer page, Integer limit, Integer userId) {
44 46 String hospitalId = autoMatchFacade.getHospitalId(userId);
... ... @@ -86,7 +88,6 @@
86 88 temp.put("yj", yjCount > 0 ? 1 : isExitTrackDown(patient.getId(), TrackDownDateEnums.C));
87 89 temp.put("yjcount", yjCount); // 孕检次数 = 初诊 + 复诊
88 90  
89   -
90 91 // 产前筛查 有产晒记录>勾勾 没有: 有产前筛查追访并且流转至下一流程 勾勾 反之xx
91 92 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));
92 93  
... ... @@ -190,8 +191,10 @@
190 191 public BaseResponse list(String provinceId, String cityId, String areaId, String streetId, String key, Integer trackType, Integer page, Integer limit, Integer userId) {
191 192 PageResult pageResult = new PageResult();
192 193 List<Map<String, Object>> restList = new ArrayList<>();
193   - Criteria criteria = new Criteria();
194   - if(StringUtils.isNotEmpty(provinceId) || StringUtils.isNotEmpty(cityId) || StringUtils.isNotEmpty(areaId) || StringUtils.isNotEmpty(streetId) ) {
  194 + boolean flag = false; // 判断需不需要对patients进行查询
  195 + Set<String> parentIds = new HashSet<>();
  196 + if(StringUtils.isNotEmpty(provinceId) || StringUtils.isNotEmpty(cityId) || StringUtils.isNotEmpty(areaId) || StringUtils.isNotEmpty(streetId) || StringUtils.isNotEmpty(key)) {
  197 + flag = true;
195 198 Criteria patientCriteria = new Criteria();
196 199 if(StringUtils.isNotEmpty(provinceId)) {
197 200 patientCriteria.and("provinceRegisterId").is(provinceId);
198 201  
... ... @@ -205,7 +208,13 @@
205 208 if(StringUtils.isNotEmpty(streetId)) {
206 209 patientCriteria.and("streetRegisterId").is(streetId);
207 210 }
  211 + if(StringUtils.isNotEmpty(key)) {
  212 + patientCriteria.orOperator(Criteria.where("phone").regex(key), Criteria.where("username").regex(key), Criteria.where("cardNo").is(key));
  213 + }
208 214 List<Patients> patients = mongoTemplate.find(Query.query(patientCriteria.and("yn").is(1)), Patients.class);
  215 + for (Patients patient : patients) {
  216 + parentIds.add(patient.getId());
  217 + }
209 218 }
210 219  
211 220 if(trackType == TrackDownDateEnums.A.getId()) {
... ... @@ -246,6 +255,29 @@
246 255 temp.put("yyTime", trackDown == null ? "--" : DateUtil.getyyyy_MM_dd(trackDown.getReservatDate()));
247 256 restList.add(temp);
248 257 }
  258 + } else {
  259 + Criteria trackDowncCriteria = new Criteria();
  260 + if(flag) {
  261 + trackDowncCriteria.and("parentId").in(parentIds);
  262 + }
  263 + trackDowncCriteria.and("yn").is(1).and("trackDownTransfer").in(Arrays.asList(2, 3));
  264 + PageResult mongoPage = findMongoPage(TrackDown.class, Query.query(trackDowncCriteria).with(new Sort(Sort.Direction.DESC, "created")), page, limit);
  265 + List<TrackDown> trackDowns = (List<TrackDown>) mongoPage.getGrid();
  266 + for (TrackDown trackDown : trackDowns) {
  267 + Map<String, Object> temp = new HashMap<>();
  268 + temp.put("id", trackDown.getId());
  269 + temp.put("parentId", trackDown.getParentId());
  270 + Patients patients = mongoTemplate.findById(trackDown.getParentId(), Patients.class);
  271 + if(patients != null) {
  272 + temp.put("username", patients.getUsername());
  273 + temp.put("cardNo", StringUtils.encryCardNo(patients.getCardNo()));
  274 + temp.put("residenceAddress", mongoUtil.findAddressName(patients.getProvinceId(), patients.getCityId(), patients.getAreaId(), patients.getStreetId())); /** 居住地 */
  275 + temp.put("phone", StringUtils.encryPhone(patients.getPhone()));
  276 + }
  277 + temp.put("end", trackDown.getResult()); // 婚检追访结果
  278 + temp.put("trackDownTime", trackDown == null ? "--" : DateUtil.getyyyy_MM_dd(trackDown.getTrackDownDate())); // 追访时间
  279 + temp.put("yyTime", trackDown == null ? "--" : DateUtil.getyyyy_MM_dd(trackDown.getReservatDate())); // 预约时间
  280 + }
249 281 }
250 282 pageResult.setGrid(restList);
251 283 return RespBuilder.buildSuccess(pageResult);
252 284  
... ... @@ -253,12 +285,26 @@
253 285  
254 286 @Override
255 287 public BaseResponse info(String patientId, Integer trackType) {
256   - return null;
  288 + List<Map<String, Object>> tabList = new ArrayList<>();
  289 + List<TrackDown> trackDowns = mongoTemplate.find(Query.query(Criteria.where("parentId").is(patientId).and("trackType").is(trackType)), TrackDown.class);
  290 + for (TrackDown trackDown : trackDowns) {
  291 + Map<String, Object> temp = new HashMap<>();
  292 + temp.put("trackDownDate", DateUtil.getyyyy_MM_dd_hms(trackDown.getTrackDownDate()));
  293 + temp.put("trackDownUser", couponMapper.findUserName(trackDown.getTrackDownUserId()));
  294 + temp.put("trackDownType", TrackDownTypeEnums.getName(trackDown.getTrackDownDateType()));
  295 + temp.put("result", StringUtils.isEmpty(trackDown.getResult()) ? "--" : trackDown.getResult());
  296 + temp.put("reservatDate", DateUtil.getyyyy_MM_dd(trackDown.getReservatDate()));
  297 + tabList.add(temp);
  298 + }
  299 + return RespBuilder.buildSuccess(tabList);
257 300 }
258 301  
259 302 @Override
260 303 public BaseResponse init() {
261   - return null;
  304 + List<Map<String, Object>> trackTypes = EnumUtil.toJson(TrackDownTypeEnums.class); // 追访方式
  305 + List<Map<String, Object>> dataTypes = EnumUtil.toJson(TrackDownDateEnums.class); // 追访相关数据类型
  306 + List<Map<String, Object>> transfers = EnumUtil.toJson(TrackDownTransferEnums.class); // 追访转接
  307 + return RespBuilder.buildSuccess("trackTypes", trackTypes, "dataTypes", dataTypes, "transfers", transfers);
262 308 }
263 309  
264 310  
platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/MongoUtil.java View file @ 3c80f19
... ... @@ -330,6 +330,16 @@
330 330 return null;
331 331 }
332 332  
  333 + public String findPatientName(String id) {
  334 + if(StringUtils.isNotEmpty(id)) {
  335 + Patients patients = mongoTemplate.findById(id, Patients.class);
  336 + if(patients != null) {
  337 + return patients.getUsername();
  338 + }
  339 + }
  340 + return null;
  341 + }
  342 +
333 343 public String findAddressName(Object ... ids) {
334 344 StringBuilder sb = new StringBuilder();
335 345 if(ids != null && ids.length > 0) {