Commit 2d90526d3c14f57c4e751b04fdf5c4322623c182

Authored by litao
1 parent 8b8dfb45cd

复查管理

Showing 5 changed files with 101 additions and 12 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PostReviewController.java View file @ 2d90526
... ... @@ -119,14 +119,18 @@
119 119 * 复查管理
120 120 * @param startDate
121 121 * @param endDate
122   - * @param doctorName
  122 + * @param doctorId
123 123 * @param key 姓名/联系方式/就诊卡
  124 + * @param limit
  125 + * @param page
124 126 * @return
125 127 */
126 128 @RequestMapping(method = RequestMethod.GET, value = "/postpartum/review")
127   - public BaseObjectResponse postpartumReview(Date startDate, Date endDate, String doctorName, String key
128   - ,Integer page, Integer limit) {
129   - return postReviewService.postpartumReview(startDate, endDate, doctorName, key);
  129 + @TokenRequired
  130 + @ResponseBody
  131 + public BaseObjectResponse postpartumReview(Date startDate, Date endDate, String doctorId,
  132 + String key, Integer page, Integer limit, HttpServletRequest request) {
  133 + return postReviewService.postpartumReview(getUserId(request), startDate, endDate, doctorId, key, page, limit);
130 134 }
131 135 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBaseService.java View file @ 2d90526
... ... @@ -2,6 +2,8 @@
2 2  
3 3 import com.lyms.platform.common.result.PageResult;
4 4  
  5 +import org.springframework.data.mongodb.core.query.Query;
  6 +
5 7 import java.util.List;
6 8  
7 9 /**
... ... @@ -18,6 +20,8 @@
18 20 * @param params
19 21 * @return
20 22 */
21   - public PageResult findPage(String sql, Integer currentPage, Integer pageSize, List<Object> params);
  23 + PageResult findPage(String sql, Integer currentPage, Integer pageSize, List<Object> params);
  24 +
  25 + <T> PageResult findMongoPage (Class<T> entity, Query query, Integer page, Integer limit);
22 26 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IPostReviewService.java View file @ 2d90526
... ... @@ -7,7 +7,7 @@
7 7 /**
8 8 * Created by litao on 2017/7/3 0003
9 9 */
10   -public interface IPostReviewService {
11   - BaseObjectResponse postpartumReview(Date startDate, Date endDate, String doctorName, String key);
  10 +public interface IPostReviewService extends IBaseService {
  11 + BaseObjectResponse postpartumReview(Integer userId, Date startDate, Date endDate, String doctorId, String key, Integer page, Integer limit);
12 12 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BaseServiceImpl.java View file @ 2d90526
... ... @@ -5,8 +5,9 @@
5 5 import com.lyms.platform.operate.web.service.IBaseService;
6 6 import org.springframework.beans.factory.annotation.Autowired;
7 7 import org.springframework.beans.factory.annotation.Qualifier;
  8 +import org.springframework.data.mongodb.core.MongoTemplate;
8 9 import org.springframework.stereotype.Service;
9   -
  10 +import org.springframework.data.mongodb.core.query.Query;
10 11 import java.util.List;
11 12 import java.util.Map;
12 13  
... ... @@ -21,6 +22,9 @@
21 22 @Qualifier("baseDaoImpl")
22 23 private IBaseDao baseDao;
23 24  
  25 + @Autowired
  26 + private MongoTemplate mongoTemplate;
  27 +
24 28 @Override
25 29 public PageResult findPage(String sql, Integer currentPage, Integer pageSize, List<Object> params) {
26 30 pageSize = pageSize == null ? 10 : pageSize;
... ... @@ -29,6 +33,15 @@
29 33 Integer count = baseDao.findCount(sql, params);
30 34 List<Map<String, Object>> rows = baseDao.findList(sql, currentPage, pageSize, params);
31 35 return new PageResult(count, currentPage, pageSize, rows);
  36 + }
  37 +
  38 + @Override
  39 + public <T> PageResult findMongoPage(Class<T> entity, Query query, Integer page, Integer limit) {
  40 + Long count = mongoTemplate.count(query, entity);
  41 + query.skip((page - 1) * limit);
  42 + query.limit(limit);
  43 + List<T> rows = mongoTemplate.find(query, entity);
  44 + return new PageResult(count.intValue(), page, limit, rows);
32 45 }
33 46 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PostReviewServiceImpl.java View file @ 2d90526
1 1 package com.lyms.platform.operate.web.service.impl;
2 2  
3 3 import com.lyms.platform.common.result.BaseObjectResponse;
  4 +import com.lyms.platform.common.result.PageResult;
4 5 import com.lyms.platform.common.result.RespBuilder;
  6 +import com.lyms.platform.common.utils.DateUtil;
  7 +import com.lyms.platform.common.utils.StringUtils;
  8 +import com.lyms.platform.operate.web.facade.AutoMatchFacade;
5 9 import com.lyms.platform.operate.web.service.IPostReviewService;
  10 +import com.lyms.platform.operate.web.utils.MongoUtil;
  11 +import com.lyms.platform.permission.dao.master.MasterUsersMapper;
  12 +import com.lyms.platform.permission.model.Users;
  13 +import com.lyms.platform.pojo.Patients;
6 14 import com.lyms.platform.pojo.PostReviewModel;
  15 +import org.apache.commons.collections.CollectionUtils;
7 16 import org.springframework.beans.factory.annotation.Autowired;
  17 +import org.springframework.data.domain.Sort;
8 18 import org.springframework.data.mongodb.core.MongoTemplate;
9 19 import org.springframework.data.mongodb.core.query.Criteria;
10 20 import org.springframework.data.mongodb.core.query.Query;
11 21 import org.springframework.stereotype.Service;
12 22  
13   -import java.util.Date;
  23 +import java.util.*;
14 24  
15 25 /**
16 26 * Created by litao on 2017/7/3 0003
17 27 */
18 28 @Service
19   -public class PostReviewServiceImpl implements IPostReviewService {
  29 +public class PostReviewServiceImpl extends BaseServiceImpl implements IPostReviewService {
20 30  
21 31 @Autowired
22 32 private MongoTemplate mongoTemplate;
23 33  
  34 + @Autowired
  35 + private AutoMatchFacade autoMatchFacade;
  36 +
  37 + @Autowired
  38 + private MasterUsersMapper usersMapper;
  39 +
  40 + @Autowired
  41 + private MongoUtil mongoUtil;
  42 +
24 43 @Override
25   - public BaseObjectResponse postpartumReview(Date startDate, Date endDate, String doctorName, String key) {
26   - return RespBuilder.buildSuccess(mongoTemplate.findOne(Query.query(Criteria.where("id").is("57c7e2fb28b66ec7a1bef00b")), PostReviewModel.class));
  44 + public BaseObjectResponse postpartumReview(Integer userId, Date startDate, Date endDate, String doctorId, String key, Integer page, Integer limit) {
  45 + String hospitalId = autoMatchFacade.getHospitalId(userId);
  46 + Query query = Query.query(Criteria.where("hospitalId").is(hospitalId).and("yn").is(1));
  47 + if(startDate != null && endDate != null) {
  48 + query.addCriteria(Criteria.where("checkTime").gte(startDate).lt(DateUtil.addDay(endDate, 1)));
  49 + }
  50 + if(StringUtils.isNotEmpty(doctorId)) {
  51 + query.addCriteria(Criteria.where("prodDoctor").is(doctorId));
  52 + }
  53 +
  54 + if(StringUtils.isNotEmpty(key)) {
  55 + Criteria criteria = new Criteria();
  56 + criteria.orOperator(Criteria.where("username").is(key), Criteria.where("vcCardNo").is(key), Criteria.where("phone").is(key));
  57 + List<Patients> patients = mongoUtil.findField(Patients.class, criteria, "id");
  58 + if(CollectionUtils.isEmpty(patients)) {
  59 + return RespBuilder.buildSuccess(new PageResult(0, page, limit, null));
  60 + }
  61 + List<String> ids = new ArrayList<>();
  62 + for (Patients patient : patients) {
  63 + ids.add(patient.getId());
  64 + }
  65 + query.addCriteria(Criteria.where("parentId").in(ids));
  66 + }
  67 +
  68 + PageResult pageResult = findMongoPage(PostReviewModel.class, query, page, limit);
  69 + List<PostReviewModel> grid = (List<PostReviewModel>) pageResult.getGrid();
  70 +
  71 + List<Map<String, Object>> rest = new ArrayList<>();
  72 + for (PostReviewModel model : grid) {
  73 + Map<String, Object> tempMap = new HashMap<>();
  74 + Patients p = mongoTemplate.findById(model.getParentId(), Patients.class);
  75 + tempMap.put("checkTime", model.getCheckTime()); /** 复查日期 */
  76 + tempMap.put("hcertificateNum", p == null ? null : p.getHcertificateNum()); /** 证件号 */
  77 + tempMap.put("username", p == null ? null : p.getUsername()); /** 姓名 */
  78 + tempMap.put("age", p == null ? null : DateUtil.getAge(p.getBirth())); /** 年龄 */
  79 + tempMap.put("day", p == null ? null : model.getDay()); /** 产后天数 */
  80 + tempMap.put("reviewCount", mongoTemplate.count(Query.query(Criteria.where("parentId").is(model.getParentId())), PostReviewModel.class)); /** 复查次数 */
  81 + tempMap.put("reviewHospitalCount", mongoTemplate.count(Query.query(Criteria.where("parentId").is(model.getParentId())
  82 + .and("hospitalId").is(model.getHospitalId())), PostReviewModel.class)); /** 本院复查次数 */
  83 + String prodDoctor = model.getProdDoctor();
  84 + if(StringUtils.isNotEmpty(prodDoctor)) {
  85 + Users users = usersMapper.getUsers(Integer.parseInt(prodDoctor));
  86 + tempMap.put("doctorName", users == null ? null : users.getName()); /** 检查医生 */
  87 + } else {
  88 + tempMap.put("doctorName", null);
  89 + }
  90 + tempMap.put("phone", p == null ? null : p.getPhone());
  91 + rest.add(tempMap);
  92 + }
  93 + pageResult.setGrid(rest);
  94 + return RespBuilder.buildSuccess(pageResult);
27 95 }
28 96 }