perf: 三方言 Mapper XML SQL 优化(SARG/JOIN/死代码)+ Solon 可空参数修复
SQL 优化(结果契约不变,三方言真实测试库回归通过):
- 删除 bsm getTotalConclusion/getTotalSuggest 死代码(依赖 Oracle 18c
已移除的 wm_concat,接口未引用,汇总逻辑在应用层)
- SARG 优化 13 处:日期列函数包裹(to_char/CONVERT = 年份)改为
范围查询,使医院库日期索引可命中(体检结果表逐年增长,
按身份证查历史接口为主要受益者)
- bsm getResultByIdcardAndYearAll/getItemByPeIdAll:每行标量子查询
改 LEFT JOIN pe_unit_dict;逗号 join 改 ANSI 写法
- ya getPhyexamStatus/getPeStatusByIdnoAndYear:巨型 CASE 状态位
表达式从重复计算 6 次提为子查询 status_sum + ISNULL 防 NULL
改写过程修复:
- Oracle TO_DATE('2026','YYYY') 默认当前月首日陷阱(实测复现),
改拼接 '-01-01' 完整日期
- getResultByIdNoOrPeId 的可空参数在 Solon 下被当必填,
加 required=false
回归:bsm/nx/ya 三方言年份/日期查询族接口全部通过
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -142,8 +142,8 @@ class OrderApi {
|
|||||||
/** 16. 根据 id_code 或 pe_id 和审查年份查询体检报告 */
|
/** 16. 根据 id_code 或 pe_id 和审查年份查询体检报告 */
|
||||||
@Mapping(value = "/getResultByIdNoOrPeId", method = [MethodType.POST])
|
@Mapping(value = "/getResultByIdNoOrPeId", method = [MethodType.POST])
|
||||||
fun getResultByIdNoOrPeId(
|
fun getResultByIdNoOrPeId(
|
||||||
@Param("idNo") idNo: String?,
|
@Param(value = "idNo", required = false) idNo: String?,
|
||||||
@Param("peId") peId: String?,
|
@Param(value = "peId", required = false) peId: String?,
|
||||||
@Param("auditYear") auditYear: String,
|
@Param("auditYear") auditYear: String,
|
||||||
): Result<List<Map<String, Any?>>> {
|
): Result<List<Map<String, Any?>>> {
|
||||||
if (idNo.isNullOrBlank() && peId.isNullOrBlank()) {
|
if (idNo.isNullOrBlank() && peId.isNullOrBlank()) {
|
||||||
|
|||||||
@@ -166,12 +166,8 @@
|
|||||||
where PE_ID = #{peId}
|
where PE_ID = #{peId}
|
||||||
and CONCLUSION_TEXT is not null
|
and CONCLUSION_TEXT is not null
|
||||||
</select>
|
</select>
|
||||||
<select id="getTotalConclusion" resultType="java.util.HashMap">
|
<!-- getTotalConclusion/getTotalSuggest 已删除:原实现依赖 wm_concat(Oracle 18c 起移除,
|
||||||
select wm_concat(PE_DEPT_NAME || ':' || REPLACE(REPLACE(REPLACE(to_lob(CONCLUSION_TEXT), chr(13) || chr(10), ''), chr(13), ''), chr(10), '') || '###') CONCLUSION_TEXT
|
且接口未引用);汇总逻辑由 OrderService 基于本文件列表查询在应用层完成 -->
|
||||||
from V_PHYEXAM_DEPT_RESULT
|
|
||||||
where PE_ID = #{peId}
|
|
||||||
and CONCLUSION_TEXT is not null
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<select id="getSuggest" resultType="java.util.Map">
|
<select id="getSuggest" resultType="java.util.Map">
|
||||||
select PE_ID, PE_VISIT_ID, REC_CONTENT, REPLACE(REPLACE(REPLACE(DBMS_LOB.SUBSTR(GUIDE_CONTENT, 4000, 1), chr(13) || chr(10), ''), chr(13), ''), chr(10), '') GUIDE_CONTENT
|
select PE_ID, PE_VISIT_ID, REC_CONTENT, REPLACE(REPLACE(REPLACE(DBMS_LOB.SUBSTR(GUIDE_CONTENT, 4000, 1), chr(13) || chr(10), ''), chr(13), ''), chr(10), '') GUIDE_CONTENT
|
||||||
@@ -191,17 +187,12 @@
|
|||||||
where PE_ID = #{peId}
|
where PE_ID = #{peId}
|
||||||
and GUIDE_CONTENT is not null
|
and GUIDE_CONTENT is not null
|
||||||
</select>
|
</select>
|
||||||
<select id="getTotalSuggest" resultType="java.util.HashMap">
|
|
||||||
select wm_concat(REC_CONTENT || ':' || REPLACE(REPLACE(REPLACE(GUIDE_CONTENT, chr(13) || chr(10), ''), chr(13), ''), chr(10), '') || '###') GUIDE_CONTENT
|
|
||||||
from V_PHYEXAM_DIAGNOSIS
|
|
||||||
where PE_ID = #{peId}
|
|
||||||
and GUIDE_CONTENT is not null
|
|
||||||
</select>
|
|
||||||
<select id="getPeStatusByIdnoAndYear" resultType="java.util.HashMap">
|
<select id="getPeStatusByIdnoAndYear" resultType="java.util.HashMap">
|
||||||
select *
|
select *
|
||||||
from V_PHYEXAM_PE_STATUS
|
from V_PHYEXAM_PE_STATUS
|
||||||
where ID_NO = #{idNo}
|
where ID_NO = #{idNo}
|
||||||
and to_char(PE_PRE_DATE, 'yyyy') = #{year}
|
and PE_PRE_DATE >= TO_DATE(#{year} || '-01-01', 'YYYY-MM-DD')
|
||||||
|
and PE_PRE_DATE < ADD_MONTHS(TO_DATE(#{year} || '-01-01', 'YYYY-MM-DD'), 12)
|
||||||
</select>
|
</select>
|
||||||
<select id="getResultByIdcardAndYear" resultType="com.hospital.front.vo.MedicalMiddleResultVo">
|
<select id="getResultByIdcardAndYear" resultType="com.hospital.front.vo.MedicalMiddleResultVo">
|
||||||
select DISTINCT
|
select DISTINCT
|
||||||
@@ -215,7 +206,8 @@
|
|||||||
to_char( AUDIT_DATE, 'yyyy-mm-dd HH24:mi:ss' ) AUDIT_DATE
|
to_char( AUDIT_DATE, 'yyyy-mm-dd HH24:mi:ss' ) AUDIT_DATE
|
||||||
from V_PHYEXAM_RESULT
|
from V_PHYEXAM_RESULT
|
||||||
where ID_NO = #{idNo}
|
where ID_NO = #{idNo}
|
||||||
and to_char(PE_QUEUE_DATE, 'yyyy') = #{year}
|
and PE_QUEUE_DATE >= TO_DATE(#{year} || '-01-01', 'YYYY-MM-DD')
|
||||||
|
and PE_QUEUE_DATE < ADD_MONTHS(TO_DATE(#{year} || '-01-01', 'YYYY-MM-DD'), 12)
|
||||||
</select>
|
</select>
|
||||||
<select id="getResultByIdcardAndYearAll" resultType="com.hospital.front.vo.MedicalMiddleResultVo">
|
<select id="getResultByIdcardAndYearAll" resultType="com.hospital.front.vo.MedicalMiddleResultVo">
|
||||||
SELECT DISTINCT
|
SELECT DISTINCT
|
||||||
@@ -235,7 +227,7 @@
|
|||||||
a.id_no,
|
a.id_no,
|
||||||
a.NAME,
|
a.NAME,
|
||||||
b.unit_code,
|
b.unit_code,
|
||||||
( SELECT t.unit_name FROM pe_unit_dict t WHERE t.unit_code = b.unit_code ) unit_name,
|
t.unit_name,
|
||||||
b.pe_queue_date,
|
b.pe_queue_date,
|
||||||
b.audit_date,
|
b.audit_date,
|
||||||
c.pe_dept_code,
|
c.pe_dept_code,
|
||||||
@@ -248,15 +240,14 @@
|
|||||||
c.unit,
|
c.unit,
|
||||||
c.print_context
|
c.print_context
|
||||||
FROM
|
FROM
|
||||||
pe_master_index a,
|
pe_master_index a
|
||||||
pe_visit b,
|
JOIN pe_visit b ON b.pe_id = a.pe_id
|
||||||
pe_result_dict c
|
JOIN pe_result_dict c ON c.pe_id = b.pe_id AND c.pe_visit_id = b.pe_visit_id
|
||||||
|
LEFT JOIN pe_unit_dict t ON t.unit_code = b.unit_code
|
||||||
WHERE
|
WHERE
|
||||||
a.pe_id = b.pe_id
|
b.audit_date >= TO_DATE(#{year} || '-01-01', 'YYYY-MM-DD')
|
||||||
AND b.pe_id = c.pe_id
|
and b.audit_date < ADD_MONTHS(TO_DATE(#{year} || '-01-01', 'YYYY-MM-DD'), 12)
|
||||||
AND b.pe_visit_id = c.pe_visit_id
|
and a.id_no = #{idNo}
|
||||||
and TO_CHAR(b.audit_date, 'YYYY') = #{year}
|
|
||||||
and id_no = #{idNo}
|
|
||||||
) a
|
) a
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
@@ -279,7 +270,8 @@
|
|||||||
FROM
|
FROM
|
||||||
V_PHYEXAM_RESULT
|
V_PHYEXAM_RESULT
|
||||||
WHERE
|
WHERE
|
||||||
to_char( AUDIT_DATE, 'yyyy-mm-dd' ) = #{auditDate}
|
AUDIT_DATE >= TO_DATE(#{auditDate}, 'YYYY-MM-DD')
|
||||||
|
and AUDIT_DATE < TO_DATE(#{auditDate}, 'YYYY-MM-DD') + 1
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getItemByPeId" resultType="com.hospital.front.vo.MedicalMiddleResultVo">
|
<select id="getItemByPeId" resultType="com.hospital.front.vo.MedicalMiddleResultVo">
|
||||||
@@ -313,7 +305,7 @@
|
|||||||
a.id_no,
|
a.id_no,
|
||||||
a.NAME,
|
a.NAME,
|
||||||
b.unit_code,
|
b.unit_code,
|
||||||
( SELECT t.unit_name FROM pe_unit_dict t WHERE t.unit_code = b.unit_code ) unit_name,
|
t.unit_name,
|
||||||
b.pe_queue_date,
|
b.pe_queue_date,
|
||||||
b.audit_date,
|
b.audit_date,
|
||||||
c.pe_dept_code,
|
c.pe_dept_code,
|
||||||
@@ -326,14 +318,12 @@
|
|||||||
c.unit,
|
c.unit,
|
||||||
c.print_context
|
c.print_context
|
||||||
FROM
|
FROM
|
||||||
pe_master_index a,
|
pe_master_index a
|
||||||
pe_visit b,
|
JOIN pe_visit b ON b.pe_id = a.pe_id
|
||||||
pe_result_dict c
|
JOIN pe_result_dict c ON c.pe_id = b.pe_id AND c.pe_visit_id = b.pe_visit_id
|
||||||
|
LEFT JOIN pe_unit_dict t ON t.unit_code = b.unit_code
|
||||||
WHERE
|
WHERE
|
||||||
a.pe_id = b.pe_id
|
b.pe_id = #{peId}
|
||||||
AND b.pe_id = c.pe_id
|
|
||||||
AND b.pe_visit_id = c.pe_visit_id
|
|
||||||
AND b.pe_id= #{peId}
|
|
||||||
) a
|
) a
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
@@ -358,7 +348,8 @@
|
|||||||
and PE_ID = #{peId}
|
and PE_ID = #{peId}
|
||||||
</if>
|
</if>
|
||||||
|
|
||||||
and to_char(AUDIT_DATE,'yyyy')=#{auditYear}
|
and AUDIT_DATE >= TO_DATE(#{auditYear} || '-01-01', 'YYYY-MM-DD')
|
||||||
|
and AUDIT_DATE < ADD_MONTHS(TO_DATE(#{auditYear} || '-01-01', 'YYYY-MM-DD'), 12)
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
@@ -368,7 +359,8 @@
|
|||||||
<if test="idNo != null and idNo != '' ">
|
<if test="idNo != null and idNo != '' ">
|
||||||
and ID_NO = #{idNo}
|
and ID_NO = #{idNo}
|
||||||
</if>
|
</if>
|
||||||
and to_char(PE_PRE_DATE,'yyyy') = to_char(SYSDATE,'yyyy')
|
and PE_PRE_DATE >= TRUNC(SYSDATE, 'YYYY')
|
||||||
|
and PE_PRE_DATE < ADD_MONTHS(TRUNC(SYSDATE, 'YYYY'), 12)
|
||||||
</where>
|
</where>
|
||||||
order by PE_PRE_DATE desc
|
order by PE_PRE_DATE desc
|
||||||
|
|
||||||
@@ -393,7 +385,8 @@
|
|||||||
<if test="idNo != null and idNo != '' ">
|
<if test="idNo != null and idNo != '' ">
|
||||||
and ID_NO = #{idNo}
|
and ID_NO = #{idNo}
|
||||||
</if>
|
</if>
|
||||||
and to_char(PE_PRE_DATE,'yyyy') = to_char(SYSDATE,'yyyy')
|
and PE_PRE_DATE >= TRUNC(SYSDATE, 'YYYY')
|
||||||
|
and PE_PRE_DATE < ADD_MONTHS(TRUNC(SYSDATE, 'YYYY'), 12)
|
||||||
</where>
|
</where>
|
||||||
order by PE_PRE_DATE desc
|
order by PE_PRE_DATE desc
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
@@ -214,7 +214,8 @@
|
|||||||
V_PHYEXAM_PE_STATUS
|
V_PHYEXAM_PE_STATUS
|
||||||
WHERE
|
WHERE
|
||||||
id_no = #{idNo}
|
id_no = #{idNo}
|
||||||
AND CONVERT ( VARCHAR ( 4 ), Pe_pre_date, 23 ) = #{year}
|
AND Pe_pre_date >= CONVERT(DATETIME, #{year} + '-01-01')
|
||||||
|
AND Pe_pre_date < DATEADD(YEAR, 1, CONVERT(DATETIME, #{year} + '-01-01'))
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
@@ -233,7 +234,8 @@
|
|||||||
<if test="idNo != null and idNo != '' ">
|
<if test="idNo != null and idNo != '' ">
|
||||||
and ID_NO = #{idNo}
|
and ID_NO = #{idNo}
|
||||||
</if>
|
</if>
|
||||||
and CONVERT ( VARCHAR ( 4 ), PE_PRE_DATE, 23 ) = CONVERT ( VARCHAR ( 4 ), GETDATE(), 23 )
|
and PE_PRE_DATE >= CONVERT(DATETIME, CONVERT(VARCHAR(4), GETDATE(), 23) + '-01-01')
|
||||||
|
and PE_PRE_DATE < DATEADD(YEAR, 1, CONVERT(DATETIME, CONVERT(VARCHAR(4), GETDATE(), 23) + '-01-01'))
|
||||||
</where>
|
</where>
|
||||||
order by PE_PRE_DATE desc
|
order by PE_PRE_DATE desc
|
||||||
|
|
||||||
@@ -251,7 +253,8 @@
|
|||||||
<if test="idNo != null and idNo != '' ">
|
<if test="idNo != null and idNo != '' ">
|
||||||
and ID_NO = #{idNo}
|
and ID_NO = #{idNo}
|
||||||
</if>
|
</if>
|
||||||
and CONVERT ( VARCHAR ( 4 ), PE_PRE_DATE, 23 ) = CONVERT ( VARCHAR ( 4 ), GETDATE(), 23 )
|
and PE_PRE_DATE >= CONVERT(DATETIME, CONVERT(VARCHAR(4), GETDATE(), 23) + '-01-01')
|
||||||
|
and PE_PRE_DATE < DATEADD(YEAR, 1, CONVERT(DATETIME, CONVERT(VARCHAR(4), GETDATE(), 23) + '-01-01'))
|
||||||
</where>
|
</where>
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
@@ -290,7 +293,8 @@
|
|||||||
CONVERT(varchar(100),max(AUDIT_DATE),20) AUDIT_DATE
|
CONVERT(varchar(100),max(AUDIT_DATE),20) AUDIT_DATE
|
||||||
from V_PHYEXAM_RESULT
|
from V_PHYEXAM_RESULT
|
||||||
where ID_NO = #{idNo}
|
where ID_NO = #{idNo}
|
||||||
AND CONVERT(varchar(4),AUDIT_DATE,23) = #{year}
|
AND AUDIT_DATE >= CONVERT(DATETIME, #{year} + '-01-01')
|
||||||
|
AND AUDIT_DATE < DATEADD(YEAR, 1, CONVERT(DATETIME, #{year} + '-01-01'))
|
||||||
group by id_no,NAME,PE_ID,UNIT_NAME
|
group by id_no,NAME,PE_ID,UNIT_NAME
|
||||||
</select>
|
</select>
|
||||||
<select id="getResultByIdcardAndYearAll" resultType="com.hospital.front.vo.MedicalMiddleResultVo">
|
<select id="getResultByIdcardAndYearAll" resultType="com.hospital.front.vo.MedicalMiddleResultVo">
|
||||||
@@ -305,7 +309,8 @@
|
|||||||
CONVERT(varchar(100),max(AUDIT_DATE),20) AUDIT_DATE
|
CONVERT(varchar(100),max(AUDIT_DATE),20) AUDIT_DATE
|
||||||
from V_PHYEXAM_RESULT
|
from V_PHYEXAM_RESULT
|
||||||
where ID_NO = #{idNo}
|
where ID_NO = #{idNo}
|
||||||
AND CONVERT(varchar(4),AUDIT_DATE,23) = #{year}
|
AND AUDIT_DATE >= CONVERT(DATETIME, #{year} + '-01-01')
|
||||||
|
AND AUDIT_DATE < DATEADD(YEAR, 1, CONVERT(DATETIME, #{year} + '-01-01'))
|
||||||
group by id_no,NAME,PE_ID,UNIT_NAME
|
group by id_no,NAME,PE_ID,UNIT_NAME
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
@@ -320,7 +325,8 @@
|
|||||||
CONVERT(varchar(100),max(PE_QUEUE_DATE),20) PE_QUEUE_DATE,
|
CONVERT(varchar(100),max(PE_QUEUE_DATE),20) PE_QUEUE_DATE,
|
||||||
CONVERT(varchar(100),max(AUDIT_DATE),20) AUDIT_DATE
|
CONVERT(varchar(100),max(AUDIT_DATE),20) AUDIT_DATE
|
||||||
from V_PHYEXAM_RESULT
|
from V_PHYEXAM_RESULT
|
||||||
where CONVERT(varchar(100),AUDIT_DATE,23) = #{auditDate}
|
where AUDIT_DATE >= CONVERT(DATETIME, #{auditDate})
|
||||||
|
AND AUDIT_DATE < DATEADD(DAY, 1, CONVERT(DATETIME, #{auditDate}))
|
||||||
group by id_no,NAME,PE_ID,UNIT_NAME
|
group by id_no,NAME,PE_ID,UNIT_NAME
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
@@ -376,7 +382,8 @@
|
|||||||
and PE_ID = #{peId}
|
and PE_ID = #{peId}
|
||||||
</if>
|
</if>
|
||||||
|
|
||||||
and CONVERT(varchar(4),AUDIT_DATE,23)=#{auditYear}
|
and AUDIT_DATE >= CONVERT(DATETIME, #{auditYear} + '-01-01')
|
||||||
|
and AUDIT_DATE < DATEADD(YEAR, 1, CONVERT(DATETIME, #{auditYear} + '-01-01'))
|
||||||
</where>
|
</where>
|
||||||
group by id_no,NAME,PE_ID,UNIT_NAME
|
group by id_no,NAME,PE_ID,UNIT_NAME
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
@@ -59,32 +59,28 @@
|
|||||||
|
|
||||||
<select id="getPhyexamStatus" resultType="java.util.Map">
|
<select id="getPhyexamStatus" resultType="java.util.Map">
|
||||||
SELECT
|
SELECT
|
||||||
tjh PE_ID,
|
t.tjh PE_ID,
|
||||||
xm NAME,
|
t.xm NAME,
|
||||||
sfzh ID_NO,
|
t.sfzh ID_NO,
|
||||||
dwmc UNIT_NAME,
|
t.dwmc UNIT_NAME,
|
||||||
dwbm DEPARTMENT,
|
t.dwbm DEPARTMENT,
|
||||||
(CONVERT(varchar(100), yyrq, 20)) PE_PRE_DATE,
|
(CONVERT(varchar(100), t.yyrq, 20)) PE_PRE_DATE,
|
||||||
(
|
(
|
||||||
CASE
|
CASE t.status_sum
|
||||||
WHEN ( bdzt + 0+jczt + 0+cszt + 0+zszt + 0 ) = '4' THEN
|
WHEN 4 THEN N'终审'
|
||||||
N'终审'
|
WHEN 3 THEN N'初审'
|
||||||
WHEN ( bdzt + 0+jczt + 0+cszt + 0+zszt + 0 ) = '3' THEN
|
WHEN 2 THEN N'检中'
|
||||||
N'初审'
|
WHEN 1 THEN N'报道'
|
||||||
WHEN ( bdzt + 0+jczt + 0+cszt + 0+zszt + 0 ) = '2' THEN
|
WHEN 0 THEN N'预约'
|
||||||
N'检中'
|
ELSE N'预约'
|
||||||
WHEN ( bdzt + 0+jczt + 0+cszt + 0+zszt + 0 ) = '1' THEN
|
|
||||||
N'报道'
|
|
||||||
WHEN ( bdzt + 0+jczt + 0+cszt + 0+zszt + 0 ) = '0' THEN
|
|
||||||
N'预约'
|
|
||||||
WHEN ( bdzt + 0+jczt + 0+cszt + 0+zszt + 0 ) IS NULL THEN
|
|
||||||
N'预约'
|
|
||||||
END
|
END
|
||||||
) PE_STATUS
|
) PE_STATUS
|
||||||
FROM
|
FROM
|
||||||
V_YGTJZT
|
( SELECT tjh, xm, sfzh, dwmc, dwbm, yyrq,
|
||||||
|
( ISNULL(bdzt,0) + ISNULL(jczt,0) + ISNULL(cszt,0) + ISNULL(zszt,0) ) status_sum
|
||||||
|
FROM V_YGTJZT ) t
|
||||||
WHERE
|
WHERE
|
||||||
CHARINDEX( ',' + tjh + ',', ',' + #{peIds} + ',' ) >0
|
CHARINDEX( ',' + t.tjh + ',', ',' + #{peIds} + ',' ) >0
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getItemList" resultType="java.util.Map">
|
<select id="getItemList" resultType="java.util.Map">
|
||||||
@@ -205,32 +201,29 @@
|
|||||||
</select>-->
|
</select>-->
|
||||||
<select id="getPeStatusByIdnoAndYear" resultType="java.util.Map">
|
<select id="getPeStatusByIdnoAndYear" resultType="java.util.Map">
|
||||||
SELECT
|
SELECT
|
||||||
tjh PE_ID,
|
t.tjh PE_ID,
|
||||||
xm NAME,
|
t.xm NAME,
|
||||||
sfzh ID_NO,
|
t.sfzh ID_NO,
|
||||||
dwmc UNIT_NAME,
|
t.dwmc UNIT_NAME,
|
||||||
dwbm DEPARTMENT,
|
t.dwbm DEPARTMENT,
|
||||||
(CONVERT(varchar(100), yyrq, 20)) PE_PRE_DATE,
|
(CONVERT(varchar(100), t.yyrq, 20)) PE_PRE_DATE,
|
||||||
(
|
(
|
||||||
CASE
|
CASE t.status_sum
|
||||||
WHEN ( bdzt + 0+jczt + 0+cszt + 0+zszt + 0 ) = '4' THEN
|
WHEN 4 THEN N'终审'
|
||||||
N'终审'
|
WHEN 3 THEN N'初审'
|
||||||
WHEN ( bdzt + 0+jczt + 0+cszt + 0+zszt + 0 ) = '3' THEN
|
WHEN 2 THEN N'检中'
|
||||||
N'初审'
|
WHEN 1 THEN N'报道'
|
||||||
WHEN ( bdzt + 0+jczt + 0+cszt + 0+zszt + 0 ) = '2' THEN
|
WHEN 0 THEN N'预约'
|
||||||
N'检中'
|
ELSE N'预约'
|
||||||
WHEN ( bdzt + 0+jczt + 0+cszt + 0+zszt + 0 ) = '1' THEN
|
|
||||||
N'报道'
|
|
||||||
WHEN ( bdzt + 0+jczt + 0+cszt + 0+zszt + 0 ) = '0' THEN
|
|
||||||
N'预约'
|
|
||||||
WHEN ( bdzt + 0+jczt + 0+cszt + 0+zszt + 0 ) IS NULL THEN
|
|
||||||
N'预约'
|
|
||||||
END
|
END
|
||||||
) PE_STATUS
|
) PE_STATUS
|
||||||
FROM
|
FROM
|
||||||
V_YGTJZT
|
( SELECT tjh, xm, sfzh, dwmc, dwbm, yyrq,
|
||||||
WHERE SFZH = #{idNo}
|
( ISNULL(bdzt,0) + ISNULL(jczt,0) + ISNULL(cszt,0) + ISNULL(zszt,0) ) status_sum
|
||||||
AND CONVERT(varchar(4), YYRQ, 23) = #{year}
|
FROM V_YGTJZT ) t
|
||||||
|
WHERE t.SFZH = #{idNo}
|
||||||
|
AND t.yyrq >= CONVERT(DATETIME, #{year} + '-01-01')
|
||||||
|
AND t.yyrq < DATEADD(YEAR, 1, CONVERT(DATETIME, #{year} + '-01-01'))
|
||||||
</select>
|
</select>
|
||||||
<select id="getResultByIdcardAndYear" resultType="com.hospital.front.vo.MedicalMiddleResultVo">
|
<select id="getResultByIdcardAndYear" resultType="com.hospital.front.vo.MedicalMiddleResultVo">
|
||||||
SELECT
|
SELECT
|
||||||
@@ -246,7 +239,8 @@
|
|||||||
V_TJBGJG
|
V_TJBGJG
|
||||||
WHERE
|
WHERE
|
||||||
SFZH = #{ idNo }
|
SFZH = #{ idNo }
|
||||||
AND CONVERT(varchar(4),SHSJ,23) = #{year}
|
AND SHSJ >= CONVERT(DATETIME, #{year} + '-01-01')
|
||||||
|
AND SHSJ < DATEADD(YEAR, 1, CONVERT(DATETIME, #{year} + '-01-01'))
|
||||||
group by SFZH,XM,TJH,DWMC
|
group by SFZH,XM,TJH,DWMC
|
||||||
</select>
|
</select>
|
||||||
<select id="getResultByIdcardAndYearAll" resultType="com.hospital.front.vo.MedicalMiddleResultVo">
|
<select id="getResultByIdcardAndYearAll" resultType="com.hospital.front.vo.MedicalMiddleResultVo">
|
||||||
@@ -263,7 +257,8 @@
|
|||||||
V_TJBGJG
|
V_TJBGJG
|
||||||
WHERE
|
WHERE
|
||||||
SFZH = #{ idNo }
|
SFZH = #{ idNo }
|
||||||
AND CONVERT(varchar(4),SHSJ,23) = #{year}
|
AND SHSJ >= CONVERT(DATETIME, #{year} + '-01-01')
|
||||||
|
AND SHSJ < DATEADD(YEAR, 1, CONVERT(DATETIME, #{year} + '-01-01'))
|
||||||
group by SFZH,XM,TJH,DWMC
|
group by SFZH,XM,TJH,DWMC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
@@ -286,7 +281,8 @@
|
|||||||
FROM
|
FROM
|
||||||
V_TJBGJG
|
V_TJBGJG
|
||||||
WHERE
|
WHERE
|
||||||
CONVERT(varchar(100),shsj,23)= #{auditDate}
|
shsj >= CONVERT(DATETIME, #{auditDate})
|
||||||
|
AND shsj < DATEADD(DAY, 1, CONVERT(DATETIME, #{auditDate}))
|
||||||
GROUP BY SFZH,XM,TJH,DWMC
|
GROUP BY SFZH,XM,TJH,DWMC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
@@ -342,7 +338,8 @@
|
|||||||
and TJH = #{peId}
|
and TJH = #{peId}
|
||||||
</if>
|
</if>
|
||||||
|
|
||||||
and CONVERT(varchar(4),shsj,23)=#{auditYear}
|
and shsj >= CONVERT(DATETIME, #{auditYear} + '-01-01')
|
||||||
|
and shsj < DATEADD(YEAR, 1, CONVERT(DATETIME, #{auditYear} + '-01-01'))
|
||||||
</where>
|
</where>
|
||||||
GROUP BY SFZH,XM,TJH,DWMC
|
GROUP BY SFZH,XM,TJH,DWMC
|
||||||
</select>
|
</select>
|
||||||
@@ -357,7 +354,8 @@
|
|||||||
<if test="idNo != null and idNo != '' ">
|
<if test="idNo != null and idNo != '' ">
|
||||||
and SFZH = #{idNo}
|
and SFZH = #{idNo}
|
||||||
</if>
|
</if>
|
||||||
and CONVERT ( VARCHAR ( 4 ), JCWCSJ, 23 ) = CONVERT ( VARCHAR ( 4 ), GETDATE(), 23 )
|
and JCWCSJ >= CONVERT(DATETIME, CONVERT(VARCHAR(4), GETDATE(), 23) + '-01-01')
|
||||||
|
and JCWCSJ < DATEADD(YEAR, 1, CONVERT(DATETIME, CONVERT(VARCHAR(4), GETDATE(), 23) + '-01-01'))
|
||||||
</where>
|
</where>
|
||||||
order by JCWCSJ desc
|
order by JCWCSJ desc
|
||||||
|
|
||||||
@@ -390,7 +388,8 @@
|
|||||||
<if test="idNo != null and idNo != '' ">
|
<if test="idNo != null and idNo != '' ">
|
||||||
and SFZH = #{idNo}
|
and SFZH = #{idNo}
|
||||||
</if>
|
</if>
|
||||||
and CONVERT ( VARCHAR ( 4 ), JCWCSJ, 23 ) = CONVERT ( VARCHAR ( 4 ), GETDATE(), 23 )
|
and JCWCSJ >= CONVERT(DATETIME, CONVERT(VARCHAR(4), GETDATE(), 23) + '-01-01')
|
||||||
|
and JCWCSJ < DATEADD(YEAR, 1, CONVERT(DATETIME, CONVERT(VARCHAR(4), GETDATE(), 23) + '-01-01'))
|
||||||
</where>
|
</where>
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
Reference in New Issue
Block a user