zoukankan      html  css  js  c++  java
  • 036医疗项目-模块三:药品供应商目录模块——供货商药品目录(批量)添加药品的功能---------Action层

    这篇文章我们来讲Action层:

    我们先讲开发步骤:

    1:我们要根据Service层里面要传的参数,在Action层传入对应的参数。

    Service层是:public void insertGysympl(String usergysid, String ypxxid) throws Exception

    2:我们把从页面传入的多个药品类保存起来,且把选中的行号也得到。

    3:捕获插入数据时的异常。并根据异常解析是自定义的异常,还是未知异常,做相应的处理。

      Action层具体代码如下:

    /**
         * 
        * @author Sxq
        * @Title: addgysSubmit 
        * @Description: TODO
        * @param @param session
        * @param @param indexs 接受页面选中的行序号
        * @param @param gysypmlQueryVo页面提交的数据保存在list中
        * @param @return
        * @param @throws Exception   
        * @return SubmitResultInfo    
        * @throws
         */
        @RequestMapping("addgysypmlsubmit")
        public@ResponseBody SubmitResultInfo addgysSubmit(HttpSession session,int[] indexs,GysypmlQueryVo gysypmlQueryVo) 
        {
            ActiveUser activeUser=(ActiveUser)session.getAttribute(Config.ACTIVEUSER_KEY);//从session中去得到用户保存的信息
            String usergysid=activeUser.getSysid();//得到药品供应商的id,
            //从前台页面传入的药品类
            List<YpxxCustom> list=gysypmlQueryVo.getYpxxCustoms();
            int count=indexs.length;//处理数据的总数
            int count_success=0;//处理成功的数量
            int count_error=0;//处理失败的数量
            List<ResultInfo> mess_error=new ArrayList<ResultInfo>();//处理失败的原因
            
            for(int i=0;i<count;i++)
            {
                
                ResultInfo resultInfo=null;
                YpxxCustom ypxxCustom=list.get(indexs[i]);
                String ypid=ypxxCustom.getId();//得到药品的id
                try {
                    gysymplService.insertGysympl(usergysid, ypid);////调用servcie层插入数据。
                } catch (Exception e) {
                    e.printStackTrace();
                    /*
                     * 接下来的步骤就是解析我们的异常,看是不是我们自己定义的异常
                     */
                    if(e instanceof ExceptionResultInfo)//判断是不是我们自己定义的异常
                    {
                        resultInfo=((ExceptionResultInfo)e).getResultInfo();//是我们自己的异常的话就得到错误信息
                        
                        
                    }else {
                        resultInfo=ResultUtil.createFail(Config.MESSAGE, 900, null);//不是我们自己定义的异常,那么就要创建一个未知异常。
                    }
                
                
                }
                
                if(resultInfo==null)//说明没有抛出异常,那么就在代表成功的count_success加1.
                {
                    count_success++;
                }else {
                    count_error++;//说明抛出了异常,那么就要异常加一
                    mess_error.add(resultInfo);//把异常都收集起来
                    
                }
                
                
                
            }
            
            //这里有mess_error所以当我添加失败时会给出具体的失败原因。
            return ResultUtil.createSubmitResult(ResultUtil.createSuccess(Config.MESSAGE, 907, new Object[]{count_success,count_error}),mess_error);
        }

      调试结果:

     
    点击添加药品之后:

     点击“确认添加”之后:

     

    前面的是正常添加的情况,接下来我们看一下如果添加那些暂停交易的药品时会出现什么情况(暂停交易的药品是不能被添加进去的):

     详细的列出了不能添加的理由。

  • 相关阅读:
    leetcode算法题基础(三十三)动态规划(一)70. 爬楼梯
    leetcode算法题基础(三十二)trie(四)676. 实现一个魔法字典
    leetcode算法题基础(三十一)trie(三)692. 前K个高频单词
    leetcode算法题基础(三十)trie(二)720. 词典中最长的单词
    leetcode算法题基础(二十九)trie(一)211. 添加与搜索单词
    leetcode算法题基础(二十八)拓扑排序(二)210. 课程表 II
    leetcode算法题基础(二十七)拓扑排序(一)207. 课程表
    leetcode算法题基础(二十六)深度优先(四)721. 账户合并
    leetcode算法题基础(二十五)深度优先(三)200. 岛屿数量
    leetcode算法题基础(二十四)深度优先(二)101. 对称二叉树
  • 原文地址:https://www.cnblogs.com/shenxiaoquan/p/6142511.html
Copyright © 2011-2022 走看看