--------------------------------------------------------------------------------------------------JS
//报表获取数据核心部分
function reportGetDataBody()
{
ShowLoading();
var startDate = $get("startDate").value;
var endDate = $get("endDate").value;
var dbzid = $get("dbzid").value;
var dbzfaid = $get("dbzfaid").value;
var tjfs =$get("tjfs").value;
var hzxm = encodeURI(encodeURI($get("hzxm").value));
HideLoading();
var reportViewer=$get("ReportViewer");
reportViewer.Stop();
report = reportViewer.Report;
report.LoadDataFromURL(baseUrl+"/hosp/dbzmxquery/getDbzMxQueryList.do?tjfs="+tjfs+"&startDate="+startDate+"&endDate="+endDate+"&dbzid="+dbzid+"&dbzfaid="+dbzfaid+"&hzxm="+hzxm);
reportViewer.Start();
}
--------------------------------------------------------------------------------------------------Java Controller
public void getDbzMxQueryList(HttpServletRequest request, HttpServletResponse response){
ModelAndView modelAndView = new ModelAndView();
try {
String tjfs = request.getParameter("tjfs");
String startDate = request.getParameter("startDate");
String endDate = request.getParameter("endDate");
String forgid = GetCookie.getForgId(request);
String hzxm = URLDecoder.decode(request.getParameter("hzxm"), "UTF-8");
String dbzid = request.getParameter("dbzid");
String dbzfaid = request.getParameter("dbzfaid");
String forgidName = GetCookie.getForgName(request);
HashMap hashMap = new HashMap();
hashMap.put("tjfs", tjfs);
hashMap.put("hzxm", hzxm);
if(dbzid == null || "".equals(dbzid)){
hashMap.put("dbzid", 0);
}else{
hashMap.put("dbzid", dbzid);
}
if(dbzfaid == null || "".equals(dbzfaid)){
hashMap.put("dbzfaid", 0);
}else{
hashMap.put("dbzfaid", dbzfaid);
}
hashMap.put("startDate", Convert.toParseDate(startDate));
hashMap.put("endDate", Convert.toParseDate(endDate));
hashMap.put("forgid", new Long(forgid));
List dbzQueryList = getDbzQueryImpl().getDbzMxQueryList(hashMap);
hashMap.put("forgidName", forgidName);
hashMap.put("b_date", startDate);
hashMap.put("e_date", endDate);
hashMap.put("opername", GetCookie.getOperName(request, this.getApplicationContext()));
String gridXml = HisUtil.getGridXmlMap(dbzQueryList, hashMap);
try {
response.getWriter().print(gridXml);
} catch (IOException e) {
// e.printStackTrace();
}
} catch (Exception e) {
AjaxException.MyException(response, e);
}
}
--------------------------------------------------------------------------------------------------Java BO
public List getDbzMxQueryList(HashMap hashMap)
{
return getDbzQueryDAOImpl().getDbzMxQueryList(hashMap);
}
--------------------------------------------------------------------------------------------------Java DAO
public List getDbzMxQueryList(HashMap hashMap) {
getSqlMapClientTemplate().queryForObject("HIS_DBZQUERY.sp_report_dbz_mxcx", hashMap);
Object data = hashMap.get("DATA");
return data != null ? (List)data : new ArrayList();
}
--------------------------------------------------------------------------------------------------Java Sql Map
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >
<sqlMap namespace="HIS_DBZQUERY" >
<resultMap class="java.util.HashMap" id="outMxcx_ResultMap">
<result column="zdy_name" property="zdy_name" jdbcType="VARCHAR" />
<result column="pathcode" property="pathcode" jdbcType="VARCHAR" />
<result column="pathname" property="pathname" jdbcType="VARCHAR" />
<result column="bzzfje" property="bzzfje" jdbcType="DECIMAL" />
<result column="bzzje" property="bzzje" jdbcType="DECIMAL" />
<result column="hospcode" property="hospcode" jdbcType="VARCHAR" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="beprice" property="beprice" jdbcType="DECIMAL" />
<result column="kbje" property="kbje" jdbcType="DECIMAL" />
<result column="hzsbje" property="hzsbje" jdbcType="DECIMAL" />
<result column="yyykje" property="yyykje" jdbcType="DECIMAL" />
<result column="chargename" property="chargename" jdbcType="VARCHAR" />
<result column="price" property="price" jdbcType="DECIMAL" />
</resultMap>
<parameterMap id="dbzMxcxParam" class="java.util.HashMap">
<parameter property="startDate" jdbcType="DATE" mode="IN"/>
<parameter property="endDate" jdbcType="DATE" mode="IN"/>
<parameter property="dbzid" jdbcType="NUMBER" mode="IN"/>
<parameter property="dbzfaid" jdbcType="NUMBER" mode="IN"/>
<parameter property="hzxm" jdbcType="VARCHAR" mode="IN"/>
<parameter property="tjfs" jdbcType="NUMBER" mode="IN"/>
<parameter property="forgid" jdbcType="NUMBER" mode="IN"/>
<parameter jdbcType="ORACLECURSOR" mode="OUT"
property="DATA" javaType="java.sql.ResultSet" resultMap="outMxcx_ResultMap"/>
</parameterMap>
<procedure id="sp_report_dbz_mxcx" parameterMap="dbzMxcxParam">
{call sp_report_dbz_mxcx(?,?,?,?,?,?,?,?)}
</procedure>
</sqlMap>
--------------------------------------------------------------------------------------------------存储过程
CREATE OR REPLACE PROCEDURE SP_REPORT_DBZ_MXCX( as_date_b date,
as_date_e date,
ai_dbzid numeric,
ai_dbzfaid number,
as_hzxm varchar2,
as_tjfs varchar2,
ai_forgid number,
out_cur out his_zyjs.ref_cur) as
/*功能:单病种明细查询
参数:as_date_b,as_date_e 开始结束时间,ai_dbzid 单病种ID,ai_dbzfaid单病种方案ID
as_hzxm患者姓名,as_tjfs 0自然时间1日结时间
返回:
调用:综合查询--住院查询--单病种明细查询
创建:xck 2012-07-26 */
vd_begin date;
vd_end date;
begin
if substr(to_char(as_date_b, 'yyyymmdd hh24:mi:ss'), 10, 17) = '00:00:00' then
vd_begin := to_date(to_char(as_date_b, 'yyyy-MM-dd') || ' 00:00:00',
'yyyy-mm-dd hh24:mi:ss');
else
vd_begin := as_date_b;
end if;
if substr(to_char(as_date_e, 'yyyymmdd hh24:mi:ss'), 10, 17) = '00:00:00' then
vd_end := to_date(to_char(as_date_e, 'yyyy-MM-dd') || ' 23:59:59',
'yyyy-mm-dd hh24:mi:ss');
else
vd_end := as_date_e;
end if;
if as_tjfs = '0' then
--自然时间-----------------------------------
open out_cur for
select t3.zdy_name,--单病种名称
t4.pathcode,--方案编码
t4.pathname,--方案名称
t4.bzzfje,--病种自费金额
t4.bzzje,--病种总金额
t2.hospcode,--住院号
t2.name,--患者姓名
t1.beprice,--结算金额
t4.bzzje - t4.bzzfje as kbje,--可报金额
t1.beprice - t4.bzzfje as hzsbje,--患者实报金额
t4.bzzje - t1.beprice as yyykje --医院盈亏金额
from hosp_pay_history t1,
patinfo_cy t2,
dictmedi_dbz t3,
cp_base_pathdy t4
where t1.hospid = t2.hospid
and t2.dbzfaid = t4.pathid
and t4.dbzid = t3.dbzid
and t1.forgid = t2.forgid
and t2.forgid = t4.forgid
and t4.forgid = t3.forgid
and t1.invalid = 0
and t1.beprice > 0
and t1.ddate >= vd_begin
and t1.ddate <= vd_end
and t2.name like '%'||as_hzxm||'%'
and (t2.dbzid = ai_dbzid or ai_dbzid = 0)
and (t2.dbzfaid = ai_dbzfaid or ai_dbzfaid = 0)
and t1.forgid = ai_forgid
order by t3.zdy_name,t4.pathname;
else
--日结时间-----------------------------------------------------
open out_cur for
select t3.zdy_name,
t4.pathcode,
t4.pathname,
t4.bzzfje,
t4.bzzje,
t2.hospcode,
t2.name,
t1.beprice,
t4.bzzje - t4.bzzfje as kbje,
t1.beprice - t4.bzzfje as hzsbje,--患者实报金额
t4.bzzje - t1.beprice as yyykje
from hosp_pay_history t1,
patinfo_cy t2,
dictmedi_dbz t3,
cp_base_pathdy t4
where t1.hospid = t2.hospid
and t2.dbzfaid = t4.pathid
and t4.dbzid = t3.dbzid
and t1.forgid = t2.forgid
and t2.forgid = t4.forgid
and t4.forgid = t3.forgid
and t1.invalid = 0
and t1.beprice > 0
and t1.paydate >= vd_begin
and t1.paydate <= vd_end
and t2.name like '%'||as_hzxm||'%'
and (t2.dbzid = ai_dbzid or ai_dbzid = 0)
and (t2.dbzfaid = ai_dbzfaid or ai_dbzfaid = 0)
and t1.forgid = ai_forgid
order by t3.zdy_name,t4.pathname;
end if;
end;