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

前端之家收集整理的这篇文章主要介绍了数据聚合和交易明细查询实现前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1.1 实现
1.1.1 数据聚合实现

第一步:采购明细的聚合
采购单明细表—–》交易明细表

 交易明细表逆向工程

修改service saveYycgdCheckStatus方法

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

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

1.1.1 dao

监管单位查询
查询管理地区内医院采购明细信息。
医院查询
查询自己的采购明细信息
供货商查询
与本供货商相关的采购明细信息

sql

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

  1. 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
  2. from dictinfo
  3. where ypxx.jyzt = dictcode
  4. and typecode = '003') jyztmc,yycgdmx.cgl,yycgdmx.cgje,yycgdmx.rkl,yycgdmx.rkje,yycgdmx.thl,yycgdmx.thje,yycgdmx.jsl,yycgdmx.jsje
  5.  
  6. from yybusiness2014 yycgdmx,yycgd2014 yycgd,useryy,usergys,ypxx
  7. where yycgdmx.yycgdid = yycgd.id
  8. and yycgd.useryyid = useryy.id
  9. and yycgdmx.usergysid = usergys.id
  10. and yycgdmx.ypxxid = ypxx.id
  11.  
  12. --监管单位查询管理地区内医院采购明细信息
  13.  
  14. and useryy.id in (
  15. --管理地区内医院
  16. select id from useryy where dq like '1.1.%')
  17.  
  18. --医院查询自己的采购明细信息
  19. and useryy.id = '1f8b098b-067e-11e3-8a3c-0019d2ce5116'
  20.  
  21. --供货商查询 与本供货商相关的采购明细信息
  22. and usergys.id = '5197cdd2-08cf-11e3-8a4f-60a44cea4388'

mapper

  1. // 交易明细查询
  2. public int findYybusinessCount(YycgdQueryVo yycgdQueryVo) throws Exception;
  3.  
  4. // 交易明细查询
  5. public List<YycgdmxCustom> findYybusinessList(YycgdQueryVo yycgdQueryVo)
  6. throws Exception;

1.1.2 service

接口功能:医院、监管单位、供货商查询交易明细
查询内容如下:
监管单位查询查询管理地区内医院采购明细信息。
医院查询查询自己的采购明细信息
供货商查询:与本供货商相关的采购明细信息

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

  1. // 抽取方法用于交易明细查询条件
  2. public YycgdQueryVo query_findYybusiness(String year,String sysid,String groupid,YycgdQueryVo yycgdQueryVo) throws Exception {
  3. yycgdQueryVo = yycgdQueryVo != null ? yycgdQueryVo : new YycgdQueryVo();
  4.  
  5. // 监管单位
  6. if (groupid.equals("1") || groupid.equals("2")) {
  7.  
  8. Userjd userjd = userjdMapper.selectByPrimaryKey(sysid);
  9.  
  10. Useryy useryy = yycgdQueryVo.getUseryy();
  11. useryy = useryy != null ? useryy : new Useryy();
  12. // 设置管理地区,根据地区查询交易明细
  13. useryy.setDq(userjd.getDq());
  14. yycgdQueryVo.setUseryy(useryy);
  15. } else if (groupid.equals("3")) {
  16. Useryy useryy = yycgdQueryVo.getUseryy();
  17. useryy = useryy != null ? useryy : new Useryy();
  18. // 设置医院id,只查询医院的交易明细
  19. useryy.setId(sysid);
  20. yycgdQueryVo.setUseryy(useryy);
  21. } else if (groupid.equals("4")) {
  22. Usergys usergys = yycgdQueryVo.getUsergys();
  23. usergys = usergys != null ? usergys : new Usergys();
  24. // 设置供货商id,只查询本供货商相关交易明细
  25. usergys.setId(sysid);
  26. yycgdQueryVo.setUsergys(usergys);
  27. }
  28. // 设置年份
  29. yycgdQueryVo.setBusinessyear(year);
  30. return yycgdQueryVo;
  31. }
  32.  
  33. // 交易明细查询
  34. @Override
  35. public int findYybusinessCount(String year,YycgdQueryVo yycgdQueryVo) throws Exception {
  36. YycgdQueryVo yycgdQueryVo_query = query_findYybusiness(year,sysid,groupid,yycgdQueryVo);
  37. return yybusinessMapperCustom.findYybusinessCount(yycgdQueryVo_query);
  38. }
  39.  
  40. // 交易明细查询
  41. @Override
  42. public List<YycgdmxCustom> findYybusinessList(String year,yycgdQueryVo);
  43. return yybusinessMapperCustom.findYybusinessList(yycgdQueryVo_query);
  44. }
  45.  
  46. // 交易明细查询总计
  47. @Override
  48. public List<YycgdmxCustom> findYybusinessListSum(String year,yycgdQueryVo);
  49. return yybusinessMapperCustom.findYybusinessListSum(yycgdQueryVo_query);
  50. }

1.1.3 action

  1. @Controller
  2. @RequestMapping("/tj")
  3. public class TjAction {
  4. @Autowired
  5. private BusinessService businessService;
  6. @Autowired
  7. private SystemConfigService systemConfigService;
  8.  
  9. // 交易明细查询页面
  10. @RequestMapping("/businesslist")
  11. public String businesslist(Model model) throws Exception {
  12. List<Dictinfo> cgztlist = systemConfigService.findDictinfoByType("011");
  13. model.addAttribute("cgztlist",cgztlist);
  14. // 默认当前年份
  15. model.addAttribute("year",MyUtil.get_YYYY(MyUtil.getDate()));
  16.  
  17. return "/business/tj/businesslist";
  18.  
  19. }
  20.  
  21. // 交易明细查询页面数据
  22. @RequestMapping("/businesslist_result")
  23. public @ResponseBody
  24. DataGridResultInfo businesslist_result(String year,ActiveUser activeUser,YycgdQueryVo yycgdQueryVo,int page,int rows) throws Exception {
  25.  
  26. // 单位id
  27. String sysid = activeUser.getSysid();
  28. // 用户类型
  29. String groupid = activeUser.getGroupid();
  30.  
  31. // 列表总数
  32. int total = businessService.findYybusinessCount(year,yycgdQueryVo);
  33.  
  34. // 分页参数
  35. PageQuery pageQuery = new PageQuery();
  36.  
  37. pageQuery.setPageParams(total,rows,page);
  38. // 设置分页参数
  39. yycgdQueryVo.setPageQuery(pageQuery);
  40.  
  41. List<YycgdmxCustom> list = businessService.findYybusinessList(year,yycgdQueryVo);
  42.  
  43. DataGridResultInfo dataGridResultInfo = new DataGridResultInfo();
  44. dataGridResultInfo.setTotal(total);
  45. dataGridResultInfo.setRows(list);
  46. if (total > 0) {
  47. List<YycgdmxCustom> sum = businessService.findYybusinessListSum(
  48. year,yycgdQueryVo);
  49. dataGridResultInfo.setFooter(sum);
  50. }
  51. return dataGridResultInfo;
  52. }

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

测试前,准备测试数据(以不同区域的医院创建采购单)

猜你在找的设计模式相关文章