048医疗项目-模块四:采购单模块—采购单受理(Dao,Service,Action三层)

需求:

我们之前把采购单交给监督单位审核了,审通过的采购单就要受理。供货商决定采购单发不发货。

如下:

这张单子里面的就是采购单详细表,这儿查出来的数据就只是特定于这个供货商的采购单详细表,一个区域里面只有一个供货商,有好几个医院,每个医院有好多个采购单。那么就是一个供货商有好几个采购单。供货商要看着每一个采购单的明细表才会去处理这个数据要不要发货。

我们先写Mapper:

我们写sql时要参考:

Mapper.xml如下:

<!-- 采购单药品明细查询列表 -->
    <select id="findYycgdmxList" parameterType="yycg.business.pojo.vo.YycgdQueryVo"
        resultType="yycg.business.pojo.vo.YycgdmxCustom">
        <!-- 引入分页头 -->
        <include refid="yycg.base.commonSql.page_start" />

        select yycgdmx.id yycgdmxid,
        useryy.id useryyid,
        useryy.mc useryymc,

        yycgd.bm yycgdbm,
        yycgd.mc yycgdmc,
        yycgd.cjtime,
        (select info
        from dictinfo
        where typecode = ‘010‘
        and dictcode = yycgd.zt) yycgdztmc,
        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
        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" />

        <!-- 分页尾部 -->
        <include refid="yycg.base.commonSql.page_end" />
    </select>

我们之前写过findYycgdmxList。我们这次要做的就是扩展查询条件,使的之前的findYycgdmxList可以继续用。

    <!-- 采购单药品明细查询列表总数 -->
    <select id="findYycgdmxCount" parameterType="yycg.business.pojo.vo.YycgdQueryVo"
        resultType="int">

        select count(*)

        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>
findYycgdmxCount是对应查数量的,用来分页用的。

Service 如下:

    @Override
    public List<YycgdmxCustom> findDisposeYycgdList(String usergysid,
            String year, YycgdQueryVo yycgdQueryVo) throws Exception {

        yycgdQueryVo = yycgdQueryVo != null ? yycgdQueryVo : new YycgdQueryVo();

        // 供货商只允许查询自己供应的采购药品信息
        // 设置供货商id
        YycgdmxCustom yycgdmxCustom = yycgdQueryVo.getYycgdmxCustom();
        yycgdmxCustom = yycgdmxCustom != null ? yycgdmxCustom
                : new YycgdmxCustom();
        yycgdmxCustom.setUsergysid(usergysid);

        // 采购药品明细状态为“未确认送货”
        String cgzt = "1";
        yycgdmxCustom.setCgzt(cgzt);

        yycgdQueryVo.setYycgdmxCustom(yycgdmxCustom);

        // 采购单为审核通过
        String zt = "3";
        YycgdCustom yycgdCustom = yycgdQueryVo.getYycgdCustom();
        yycgdCustom = yycgdCustom != null ? yycgdCustom : new YycgdCustom();
        yycgdCustom.setZt(zt);
        yycgdQueryVo.setYycgdCustom(yycgdCustom);

        // 设置年份
        yycgdQueryVo.setBusinessyear(year);

        return yycgdMapperCustom.findYycgdmxList(yycgdQueryVo);
    }

    @Override
    public int findDisposeYycgdCount(String usergysid, String year,
            YycgdQueryVo yycgdQueryVo) throws Exception {
        yycgdQueryVo = yycgdQueryVo != null ? yycgdQueryVo : new YycgdQueryVo();

        // 供货商只允许查询自己供应的采购药品信息
        // 设置供货商id
        YycgdmxCustom yycgdmxCustom = yycgdQueryVo.getYycgdmxCustom();
        yycgdmxCustom = yycgdmxCustom != null ? yycgdmxCustom
                : new YycgdmxCustom();
        yycgdmxCustom.setUsergysid(usergysid);

        // 采购药品明细状态为“未确认送货”
        String cgzt = "1";
        yycgdmxCustom.setCgzt(cgzt);

        yycgdQueryVo.setYycgdmxCustom(yycgdmxCustom);

        // 采购单为审核通过
        String zt = "3";
        YycgdCustom yycgdCustom = yycgdQueryVo.getYycgdCustom();
        yycgdCustom = yycgdCustom != null ? yycgdCustom : new YycgdCustom();
        yycgdCustom.setZt(zt);
        yycgdQueryVo.setYycgdCustom(yycgdCustom);

        // 设置年份
        yycgdQueryVo.setBusinessyear(year);
        return yycgdMapperCustom.findYycgdmxCount(yycgdQueryVo);
    }

Action层:

// 采购单受理页面
    @RequestMapping("/disposeyycgd")
    public String disposeyycgd(Model model) throws Exception {

        // 当前年份
        model.addAttribute("year", MyUtil.get_YYYY(MyUtil.getDate()));

        return "/business/cgd/disposeyycgd";
    }

    // 采购单受理列表结果集,json
    @RequestMapping("/disposeyycgd_result")
    public @ResponseBody
    DataGridResultInfo disposeyycgd_result(// HttpSession session,
            ActiveUser activeUser, String year,// 年份
            YycgdQueryVo yycgdQueryVo,// 查询条件
            int page, int rows) throws Exception {

        // 供货商id
        String usergysid = activeUser.getSysid();// 单位id

        // 列表的总数
        int total = cgdService.findDisposeYycgdCount(usergysid, year,
                yycgdQueryVo);

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

        // 分页查询列表
        List<YycgdmxCustom> list = cgdService.findDisposeYycgdList(usergysid,
                year, yycgdQueryVo);

        DataGridResultInfo dataGridResultInfo = new DataGridResultInfo();
        dataGridResultInfo.setTotal(total);
        dataGridResultInfo.setRows(list);

        return dataGridResultInfo;
    }

调试通过。

时间: 2024-08-21 18:51:15

048医疗项目-模块四:采购单模块—采购单受理(Dao,Service,Action三层)的相关文章

047医疗项目-模块四:采购单模块—采购单审核提交(Dao,Service,Action三层)

我们之前把采购单都审核了,这篇文章说的就是审核之后提交. 其实就是改变(update)采购单的审核状态. 需求: 用户要先查看采购单的内容. 查看采购单页面:页面布局同采购单修改页面. 选择审核结果.填写 审核意见进行提交 . 约束条件: 采购单状态为审核中方可提交审核. 审核结果(审核通过.审核不通过)必须选择. 审核意见是否必填根据用户需求来定,本系统采用不必填 . 数据库操作: 更新采购单状态为审核通过或审核不通过. DAo层: 使用逆向工程生成的Mapper: yycgdMapper.u

044医疗项目-模块四:采购单模块—采购单保存(Dao,Service,Action三层)

我们上上一篇文章(042医疗项目-模块四:采购单模块-采购单明细添加查询,并且把数据添加到数据库中)做的工作是把数据插入到了数据库,我们这篇文章做的是042医疗项目-模块四:采购单模块-采购单明细添加查询,并且把数据添加到数据库中这里没有写采购量,我们这篇文章做的就是把采购量写进入,也就是Updata之前的那个记录.这样采购单里面的记录就完整了. 如下: Dao层:用的是逆向工程生成的:yycgdmxMapper.updateByPrimaryKeySelective(yycgdmx_updat

046医疗项目-模块四:采购单模块—采购单审核(Dao,Service,Action三层)

当医院把采购单提交之后,由监管单位进行采购单审核,由卫生院及卫生局进行审核.卫生局可以审核所有医院创建的采购单,卫生院只审核本辖区医院创建的采购单. 操作流程: 点击"采购单审核" 显示如下: 具体实施如下: Dao层: 分为两个: 查找cgd表中的数据以及数据的数量来实现分页. 我们查找cdg数据的SQL语句: select useryy.mc useryymc, yycgd.*, (select info from dictinfo where typecode = '010' a

常见模块(四) os模块

注: os模块是实现python程序对操作系统(operation system)的操作 1.对文件或者目录进行删除或者创建的相关操作 # os.rename("b","c") #将a文件或者目录修改成b文件或者目录 # os.remove("a") #只能移除a文件 # os.removedirs("a\b") #递归删除一个目录,前提是目录下没有文件 # os.mkdir("a") #创建一个空目录 #

010商城项目:商品类目的选择——Dao,Service.Action层的分析

我们现在开始写商品类选择这个功能: 先看效果: 当我们点击"新增商品"---->"选择目录"然后从数据库中查出来数据并显示了. 我们分析数据库的那张表: 它是一个树形结构: 如下: 这是整个表的数据. 我们写一条sql查询语句: 查出来的是最顶层的目录. 我们再根据其中一条数据的id来查他的下面的目录: 比如查id=74的数据 查出来的就是家电数据. 我们在查大家电下面的数据: 所以整个表就是一课数. 我们看怎么实现: 页面上我们使用Easyui的tree结构

037医疗项目-模块四:采购单模块—采购单模块的整体需求

采购单模块的整体需求: 医院在采购药品时,先创建一个采购单,采购单内容包括本次采购的药品信息(采购量.采购金额),采购单创建成功后,需要提交到监管单位,由监管单位进行审核.审核通过后由供货商按照采购单的内容进行发货,医院收到药品后执行入库操作. 操作流程: 第一步:填写采购单基本信息 采购单基本信息包括:采购年份.采购单名称.建单时间.提交时间.联系人.联系电话.备注.采购单状态.. 第二步:当上面的采购单填好之后,按下"保存"键,就进入到这一步.填写采购单详细信息,本次采购的药品信息

037医疗项目-模块四:采购单模块—采购单数据模型

上一篇文章我们知道了采购的需求.这篇文章我们就要看一下采购单模块的数据库怎么去建立. 我们设计时采用两张表: 1:采购单基本信息表(YYCGD): 也就是对应的页面上的: 当然我们设计数据库的时候不可能只有上面这些字段.我们看一下真实数据库中是怎么设计的: 我们来看一下这些字段的意义: 采购单号:相当于订单号,方便管理需要 采购单名称:对采购单简短说明,名称 医院id:创建采购单单位的id(记录单位id而不是用户的id) (外键) 联系人:联系人和建单人可能不是一个人 联系电话:联系人的电话 建

049医疗项目-模块五:权限设置-第三方系统的接入

我们先演示要实现的功能: 单击: 我们看着有三个子模块: 点击模块管理: 在模块管理中,我们可以设置一共有几个模块,每个模块里面有哪些具体的操作等. 角色管理: 给角色分配权限. 好,我们接下来看具体的实现: 我们先把第三方系统引入到工程中: import工程. 然后修改sysconfig,和sysmanager系统中的/WEB-INF/proxool.xml文件 接着 然后重启Tomcat. 然后修改代码: 我们增加下面连个Action层:其实我们的第三方系统的实现原理就是我们从自己的项目中的

学生信息管理系统(四)——模块分析

学生信息管理系统已经敲完了,也进行了第一次验收,结果不是太理想.之前的总结也没有及时发表.现在重新复习一遍,把它发表. 从今天开始,我们就进入了代码分析阶段.现在我们就来分析一下模块中的几个函数. Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset 'executes SQL and returns Recordset Dim cnn As ADODB.Connection