package thyyxxk.webserver.dao.his.medicalinsurance; import org.apache.ibatis.annotations.*; import thyyxxk.webserver.entity.medicalinsurance.inpatient.SiSettleApply; import thyyxxk.webserver.entity.inpatient.dismiss.ZyDisYbSrgry; import java.util.Date; import java.util.List; /** * @author dj */ @Mapper public interface SiSettleApplyDao { @Select("select mdtrt_id from t_si_pat_info with(nolock) where pat_no=#{patNo} and times=#{times} and ledger_sn=#{ledger}") String selectMdtrtId(@Param("patNo") String patNo, @Param("times") int times, @Param("ledger") int ledger); @Select("select start_time from ${table} with(nolock) where inpatient_no=#{patNo} and admiss_times=#{times} " + "and status_flag > '1' and isnull(group_no, '00')='00' and order_code in ('06026','06053','05973') and status_flag <> '6' ") Date selectActOrderDisDate(@Param("table") String table, @Param("patNo") String patNo, @Param("times") Integer times); @Select("select status,handle_comment,type,settle_datetime,acct_used_flag,death_flag from t_si_settle_apply with(nolock) " + "where pat_no=#{patNo} and times=#{times} and ledger_sn=#{ledger} and type=#{type}") SiSettleApply selectSettleApply(@Param("patNo") String patNo, @Param("times") int times, @Param("ledger") int ledger, @Param("type") int type); @Delete("delete from t_si_settle_apply where pat_no=#{patNo} and times=#{times} and ledger_sn=#{ledger} and type=#{type}") void deleteSettleApply(@Param("patNo") String patNo, @Param("times") int times, @Param("ledger") int ledger, @Param("type") int type); @Insert("insert into t_si_settle_apply (pat_no,times,ledger_sn,input_staff,input_comment,input_datetime,status,type," + "settle_datetime,settled,acct_used_flag,death_flag) values (#{patNo},#{times},#{ledgerSn},#{inputStaff}," + "#{inputComment},getdate(),0,#{type},#{settleDatetime},0,#{acctUsedFlag},#{deathFlag})") void insertSettleApply(SiSettleApply apply); @Select("select a.pat_no,a.times,a.ledger_sn,a.status,a.type,c.sex as gender,rtrim(c.name) as name,b.med_type, " + "wardName=(select rtrim(name) from zd_unit_code with(nolock) where code=c.ward),a.death_flag " + "from t_si_settle_apply a with(nolock), t_si_pat_info b with(nolock), zy_actpatient c with(nolock) " + "where a.settled=0 and a.pat_no=b.pat_no and a.times=b.times " + "and a.ledger_sn=b.ledger_sn and a.pat_no=c.inpatient_no") List selectUnhandledApplies(); @Select("select a.pat_no,a.times,a.ledger_sn,a.input_staff,a.input_comment,a.input_datetime,a.status,a.handle_staff,a.acct_used_flag, " + "a.handle_comment,a.handle_datetime,a.type,a.settle_datetime,b.med_type, b.insuplc_admdvs,b.insutype,b.mdtrt_id, " + "detailTotalCharge=(select isnull(sum(charge_fee),0) from zy_detail_charge c with(nolock) where c.inpatient_no=a.pat_no " + "and c.admiss_times=a.times and c.ledger_sn=a.ledger_sn), " + "ledgerTotalCharge=(select isnull(total_charge,0) from zy_ledger_file c with(nolock) where c.inpatient_no=a.pat_no " + "and c.admiss_times=a.times and c.ledger_sn=a.ledger_sn), " + "medinsTotalCharge=(select isnull(sum(charge_fee),0) from zy_detail_charge c with(nolock) where c.inpatient_no=a.pat_no " + "and c.admiss_times=a.times and c.ledger_sn=a.ledger_sn and trans_flag_yb=1), " + "fundpay=(select isnull(charge_yb,0) from zy_ledger_file c with(nolock) where c.inpatient_no=a.pat_no " + "and c.admiss_times=a.times and c.ledger_sn=a.ledger_sn),death_flag " + "from t_si_settle_apply a with(nolock), t_si_pat_info b with(nolock) where a.pat_no=#{patNo} and a.times=#{times} and " + "a.ledger_sn=#{ledgerSn} and a.type=#{type} and a.pat_no=b.pat_no and a.times=b.times and a.ledger_sn=b.ledger_sn") SiSettleApply selectCurrentApply(SiSettleApply apply); @Select("select detailTotalCharge=(select isnull(sum(charge_fee),0) from zy_detail_charge c with(nolock) where " + "c.inpatient_no=#{patNo} and c.admiss_times=#{times} and c.ledger_sn=#{ledgerSn}), " + "ledgerTotalCharge=(select isnull(total_charge,0) from zy_ledger_file c with(nolock) where " + "c.inpatient_no=#{patNo} and c.admiss_times=#{times} and c.ledger_sn=#{ledgerSn})") SiSettleApply selectTotalChargeAgain(SiSettleApply apply); @Select("select zyh,zycs,ssxh,ssbm,ssmc,ssrq,ssys,sszs1,sszs2,mzys from batj_ba4 where zyh=#{patNo} and zycs=#{times} order by ssxh") List selectSurgeries(@Param("patNo") String patNo, @Param("times") int times); @Update("update t_si_settle_apply set status=#{status},handle_staff=#{handleStaff},handle_comment=#{handleComment}, " + "handle_datetime=getdate() where pat_no=#{patNo} and times=#{times} and ledger_sn=#{ledgerSn} and type=#{type}") void handleApply(SiSettleApply apply); }