From 3d5c494c19af35ada97872067c587b51555e43b9 Mon Sep 17 00:00:00 2001 From: liquanyu Date: Mon, 24 May 2021 11:05:03 +0800 Subject: [PATCH] update --- .../com/lyms/platform/biz/dal/IPatientDao.java | 2 + .../lyms/platform/biz/dal/impl/PatientDaoImpl.java | 9 ++++ .../lyms/platform/biz/service/PatientsService.java | 9 ++-- .../web/controller/PuerperaManageController.java | 21 ++++++++ .../platform/operate/web/facade/PatientFacade.java | 62 ++++++++++++++++++++++ .../platform/operate/web/facade/PostkfFaccade.java | 6 --- 6 files changed, 99 insertions(+), 10 deletions(-) diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IPatientDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IPatientDao.java index 014d0d3..c08d4ca 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IPatientDao.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IPatientDao.java @@ -42,4 +42,6 @@ public interface IPatientDao { List aggregateOne(MongoQuery mongoQuery); public void updatePatientHusbandBirth(String id, Object colValue); + + List queryPatientAnxtchuCount(MongoQuery query); } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/PatientDaoImpl.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/PatientDaoImpl.java index 6148718..d87dfde 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/PatientDaoImpl.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/PatientDaoImpl.java @@ -53,6 +53,15 @@ public class PatientDaoImpl extends BaseMongoDAOImpl implements IPatie } @Override + public List queryPatientAnxtchuCount(MongoQuery query) { + AggregationOperation match = Aggregation.match(query.getCriteria()); + AggregationOperation group = Aggregation.group("firstCheckId").count().as("count"); + Aggregation aggregation = Aggregation.newAggregation(match, group); + AggregationResults result = mongoTemplate.aggregate(aggregation, "lyms_patient", HashMap.class); + return result.getMappedResults(); + } + + @Override public void updatePatientLastCheckEmployeeIdOne(String id, String lastCheckEmployeeId){ this.mongoTemplate.updateFirst(new Query(Criteria.where("id").is(id)), Update.update("lastCheckEmployeeId", lastCheckEmployeeId), Patients.class); } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java index 13bab19..a2c929a 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java @@ -21,10 +21,7 @@ import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; /** * Created by Administrator on 2016/4/22 0022. @@ -130,6 +127,10 @@ public class PatientsService { } + public List queryPatientAnxtchuCount(PatientsQuery patientsQuery) { + return iPatientDao.queryPatientAnxtchuCount(patientsQuery.convertToQuery()); + } + public int queryPatientCount(PatientsQuery patientsQuery) { return iPatientDao.queryPatientCount(patientsQuery.convertToQuery()); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PuerperaManageController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PuerperaManageController.java index 6c1e9b2..838a61a 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PuerperaManageController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PuerperaManageController.java @@ -159,6 +159,27 @@ public class PuerperaManageController extends BaseController { return patientFacade.queryHighRisk(patientsQueryRequest, null, 1, loginState.getId(), "true", Boolean.FALSE); } + + /** + * 初诊检查医生统计 + * @param patientsQueryRequest + * @param request + * @return + */ + @RequestMapping(value = "/queryAnxtchuCount", method = RequestMethod.GET) + @ResponseBody + @TokenRequired + public BaseResponse queryAnxtchuCount(@Valid RiskPatientsQueryRequest patientsQueryRequest, HttpServletRequest request) { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + + + return patientFacade.queryAnxtchuCount(patientsQueryRequest, null, 1, loginState.getId(), "true", Boolean.FALSE); + } + + + + + /** * 孕期体重异常管理 * @param patientsQueryRequest 全部孕妇管理查询 (因为请求参数一样同用一个对象) diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java index 99b556e..7435dd6 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java @@ -3210,4 +3210,66 @@ public class PatientFacade extends BaseServiceImpl { @Autowired private CouponService couponService; + + public BaseResponse queryAnxtchuCount(RiskPatientsQueryRequest riskPatientsQueryRequest, Boolean isHighRisk, Integer type, Integer userId, String needPage, boolean isRegion) { + PatientsQuery patientsQuery = complayRequest(riskPatientsQueryRequest, isHighRisk, type, userId, needPage, isRegion); + patientsQuery.setGcdfDoctorId(riskPatientsQueryRequest.getGcdfDoctorId());//分娩记录加住院管床大夫 + + if ("lp".equals(riskPatientsQueryRequest.getHstart())) { + if ("1".equals(riskPatientsQueryRequest.getYyzt())) { + //获取有检查数据 + patientsQuery.setNextCheckTimeNe(true); + } else if ("2".equals(riskPatientsQueryRequest.getYyzt())) { + //获取没有有检查数据 + patientsQuery.setNextCheckTimeIs(true); + patientsQuery.setNextCheckTimeNe(false); + } + } + System.out.println(patientsQuery.convertToQuery().convertToMongoQuery().toString()); + List temp = patientsService.queryPatientAnxtchuCount(patientsQuery); + List> datas = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(temp)) + { + for (HashMap map : temp) + { + if (map.get("_id") == null) + { + continue; + } + Map data = new HashMap<>(); + String firstCheckDoctorName = usersService.getUsers(Integer.valueOf(map.get("_id").toString())).getName(); + data.put("firstCheckDoctorName",firstCheckDoctorName); + data.put("firstCheckDoctorId",map.get("_id") == null ? null : map.get("_id").toString()); + data.put("count",map.get("count").toString()); + datas.add(data); + } + } + // 排序,这里数据量并不大,所以可以在这里排序,排序规则为按照count倒序 + Collections.sort(datas, new Comparator>() { + @Override + public int compare(Map o1, Map o2) { + int i1; + int i2; + try { + i1 = Integer.valueOf(o1.get("count")); + } catch (Exception e) { + i1 = 0; + } + try { + i2 = Integer.valueOf(o2.get("count")); + } catch (Exception e) { + i2 = 0; + } + if (i1 > i2) { + return -1; + } else if (i1 < i2) { + return 1; + } else { + return 0; + } + } + }); + + return new BaseObjectResponse().setData(datas).setErrormsg("成功").setErrorcode(ErrorCodeConstants.SUCCESS); + } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PostkfFaccade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PostkfFaccade.java index d206ae9..46ab13b 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PostkfFaccade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PostkfFaccade.java @@ -281,12 +281,6 @@ public class PostkfFaccade { Criteria.where("zzjj.ch28tdoctor").is(postKfRequest.getDoctorName()), Criteria.where("zzjj.ch24tdoctor").is(postKfRequest.getDoctorName()), - Criteria.where("zzjj.cyqpgdoctor").is(postKfRequest.getDoctorName()), - Criteria.where("zzjj.ch7tdoctor").is(postKfRequest.getDoctorName()), - Criteria.where("zzjj.ch14tdoctor").is(postKfRequest.getDoctorName()), - Criteria.where("zzjj.ch28tdoctor").is(postKfRequest.getDoctorName()), - Criteria.where("zzjj.ch24tdoctor").is(postKfRequest.getDoctorName()), - Criteria.where("jbzl.cyqpgdoctor").is(postKfRequest.getDoctorName()), Criteria.where("jbzl.ch7tdoctor").is(postKfRequest.getDoctorName()), Criteria.where("jbzl.ch14tdoctor").is(postKfRequest.getDoctorName()), -- 1.8.3.1