统计分析--问卷查询接口。

This commit is contained in:
haown 2024-10-17 17:08:12 +08:00
parent 996df74e49
commit 7445850990
7 changed files with 95 additions and 17 deletions

View File

@ -9,8 +9,9 @@ import com.xinelu.common.enums.BusinessType;
import com.xinelu.common.utils.poi.ExcelUtil;
import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmitResult;
import com.xinelu.manage.dto.patientquestionsubmitresult.PatientQuestionSubmitStatistisDto;
import com.xinelu.manage.dto.specialdiseaseroute.SpecialDiseaseRouteDTO;
import com.xinelu.manage.service.patientquestionsubmitresult.IPatientQuestionSubmitResultService;
import com.xinelu.manage.vo.patientquestionsubmitresult.PatientQuestionSubmitStatistisVo;
import com.xinelu.manage.vo.patientquestionsubmitresult.PatientQuestionSubmitListVo;
import com.xinelu.manage.vo.patientquestionsubmitresult.SatisfactionSurveyVO;
import java.util.List;
import javax.annotation.Resource;
@ -118,10 +119,17 @@ public class PatientQuestionSubmitResultController extends BaseController {
}
/**
* 问卷统计
* 科室提交问卷数量
*/
@GetMapping("/patientQuestionSubmitStatistic")
public R<List<PatientQuestionSubmitStatistisVo>> patientQuestionSubmitStatistic(PatientQuestionSubmitStatistisDto queryDto) {
return R.ok(patientQuestionSubmitResultService.patientQuestionSubmitStatistic(queryDto));
@GetMapping("/departmenQuestionSubmitCount")
public AjaxResult departmenQuestionSubmitCount(PatientQuestionSubmitStatistisDto queryDto) {
return patientQuestionSubmitResultService.departmenQuestionSubmitCount(queryDto);
}
/**
* 问卷统计列表
*/
@GetMapping("/patientQuestionSubmitList")
public R<List<PatientQuestionSubmitListVo>> patientQuestionSubmitList(PatientQuestionSubmitStatistisDto queryDto) {
return R.ok(patientQuestionSubmitResultService.patientQuestionSubmitList(queryDto));
}
}

View File

@ -12,6 +12,24 @@ import lombok.Data;
@Data
public class PatientQuestionSubmitStatistisDto {
/**
* 机构表id
*/
@ApiModelProperty(value = "机构表id")
private Long hospitalAgencyId;
/**
* 科室表id
*/
@ApiModelProperty(value = "科室表id")
private Long departmentId;
/**
* 科室名称
*/
@ApiModelProperty(value = "科室名称")
private String departmentName;
/**
* 问卷表id
*/

View File

@ -2,12 +2,12 @@ package com.xinelu.manage.mapper.patientquestionsubmitresult;
import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmitResult;
import com.xinelu.manage.dto.patientquestionsubmitresult.PatientQuestionSubmitStatistisDto;
import com.xinelu.manage.vo.department.DepartmentVO;
import com.xinelu.manage.vo.patientquestionsubmitresult.PatientQuestionSubmitListVo;
import com.xinelu.manage.vo.patientquestionsubmitresult.PatientQuestionSubmitResultVO;
import com.xinelu.manage.vo.patientquestionsubmitresult.PatientQuestionSubmitStatistisVo;
import com.xinelu.manage.vo.patientquestionsubmitresult.SatisfactionSurveyVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import org.apache.ibatis.annotations.Param;
/**
* 患者问卷提交结果信息Mapper接口
@ -81,5 +81,7 @@ public interface PatientQuestionSubmitResultMapper {
*/
List<SatisfactionSurveyVO> selectSatisfactionSurvey(SatisfactionSurveyVO satisfactionSurvey);
List<PatientQuestionSubmitStatistisVo> patientQuestionSubmitStatistic(PatientQuestionSubmitStatistisDto queryDto);
List<DepartmentVO> departmenQuestionSubmitCount(PatientQuestionSubmitStatistisDto queryDto);
List<PatientQuestionSubmitListVo> patientQuestionSubmitList(PatientQuestionSubmitStatistisDto queryDto);
}

View File

@ -3,7 +3,7 @@ package com.xinelu.manage.service.patientquestionsubmitresult;
import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmitResult;
import com.xinelu.manage.dto.patientquestionsubmitresult.PatientQuestionSubmitStatistisDto;
import com.xinelu.manage.vo.patientquestionsubmitresult.PatientQuestionSubmitStatistisVo;
import com.xinelu.manage.vo.patientquestionsubmitresult.PatientQuestionSubmitListVo;
import com.xinelu.manage.vo.patientquestionsubmitresult.SatisfactionSurveyVO;
import java.util.List;
@ -78,5 +78,13 @@ public interface IPatientQuestionSubmitResultService {
*/
AjaxResult selectQuestionnaireResult(Long patientQuestionSubmitResultId);
List<PatientQuestionSubmitStatistisVo> patientQuestionSubmitStatistic(PatientQuestionSubmitStatistisDto queryDto);
/**
* 科室提交问卷数量
*
* @param queryDto 查询条件
* @return AjaxResult
*/
AjaxResult departmenQuestionSubmitCount(PatientQuestionSubmitStatistisDto queryDto);
List<PatientQuestionSubmitListVo> patientQuestionSubmitList(PatientQuestionSubmitStatistisDto queryDto);
}

View File

@ -2,15 +2,20 @@ package com.xinelu.manage.service.patientquestionsubmitresult.impl;
import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.common.enums.QuestionTypeEnum;
import com.xinelu.manage.domain.agency.Agency;
import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmitResult;
import com.xinelu.manage.dto.patientquestionsubmitresult.PatientQuestionSubmitStatistisDto;
import com.xinelu.manage.mapper.agency.AgencyMapper;
import com.xinelu.manage.mapper.patientquestionsubmitresult.PatientQuestionSubmitResultMapper;
import com.xinelu.manage.service.patientquestionsubmitresult.IPatientQuestionSubmitResultService;
import com.xinelu.manage.vo.patientquestionsubmitresult.PatientQuestionSubmitStatistisVo;
import com.xinelu.manage.vo.department.DepartmentBaseVo;
import com.xinelu.manage.vo.department.DepartmentVO;
import com.xinelu.manage.vo.patientquestionsubmitresult.PatientQuestionSubmitListVo;
import com.xinelu.manage.vo.patientquestionsubmitresult.SatisfactionSurveyVO;
import java.time.LocalDateTime;
import java.util.List;
import javax.annotation.Resource;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.stereotype.Service;
/**
@ -23,6 +28,8 @@ import org.springframework.stereotype.Service;
public class PatientQuestionSubmitResultServiceImpl implements IPatientQuestionSubmitResultService {
@Resource
private PatientQuestionSubmitResultMapper patientQuestionSubmitResultMapper;
@Resource
private AgencyMapper agencyMapper;
/**
* 查询患者问卷提交结果信息
@ -116,8 +123,15 @@ public class PatientQuestionSubmitResultServiceImpl implements IPatientQuestionS
return AjaxResult.success(patientQuestionSubmitResultMapper.selectResultByTaskExecuteRecordId(null, patientQuestionSubmitResultId));
}
@Override public AjaxResult departmenQuestionSubmitCount(PatientQuestionSubmitStatistisDto queryDto) {
List<DepartmentVO> departmentVOS = patientQuestionSubmitResultMapper.departmenQuestionSubmitCount(queryDto);
Agency agency = agencyMapper.selectAgencyById(queryDto.getHospitalAgencyId());
return AjaxResult.success(DepartmentBaseVo.builder().hospitalAgencyName(ObjectUtils.isEmpty(agency) ? "" : agency.getAgencyName())
.deptNumList(departmentVOS).build());
}
@Override
public List<PatientQuestionSubmitStatistisVo> patientQuestionSubmitStatistic(PatientQuestionSubmitStatistisDto queryDto) {
return null;
public List<PatientQuestionSubmitListVo> patientQuestionSubmitList(PatientQuestionSubmitStatistisDto queryDto) {
return patientQuestionSubmitResultMapper.patientQuestionSubmitList(queryDto);
}
}

View File

@ -7,12 +7,12 @@ import java.time.LocalDateTime;
import lombok.Data;
/**
* @description: 问卷统计返回视图类
* @description: 问卷统计列表返回视图类
* @author: haown
* @create: 2024-10-16 15:06
**/
@Data
public class PatientQuestionSubmitStatistisVo {
public class PatientQuestionSubmitListVo {
/**
* 患者主键

View File

@ -463,7 +463,35 @@
</if>
</select>
<select id="patientQuestionSubmitStatistic" resultType="com.xinelu.manage.vo.patientquestionsubmitresult.PatientQuestionSubmitStatistisVo">
<select id="departmenQuestionSubmitCount" resultType="com.xinelu.manage.vo.department.DepartmentVO">
select dt.id,
dt.department_name,
dt.department_code,
( SELECT COUNT(1)
FROM patient_question_submit_result a
LEFT JOIN sign_patient_manage_route route on a.manage_route_id = route.id
LEFT JOIN sign_patient_record record ON route.sign_patient_record_id = record.id
WHERE record.department_id = dt.id
) AS countNum
from department dt
left join patient_question_submit_result pqsr on dt.id = pqsr.department_id
LEFT JOIN sign_patient_manage_route route on pqsr.manage_route_id = route.id
LEFT JOIN sign_patient_record record ON route.sign_patient_record_id = record.id
<where>
<if test="hospitalAgencyId != null ">
and dt.hospital_agency_id = #{hospitalAgencyId}
</if>
<if test="departmentId != null">
and dt.department_id = #{departmentId}
</if>
<if test="departmentName != null and departmentName != ''">
and dt.department_name like concat('%',#{departmentName},'%')
</if>
</where>
GROUP BY dt.id
</select>
<select id="patientQuestionSubmitList" resultType="com.xinelu.manage.vo.patientquestionsubmitresult.PatientQuestionSubmitListVo">
select
vr.patient_id,
vr.patient_name,