1 采购单明细列表
1.1 需求
采购单基本信息保存成功后,进入采购单修改页面,显示该采购单下采购药品明细。
包括以下字段内容:
1.2 实现
1.2.1 dao
自定义mapper,实现采购单明细查询。
注意:编写的dao具备公用性
Sql:
主查询表:yycgdmx +4位年份
关联表:医院信息表(通过采购单基本信息表关联)、药品信息表、供货商信息表
selectyycgdmx.id yycgdmxid,
useryy.id useryyid,
useryy.mc useryymc,
ypxx.id,
ypxx.bm,
ypxx.mc,
ypxx.jx,
ypxx.gg,
ypxx.zhxs,
ypxx.scqymc,
ypxx.spmc,
ypxx.jyzt,
(select info
from dictinfo
where ypxx.jyzt = dictcode
and typecode = '003') jyztmc,
yycgdmx.zbjg,
yycgdmx.jyjg,
yycgdmx.cgl,
yycgdmx.cgje,
yycgdmx.cgzt,
(select info
from dictinfo
where typecode = '011'
and dictcode = yycgdmx.cgzt) cgztmc,
usergys.mc usergysmc,
usergys.id usergysid
from yycgdmx2014 yycgdmx, yycgd2014yycgd, useryy, ypxx, usergys
where yycgdmx.yycgdid = yycgd.id
and yycgd.useryyid = useryy.id
and yycgdmx.ypxxid = ypxx.id
and yycgdmx.usergysid = usergys.id
--数据范围设定
--只查询某个采购单下药品明细
and yycgdmx.yycgdid = '2014101040'
定义mapper
// 采购单药品明细查询列表数量
public int findYycgdmxCount(YycgdQueryVoyycgdQueryVo) throwsException;
// 采购单药品明细查询列表
publicList<YycgdmxCustom> findYycgdmxList(YycgdQueryVo yycgdQueryVo)
throws Exception;
1.2.2 commonSql定义
将分页头和分页尾定义在公用sql中。抽取分页sql
定义:CommonSql.xml 由于没有mapper.java文件所以需要在mybatis 中声明一下
代码如下:
<?xml version="1.0"encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTDMapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="yycg.base.commonSql">
<!-- 分页头 -->
<sql id="page_start">
<if test="pageQuery!=null">
selectpage_2.*
from(select page_1.*, rownum page_num
from
(
</if>
</sql>
<!-- 分页尾 -->
<sql id="page_end">
<if test="pageQuery!=null">
)page_1
<![CDATA[
where rownum <=${pageQuery.PageQuery_end}) page_2
where page_2.page_num >=${pageQuery.PageQuery_start}
]]>
</if>
</sql>
</mapper>
1.2.3 service
接口功能:查询采购单下明细信息
接口参数:采购单id、查询条件
// 采购单药品明细查询列表
@Override
publicList<YycgdmxCustom> findYycgdmxListByYycgdid(String yycgdid,
YycgdQueryVoyycgdQueryVo) throwsException {
// 非空判断 ? 为否则
yycgdQueryVo =yycgdQueryVo != null ?yycgdQueryVo : newYycgdQueryVo();
YycgdmxCustomyycgdmxCustom = yycgdQueryVo.getYycgdmxCustom();
if (yycgdmxCustom == null) {
yycgdmxCustom= newYycgdmxCustom();
}
Stringyear = yycgdid.substring(0, 4);
yycgdmxCustom.setYycgdid(yycgdid);
yycgdQueryVo.setBusinessyear(year);
// 回设
yycgdQueryVo.setYycgdmxCustom(yycgdmxCustom);
return yycgdMapperCustom.findYycgdmxList(yycgdQueryVo);
}
// 采购单药品明细查询列表数量
@Override
public intfindYycgdmxCountByYycgdid(String yycgdid,
YycgdQueryVoyycgdQueryVo) throwsException {
// 非空判断 ? 为否则
yycgdQueryVo= yycgdQueryVo != null ? yycgdQueryVo : new YycgdQueryVo();
YycgdmxCustomyycgdmxCustom = yycgdQueryVo.getYycgdmxCustom();
if (yycgdmxCustom == null) {
yycgdmxCustom= newYycgdmxCustom();
}
Stringyear = yycgdid.substring(0, 4);
yycgdmxCustom.setYycgdid(yycgdid);
yycgdQueryVo.setBusinessyear(year);
// 回设
yycgdQueryVo.setYycgdmxCustom(yycgdmxCustom);
return yycgdMapperCustom.findYycgdmxCount(yycgdQueryVo);
}
1.2.4 action
采购单药品明细查询结果集(json) 模板代码
// 查询采购单明细返回数据
@RequestMapping("/queryYycgdmx_result")
public @ResponseBody
DataGridResultInfoqueryYycgdmx_result(String id// 采购单id
,intpage, introws, YycgdQueryVo yycgdQueryVo) throws Exception {
int total = cgdService.findYycgdmxCountByYycgdid(id,yycgdQueryVo);
PageQuerypageQuery = newPageQuery();
pageQuery.setPageParams(total,rows, page);
yycgdQueryVo.setPageQuery(pageQuery);
List<YycgdmxCustom>list = cgdService.findYycgdmxListByYycgdid(id,
yycgdQueryVo);
DataGridResultInfodataGridResultInfo = new DataGridResultInfo();
dataGridResultInfo.setTotal(total);
dataGridResultInfo.setRows(list);
return dataGridResultInfo;
}
1.2.5 页面
在采购单修改页面中加载采购单明细列表。