diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java b/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java index 658b477..387970f 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java @@ -1480,6 +1480,22 @@ public class DateUtil { return calendar.getTime(); } + /** + * 当前的开始时间 + * + * @param date + * @return + */ + public static Date getDayFirstSecond(Date date) { + Calendar instance = Calendar.getInstance(); + instance.setTime(date); + instance.add(Calendar.HOUR_OF_DAY, 0); + instance.add(Calendar.MINUTE, 0); + instance.add(Calendar.SECOND, 0); + instance.add(Calendar.MILLISECOND, 0); + return instance.getTime(); + } + private static List getMonthBetween(Date start, Date end) { List result = new ArrayList<>(); Calendar min = Calendar.getInstance(); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyEvaluationCriterionController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyEvaluationCriterionController.java index 96236a6..43f0285 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyEvaluationCriterionController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyEvaluationCriterionController.java @@ -4,10 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.lyms.platform.common.annotation.TokenRequired; import com.lyms.platform.common.base.BaseController; import com.lyms.platform.common.result.BaseResponse; -import com.lyms.platform.operate.web.request.EvaluationCriterionNeuropsychologyRequest; -import com.lyms.platform.operate.web.request.ExerciseAppraisalRequest; -import com.lyms.platform.operate.web.request.NerveMovementListRequest; -import com.lyms.platform.operate.web.request.NerveMovementSaveOrUpdateRequest; +import com.lyms.platform.operate.web.request.*; import com.lyms.platform.operate.web.service.BabyEvaluationCriterionService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -157,4 +154,19 @@ public class BabyEvaluationCriterionController extends BaseController { private BaseResponse findExerciseAppraisal(@RequestBody JSONObject jsonObject, HttpServletRequest request) { return babyEvaluationCriterionService.findExerciseAppraisal(getUserId(request), jsonObject); } + + /** + * 儿童量表--运动测评--列表 + * + * @param param + * @param request + * @return + */ + @ResponseBody + @TokenRequired + @RequestMapping(method = RequestMethod.POST, value = "/exerciseAppraisal/list") + private BaseResponse exerciseAppraisalList(@RequestBody ExerciseAppraisalListRequest param, HttpServletRequest request) { + return babyEvaluationCriterionService.exerciseAppraisalList(getUserId(request), param); + } + } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/ExerciseAppraisalListRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/ExerciseAppraisalListRequest.java new file mode 100644 index 0000000..11877ff --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/ExerciseAppraisalListRequest.java @@ -0,0 +1,96 @@ +package com.lyms.platform.operate.web.request; + +import com.lyms.platform.common.dao.BaseQuery; +import com.lyms.platform.common.result.BaseResponse; + +import java.io.Serializable; + +/** + * + * @Author dongqin + * @Description + * @Date 14:23 2019/7/26 + */ +public class ExerciseAppraisalListRequest extends BaseQuery implements Serializable { + + private static final long serialVersionUID = 5513357445788346435L; + + /** + * 起止:检查时间 + */ + private String startCheckTime; + private String endCheckTime; + + /** + * 起止:总分数 + */ + private Integer startScore; + private Integer endScore; + + /** + * 起止:百分位 + */ + private Integer startPercentileScore; + private Integer endPercentileScore; + + /** + * 检查医生 + */ + private String checkDoctor; + + public String getStartCheckTime() { + return startCheckTime; + } + + public void setStartCheckTime(String startCheckTime) { + this.startCheckTime = startCheckTime; + } + + public String getEndCheckTime() { + return endCheckTime; + } + + public void setEndCheckTime(String endCheckTime) { + this.endCheckTime = endCheckTime; + } + + public Integer getStartScore() { + return startScore; + } + + public void setStartScore(Integer startScore) { + this.startScore = startScore; + } + + public Integer getEndScore() { + return endScore; + } + + public void setEndScore(Integer endScore) { + this.endScore = endScore; + } + + public Integer getStartPercentileScore() { + return startPercentileScore; + } + + public void setStartPercentileScore(Integer startPercentileScore) { + this.startPercentileScore = startPercentileScore; + } + + public Integer getEndPercentileScore() { + return endPercentileScore; + } + + public void setEndPercentileScore(Integer endPercentileScore) { + this.endPercentileScore = endPercentileScore; + } + + public String getCheckDoctor() { + return checkDoctor; + } + + public void setCheckDoctor(String checkDoctor) { + this.checkDoctor = checkDoctor; + } +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/BabyEvaluationCriterionService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/BabyEvaluationCriterionService.java index 7579ceb..7731207 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/BabyEvaluationCriterionService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/BabyEvaluationCriterionService.java @@ -2,10 +2,7 @@ package com.lyms.platform.operate.web.service; import com.alibaba.fastjson.JSONObject; import com.lyms.platform.common.result.BaseResponse; -import com.lyms.platform.operate.web.request.EvaluationCriterionNeuropsychologyRequest; -import com.lyms.platform.operate.web.request.ExerciseAppraisalRequest; -import com.lyms.platform.operate.web.request.NerveMovementListRequest; -import com.lyms.platform.operate.web.request.NerveMovementSaveOrUpdateRequest; +import com.lyms.platform.operate.web.request.*; import javax.servlet.http.HttpServletRequest; @@ -98,4 +95,13 @@ public interface BabyEvaluationCriterionService { * @return */ BaseResponse findExerciseAppraisal(Integer userId, JSONObject jsonObject); + + /** + * 儿童量表--运动测评--列表 + * + * @param userId + * @param param + * @return + */ + BaseResponse exerciseAppraisalList(Integer userId, ExerciseAppraisalListRequest param); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyEvaluationCriterionServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyEvaluationCriterionServiceImpl.java index 0968ab3..0a51223 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyEvaluationCriterionServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyEvaluationCriterionServiceImpl.java @@ -7,10 +7,7 @@ import com.lyms.platform.common.result.BaseListResponse; import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.common.utils.*; import com.lyms.platform.operate.web.facade.AutoMatchFacade; -import com.lyms.platform.operate.web.request.EvaluationCriterionNeuropsychologyRequest; -import com.lyms.platform.operate.web.request.ExerciseAppraisalRequest; -import com.lyms.platform.operate.web.request.NerveMovementListRequest; -import com.lyms.platform.operate.web.request.NerveMovementSaveOrUpdateRequest; +import com.lyms.platform.operate.web.request.*; import com.lyms.platform.operate.web.service.BabyEvaluationCriterionService; import com.lyms.platform.operate.web.utils.CollectionUtils; import com.lyms.platform.permission.dao.master.MasterUsersMapper; @@ -577,7 +574,7 @@ public class BabyEvaluationCriterionServiceImpl implements BabyEvaluationCriteri if (StringUtils.isEmpty(babyId)) { return new BaseResponse().setErrorcode(ErrorCodeConstants.PARAMETER_ERROR).setErrormsg("参数缺失"); } - BabyModel model = mongoTemplate.findOne(Query.query(Criteria.where("_id").is(hospitalId).and("hospitalId").is(hospitalId)), BabyModel.class); + BabyModel model = mongoTemplate.findOne(Query.query(Criteria.where("_id").is(babyId).and("hospitalId").is(hospitalId)), BabyModel.class); BaseResponse baseResponse = new BaseResponse(); if (model != null) { map.put("babyId", babyId); @@ -591,11 +588,15 @@ public class BabyEvaluationCriterionServiceImpl implements BabyEvaluationCriteri StringBuilder builder = new StringBuilder(); Patients patients = mongoTemplate.findOne(Query.query(Criteria.where("phone").is(model.getMphone())), Patients.class); if (patients != null) { + List list = new ArrayList<>(); List riskFactorId = patients.getRiskFactorId(); + if (CollectionUtils.isNotEmpty(riskFactorId)) { + list.addAll(riskFactorId); + } List firstRiskFactorId = patients.getFirstRiskFactorId(); - List list = new ArrayList<>(); - list.addAll(riskFactorId); - list.addAll(firstRiskFactorId); + if (CollectionUtils.isNotEmpty(firstRiskFactorId)) { + list.addAll(firstRiskFactorId); + } if (list.size() > 0) { for (String id : list) { BasicConfig basicConfig = mongoTemplate.findOne(Query.query(Criteria.where("_id").is(id).and("yn").is(YnEnums.YES.getId())), BasicConfig.class); @@ -676,42 +677,108 @@ public class BabyEvaluationCriterionServiceImpl implements BabyEvaluationCriteri */ @Override public BaseResponse findExerciseAppraisal(Integer userId, JSONObject jsonObject) { - String cardNo = jsonObject.getString("queryNo"); - String patientIdCard = jsonObject.getString("patientIdCard"); + String babyId = jsonObject.getString("babyId"); String hospitalId = autoMatchFacade.getHospitalId(userId); BaseResponse baseResponse = new BaseResponse(); Query query = new Query(); - query.addCriteria(Criteria.where("hospitalId").is(hospitalId).and("yn").is(YnEnums.YES.getId())); + query.addCriteria(Criteria.where("hospitalId").is(hospitalId).and("yn").is(YnEnums.YES.getId()).and("_id").is(babyId)); query.with(new Sort(new Sort.Order(Sort.Direction.DESC, "createTime"))); - if (StringUtils.isNotEmpty(cardNo)) { - query.addCriteria(new Criteria().orOperator(Criteria.where("cardNo").is(cardNo), Criteria.where("mphone").is(cardNo))); - } - if (StringUtils.isNotEmpty(patientIdCard)) { - query.addCriteria(Criteria.where("vcCardNo").is(patientIdCard)); + /*Map objectHashMap = new HashMap<>(); + BabyModel babyModel = mongoTemplate.findOne(Query.query(Criteria.where("_id").is(babyId)), BabyModel.class); + Map map = new HashMap<>(); + if (babyModel == null) { + return new BaseResponse().setErrorcode(ErrorCodeConstants.PARAMETER_ERROR).setErrormsg("数据异常"); } - + map.put("age", DateUtil.getBabyMonthAge(babyModel.getBirth(), new Date())); + map.put("name", babyModel.getName()); + map.put("mname", babyModel.getMname()); + map.put("carNo", babyModel.getCardNo()); + map.put("", babyModel.) + objectHashMap.put("babyModel",map);*/ final List models = mongoTemplate.find(query, ExerciseAppraisalModel.class); - final List> modelList = new ArrayList>(){{ + List> modelList = new ArrayList>(){{ if (CollectionUtils.isNotEmpty(models)) { for (ExerciseAppraisalModel model : models) { Map map = BeanUtils.objectToStringMap(model); - map.put("age", DateUtil.getBabyMonthAge(model.getBirth(), new Date())); add(map); } } }}; + //objectHashMap.put("list", models); baseResponse.setObject(modelList); return baseResponse; } /** + * 儿童量表--运动测评--列表 + * + * @param userId + * @param param + * @return + */ + @Override + public BaseResponse exerciseAppraisalList(Integer userId, ExerciseAppraisalListRequest param) { + String hospitalId = autoMatchFacade.getHospitalId(userId); + Query query = new Query(); + query.addCriteria(Criteria.where("yn").is(YnEnums.YES.getId()).and("hospitalId").is(hospitalId)); + + // 检查时间 + String startCheckTime = param.getStartCheckTime(); + String endCheckTime = param.getEndCheckTime(); + if (StringUtils.isNotEmpty(startCheckTime) && StringUtils.isNotEmpty(endCheckTime)) { + Date start = DateUtil.getDayFirstSecond(DateUtil.parseYMD(startCheckTime)); + Date end = DateUtil.getDayLastSecond(DateUtil.parseYMD(endCheckTime)); + query.addCriteria(Criteria.where("checkTime").gte(start).lte(end)); + } + + // 总分 + Integer startScore = param.getStartScore(); + Integer endScore = param.getEndScore(); + if (startScore != null && endCheckTime != null && endScore >= startScore) { + query.addCriteria(Criteria.where("totalScore").gte(startScore).lte(endScore)); + } + + // 百分位 + Integer startPercentileScore = param.getStartPercentileScore(); + Integer endPercentileScore = param.getEndPercentileScore(); + if (startPercentileScore != null && endPercentileScore != null && endPercentileScore >= startPercentileScore) { + query.addCriteria(Criteria.where("percentileScore").gte(startPercentileScore).lte(endPercentileScore)); + } + + // 检查医生 + String checkDoctor = param.getCheckDoctor(); + if (StringUtils.isNotEmpty(checkDoctor)) { + query.addCriteria(Criteria.where("checkDoctor").is(checkDoctor)); + } + + long count = mongoTemplate.count(query, ExerciseAppraisalModel.class); + param.mysqlBuild((int) count); + query.skip(param.getLimit()).limit(param.getLimit()); + query.with(new Sort(new Sort.Order(Sort.Direction.DESC, "createTime"))); + + List models = mongoTemplate.find(query, ExerciseAppraisalModel.class); + List> maps = new ArrayList<>(); + for (ExerciseAppraisalModel model : models) { + Map map = BeanUtils.objectToStringMap(model); + map.put("age", DateUtil.getBabyMonthAge(model.getBirth(), new Date())); + map.put("checkTimeStr", DateUtil.gety_m_dhm(model.getCheckTime())); + map.put("checkDoctorStr", usersMapper.getUsers(Integer.parseInt(model.getCheckDoctor())).getName()); + maps.add(map); + } + BaseListResponse baseListResponse = new BaseListResponse(); + baseListResponse.setPageInfo(param.getPageInfo()); + baseListResponse.setData(maps); + return baseListResponse; + } + + /** * 参数效验 * * @param param * @return */ private boolean paramValid(ExerciseAppraisalRequest param) { - if (StringUtils.isEmpty(babyId) || StringUtils.isEmpty(param.getCheckDoctor()) || param.getCheckTime() == null + if (StringUtils.isEmpty(param.getBabyId()) || StringUtils.isEmpty(param.getCheckDoctor()) || param.getCheckTime() == null || param.getLieProstratComponent() == null || param.getLieProstrateInside() == null || param.getLieProstrateOutside() == null || param.getLieProstrateInsideIndexs() == null || param.getLieProstrateOutsideIndexs() == null