diff --git a/platform-common/src/main/java/com/lyms/platform/common/enums/QuestionEnums.java b/platform-common/src/main/java/com/lyms/platform/common/enums/QuestionEnums.java index a627535..59367e8 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/enums/QuestionEnums.java +++ b/platform-common/src/main/java/com/lyms/platform/common/enums/QuestionEnums.java @@ -1,6 +1,8 @@ package com.lyms.platform.common.enums; +import com.lyms.platform.common.utils.StringUtils; + import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -56,6 +58,19 @@ public enum QuestionEnums { return ""; } + public static String getTitleById(String id) { + if (StringUtils.isNotEmpty(id)) + { + for (QuestionEnums e : QuestionEnums.values()) { + if (e.getId() == Integer.parseInt(id)) + { + return e.getTitle(); + } + } + } + return ""; + } + public int getId() { return id; } diff --git a/platform-dal/src/main/java/com/lyms/platform/query/QuestionQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/QuestionQuery.java index 73c9f89..a4b28bf 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/QuestionQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/QuestionQuery.java @@ -36,14 +36,22 @@ public class QuestionQuery extends BaseQuery implements IConvertToNativeQuery { private Date investDateEnd; private String patientId; + private List patientIds; private String resultId; + private String queryNo; + @Override public MongoQuery convertToQuery() { MongoCondition condition=MongoCondition.newInstance(); if(null != patientId){ condition= condition.and("patientId",patientId, MongoOper.IS); } + + if(null != patientIds && patientId.length() > 0){ + condition= condition.and("patientId",patientIds, MongoOper.IN); + } + if(null != resultId){ condition= condition.and("resultId",resultId, MongoOper.IS); } @@ -76,6 +84,31 @@ public class QuestionQuery extends BaseQuery implements IConvertToNativeQuery { return condition.toMongoQuery(); } + + public List getPatientIds() { + return patientIds; + } + + public void setPatientIds(List patientIds) { + this.patientIds = patientIds; + } + + public String getQueryNo() { + return queryNo; + } + + public void setQueryNo(String queryNo) { + this.queryNo = queryNo; + } + + public String getResultId() { + return resultId; + } + + public void setResultId(String resultId) { + this.resultId = resultId; + } + public String getId() { return id; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/QuestionController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/QuestionController.java index 6c35016..7579f6a 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/QuestionController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/QuestionController.java @@ -1,6 +1,8 @@ package com.lyms.platform.operate.web.controller; +import com.lyms.platform.common.annotation.TokenRequired; import com.lyms.platform.common.base.BaseController; +import com.lyms.platform.common.base.LoginContext; import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.operate.web.facade.AssistBuildFacade; import com.lyms.platform.operate.web.facade.QuestionFacade; @@ -46,4 +48,26 @@ public class QuestionController extends BaseController { } + /** + * ๅˆ—่กจ + * @param investDate + * @param queryNo + * @param resultId + * @param httpServletRequest + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/queryQestions") + @ResponseBody + @TokenRequired + public BaseResponse queryQestions(@RequestParam(required = false) String investDate, + @RequestParam(required = false) String queryNo, + @RequestParam(required = false) String resultId, + @RequestParam(required = false) Integer page, + @RequestParam(required = false) Integer limit, + HttpServletRequest httpServletRequest) { + LoginContext loginState = (LoginContext) httpServletRequest.getAttribute("loginContext"); + return questionFacade.queryQestions(investDate,queryNo,resultId,page,limit,loginState.getId()); + } + + } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/QuestionFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/QuestionFacade.java index 203dc88..1325b29 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/QuestionFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/QuestionFacade.java @@ -8,6 +8,7 @@ import com.lyms.platform.biz.service.QuestionService; import com.lyms.platform.common.constants.ErrorCodeConstants; import com.lyms.platform.common.enums.QuestionEnums; import com.lyms.platform.common.enums.YnEnums; +import com.lyms.platform.common.result.BaseListResponse; import com.lyms.platform.common.result.BaseObjectResponse; import com.lyms.platform.common.result.BaseResponse; @@ -21,14 +22,13 @@ import com.lyms.platform.pojo.Patients; import com.lyms.platform.pojo.QuestionModel; import com.lyms.platform.query.AntExChuQuery; +import com.lyms.platform.query.PatientsQuery; import com.lyms.platform.query.QuestionQuery; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** @@ -48,6 +48,10 @@ public class QuestionFacade { @Autowired private AntenatalExaminationService antenatalExaminationService; + + @Autowired + private AutoMatchFacade autoMatchFacade; + @Autowired private UsersService usersService; @@ -148,4 +152,69 @@ public class QuestionFacade { response.setErrorcode(ErrorCodeConstants.NO_DATA); return response; } + + public BaseResponse queryQestions(String investDate, String queryNo, String resultId,Integer page,Integer limit, Integer userId) { + + BaseListResponse response = new BaseListResponse(); + + String hospitalId = autoMatchFacade.getHospitalId(userId); + + QuestionQuery questionQuery = new QuestionQuery(); + questionQuery.setLimit(limit); + questionQuery.setPage(page); + questionQuery.setNeed("need"); + questionQuery.setResultId(resultId); + if (hospitalId != null) { + questionQuery.setInvestHospitalId(hospitalId); + } + if (StringUtils.isNotEmpty(investDate)) + { + String[] arrs = investDate.split(" - "); + questionQuery.setInvestDateStart(DateUtil.parseYMD(arrs[0])); + questionQuery.setInvestDateEnd(new Date(DateUtil.parseYMD(arrs[1]).getTime() + 24 * 60 * 60 * 1000 - 1)); + } + + if (StringUtils.isNotEmpty(queryNo)) + { + PatientsQuery patientsQuery = new PatientsQuery(); + patientsQuery.setQueryNo(queryNo); + List list = patientsService.queryPatient(patientsQuery); + if (CollectionUtils.isNotEmpty(list)) + { + List patientIds = new ArrayList<>(); + for (Patients p : list) + { + patientIds.add(p.getId()); + } + questionQuery.setPatientIds(patientIds); + } + } + + List datas = new ArrayList<>(); + List questions = questionService.queryQuestions(questionQuery); + if (CollectionUtils.isNotEmpty(questions)) + { + + for (QuestionModel model : questions) + { + Map map = new HashMap(); + Patients patients = patientsService.findOnePatientById(model.getPatientId()); + map.put("id",model.getId()); + map.put("patientId",model.getPatientId()); + map.put("userName",patients.getUsername()); + map.put("investDate",DateUtil.getyyyy_MM_dd(model.getInvestDate())); + map.put("week",DateUtil.getWeekDesc(patients.getLastMenses(), model.getInvestDate())); + map.put("dueDate",DateUtil.getyyyy_MM_dd(patients.getDueDate())); + map.put("phone",patients.getPhone()); + map.put("scoreAndResult", model.getScore()+" "+QuestionEnums.getTitleById(model.getResultId())); + datas.add(map); + } + } + + response.setErrormsg("ๆˆๅŠŸ"); + response.setErrorcode(ErrorCodeConstants.SUCCESS); + response.setData(datas); + response.setPageInfo(questionQuery.getPageInfo()); + return response; + } } \ No newline at end of file