package thyyxxk.webserver.dao.his.zhuyuanyisheng;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.*;
import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
import thyyxxk.webserver.entity.datamodify.ZyDetailCharge;
import thyyxxk.webserver.entity.zhuyuanyisheng.caoyaoyizhu.YzActOrderCy;
import thyyxxk.webserver.entity.zhuyuanyisheng.caoyaoyizhu.YzActOrderCyDetail;
import thyyxxk.webserver.entity.zhuyuanyisheng.caoyaoyizhu.YzOrderPatternCy;
import thyyxxk.webserver.entity.zhuyuanyisheng.yizhuluru.YiZhuMingChen;
import java.math.BigDecimal;
import java.util.List;
/**
*
* 描述: 草药医嘱
*
*
* @author xc
* @date 2022-02-26 08:38
*/
@Mapper
public interface CaoYaoYiZhuDao {
@Select("select order_no," +
" inpatient_no," +
" admiss_times, " +
" order_name, " +
" doctor_code_name = (select rtrim(name) from a_employee_mi where code = doctor_code), " +
" status_flag /* 1-录入 2-收费 3-提交 4-以发药 d-删除*/, " +
" order_je, " +
" order_je_dj, " +
" quantity, " +
" quantity_dj, " +
" order_code_dj," +
" cy_jssm," +
" cy_mtjs," +
" cy_ffcs," +
" cy_fysm," +
" cy_fysm_name = (select name from mzysh_zd_fysm where code = cy_fysm)," +
" input_date," +
" exec_dept, " +
" exec_dept_name = (select name from zd_unit_code where code = exec_dept) " +
"from yz_act_order_cy with (NOLOCK) " +
"${ew.customSqlSegment} ")
IPage huoQuCaoYaoShuJu(IPage page,
@Param(Constants.WRAPPER) Wrapper> wp);
/**
* 获取代煎费
*
* @return 返回金额
*/
@Select("select isnull(charge_amount,0) from zd_charge_item " +
"with (NOLOCK) where code = (select charge_code_zydj from yz_sequence) ")
BigDecimal huoQuDaiJianFei();
@Select("select chargeCodeName = (select rtrim(name) from view_yp_zd_dict_base_yf with (NOLOCK) where code = charge_code)," +
" group_no_name = (select rtrim(group_name) " +
" from yp_zd_group_name with (NOLOCK) " +
" where yz_act_order_cy_detail.group_no = yp_zd_group_name.group_no), " +
" * " +
"from yz_act_order_cy_detail with (NOLOCK) " +
"where order_no = #{orderNo}")
List huoQuChaoYaoMingXi(BigDecimal orderNo);
@Select("SELECT code, name FROM mzysh_zd_fysm with (NOLOCK)")
List fuYongFangFa();
@Select("SELECT code as chargeCode, " +
" name as chargeCodeName, " +
" specification, " +
" 'z' as asorderType, " +
" serial, " +
" group_no, " +
" infusion_flag, " +
" drug_flag, " +
" group_name, " +
" pack_size, " +
" order_class ='Y', " +
" retprice=pack_retprice, " +
" self_flag = isnull(self_flag, '0'), " +
" suprice_flag " +
"FROM view_yp_zd_dict_base_yf with (NOLOCK) " +
"${ew.customSqlSegment} AND isnull(visible_flag_zy, '') <> '1' ")
List huoQuCaoYao(@Param(Constants.WRAPPER) QueryWrapper> queryWrapper);
@Select("select pattern_name, " +
" group_no =max(group_no), " +
" dept_code=max(dept_code) " +
"from yz_order_pattern_cy with (NOLOCK) " +
" ${ew.customSqlSegment} ")
IPage huoQuMuBan(IPage page,
@Param(Constants.WRAPPER) QueryWrapper> queryWrapper);
@Select("SELECT distinct charge_code=a.charge_code, " +
" serial=a.serial, " +
" group_no=a.group_no, " +
" quantity=a.quantity, " +
" retprice=b.pack_retprice, " +
" supply_code=a.supply_code, " +
" instruction=a.instruction, " +
" charge_code_name=b.name," +
" b.specification, " +
" b.self_flag, " +
" b.suprice_flag " +
"FROM yz_order_pattern_cy a with (NOLOCK), " +
" yp_zd_dict b with (NOLOCK), " +
" yp_base_yf c with (NOLOCK) " +
"where a.charge_code = b.code " +
" and a.serial = b.serial " +
" and a.charge_code = c.charge_code " +
" and a.serial = c.serial " +
" and (case " +
" when isnull(b.del_flag, '0') = '1' then '1' " +
" when isnull(b.del_flag, '0') = '1' then '1' " +
" when isnull(c.visible_flag_zy, '0') = '1' then '1' " +
" else '0' end) <> 1 " +
" and a.pattern_name = #{name} " +
" and a.dept_code = #{deptCode} ")
List muBanXiangQing(@Param("name") String name,
@Param("deptCode") String deptCode);
@Select("select count(1) " +
"from yz_order_pattern_cy with (NOLOCK) " +
"where pattern_name = #{name}")
Integer chongFuMuBanMing(String name);
@Insert("")
void chaRuMuBan(@Param("list") List list,
@Param("name") String name,
@Param("userCode") String userCode,
@Param("pyCode") String pyCode,
@Param("dCode") String dCode,
@Param("deptCode") String deptCode);
@Insert("insert into yz_act_order_cy (inpatient_no, admiss_times, order_no, serial_no, order_name, order_je, " +
" order_je_dj, quantity, quantity_dj, order_code_dj, doctor_code, input_id, input_date, " +
" page_no, status_flag, dept_code, " +
" ward_code, cy_mtjs, cy_jsl, cy_zql, cy_fj, cy_ffcs, cy_fysm, cy_jssm, " +
" exec_dept, group_no, source_flag) " +
"values (#{cy.inpatientNo}, #{cy.admissTimes}, #{cy.orderNo}, '1', #{cy.orderName}, " +
" cast(#{cy.orderJe,jdbcType=DECIMAL} as decimal(10,2)), " +
" cast(#{cy.orderJeDj,jdbcType=DECIMAL} as decimal(10,2)), #{cy.quantity}, #{cy.quantityDj}, " +
" (select charge_code_zydj from yz_sequence), #{cy.inputId}, #{cy.inputId}, getdate(), #{cy.pageNo}, '2', " +
" #{deptCode}, " +
" #{wardCode}, #{cy.cyMtjs}, #{cy.cyJsl}, #{cy.cyZql}, #{cy.cyFj}, " +
" #{cy.cyFfcs}, #{cy.cyFysm}, #{cy.cyJssm}, #{execDept}, #{cy.groupNo}, 1)")
void chaRuCaoYaoYiZhu(@Param("cy") YzActOrderCy cy,
@Param("deptCode") String deptCode,
@Param("wardCode") String wardCode,
@Param("execDept") String execDept);
@Insert("")
void chaRuCaoYaoXiangQing(@Param("list") List list,
@Param("orderNo") BigDecimal orderNo);
@Insert("insert into yz_act_order (act_order_no, inpatient_no, admiss_times, order_code/*77592*/, order_time, frequ_code/*once*/, " +
" enter_time, " +
" enter_oper, start_time, infant_flag, drug_flag, " +
" physician, confirm_time, signer, status_flag, " +
" self_buy, order_name, pay_self, serial, group_no, ward_code, " +
" doctor_flag, dept_code, exec_unit) " +
"values (#{yz.orderNo}, #{yz.inpatientNo}, #{yz.admissTimes}, '77592', getdate(), 'ONCE', getdate(), " +
" #{yz.inputId}, getdate(), #{infantFlag}, 'o', #{yz.inputId}, getdate(), #{yz.inputId}, '2', 0, " +
" #{orderName}, '0', '00', '00', #{wardCode}, 1, #{deptCode}, #{execDept})")
void chaRuYiZhu(@Param("yz") YzActOrderCy cy,
@Param("orderName") String orderName,
@Param("deptCode") String deptCode,
@Param("wardCode") String wardCode,
@Param("execDept") String execDept,
@Param("infantFlag") Integer infantFlag);
@Select("select top(1) * from yz_order_pattern_cy with (NOLOCK) where pattern_name = #{name}")
YzOrderPatternCy caoYaoMuBanXiangQing(String name);
@Delete("delete from yz_order_pattern_cy where pattern_name = #{name} ")
void shanChuMuBan(String name);
@Select("select * from yz_act_order_cy with (NOLOCK) " +
"where inpatient_no = #{patNo} and admiss_times = #{times} and order_no = #{orderNo}")
YzActOrderCy caoYaoXinXi(@Param("patNo") String patNo,
@Param("times") Integer times,
@Param("orderNo") BigDecimal orderNo);
@Update("update yz_act_order_cy set status_flag = 'd' " +
"where inpatient_no = #{patNo} and admiss_times = #{times} and order_no = #{orderNo} ")
void genXingCaoYaoShanChuBiaoZhi(@Param("patNo") String patNo,
@Param("times") Integer times,
@Param("orderNo") BigDecimal orderNo);
@Update("update yz_act_order " +
"set status_flag = '-1', " +
" instruction = N'作废'," +
" order_name = N'作废' + order_name " +
"where act_order_no = #{orderNo}")
void shanChuYiZhu(@Param("orderNo") BigDecimal orderNo);
@Select("select * from zy_detail_charge where inpatient_no = #{cy.inpatientNo} and admiss_times = #{cy.admissTimes} and order_no = #{cy.orderNo} and charge_fee > 0")
List caoYaoFeiYong(@Param("cy") YzActOrderCy cy);
@Update("update zy_detail_charge " +
"set ori_detail_sn = -1 where inpatient_no = #{cy.inpatientNo} and admiss_times = #{cy.admissTimes} and order_no = #{cy.orderNo} and ori_detail_sn is null ")
void modifyTheExpenseFlag(@Param("cy") YzActOrderCy cy);
}