Commit 3c80f195c8b0eb5a479257b7883970c73b69c6ea
1 parent
b42af41404
Exists in
master
and in
6 other branches
追访相关
Showing 4 changed files with 84 additions and 9 deletions
- platform-dal/src/main/java/com/lyms/platform/pojo/TrackDown.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/impl/TrackDownServiceImpl.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/MongoUtil.java
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) { |