2026-08-12 09:13:39 +08:00
<?xml version="1.0" encoding="UTF-8" ?>
< !DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace= "com.czblood.busBloodbank.mapper.BloodOutMapper" >
<select id= "queryApplyBloodTypeCount" resultType= "java.lang.Integer" >
SELECT COUNT(1) FROM xk_transfuse_apply_bloodbreed A JOIN xk_blood_breed B ON B.breed_code=A.blood_breed AND B.Is_match='N' WHERE A.bill_no=#{billNo} and b.blood_kind = '0002'
</select>
2026-08-14 10:14:35 +08:00
<select id= "queryApplyInfo" resultType= "java.util.Map" >
SELECT xk_patient_info.patient_name,
xk_patient_info.age,
xk_patient_info.patient_sex,
xk_transfuse_apply.bill_no,
xk_patient_info.transfuse_history,
xk_patient_info.gestation_history,
xk_patient_info.parturition_history,
xk_patient_info.reaction_history,
xk_patient_info.match_history,
xk_transfuse_apply.apply_date,
xk_transfuse_apply.abo_type,
xk_transfuse_apply.rh_type,
xk_transfuse_apply.diagnoses,
xk_transfuse_apply.intent,
xk_transfuse_apply.apply_type,
xk_transfuse_apply.zone_id,
xk_transfuse_apply.use3_date,
xk_transfuse_apply.use2_date,
xk_transfuse_apply.use1_date,
xk_transfuse_apply.beinhos_id,
xk_transfuse_apply.dept_id,
xk_transfuse_apply.patient_bed,
xk_check_bloodtype.affirm_abo,
xk_check_bloodtype.check_rh,
xk_check_bloodtype.affirm_antibody,
xk_check_bloodtype.Sub_Blood
FROM xk_patient_info RIGHT OUTER JOIN xk_transfuse_apply ON xk_patient_info.beinhos_id = xk_transfuse_apply.beinhos_id,
xk_check_bloodtype
WHERE
( xk_transfuse_apply.bill_no = xk_check_bloodtype.apply_no ) and
( xk_transfuse_apply.bill_no = #{billNo}) AND
( xk_transfuse_apply.bill_sort = 'B') AND
( xk_transfuse_apply.operation_type = 'C' OR isnull(xk_transfuse_apply.operation_type,'') = '')
union
SELECT xk_patient_info.patient_name,
xk_patient_info.age,
xk_patient_info.patient_sex,
xk_transfuse_apply.bill_no,
xk_patient_info.transfuse_history,
xk_patient_info.gestation_history,
xk_patient_info.parturition_history,
xk_patient_info.reaction_history,
xk_patient_info.match_history,
xk_transfuse_apply.apply_date,
xk_transfuse_apply.abo_type,
xk_transfuse_apply.rh_type,
xk_transfuse_apply.diagnoses,
xk_transfuse_apply.intent,
xk_transfuse_apply.apply_type,
xk_transfuse_apply.zone_id,
xk_transfuse_apply.use3_date,
xk_transfuse_apply.use2_date,
xk_transfuse_apply.use1_date,
xk_transfuse_apply.beinhos_id,
xk_transfuse_apply.dept_id,
xk_transfuse_apply.patient_bed,
space(4) affirm_abo,
space(4) check_rh,
space(8) affirm_antibody,
space(8) Sub_Blood
FROM xk_patient_info RIGHT OUTER JOIN xk_transfuse_apply ON xk_patient_info.beinhos_id = xk_transfuse_apply.beinhos_id
WHERE
( xk_transfuse_apply.bill_no = #{billNo}) and
( xk_transfuse_apply.bill_sort = 'C')AND
( xk_transfuse_apply.operation_type = 'C' OR isnull(xk_transfuse_apply.operation_type,'') = '')
union
SELECT xk_patient_info.patient_name,
xk_patient_info.age,
xk_patient_info.patient_sex,
xk_transfuse_apply.bill_no,
xk_patient_info.transfuse_history,
xk_patient_info.gestation_history,
xk_patient_info.parturition_history,
xk_patient_info.reaction_history,
xk_patient_info.match_history,
xk_transfuse_apply.apply_date,
xk_transfuse_apply.abo_type,
xk_transfuse_apply.rh_type,
xk_transfuse_apply.diagnoses,
xk_transfuse_apply.intent,
xk_transfuse_apply.apply_type,
xk_transfuse_apply.zone_id,
xk_transfuse_apply.use3_date,
xk_transfuse_apply.use2_date,
xk_transfuse_apply.use1_date,
xk_transfuse_apply.beinhos_id,
xk_transfuse_apply.dept_id,
xk_transfuse_apply.patient_bed,
xk_check_bloodtype.affirm_abo,
xk_check_bloodtype.check_rh,
xk_check_bloodtype.affirm_antibody ,
xk_check_bloodtype.Sub_Blood
FROM xk_patient_info RIGHT OUTER JOIN xk_transfuse_apply ON xk_patient_info.beinhos_id = xk_transfuse_apply.beinhos_id,
xk_check_bloodtype
WHERE
( xk_transfuse_apply.bill_no = xk_check_bloodtype.apply_no ) and
( xk_transfuse_apply.bill_sort = 'A')AND
( xk_transfuse_apply.operation_type = 'C' OR isnull(xk_transfuse_apply.operation_type,'') = '')AND
( xk_transfuse_apply.bill_no = #{billNo})
</select>
<select id= "queryWaitInfo" resultType= "java.util.Map" >
SELECT xk_transfuse_apply.bill_no,
xk_patient_info.patient_name,
xk_transfuse_apply.dept_id ,xk_transfuse_apply_bloodbreed.blood_breed
FROM xk_transfuse_apply with (nolock) LEFT OUTER JOIN xk_patient_info with (nolock) ON xk_transfuse_apply.beinhos_id = xk_patient_info.beinhos_id ,xk_dmzd,
xk_transfuse_apply_bloodbreed with (nolock)
WHERE (xk_transfuse_apply_bloodbreed.bill_no = xk_transfuse_apply.bill_no) and
(xk_transfuse_apply.check_sign = 'Y' or xk_transfuse_apply.check_sign = 'y' )and
(( bill_sort = 'A' AND bill_stasus = 'F') OR (bill_sort = 'C' AND bill_stasus = 'B' )OR (bill_sort = 'B' AND (bill_stasus= 'C' OR bill_stasus = 'S')) ) AND
(xk_transfuse_apply.operation_type ='C' or isnull(xk_transfuse_apply.operation_type,'') = '')and
(( (xk_transfuse_apply.check_explain = xk_dmzd.wordbook_code) and (xk_dmzd.wordbook_sign ='sqdshyj')AND xk_dmzd.exp1 = 'Y' ) or isnull(xk_transfuse_apply.check_explain,'') = '') and
(xk_transfuse_apply.abnor_next = 'Y' or isnull(xk_transfuse_apply.abnor_next,'') = '')
-- 两天前 00:00:00 当天23:59:59
AND xk_transfuse_apply.apply_date between DATEADD(DD, DATEDIFF(DD,0,GETDATE())-2, 0) and DATEADD(SS, -1, DATEADD(DD, DATEDIFF(DD,0,GETDATE())+1, 0))
</select>
<select id= "queryBloodBackOutCount" resultType= "com.czblood.bus.pojo.XkBackoutDetail" >
SELECT xk_backout_detail.* FROM xk_backout_main , xk_backout_detail
WHERE ( xk_backout_main.bill_no =xk_backout_detail.bill_no )
<![CDATA[ AND isnull ( xk_backout_main.audit_person , '' ) <> '' ]]>
and xk_backout_detail.blood_no = #{bloodNo} and xk_backout_detail.product_no = #{productNo}
</select>
<select id= "queryBloodOutInfoCount" resultType= "java.util.Map" >
SELECT xk_out_main.bill_no,xk_out_main.apply_no,(select wordbook_name from xk_dmzd where wordbook_sign = 'ks' and xk_transfuse_apply.dept_id = wordbook_code) as dept_name,xk_transfuse_apply.beinhos_id,xk_patient_info.patient_name
FROM xk_out_main left join xk_transfuse_apply on (xk_out_main.apply_no = xk_transfuse_apply.bill_no), xk_out_detail,xk_patient_info
WHERE xk_out_main.bill_no = xk_out_detail.bill_no and xk_out_main.beinhos_id = xk_patient_info.beinhos_id
AND xk_out_main.check_sign ='Y' AND xk_out_detail.blood_no = #{bloodNo} and xk_out_detail.product_no = #{productNo}
</select>
<select id= "queryDiscardCount" resultType= "com.czblood.bus.pojo.XkDiscardMain" >
SELECT xk_discard_main.*
FROM xk_discard_main , xk_discard_detail
WHERE ( xk_discard_main.bill_no =xk_discard_detail.bill_no )
<![CDATA[AND ( isnull ( xk_discard_main.audit_person , '' ) <> '' ) ]]>
and ( xk_discard_detail.blood_no = #{bloodNo} ) and xk_discard_detail.product_no = #{productNo}
</select>
<select id= "queryMatchBloodInfo" resultType= "java.util.Map" >
SELECT isnull ( xk_dmzd.remark , '' ) as can_send , xk_dmzd.wordbook_name as result,xk_match_detail.match_method,xk_match_detail.check_method
FROM xk_dmzd , xk_match_detail , xk_match_main
WHERE ( xk_match_detail.result =xk_dmzd.wordbook_code ) AND
( xk_dmzd.wordbook_sign ='pxjg' ) AND
( xk_match_main.bill_no =xk_match_detail.bill_no ) AND
( xk_match_detail.blood_no = #{bloodNo} ) and
( xk_match_detail.product_no = #{productNo} ) AND
( xk_match_main.apply_no = #{applyNo} )
</select>
<select id= "queryXkMatchMain" resultType= "com.czblood.bus.pojo.XkMatchMain" >
SELECT * FROM xk_match_main Where apply_no = #{applyNo} AND bill_status ='A'
</select>
2026-08-14 17:47:02 +08:00
<select id= "queryMaxCheckNo" resultType= "java.lang.String" >
select top 1 bill_no from xk_check_bloodtype where apply_no = #{applyNo} order by test_date
</select>
<select id= "querySampleMaxPickDate" resultType= "java.util.Date" >
SELECT Max(Pick_Date) FROM xk_sample_info Where Relate_Applyno = #{applyNo}
</select>
2026-08-17 18:00:40 +08:00
<select id= "queryCheckBloodtype" resultType= "com.czblood.bus.pojo.XkCheckBloodtype" >
SELECT * FROM xk_check_bloodtype
Where apply_no = #{applyNo} And ( bill_status ='A' OR bill_status ='B' )
</select>
2026-08-12 09:13:39 +08:00
</mapper>