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

来源:互联网 发布:海典医药软件数据库 编辑:程序博客网 时间:2024/04/29 13:36

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 调试
分别以医院、供货商、监管单位登陆,操作交易明细列表。

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

0 0
原创粉丝点击