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

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

当医院把采购单提交之后,由监管单位进行采购单审核,由卫生院及卫生局进行审核。卫生局可以审核所有医院创建的采购单,卫生院只审核本辖区医院创建的采购单。

 

操作流程:

技术分享

点击“采购单审核”

显示如下:

技术分享

 

 

具体实施如下:

 

Dao层:

分为两个:

查找cgd表中的数据以及数据的数量来实现分页。

我们查找cdg数据的SQL语句:

select useryy.mc useryymc,
       yycgd.*,
       (select info
          from dictinfo
         where typecode = 010
           and dictcode = yycgd.zt) yycgdztmc
  from yycgd2014 yycgd, useryy
 where yycgd.useryyid = useryy.id
 
 --只查询审核中的采购单
 and yycgd.zt = 2
 
 --卫生院只审核本辖区医院创建的采购单
 --1.1.是监管单位管理地区
 and useryy.id in (
     select id from useryy where dq like 1.1.%
 )

 

具体的YycgdMapper.xml代码如下:

         <!-- 采购单查询条件 -->
    <sql id="query_yycgd_where">
        <if test="yycgdCustom!=null">
            <if test="yycgdCustom.id!=null and yycgdCustom.id!=‘‘">
                and yycgd.id = #{yycgdCustom.id}
            </if>
            
            
            <if test="yycgdCustom.bm!=null and yycgdCustom.bm!=‘‘">
                and yycgd.bm = #{yycgdCustom.bm}
            </if>
            <if test="yycgdCustom.mc!=null and yycgdCustom.mc!=‘‘">
                and yycgd.mc like %${yycgdCustom.mc}%
            </if>
            <!-- 采购时间 ,根据采购单创建时间查询 -->
            <if test="yycgdCustom.cjtime_start!=null">
                and yycgd.cjtime>=#{yycgdCustom.cjtime_start}
            </if>
            <if test="yycgdCustom.cjtime_end!=null">
              <![CDATA[
               and yycgd.cjtime<=#{yycgdCustom.cjtime_end}
               ]]>
            </if>
            <!-- 根据医院id查询 -->
            <if test="yycgdCustom.useryyid!=null and yycgdCustom.useryyid!=‘‘">
                and yycgd.useryyid = #{yycgdCustom.useryyid}
            </if>
            <!-- 采购单状态条件 -->
            <if test="yycgdCustom.zt!=null and yycgdCustom.zt!=‘‘">
                and yycgd.zt = #{yycgdCustom.zt}
            </if>
        </if>
    </sql>












       <!-- 采购单查询列表 -->
    <select id="findYycgdList" parameterType="yycg.business.pojo.vo.YycgdQueryVo"
        resultType="yycg.business.pojo.vo.YycgdCustom">
        <!-- 分页头 -->
        <include refid="yycg.base.commonSql.page_start" />
        select
        useryy.mc useryymc,
        yycgd.*,
        (select info from dictinfo where typecode=010 and
        dictcode=yycgd.zt)yycgdztmc
        from yycgd${businessyear} yycgd,useryy where yycgd.useryyid = useryy.id

        <!-- 采购单本身查询条件 -->
        <include refid="query_yycgd_where" />
        <!-- 医院查询条件 -->
        <include refid="yycg.base.dao.mapper.SysuserMapperCustom.query_useryy_where" />

        order by yycgd.id desc


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

 

 

我们看sql语句对应的yycgdMapperCustom.java:

public List<YycgdCustom> findYycgdList(YycgdQueryVo yycgdQueryVo)throws Exception;

我们在看对应的Service层代码:

@Override
public List<YycgdCustom> findCheckYycgdList(String year, String userjdid,
        YycgdQueryVo yycgdQueryVo) throws Exception {
    yycgdQueryVo = yycgdQueryVo != null ? yycgdQueryVo : new YycgdQueryVo();
year="2014";
    // 采购单状态
    String zt = "2";// 审核中

    YycgdCustom yycgdCustom = yycgdQueryVo.getYycgdCustom();
    if (yycgdCustom == null) {
        yycgdCustom = new YycgdCustom();
    }
    yycgdCustom.setZt(zt);
    yycgdQueryVo.setYycgdCustom(yycgdCustom);
    // 监管单位管理地区
    // 根据监管单位id查询监管单位
    Userjd userjd = userjdMapper.selectByPrimaryKey(userjdid);
    // 管理地区
    String dq = userjd.getDq();

    Useryy useryy = yycgdQueryVo.getUseryy();
    useryy = useryy != null ? useryy : new Useryy();
    // 设置查询条件管理地区
    useryy.setDq(dq);

    yycgdQueryVo.setUseryy(useryy);
    // 设置年份
    yycgdQueryVo.setBusinessyear(year);
    return yycgdMapperCustom.findYycgdList(yycgdQueryVo);

}

 

 

上面的代码对应的是:查询采购单的数据。

 

 

我们接着看查数量的代码。主要是为了实现分页。

    <!-- 采购单查询列表 -->
    <select id="findYycgdCount" parameterType="yycg.business.pojo.vo.YycgdQueryVo"
        resultType="int">
        <!-- 分页头 -->
        select
    count(*)
        from yycgd${businessyear} yycgd,useryy where yycgd.useryyid = useryy.id

        <!-- 采购单本身查询条件 -->
        <include refid="query_yycgd_where" />
        <!-- 医院查询条件 -->
        <include refid="yycg.base.dao.mapper.SysuserMapperCustom.query_useryy_where" />
        order by yycgd.id desc
    </select>

 

Mapper层代码:

    public int findYycgdCount(YycgdQueryVo yycgdQueryVo)throws Exception;

 

最后看Service层代码:

@Override
public int findCheckYycgdCount(String year, String userjdid,
        YycgdQueryVo yycgdQueryVo) throws Exception {
    year="2014";
    yycgdQueryVo = yycgdQueryVo != null ? yycgdQueryVo : new YycgdQueryVo();

    // 采购单状态
    String zt = "2";// 审核中

    YycgdCustom yycgdCustom = yycgdQueryVo.getYycgdCustom();
    if (yycgdCustom == null) {
        yycgdCustom = new YycgdCustom();
    }
    yycgdCustom.setZt(zt);
    yycgdQueryVo.setYycgdCustom(yycgdCustom);
    // 监管单位管理地区
    // 根据监管单位id查询监管单位
    Userjd userjd = userjdMapper.selectByPrimaryKey(userjdid);
    // 管理地区
    String dq = userjd.getDq();

    Useryy useryy = yycgdQueryVo.getUseryy();
    useryy = useryy != null ? useryy : new Useryy();
    // 设置查询条件管理地区
    useryy.setDq(dq);

    yycgdQueryVo.setUseryy(useryy);
    // 设置年份
    yycgdQueryVo.setBusinessyear(year);
    return yycgdMapperCustom.findYycgdCount(yycgdQueryVo);
}

 

 

最后看Action层代码:

// 采购单审核列表页面
@RequestMapping("/checkyycgdlist")
public String checkyycgdlist(Model model) throws Exception {
    // 药品类别
    List<Dictinfo> cgdztlist = systemConfigService
            .findDictinfoByType("010");
    model.addAttribute("cgdztlist", cgdztlist);

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

    return "/business/cgd/checkyycgdlist";
}

//采购单审核列表结果集,json
    @RequestMapping("/checkyycgdlist_result")
    public @ResponseBody
    DataGridResultInfo checkyycgdlist_result( HttpSession session,
             String year,// 年份
            YycgdQueryVo yycgdQueryVo,// 查询条件
            int page, int rows) throws Exception {
        // 当前用户
        ActiveUser activeUser = (ActiveUser) session
                .getAttribute(Config.ACTIVEUSER_KEY);
        // 监管单位id
        String userjdid = activeUser.getSysid();// 单位id

        // 列表的总数
        int total = yycdgService
                .findCheckYycgdCount(year, userjdid, yycgdQueryVo);

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

        // 分页查询列表
        List<YycgdCustom> list = yycdgService.findCheckYycgdList(year, userjdid,
                yycgdQueryVo);

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

        return dataGridResultInfo;
    }

 

最后看页面:

在menu.json中:

                 {"icon" : "icon-log","menuid" : "1_1","menuname" : "采购单审核","url" : "/yycgproject/cgd/checkyycgdlist.action"

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ include file="/WEB-INF/jsp/base/tag.jsp"%>
<html> 
<head>
<title>医院采购单审核</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<%@ include file="/WEB-INF/jsp/base/common_css.jsp"%>
<%@ include file="/WEB-INF/jsp/base/common_js.jsp"%>


<script type="text/javascript">

function yycgdchecksubmit(){
    _confirm(您确认提交审核结果吗?,null,
              function(){
                var indexs = [];//记录的序号
                var rows = $(#yycgdlist).datagrid(getSelections);//获得以datagrid所有选中的行
                //alert(rows.length);
                for(var i=0;i<rows.length;i++){
                    var index=$(#yycgdlist).datagrid(getRowIndex,rows[i]);//获取指定行的序号
                    indexs.push(index);
                }
                if(rows.length>0){
                    //alert(indexs.join(‘,‘));
                    $("#indexs").val(indexs.join(,));//将数组数据中间以逗号分隔拼接成一个串,放在indexs里边
                    jquerySubByFId(yycgdqueryForm, yycgdchecksubmit_callback, null);
                }else{
                    alert_warn("请选择要提交审核的采购单");
                }
                
              }
            )
}
function yycgdchecksubmit_callback(data){
    var result = getCallbackData(data);
    _alert(result);
    yycgdquery();//刷新本窗口
}

function yycgdview(bm){
    var sendUrl = "${baseurl}cgd/viewcgd.action?id="+bm;
    parent.opentabwindow(bm+采购单查看,sendUrl);//打开一个新标签
}


//工具栏

var toolbar = [ {
    id : yycgdchecksubmit,
    text : 提交审核结果,
    iconCls : icon-add,
    handler : yycgdchecksubmit
    }];

var frozenColumns;

var columns = [ [
{
    checkbox:true
},
{
    field : id,//采购单id
    hidden : true,
    formatter: function(value,row,index){
        return <input type="hidden" name="yycgdCustoms[+index+].id" value="http://www.mamicode.com/+value+" />;
    }
},
{
    field : opt,
    title : 审核结果,
    width : 100,
    formatter: function(value,row,index){
        var string= <select name="yycgdCustoms[+index+].zt">
        +<option value=""></option>
        +<option value="http://www.mamicode.com/3">审核通过</option>
        +<option value="http://www.mamicode.com/4">审核不通过</option>
        +</select>;
        return string
    }
},
{
    field : opt2,
    title : 审核意见,
    width : 180,
    formatter: function(value,row,index){
        return <input type="text" name="yycgdCustoms[+index+].shyj" />;

    }
},{
    field : opt3,
    title : 查看,
    width : 60,
    formatter:function(value, row, index){
        return <a href=javascript:yycgdview("+row.bm+")>查看</a>;
    }
},
 
 {
    field : useryymc,
    title : 医院名称,
    width : 100
},{
    field : bm,
    title : 采购单编号,
    width : 80
},{
    field : mc,
    title : 采购单名称,
    width : 150
},{
    field : cjtime,
    title : 建单时间,
    width : 80,
    formatter: function(value,row,index){
        if(value){
            try{
            //通过js日期格式化
            var date = new Date(value);
            var y = date.getFullYear();//获取年
            var m = date.getMonth()+1;//获取月
            var d = date.getDate();
            return y+"-"+m+"-"+d;
            }catch(e){
                alert(e);
            }
        }
        
    }
},{
    field : xgtime,
    title : 修改时间,
    width : 80,
    formatter: function(value,row,index){
        if(value){
            try{
            var date = new Date(value);
            var y = date.getFullYear();
            var m = date.getMonth()+1;
            var d = date.getDate();
            return y+"-"+m+"-"+d;
            }catch(e){
                alert(e);
            }
        }
        
    }
},{
    field : tjtime,
    title : 提交时间,
    width : 80,
    formatter: function(value,row,index){
        if(value){
            try{
            var date = new Date(value);
            var y = date.getFullYear();
            var m = date.getMonth()+1;
            var d = date.getDate();
            return y+"-"+m+"-"+d;
            }catch(e){
                alert(e);
            }
        }
        
    }
},{
    field : shtime,
    title : 审核时间,
    width : 80,
    formatter: function(value,row,index){
        if(value){
            try{
            var date = new Date(value);
            var y = date.getFullYear();
            var m = date.getMonth()+1;
            var d = date.getDate();
            return y+"-"+m+"-"+d;
            }catch(e){
                alert(e);
            }
        }
        
    }
},{
    field : yycgdztmc,
    title : 采购单<br>状态, 
    width : 60
}]];

function initGrid(){
    $(#yycgdlist).datagrid({
        title : 采购单列表,
        //nowrap : false,
        striped : true,
        //collapsible : true,
        url : ${baseurl}cgd/checkyycgdlist_result.action,
        queryParams:{//查询参数,只在加载时使用,点击查询使用load重新加载不使用此参数
            year:${year}
        }, 
        //sortName : ‘code‘,
        //sortOrder : ‘desc‘,
        //remoteSort : false,
        idField : id,//查询结果集主键采购单id
        //frozenColumns : frozenColumns,
        columns : columns,
        autoRowHeight:true,
        pagination : true,
        rownumbers : true,
        toolbar : toolbar,
        loadMsg:"",
        pageList:[15,30,50,100],
        onClickRow : function(index, field, value) {
                    $(#yycgdlist).datagrid(unselectRow, index);
                }
        });

    }
    $(function() {
        initGrid();
    });

    function yycgdquery() {
        var formdata = $("#yycgdqueryForm").serializeJson();//将form中的input数据取出来
        $(#yycgdlist).datagrid(unselectAll);//清空列表所有选中状态
        $(#yycgdlist).datagrid(load, formdata);
    }
    

    
    $(function(){
        //加载采购单状态
        //getDictinfoCodelist(‘010‘,‘yycgdCustom.zt‘);
        //加载年
        //businessyearlist(‘businessyear‘);
    

    });
</script>
</HEAD>
<BODY>
    <form id="yycgdqueryForm" name="yycgdqueryForm" method="post" action="${baseurl}cgd/checkcgdsubmit.action">
    <input type="hidden" id="indexs" name="indexs" />
            <TABLE  class="table_search">
                <TBODY>
                    <TR>
                        <TD class="left">年份(如2014):</TD>
                        <td >
                        <select name="year" id="year">
                        <option value="2014">2014</option>
                        <option value="2013">2013</option>
                        </select>
                        
                        </td>
                        <TD class="left">采购时间:</TD>
                        <td >
                         <INPUT id="yycgdCustom.cjtime_start"
                            name="yycgdCustom.cjtime_start" 
                             onfocus="WdatePicker({isShowWeek:false,skin:‘whyGreen‘,dateFmt:‘yyyy-MM-dd‘})" style="width:80px"/>--
                     <INPUT id="yycgdCustom.cjtime_end" 
                            name="yycgdCustom.cjtime_end"
                             onfocus="WdatePicker({isShowWeek:false,skin:‘whyGreen‘,dateFmt:‘yyyy-MM-dd‘})" style="width:80px"/>
                        
                        </td>
                        <TD class="left">医院名称:</TD>
                        <td ><INPUT type="text" name="useryyCustom.mc" /></td>
                        
                        
                    </TR>
                    <TR> 
                    <TD class="left">采购单编号:</td>
                        <td><INPUT type="text"  name="yycgdCustom.bm" /></TD>
                    <TD class="left">采购单名称:</TD>
                        <td ><INPUT type="text" name="yycgdCustom.mc" /></td>
                      
                        <td colspan=2>
                            
                            <a id="btn" href="#" onclick="yycgdquery()" class="easyui-linkbutton" iconCls=‘icon-search‘>查询</a>    
                        </td>
                    </tr>
                    
                </TBODY>
            </TABLE>
       
        <TABLE border=0 cellSpacing=0 cellPadding=0 width="99%" align=center>
            <TBODY>
                <TR>
                    <TD>
                        <table id="yycgdlist"></table>
                    </TD>
                </TR>
            </TBODY>
        </TABLE>
         </form>


</BODY>
</HTML>

  调试成功

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