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

需求

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

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

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中对总计行的显示样式和普通行的显示样式不一样,如何区别?
使用普通行中不为空的字段(列),作为区别的标记。

例如:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值