Browse Source

修改查询接口

bfyMa
zhangye 3 years ago
parent
commit
655a6794ae
  1. 2
      src/main/resources/application-test.yml
  2. 67
      src/main/resources/mapper_dao/QuestionnaireDao.xml

2
src/main/resources/application-test.yml

@ -52,4 +52,4 @@ wisdom:
question:
template: /home/cloud/carbasics/uploads/template/暴风眼问卷导出表格模板.xlsx
pdftemplate: /home/cloud/carbasics/uploads/template/卒中绿色通道时间节点控制表form版备用.pdf
screeningUrl: https://test.tall.wiki/carbasics-1/screen-survey
screeningUrl: https://test.tall.wiki/carbasics/screen-survey

67
src/main/resources/mapper_dao/QuestionnaireDao.xml

@ -175,9 +175,9 @@
r.answer,
CASE 1
WHEN IF(LENGTH(r.answer) - LENGTH(REPLACE(r.answer,",","")) >= 2, 1, 0 ) THEN '1'
WHEN IF((FIND_IN_SET('09',r.answer) = 1) or (FIND_IN_SET('10',r.answer) = 1), 1, 0) THEN '1'
WHEN IF((FIND_IN_SET('01',r.answer) = 1) or (FIND_IN_SET('03',r.answer) = 1) or (FIND_IN_SET('04',r.answer) = 1), 1, 0) THEN '2'
WHEN IF((FIND_IN_SET('02',r.answer) = 1) or (FIND_IN_SET('05',r.answer) = 1) or (FIND_IN_SET('06',r.answer) = 1) or (FIND_IN_SET('07',r.answer) = 1) or (FIND_IN_SET('08',r.answer) = 1) , 1, 0) THEN '3'
WHEN IF((FIND_IN_SET('09',r.answer) > -1) or (FIND_IN_SET('10',r.answer) > -1), 1, 0) THEN '1'
WHEN IF((FIND_IN_SET('01',r.answer) > -1) or (FIND_IN_SET('03',r.answer) > -1) or (FIND_IN_SET('04',r.answer) > -1), 1, 0) THEN '2'
WHEN IF((FIND_IN_SET('02',r.answer) > -1) or (FIND_IN_SET('05',r.answer) > -1) or (FIND_IN_SET('06',r.answer) > -1) or (FIND_IN_SET('07',r.answer) > -1) or (FIND_IN_SET('08',r.answer) > -1) , 1, 0) THEN '3'
ELSE '0'
END as type
FROM
@ -213,7 +213,14 @@
(
SELECT
q.id,
q.submitTime
q.submitTime,
CASE 1
WHEN IF(LENGTH(r1.answer) - LENGTH(REPLACE(r1.answer,",","")) >= 2, 1, 0 ) THEN '1'
WHEN IF((FIND_IN_SET('09',r1.answer) > -1) or (FIND_IN_SET('10',r1.answer) > -1), 1, 0) THEN '1'
WHEN IF((FIND_IN_SET('01',r1.answer) > -1) or (FIND_IN_SET('03',r1.answer) > -1) or (FIND_IN_SET('04',r1.answer) > -1), 1, 0) THEN '2'
WHEN IF((FIND_IN_SET('02',r1.answer) > -1) or (FIND_IN_SET('05',r1.answer) > -1) or (FIND_IN_SET('06',r1.answer) > -1) or (FIND_IN_SET('07',r1.answer) > -1) or (FIND_IN_SET('08',r1.answer) > -1) , 1, 0) THEN '3'
ELSE '0'
END as type
FROM
(
SELECT
@ -232,43 +239,14 @@
and qd.user_id = #{userId}
and qd.submit_status = 1
) q
LEFT JOIN t_qcp_questionnaire_record r
on q.id = r.questionnaire_detail_id and r.rec_status = 0
LEFT JOIN t_qcp_questionnaire_record r1
on q.id = r1.questionnaire_detail_id and r1.rec_status = 0
LEFT JOIN t_qcp_questionnaire_record r2 ON q.id = r2.questionnaire_detail_id
AND r2.rec_status = 0
<where>
<if test="name != null and name != ''">
and r.question_code = 'SCWJ-NAME'
and r.answer like CONCAT('%',#{name},'%')
</if>
<if test="type == 1">
and r.question_code = 'SCWJ-ILLNESS'
and
(
LENGTH(r.answer) - LENGTH(REPLACE(r.answer,",","")) >= 2
or (FIND_IN_SET('09',r.answer) = 1)
or (FIND_IN_SET('10',r.answer) = 1)
)
</if>
<if test="type == 2">
and r.question_code = 'SCWJ-ILLNESS'
and LENGTH(r.answer) - LENGTH(REPLACE(r.answer,",","")) &lt; 2
and
(
(FIND_IN_SET('01',r.answer) = 1)
or (FIND_IN_SET('03',r.answer) = 1)
or (FIND_IN_SET('04',r.answer) = 1)
)
</if>
<if test="type == 3">
and r.question_code = 'SCWJ-ILLNESS'
and LENGTH(r.answer) - LENGTH(REPLACE(r.answer,",","")) &lt; 2
and
(
(FIND_IN_SET('02',r.answer) = 1)
or (FIND_IN_SET('05',r.answer) = 1)
or (FIND_IN_SET('06',r.answer) = 1)
or (FIND_IN_SET('07',r.answer) = 1)
or (FIND_IN_SET('08',r.answer) = 1)
)
and r2.question_code = 'SCWJ-NAME'
and r2.answer like CONCAT('%',#{name},'%')
</if>
</where>
GROUP BY q.id
@ -276,6 +254,11 @@
LEFT JOIN t_qcp_questionnaire_record r1 on a.id = r1.questionnaire_detail_id and r1.question_code = 'SCWJ-NAME' and r1.rec_status = 0
LEFT JOIN t_qcp_questionnaire_record r2 on a.id = r2.questionnaire_detail_id and r2.question_code = 'SCWJ-PHONE'and r2.rec_status = 0
LEFT JOIN t_qcp_questionnaire_record r3 on a.id = r3.questionnaire_detail_id and r3.question_code = 'SCWJ-ILLNESS'and r3.rec_status = 0
<if test="type != 0">
where
a.type = #{type}
</if>
</select>
<select id="queryDoctorIdByRoleId" resultType="java.lang.Long">
SELECT
@ -310,9 +293,9 @@
r.answer,
CASE 1
WHEN IF(LENGTH(r.answer) - LENGTH(REPLACE(r.answer,",","")) >= 2, 1, 0 ) THEN '1'
WHEN IF((FIND_IN_SET('09',r.answer) = 1) or (FIND_IN_SET('10',r.answer) = 1), 1, 0) THEN '1'
WHEN IF((FIND_IN_SET('01',r.answer) = 1) or (FIND_IN_SET('03',r.answer) = 1) or (FIND_IN_SET('04',r.answer) = 1), 1, 0) THEN '2'
WHEN IF((FIND_IN_SET('02',r.answer) = 1) or (FIND_IN_SET('05',r.answer) = 1) or (FIND_IN_SET('06',r.answer) = 1) or (FIND_IN_SET('07',r.answer) = 1) or (FIND_IN_SET('08',r.answer) = 1) , 1, 0) THEN '3'
WHEN IF((FIND_IN_SET('09',r.answer) > -1) or (FIND_IN_SET('10',r.answer) > -1), 1, 0) THEN '1'
WHEN IF((FIND_IN_SET('01',r.answer) > -1) or (FIND_IN_SET('03',r.answer) > -1) or (FIND_IN_SET('04',r.answer) > -1), 1, 0) THEN '2'
WHEN IF((FIND_IN_SET('02',r.answer) > -1) or (FIND_IN_SET('05',r.answer) > -1) or (FIND_IN_SET('06',r.answer) > -1) or (FIND_IN_SET('07',r.answer) > -1) or (FIND_IN_SET('08',r.answer) > -1) , 1, 0) THEN '3'
ELSE '0'
END as type,
q.memberId,

Loading…
Cancel
Save