采购单药品明细采购金额总计

来源:互联网 发布:梦幻西游玩着网络错误 编辑:程序博客网 时间:2024/04/29 02:47

需求

用户在创建采购单,页面上明显统计出采购单中所有药品采购总量、采购金额总量。
这里写图片描述

总计范围:符合查询条件的所有记录的采购量、采购金额。

1.2 实现

1.2.1 dao
统计符合查询条件的采购单药品明细的采购量、采购金额。
实现思路:
对符合查询条件的采购单明细列表的采购量、采购金额求总和,注意不是对一页的数据求总计 。

select sum(nvl(yycgdmx.cgl, 0)) cgl, sum(nvl(yycgdmx.cgje, 0)) cgje  from yycgdmx2014 yycgdmx, yycgd2014 yycgd, useryy, ypxx, usergys where yycgdmx.yycgdid = yycgd.id   and yycgd.useryyid = useryy.id   and yycgdmx.ypxxid = ypxx.id   and yycgdmx.usergysid = usergys.id   ---指定采购单的id   and yycgdmx.yycgdid='2014101220'mapper.xml<!-- 采购单明细总计(采购量、采购金额) -->    <select id="findYycgdmxListSum" parameterType="yycg.business.pojo.vo.YycgdQueryVo"        resultType="yycg.business.pojo.vo.YycgdmxCustom">    select sum(nvl(yycgdmx.cgl, 0)) cgl, sum(nvl(yycgdmx.cgje, 0)) cgje    from yycgdmx${businessyear} yycgdmx, yycgd${businessyear} yycgd, useryy, ypxx, usergys    where yycgdmx.yycgdid = yycgd.id    and yycgd.useryyid = useryy.id    and yycgdmx.ypxxid = ypxx.id    and yycgdmx.usergysid = usergys.id    <!-- 只查询某个采购单下药品明细 -->    <include refid="query_yycgdmx_where" />    <!-- 采购单查询条件 -->    <include refid="query_yycgd_where" />    <!-- 药品查询条件 -->    <include refid="yycg.business.dao.mapper.YpxxMapperCustom.query_ypxx_where" />    </select>

Mapper.java

// 采购单药品明细查询列表金额总计(采购量,采购金额)    public List<YycgdmxCustom> findYycgdmxListSum(YycgdQueryVo yycgdQueryVo)            throws Exception;

1.2.2 service

接口功能:采购单明细总计
接口参数:采购单id、查询条件

// 采购单药品明细查询列表总计(采购量,采购金额)    @Override    public List<YycgdmxCustom> findYycgdmxListSum(String yycgdid,            YycgdQueryVo yycgdQueryVo) throws Exception {        yycgdQueryVo = yycgdQueryVo != null ? yycgdQueryVo : new YycgdQueryVo();        YycgdmxCustom yycgdmxCustom = yycgdQueryVo.getYycgdmxCustom();        yycgdmxCustom = yycgdmxCustom != null ? yycgdmxCustom                : new YycgdmxCustom();        yycgdmxCustom.setYycgdid(yycgdid);        yycgdQueryVo.setYycgdmxCustom(yycgdmxCustom);        String businessyear = yycgdid.substring(0, 4);        yycgdQueryVo.setBusinessyear(businessyear);        return yycgdMapperCustom.findYycgdmxListSum(yycgdQueryVo);    }

1.2.3 在datagrid中展示总计行

Datagird加载 的json中定义footer
这里写图片描述

1.2.4 action
在采购单修改action方法中,在采购单明细结果集json方法中,添加取总计结果集代码,将总计结果集添加datagrid的footer中。

实现方法:
在统一数据列表结果类(DataGridResultInfo)添加属性footer。

修改:CgdAction.java中queryYycgdmx_result方法。

        if (total > 0) {            List<YycgdmxCustom> sumlist = cgdService.findYycgdmxListSum(id,                    yycgdQueryVo);            dataGridResultInfo.setFooter(sumlist);        }

1.2.5 页面
在加载明细列表的方法中,添加:

这里写图片描述
在datagrid中对总计行的显示样式和普通行的显示样式不一样,如何区别?
使用普通行中不为空的字段(列),作为区别的标记。

例如:
这里写图片描述

0 0
原创粉丝点击