package thyyxxk.webserver.dao.his.inpatient;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.*;
import thyyxxk.webserver.entity.datamodify.FeiYongLeiXin;
import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
import thyyxxk.webserver.entity.datamodify.ZyDetailCharge;
import thyyxxk.webserver.entity.inpatient.WeiGuiFeiYongFenXi;
import java.math.BigDecimal;
import java.util.List;
/**
*
* 描述: 项目录入
*
*
* @author xc
* @date 2021-08-02 10:37
*/
@Mapper
public interface XiangMuLuRuDao extends BaseMapper {
@Select("")
List huanZheYaoPinFeiYong(@Param("currentPage") long currentPage,
@Param("pageSize") long pageSize,
@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledgerSn") Integer ledgerSn,
@Param("chargeCode") String chargeCode,
@Param("infantFlag") int infantFlag,
@Param("startTime") String startTime,
@Param("endTime") String endTime,
@Param("orderNo") BigDecimal orderNo,
@Param("actOrderNo") BigDecimal actOrderNo,
@Param("dept") String dept,
@Param("riQiPaiXu") String riQiPaiXu,
@Param("tuiFeiFlag") Integer tuiFeiFlag);
@Select("")
long huanZheYaoPinFeiYongTotal(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledgerSn") Integer ledgerSn,
@Param("chargeCode") String chargeCode,
@Param("infantFlag") int infantFlag,
@Param("startTime") String startTime,
@Param("endTime") String endTime,
@Param("orderNo") BigDecimal orderNo,
@Param("actOrderNo") BigDecimal actOrderNo,
@Param("dept") String dept,
@Param("tuiFeiFlag") Integer tuiFeiFlag);
@Select("")
List huanZheXiangMuFeiYong(@Param("currentPage") long currentPage,
@Param("pageSize") long pageSize,
@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledgerSn") Integer ledgerSn,
@Param("chargeCode") String chargeCode,
@Param("infantFlag") int infantFlag,
@Param("startTime") String startTime,
@Param("endTime") String endTime,
@Param("orderNo") BigDecimal orderNo,
@Param("actOrderNo") BigDecimal actOrderNo,
@Param("dept") String dept,
@Param("riQiPaiXu") String riQiPaiXu,
@Param("tuiFeiFlag") Integer tuiFeiFlag);
@Select("")
long huanZheFeiYongToatal(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledgerSn") Integer ledgerSn,
@Param("chargeCode") String chargeCode,
@Param("infantFlag") int infantFlag,
@Param("startTime") String startTime,
@Param("endTime") String endTime,
@Param("orderNo") BigDecimal orderNo,
@Param("actOrderNo") BigDecimal actOrderNo,
@Param("dept") String dept,
@Param("tuiFeiFlag") Integer tuiFeiFlag);
@Select("select detail_sn,ori_detail_sn from zy_detail_charge where inpatient_no=#{inpatientNo} and admiss_times = #{admissTimes} " +
"and charge_fee <= 0 and ori_detail_sn is not null and infant_flag = #{infantFlag}")
List tuiFeiList(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("infantFlag") int infantFlag);
/**
* @param pyCode 拼音编码
* @return 获取项目的名称和code
*/
@Select("select distinct code,name from zd_charge_item where (py_code like #{pyCode} or code like #{pyCode} or name like #{pyCode})" +
"union all " +
"select distinct code,name from yp_zd_dict where (py_code like #{pyCode} or code like #{pyCode} or name like #{pyCode})")
List getChargeCode(String pyCode);
/**
* @param inpatientNo 住院次数
* @param admissTimes 住院号
* @param list 需要退费的流水号
* @return 获取患者的全部详细信息 因为要生成一条一样的数据 只是 费用和数量不一致 以及录入人 和 录入时间
*/
@Select("")
List huoQuJuTiFeiYong(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledgerSn") Integer ledgerSn,
@Param("list") List list);
/**
* 查询出 有哪些数据已经退过了 费用
*
* @param inpatientNo 住院号
* @param admissTimes 住院次数
* @param list 流水号
* @return 返回 已经退过费用的数据
*/
@Select("")
List chaKanSFYiJingTuiFeiLe(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledgerSn") Integer ledgerSn,
@Param("list") List list);
/**
* 插入数据
*
* @param list 插入退费的数据 生成一条一样的数据 只是 费用和数量不一致 以及录入人 和 录入时间 ori_detail_sn 保存退费的原流水号
*/
@Insert("")
void xiangMuTuiFei(@Param("list") List list);
/**
* 更新对应 退费的正数 流水
*
* @param inpatientNo 住院号
* @param admissTimes 住院次数
* @param ledgerSn 账页号
* @param list 正流水
*/
@Update("")
void genXinZhenShuTuiFeiLiuShui(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledgerSn") Integer ledgerSn,
@Param("list") List list,
@Param("flag") int flag);
/**
* 退药汇总单
*/
@Insert("insert into yz_yp_page_no (page_no, dept_code, ward_code, submit_time, submit_name,\n" +
" submit_flag, page_class, page_name, group_no)\n" +
"values (#{pageNo}, #{wardCode}, #{wardCode}, getdate(), #{userCode}, 1, 'HT', '护士退药单', #{groupNo})")
void drugReturnForm(@Param("pageNo") Integer pageNo,
@Param("wardCode") String wardCode,
@Param("userCode") String userCode,
@Param("groupNo") String groupNo);
@Insert("")
void detailsOfDrugReturnForm(@Param("list") List list,
@Param("patNo") String patNo,
@Param("times") Integer times,
@Param("name") String name,
@Param("bedNo") String bedNo,
@Param("wardCode") String wardCode,
@Param("infantFlag") Integer infantFlag,
@Param("groupNo") String groupNo,
@Param("userCode") String userCode,
@Param("pageNo") Integer pageNo,
@Param("ledgerSn") Integer ledgerSn);
/**
* 获取模板
*
* @param queryWrapper 根据科室来搜索
* @return 返回模板信息
*/
@Select("SELECT rtrim(pattern_name) as name, " +
" max(group_no) as group_no, " +
" max(op_id_code) as op_id_code, " +
" op_dept " +
"FROM zy_charge_pattern " +
" ${ew.customSqlSegment} " +
"group by pattern_name, op_dept ")
Page getMuBan(IPage page,
@Param(Constants.WRAPPER) QueryWrapper> queryWrapper);
/**
* 这个是获取模板下面的那些项目具体信息
*
* @param patternName 模板名称
* @param opIdCode 录入人id
* @return 返回模板 下面的详细信息
*/
@Select("SELECT charge_name=RTRIM(b.name), " +
" charge_code_mx=b.code, " +
" amount=a.amount, " +
" charge_amount=b.charge_amount, " +
" op_id_code=a.op_id_code, " +
" bill_item_code=b.bill_item_zy, " +
" bill_item_name=(select name from zy_bill_item where code = b.bill_item_zy)," +
" national_code," +
" national_name," +
" descriptions " +
"FROM zy_charge_pattern a, " +
" zd_charge_item b " +
"WHERE (a.pattern_name = #{patternName}) " +
" and a.op_id_code = #{opIdCode} " +
" and a.charge_code = b.code " +
" and isnull(a.serial, '01') = '00' " +
" and (isnull(b.del_flag, '0') <> '1') " +
"union all " +
"SELECT charge_name=RTRIM(d.name), " +
" charge_code_mx=b.charge_code, " +
" amount=a.amount, " +
" charge_amount=d.pack_retprice, " +
" op_id_code=a.op_id_code, " +
" bill_item_code=d.bill_item_zy, " +
" bill_item_name=(select name from zy_bill_item where code = d.bill_item_zy)," +
" national_code," +
" national_name," +
" specification as descriptions " +
"FROM zy_charge_pattern a, " +
" yp_base_yf b, " +
" yp_zd_dict d " +
"WHERE (a.pattern_name = #{patternName}) " +
" and a.op_id_code = #{opIdCode} " +
" and a.group_no = b.group_no " +
" and a.charge_code = b.charge_code " +
" and isnull(a.serial, '01') = b.serial " +
" and b.charge_code = d.code " +
" and b.serial = d.serial " +
" and isnull(d.del_flag, '0') <> '1' " +
" and isnull(b.visible_flag_zy, '0') <> '1'")
List getMuBanXinXi(@Param("patternName") String patternName, @Param("opIdCode") String opIdCode);
/**
* 搜索项目信息
*
* @param pyCode 拼音码
* @return 返回模板信息
*/
@Select("SELECT a.code charge_code," +
" a.code charge_code_mx, " +
" a.exec_unit dept_code," +
" rtrim(a.yb_comment) yb_comment, " +
" RTRIM(a.name) charge_name, " +
" a.charge_amount," +
" amount = 1, " +
" bill_item_code=a.bill_item_zy, " +
" bill_item_name=(select name from zy_bill_item where code = a.bill_item_zy)," +
" a.py_code, " +
" a.d_code, " +
" a.suppress_flag, " +
" a.bill_item_out, " +
" a.n_code, " +
" self_flag =isnull(a.self_flag,'0'), " +
" a.separate_flag , " +
" spec=charge_unit, " +
" a.yb_comment, " +
" exec_unit_name=b.name, " +
" serial='00', " +
" group_no='00'," +
" national_code," +
" national_name," +
" descriptions " +
"FROM zd_charge_item a left join zd_unit_code b on (a.exec_unit = b.code) " +
"where isnull(a.del_flag,'') <> '1' and " +
" isnull(a.in_out_flag,'') <> '1' and " +
" (a.py_code like #{pyCode} or a.code like #{pyCode} or a.name like #{pyCode})")
List queryXiangMu(String pyCode);
@Select("SELECT distinct a.code charge_code_mx, " +
" charge_code = (select charge_code from zy_bill_item where a.bill_item_zy = zy_bill_item.code), " +
" a.serial, " +
" RTRIM(a.name) charge_name, " +
" a.pack_size amount, " +
" charge_amount=a.pack_retprice, " +
" spec=a.specification, " +
" a.drug_flag , " +
" a.fix_price, " +
" c.stock_amount, " +
" self_flag=isnull(a.self_flag,'0'), " +
" suppress_flag=a.suprice_flag, " +
" group_no=c.group_no, " +
" bill_item_code=a.bill_item_zy, " +
" bill_item_name=(select name from zy_bill_item where code = a.bill_item_zy), " +
" ybbz=a.yb_comment_new, " +
" yblx=(select name from yp_zd_yb_type where code=a.yb_flag_new), " +
" xnh=a.xnh_flag," +
" national_code," +
" national_name " +
"FROM yp_zd_dict a ,yp_print_name b , " +
" yp_base_yf c " +
"where " +
"(a.py_code like #{pyCode} or a.name like #{pyCode} or a.code like #{pyCode}) and" +
" a.code=b.charge_code and " +
" a.code=c.charge_code and " +
" a.serial=c.serial and " +
" c.visible_flag_mz <> '1' and " +
" c.visible_flag_zy <> '1' and" +
" isnull(a.del_flag,0) = 0 and " +
" c.group_no='73'")
List queryYaoPin(String pyCode);
/**
* 插入项目录入费用
*
* @param zyDetailCharge 插入的信息
* @param list 费用详情
*/
@Insert("")
void chaRuFeiYong(@Param("zyDetailCharge") ZyDetailCharge zyDetailCharge,
@Param("list") List list,
@Param("infantFlag") int infantFlag,
@Param("ledgerSn") Integer ledgerSn);
@Select("")
List yaoFang(List yaoPingCode);
@Insert("")
void shenQingYaoPing(@Param("zyDetailCharge") ZyDetailCharge zyDetailCharge,
@Param("list") List list,
@Param("infantFlag") int infantFlag,
@Param("ledgerSn") Integer ledgerSn,
@Param("opIdCode") String opIdCode);
/**
* 需要更新患者的总费用
*
* @param fy 费用
* @param inpatientNo 住院号
* @param admissTimes 住院次数
*/
@Update("")
void huanZheZongFeiYong(@Param("fy") FeiYongLeiXin fy,
@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("tableName") String tableName);
/**
* 查看模板名称是否存在
*
* @param patternName 模板名字
* @param opIdCode 创建模板的人 code
* @return 返回条数
*/
@Select("select count(*) from zy_charge_pattern where pattern_name = #{patternName} and op_id_code <> #{opIdCode} ")
Integer chaKanMuBanMingChengSFcunZi(@Param("patternName") String patternName,
@Param("opIdCode") String opIdCode);
/**
* 删除模板
*
* @param patternName 模板名字
* @param opIdCode 创建模板的人 code
*/
@Select("delete zy_charge_pattern where pattern_name = #{patternName} and op_id_code = #{opIdCode} ")
Integer delMuBan(@Param("patternName") String patternName,
@Param("opIdCode") String opIdCode);
/**
* 保存模板
*
* @param param 保存的数据
*/
@Insert("")
void baoCunMuBan(@Param("param") ZyDetailCharge param);
/**
* 获取医嘱的费用
*
* @param inpatientNo 住院号
* @param admissTimes 住院次数
* @param ZF 正的费用还是负的费用
* @return 返回list 费用集合
*/
@Select("")
List getYiZhuFeiYong(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledgerSn") Integer ledgerSn,
@Param("ZF") String ZF,
@Param("infantFlag") int infantFlag,
@Param("list") List list);
/**
* @param inpatientNo 住院号
* @param admissTimes 住院次数
* @param yiZhuPiPei 需要匹配的流水信息
*/
@Update("")
void yiZhuTuiFeiPiPei(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("list") List yiZhuPiPei,
@Param("infantFlag") int infantFlag);
@Select("SELECT small_dept FROM zd_dept_all where dept = #{dept}")
List chaXunZhiZXinKeShi(@Param("dept") String dept);
@Select("select role_id from dj_user_role where user_code = #{code}")
List huoQuJueSe(@Param("code") String code);
@Select("select code,rtrim(name) name from zd_unit_code where code not like '8%'")
List getDpet();
@Select("select code,rtrim(name) name from zd_unit_code where code like '8%'")
List getWard();
@Select("SELECT small_dept code,name=(select name from zd_unit_code where code = small_dept) FROM zd_dept_all where dept = #{dept}")
List getBingQuDuiYingKeShi(@Param("dept") String dept);
@Select("select count(*) from zy_actpatient where inpatient_no = #{inpatientNo} and admiss_times = #{admissTimes}")
Integer getHuanZheSFZaiYuan(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes);
@Select("select case settle_type when '1' then '0' else settle_type end as settle_type from zy_ledger_file where " +
"inpatient_no = #{inpatientNo} and admiss_times = #{admissTimes} " +
"and ledger_sn = (select max(ledger_sn)ledger_sn from zy_ledger_file where zy_ledger_file.inpatient_no = #{inpatientNo} " +
"and zy_ledger_file.admiss_times = #{admissTimes}) ")
Integer getHuanZheSFJieSuan(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes);
@Select("select detail_sn,ori_detail_sn,trans_flag_yb from zy_detail_charge where inpatient_no = #{inpatientNo} and admiss_times = #{admissTimes} and ledger_sn = #{ledger} " +
"and detail_sn = #{detailSn} and order_no <> 6 and trans_flag_yb <> 2 ")
ZyDetailCharge beiTuiFeiYongXinXi(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledger") Integer ledger,
@Param("detailSn") Integer detailSn);
@Select("")
List chaXunFeiYongShiFouTingYong(List bianMa);
@Select("")
List kuCun(List bianMa);
@Delete("delete zy_detail_charge where inpatient_no = #{inpatientNo} and admiss_times = #{admissTimes} and ledger_sn = #{ledger} " +
"and detail_sn = #{detailSn} and order_no <> 6 and trans_flag_yb <> 2")
void cheXiaoFeiYong(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledger") Integer ledger,
@Param("detailSn") Integer detailSn);
@Update("update zy_detail_charge set ori_detail_sn = null where inpatient_no = #{inpatientNo} and admiss_times = #{admissTimes} and ledger_sn = #{ledger} " +
"and detail_sn = #{detailSn} and order_no <> 6 and trans_flag_yb <> 2")
void cheXiaoHouHuanYuanZhenShuJu(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledger") Integer ledger,
@Param("detailSn") Integer detailSn);
@Select("select act_order_no as order_no,exec_unit from yz_erase_order where act_order_no in " +
"(select order_no from zy_detail_charge where inpatient_no = #{inpatientNo} and admiss_times = #{admissTimes} and ledger_sn = #{ledger} " +
"and exec_unit is null AND charge_fee < 0 and ori_detail_sn is null)")
List huoQuYaoPingZhongKeShiWeiKongDe(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledger") Integer ledger);
@Update(" ")
void yiZhuTuiFeiGenXingZhiXingKeShi(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledger") Integer ledger,
@Param("list") List genXingDeZhiXinKeShi);
@Select("select b.code from zy_detail_charge a, yp_zd_dict b " +
"where order_no <> 6 and trans_flag_yb not in (1,2) and charge_code like 'BILL%' " +
" and isnull(b.national_code,'') = '' and inpatient_no = #{inpatientNo} and admiss_times = #{admissTimes} and ledger_sn = #{ledger} " +
"and a.infant_flag = #{infantFlag} " +
" and a.charge_code_mx = b.code " +
"group by b.code ")
List weiGuiYaoPinInt(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledger") Integer ledger,
@Param("infantFlag") Integer infantFlag);
@Update("")
void genXinYaoPingPiPeiXinXi(@Param("list") List list);
@Select("select a.charge_code_mx,case when (select top(1) rtrim(name) from zd_charge_item where code = a.charge_code_mx) != '' then " +
"(select top(1) rtrim(name) from zd_charge_item where code = a.charge_code_mx) else " +
"(select top(1) rtrim(name) from yp_zd_dict where code = a.charge_code_mx) end as name " +
"from zy_detail_charge a left join zd_charge_item_hnsgs b " +
"on (a.charge_code_mx = b.hosp_code) where " +
"inpatient_no = #{inpatientNo} and admiss_times = #{admissTimes} and ledger_sn = #{ledger} and infant_flag = #{infantFlag} and ori_detail_sn is null and isnull(b.hnsyb_item_code,'') = '' " +
"group by a.charge_code_mx ")
List gongShangWeiPiPei(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledger") Integer ledger,
@Param("infantFlag") Integer infantFlag);
/**
* 违规药品 信息 没有匹配的
*
* @param inpatientNo 住院号
* @param admissTimes 住院次数
* @param ledger 账页号
* @return 返回违规药品 没有匹配的
*/
@Select("select charge_code_mx,b.name from zy_detail_charge a, yp_zd_dict b " +
"where trans_flag_yb not in (1,2) and charge_code like 'BILL%' " +
" and isnull(b.national_code,'') = '' and inpatient_no = #{inpatientNo} and admiss_times = #{admissTimes} and ledger_sn = #{ledger} " +
"and a.infant_flag = #{infantFlag} " +
" and a.charge_code_mx = b.code " +
"group by charge_code_mx, b.name")
List weiGuiYaoPin(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledger") Integer ledger,
@Param("infantFlag") Integer infantFlag);
@Select("select charge_code_mx,b.name from zy_detail_charge a, zd_charge_item b " +
"where trans_flag_yb not in (1,2) and charge_code not like 'BILL%' " +
" and isnull(b.national_code,'') = '' and inpatient_no = #{inpatientNo} and admiss_times = #{admissTimes} and ledger_sn = #{ledger} " +
" and a.infant_flag = #{infantFlag} " +
" and a.charge_code_mx = b.code " +
"group by charge_code_mx, b.name")
List weiGuiXiangMu(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledger") Integer ledger,
@Param("infantFlag") Integer infantFlag);
@Select("")
List weiXieDaiYuanLiuShuiXiangMu(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledger") Integer ledger,
@Param("infantFlag") Integer infantFlag,
@Param("list") List execUnit,
@Param("chuYuanYiZhu") Integer chuYuanYiZhu);
@Select("")
List weiXieDaiYuanLiuShuiYaoPing(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledger") Integer ledger,
@Param("infantFlag") Integer infantFlag,
@Param("list") List execUnit,
@Param("chuYuanYiZhu") Integer chuYuanYiZhu);
@Select("")
List weiGuiZhenShuPiPei(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledgerSn") Integer ledgerSn,
@Param("infantFlag") Integer infantFlag,
@Param("chargeCodeMx") String chargeCodeMx,
@Param("execUnit") String execUnit,
@Param("orderNo") String orderNo,
@Param("startTime") String startTime,
@Param("endTime") String endTime,
@Param("riQiPaiXu") String riQiPaiXu);
@Select("select inpatient_no,admiss_times,ledger_sn,detail_sn,charge_code_mx,sum(charge_fee) yi_tui_fei from ( " +
"select inpatient_no,admiss_times,ledger_sn,detail_sn,charge_code_mx,charge_fee " +
"from zy_detail_charge where " +
"inpatient_no = #{inpatientNo} and admiss_times = #{admissTimes} and ledger_sn = #{ledgerSn} and charge_code_mx = #{chargeCodeMx} " +
"and exec_unit = #{execUnit} and trans_flag_yb <> 2 and order_no <> 6 and" +
" detail_sn in(select ori_detail_sn from zy_detail_charge where inpatient_no = #{inpatientNo} and admiss_times = #{admissTimes} and " +
"ledger_sn = #{ledgerSn} and charge_code_mx = #{chargeCodeMx}" +
" and charge_fee <0 and ori_detail_sn is not null) " +
"union all " +
"select inpatient_no,admiss_times,ledger_sn,ori_detail_sn,charge_code_mx,charge_fee " +
"from zy_detail_charge where " +
"inpatient_no = #{inpatientNo} and admiss_times = #{admissTimes} and ledger_sn = #{ledgerSn} and charge_code_mx = #{chargeCodeMx} " +
"and exec_unit = #{execUnit} and trans_flag_yb <> 2 and order_no <> 6 and " +
"ori_detail_sn in(select ori_detail_sn from zy_detail_charge where inpatient_no = #{inpatientNo} and admiss_times = #{admissTimes} " +
"and ledger_sn = #{ledgerSn} and charge_code_mx = #{chargeCodeMx} and charge_fee <0 and ori_detail_sn is not null) " +
") temp " +
"group by inpatient_no, admiss_times, ledger_sn, detail_sn, charge_code_mx")
List tuiFeiYuEr1(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledgerSn") Integer ledgerSn,
@Param("chargeCodeMx") String chargeCodeMx,
@Param("execUnit") String execUnit);
@Select("")
List genJuBianMaChaZhaoZhenShuFeiYong(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledgerSn") Integer ledgerSn,
@Param("infantFlag") Integer infantFlag,
@Param("chargeCodeMx") String chargeCodeMx,
@Param("startTime") String startTime,
@Param("endTime") String endTime,
@Param("riQiPaiXu") String riQiPaiXu);
@Select("")
List piPeiXinXi(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledgerSn") Integer ledgerSn,
@Param("infantFlag") Integer infantFlag,
@Param("list") int[] detailSnList);
@Select("")
List tuiFeiYuEr2(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledgerSn") Integer ledgerSn,
@Param("infantFlag") Integer infantFlag,
@Param("list") int[] detailSnList);
@Select("select inpatient_no,admiss_times,ledger_sn,detail_sn,charge_fee,charge_amount,ori_detail_sn,trans_flag_yb,exec_unit from zy_detail_charge " +
"where inpatient_no = #{inpatientNo} and admiss_times = #{admissTimes} and ledger_sn = #{ledgerSn} and detail_sn = #{detailSn} " +
"and infant_flag = #{infantFlag} and charge_fee < 0 and charge_amount < 0 ")
ZyDetailCharge piPeiXinXiFuShu(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledgerSn") Integer ledgerSn,
@Param("infantFlag") Integer infantFlag,
@Param("detailSn") Integer detailSn);
@Update("update zy_detail_charge set ori_detail_sn = #{oriDetailSn} where inpatient_no = #{inpatientNo} and admiss_times = #{admissTimes} and ledger_sn = #{ledgerSn} " +
"and detail_sn = #{detailSn} ")
void zhiYouYiGeJiuGenXingFuShuLiuShui(@Param("inpatientNo") String inpatientNo,
@Param("admissTimes") Integer admissTimes,
@Param("ledgerSn") Integer ledgerSn,
@Param("detailSn") Integer detailSn,
@Param("oriDetailSn") Integer oriDetailSn);
@Update("update zy_detail_charge set yb_self_flag = 0 ${ew.customSqlSegment}")
void xiuGaiZiFeiZhiYiBaoBiaoZhi(@Param(Constants.WRAPPER) Wrapper> wq);
}