医药采购之供货商药品目录删除

1.1 供货商药品目录删除
1.1.1 需求:
供货商登录系统,进入供货商药品目录维护页面,选择要删除的药品,点击“确认删除”。

医药采购之供货商药品目录删除_第1张图片
约束条件:
供货商药品目录存在此药品方可删除。

数据库操作:
从供货商药品目录表中删除记录。

1.1.2 实现:

参考供货商药品目录添加方法去实现。

1.1.2.1 Dao:
使用逆向工程,将供货商药品目录表记录删除。
1.1.2.2 Service:
接口功能:供货商药品目录删除
接口参数:供货商id和药品id
接口实现:
先校验约束条件:供货商药品目录存在此药品方可删除
执行删除:根据主键删除(先根据供货商id和药品id查询出主键)

service部分代码:

// 供货商删除一条供应药品信息
    @Override
    public void deleteGysypml(String usergysid, String ypxxid) throws Exception {
        // 供货商药品目录存在此药品方可删除。
        Gysypml gysypml = this.findGysypmlByUsergysidAndYpxxid(usergysid,
                ypxxid);
        if (gysypml == null) {// 说明不存在 抛异常
            ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE, 316,
                    null));
        } else {
            String id = gysypml.getId();
            // 存在则删除
            gysypmlMapper.deleteByPrimaryKey(id);
        }
    }
    // 抽取方法 通过usergysid和ypxxid来查询gysypml 是否存在 (添加一条药品用到)
    public Gysypml findGysypmlByUsergysidAndYpxxid(String usergysid,
            String ypxxid) throws Exception {
        GysypmlExample gysypmlExample = new GysypmlExample();
        GysypmlExample.Criteria criteria = gysypmlExample.createCriteria();
        criteria.andUsergysidEqualTo(usergysid);
        criteria.andYpxxidEqualTo(ypxxid);
        List<Gysypml> list = gysypmlMapper.selectByExample(gysypmlExample);
        if (list != null && list.size() == 1) {
            return list.get(0);
        }

        return null;
    }

1.1.2.3 Action:

传参数问题:
供货商id:单个参数
药品id:页面传多个参数(页面定义hidden,list[].XXX)

方法参考:供货商药品目录添加提交方法addgysypmlsubmit实现。
要注意action 中传递参数与页面的的名字一致

//药品目录批量删除
    @RequestMapping("/deletegysypmlsubmit")
    public @ResponseBody
    SubmitResultInfo deletegysypmlsubmit(HttpSession session, int[] indexs,
            GysypmlQueryVo gysypmlQueryVo) throws Exception {
        // 获取当前供应商id
        ActiveUser activeUser = (ActiveUser) session
                .getAttribute(Config.ACTIVEUSER_KEY);
        String usergysid = activeUser.getSysid();
        // 获取当前药品id
        List<YpxxCustom> list = gysypmlQueryVo.getYpxxCustoms();

        System.out.println(list.get(0) + "yang11111111111111111111111");
        // 删除总数
        int count = indexs.length;
        int success_count = 0;
        int count_error = 0;

        // 记录错误信息
        List<ResultInfo> message_error = new ArrayList<ResultInfo>();
        for (int i = 0; i < count; i++) {
            ResultInfo resultInfo = null;
            YpxxCustom ypxxCustom = list.get(indexs[i]);
            String ypxxid = ypxxCustom.getId();// 页面中传入的参数

            try {
                ypmlService.deleteGysypml(usergysid, ypxxid);
            } catch (Exception e) {
                e.printStackTrace();
                if (e instanceof ExceptionResultInfo) {// 自定义异常类
                    resultInfo = ((ExceptionResultInfo) e).getResultInfo();
                } else {
                    // 构造未知错误
                    resultInfo = ResultUtil.createFail(Config.MESSAGE, 900,
                            null);
                }
            }

            if (resultInfo == null) {
                // 执行成功
                success_count++;
            } else {
                count_error++;
                // 记录失败原因
                message_error.add(resultInfo);
            }

        }

        return ResultUtil.createSubmitResult(
                ResultUtil.createSuccess(Config.MESSAGE, 907, new Object[] {
                        success_count, count_error }), message_error);
    }

1.1.2.4 页面
将药品id在datagrid列中定义hidden。
将页面选中序号、业务数据提交到action。

参考:供货商药品目录添加页面。

var gysypmldel = function(){
    _confirm('您确定要执行删除选中的药品吗?',null,
      function(){
        var indexs = [];//定义一个数组准备存放删除记录的序号
        //通过jquery easyui的datagrid的getSelections函数,得到当前所有选中的行(对象数组)
        var rows = $('#gysypmllist').datagrid('getSelections');
        //循环遍历选中行
        for(var i=0;i<rows.length;i++){
            //通过jquery easyui的datagrid的getRowIndex方法得行的序号
            var index=$('#gysypmllist').datagrid('getRowIndex',rows[i]);
            //将选中行的序号放入indexs数组
            indexs.push(index);
        }
        //如果存在选中的行
        if(rows.length>0){
            //将选中的行通过indexs.join(','),将选中行的序号中间以逗号分隔组成一个字符串,调用$("#indexs").val方法,将这个字符串放入indexs对象
            $("#indexs").val(indexs.join(","));
            //执行ajax的form提交
            jquerySubByFId('gysypmldeleteForm', gysypmldel_callback, null);
        }else{
            alert_warn("请选择要删除的药品");
        }

      }
    )

};

function gysypmldel_callback(data) {
    var result = getCallbackData(data);
    _alert(result);//显示失败明细的
    gysypmlquery();//删除完成刷新页面(重新执行查询方法)
}
//工具栏

var toolbar = [ {
    id : 'gysypmladd',
    text : '供应药品添加',
    iconCls : 'icon-add',
    handler : gysypmladd
    },{
    id : 'gysypmldel',
    text : '供应药品删除',
    iconCls : 'icon-remove',
    handler : gysypmldel
    }];

var frozenColumns;

var columns = [ [{  
    title : '选择',
    checkbox : true//显示成checkbox
},{
    field : 'id',
    hidden : true,//该列隐藏
    formatter: function(value,row,index){
        //gysypmls对应action接收对象中list的名称,[]括号中是从0开始序号,id是list中对象属性
        return '<input type="hidden" name="ypxxCustoms['+index+'].id" value="'+value+'" />';
    }
}......

你可能感兴趣的:(需求)