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

需求

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

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

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 页面
在加载明细列表的方法中,添加:

采购单药品明细采购金额总计_第1张图片
在datagrid中对总计行的显示样式和普通行的显示样式不一样,如何区别?
使用普通行中不为空的字段(列),作为区别的标记。

例如:

你可能感兴趣的:(采购单药品明细采购金额总计)