您的位置:首页 > 其它

数据聚合和交易明细查询实现

2015-12-10 18:07 429 查看
1.1 实现

1.1.1 数据聚合实现

第一步:采购明细的聚合

采购单明细表—–》交易明细表

 交易明细表逆向工程

 修改service saveYycgdCheckStatus方法

在审核通过时,将采购单明细记录插入到交易明细表中。

第二步:测试数据聚合结算

创建一个采购单,审核采购单通过、供货商受理、入库,流程结束后看交易表中记录是否聚合成功。。

1.1.1 dao

监管单位查询:

查询管理地区内医院采购明细信息。

医院查询:

查询自己的采购明细信息

供货商查询:

与本供货商相关的采购明细信息

sql:

主查询表:交易明细表

关联查询表:医院信息、供货商信息、采购单主信息。。

select useryy.id      useryyid,
useryy.mc      useryymc,
yycgd.bm       yycgdbm,
yycgd.id       yycgdid,
usergys.id     usergysid,
usergys.mc     usergysmc,
yycgdmx.ypxxid,
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.cgl,
yycgdmx.cgje,
yycgdmx.rkl,
yycgdmx.rkje,
yycgdmx.thl,
yycgdmx.thje,
yycgdmx.jsl,
yycgdmx.jsje

from yybusiness2014 yycgdmx, yycgd2014 yycgd, useryy, usergys, ypxx
where yycgdmx.yycgdid = yycgd.id
and yycgd.useryyid = useryy.id
and yycgdmx.usergysid = usergys.id
and yycgdmx.ypxxid = ypxx.id

--监管单位查询管理地区内医院采购明细信息

and useryy.id in (
--管理地区内医院
select id from useryy where dq like '1.1.%')

--医院查询自己的采购明细信息
and useryy.id = '1f8b098b-067e-11e3-8a3c-0019d2ce5116'

--供货商查询: 与本供货商相关的采购明细信息
and usergys.id = '5197cdd2-08cf-11e3-8a4f-60a44cea4388'


mapper

// 交易明细查询
public int findYybusinessCount(YycgdQueryVo yycgdQueryVo) throws Exception;

// 交易明细查询
public List<YycgdmxCustom> findYybusinessList(YycgdQueryVo yycgdQueryVo)
throws Exception;


1.1.2 service

接口功能:医院、监管单位、供货商查询交易明细

查询内容如下:

监管单位查询:查询管理地区内医院采购明细信息。

医院查询:查询自己的采购明细信息

供货商查询:与本供货商相关的采购明细信息

接口参数:年份、查询条件,单位id、用户类型(1:卫生局 2:卫生院 3:卫生室 4:供货商)

// 抽取方法用于交易明细查询条件
public YycgdQueryVo query_findYybusiness(String year, String sysid,
String groupid, YycgdQueryVo yycgdQueryVo) throws Exception {
yycgdQueryVo = yycgdQueryVo != null ? yycgdQueryVo : new YycgdQueryVo();

// 监管单位
if (groupid.equals("1") || groupid.equals("2")) {

Userjd userjd = userjdMapper.selectByPrimaryKey(sysid);

Useryy useryy = yycgdQueryVo.getUseryy();
useryy = useryy != null ? useryy : new Useryy();
// 设置管理地区,根据地区查询交易明细
useryy.setDq(userjd.getDq());
yycgdQueryVo.setUseryy(useryy);
} else if (groupid.equals("3")) {
Useryy useryy = yycgdQueryVo.getUseryy();
useryy = useryy != null ? useryy : new Useryy();
// 设置医院id,只查询医院的交易明细
useryy.setId(sysid);
yycgdQueryVo.setUseryy(useryy);
} else if (groupid.equals("4")) {
Usergys usergys = yycgdQueryVo.getUsergys();
usergys = usergys != null ? usergys : new Usergys();
// 设置供货商id,只查询本供货商相关交易明细
usergys.setId(sysid);
yycgdQueryVo.setUsergys(usergys);
}
// 设置年份
yycgdQueryVo.setBusinessyear(year);
return yycgdQueryVo;
}

// 交易明细查询
@Override
public int findYybusinessCount(String year, String sysid, String groupid,
YycgdQueryVo yycgdQueryVo) throws Exception {
YycgdQueryVo yycgdQueryVo_query = query_findYybusiness(year, sysid,
groupid, yycgdQueryVo);
return yybusinessMapperCustom.findYybusinessCount(yycgdQueryVo_query);
}

// 交易明细查询
@Override
public List<YycgdmxCustom> findYybusinessList(String year, String sysid,
String groupid, YycgdQueryVo yycgdQueryVo) throws Exception {
YycgdQueryVo yycgdQueryVo_query = query_findYybusiness(year, sysid,
groupid, yycgdQueryVo);
return yybusinessMapperCustom.findYybusinessList(yycgdQueryVo_query);
}

// 交易明细查询总计
@Override
public List<YycgdmxCustom> findYybusinessListSum(String year, String sysid,
String groupid, YycgdQueryVo yycgdQueryVo) throws Exception {
YycgdQueryVo yycgdQueryVo_query = query_findYybusiness(year, sysid,
groupid, yycgdQueryVo);
return yybusinessMapperCustom.findYybusinessListSum(yycgdQueryVo_query);
}


1.1.3 action

@Controller
@RequestMapping("/tj")
public class TjAction {
@Autowired
private BusinessService businessService;
@Autowired
private SystemConfigService systemConfigService;

// 交易明细查询页面
@RequestMapping("/businesslist")
public String businesslist(Model model) throws Exception {
List<Dictinfo> cgztlist = systemConfigService.findDictinfoByType("011");
model.addAttribute("cgztlist", cgztlist);
// 默认当前年份
model.addAttribute("year", MyUtil.get_YYYY(MyUtil.getDate()));

return "/business/tj/businesslist";

}

// 交易明细查询页面数据
@RequestMapping("/businesslist_result")
public @ResponseBody
DataGridResultInfo businesslist_result(String year, ActiveUser activeUser,
YycgdQueryVo yycgdQueryVo, int page, int rows) throws Exception {

// 单位id
String sysid = activeUser.getSysid();
// 用户类型
String groupid = activeUser.getGroupid();

// 列表总数
int total = businessService.findYybusinessCount(year, sysid, groupid,
yycgdQueryVo);

// 分页参数
PageQuery pageQuery = new PageQuery();

pageQuery.setPageParams(total, rows, page);
// 设置分页参数
yycgdQueryVo.setPageQuery(pageQuery);

List<YycgdmxCustom> list = businessService.findYybusinessList(year,
sysid, groupid, yycgdQueryVo);

DataGridResultInfo dataGridResultInfo = new DataGridResultInfo();
dataGridResultInfo.setTotal(total);
dataGridResultInfo.setRows(list);
if (total > 0) {
List<YycgdmxCustom> sum = businessService.findYybusinessListSum(
year, sysid, groupid, yycgdQueryVo);
dataGridResultInfo.setFooter(sum);
}
return dataGridResultInfo;
}


1.1.4 调试

分别以医院、供货商、监管单位登陆,操作交易明细列表。

测试前,准备测试数据(以不同区域的医院创建采购单)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: