12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- package thyyxxk.wxservice_server.service;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import thyyxxk.wxservice_server.dao.AssessmentDao;
- import thyyxxk.wxservice_server.config.exception.ExceptionEnum;
- import thyyxxk.wxservice_server.dao.assessment.InpatientQuestionnaireDao;
- import thyyxxk.wxservice_server.dao.assessment.OutpatientQuestionnaireDao;
- import thyyxxk.wxservice_server.entity.ResultVo;
- import thyyxxk.wxservice_server.entity.assessment.OutpatientQuestionnaire;
- import thyyxxk.wxservice_server.entity.assessment.ComplaintsAndSuggestions;
- import thyyxxk.wxservice_server.entity.assessment.DepressionQuestionnaire;
- import thyyxxk.wxservice_server.entity.assessment.InpatientQuestionnaire;
- import thyyxxk.wxservice_server.utils.ResultVoUtil;
- import thyyxxk.wxservice_server.utils.StringUtil;
- import thyyxxk.wxservice_server.utils.TokenUtil;
- import java.util.Objects;
- /**
- * @author dj
- */
- @Slf4j
- @Service
- public class AssessmentService {
- private final AssessmentDao dao;
- private final OutpatientQuestionnaireDao outpatientQuestionnaireDao;
- private final InpatientQuestionnaireDao inpatientQuestionnaireDao;
- private static final String EMERGENCY_CLINIC = "1070000";
- @Autowired
- public AssessmentService(AssessmentDao dao, OutpatientQuestionnaireDao outpatientQuestionnaireDao, InpatientQuestionnaireDao inpatientQuestionnaireDao) {
- this.dao = dao;
- this.outpatientQuestionnaireDao = outpatientQuestionnaireDao;
- this.inpatientQuestionnaireDao = inpatientQuestionnaireDao;
- }
- public ResultVo<String> submitDepressionAssessment(DepressionQuestionnaire depressionQuestionnaire) {
- log.info("SDS抑郁自评量:{}", depressionQuestionnaire);
- Integer dateDiff = dao.getDateDiff(depressionQuestionnaire.getIdcard());
- if (null == dateDiff || dateDiff > 0) {
- dao.insertNewDepressionAssessment(depressionQuestionnaire);
- return ResultVoUtil.success();
- } else {
- return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "您今天已提交过此问卷,请明天再试。");
- }
- }
- public ResultVo<String> submitOutpatientQuestionnaire(OutpatientQuestionnaire questionnaire) {
- log.info("门诊服务满意度调查:{}", questionnaire);
- String deptCode = dao.selectLastVisitDept(questionnaire.getPatientId());
- if (Objects.equals(deptCode, EMERGENCY_CLINIC)) {
- questionnaire.setJzFlag(1);
- }
- questionnaire.setDeptCode(deptCode);
- outpatientQuestionnaireDao.insert(questionnaire);
- return ResultVoUtil.success();
- }
- public ResultVo<String> submitInpatientQuestionnaire(InpatientQuestionnaire questionnaire) {
- log.info("住院服务满意度调查:{}", questionnaire);
- if (Objects.equals(questionnaire.getInpatientNo(), "unknown")) {
- fillInpatientNo(questionnaire);
- }
- String deptCode = dao.getDismissDept(questionnaire.getInpatientNo(), questionnaire.getTimes());
- if (StringUtil.isBlank(deptCode)) {
- deptCode = dao.getDismissDept2(questionnaire.getInpatientNo(), questionnaire.getTimes());
- }
- questionnaire.setDeptCode(deptCode);
- inpatientQuestionnaireDao.insert(questionnaire);
- return ResultVoUtil.success();
- }
- public ResultVo<String> submitComplaintsAndSuggestions(ComplaintsAndSuggestions suggestions) {
- log.info("投诉与建议:{}", suggestions);
- suggestions.setOpenid(TokenUtil.getInstance().getUserOpenid());
- dao.insertComplaintsAndSuggestions(suggestions);
- return ResultVoUtil.success();
- }
- private void fillInpatientNo(InpatientQuestionnaire questionnaire) {
- String patNo = dao.getInpatientNo(questionnaire.getPatientId());
- if (StringUtil.notBlank(patNo)) {
- int times = dao.getAdmissTimes(patNo);
- questionnaire.setInpatientNo(patNo);
- questionnaire.setTimes(times);
- }
- }
- }
|