046医疗项目-模块四:采购单模块—采购单审核(Dao,Service,Action三层)
Posted jim_shen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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="\'+value+\'" />\'; } }, { field : \'opt\', title : \'审核结果\', width : 100, formatter: function(value,row,index){ var string= \'<select name="yycgdCustoms[\'+index+\'].zt">\' +\'<option value=""></option>\' +\'<option value="3">审核通过</option>\' +\'<option value="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;//获取月 var037医疗项目-模块四:采购单模块—采购单模块的整体需求048医疗项目-模块四:采购单模块—采购单受理(Dao,Service,Action三层)
044医疗项目-模块四:采购单模块—采购单保存(Dao,Service,Action三层)