您的位置:首页 > 其它

Jimoshi_LDS-物流管理系统的路线管理系统增删改

2016-06-29 13:41 429 查看
Jimoshi成长经历:前面的笔记后面再慢慢整理-------方便自己

目录:展示路线管理系统的数据、删除路线管理系统的数据、添加路线管理系统的数据、修改路线管理系统的数据

LDS-物流管理系统的路线管理系统增删改

一、展示路线管理系统的数据

  1、编写route.jsp页面

  代码示例:

 

  <%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<!--引入easyui的样式 -->

<link rel="stylesheet"  type="text/css" href="${pageContext.request.contextPath}/themes/bootstrap/easyui.css">

<link rel="stylesheet"  type="text/css" href="${pageContext.request.contextPath}/themes/icon.css">

<!-- js文件 -->

<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.min.js"></script>

<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.easyui.min.js"></script>

<script type="text/javascript" src="${pageContext.request.contextPath}/js/easyui-lang-zh_CN.js"></script>

</head>

<script type="text/javascript">

(function(){

    //更改底部工具栏 getPager返回页面对象

    var pager = $('#toolbar').datagrid('getPager');    

      pager.pagination({

        pageList: [10,20,30],

    });

})    

   </script>

   <body>

   <table id="RouteList"  class="easyui-datagrid"

            toolbar="#toolbar" pagination="true" fit="true"

            url="${pageContext.request.contextPath}/route/route_showRouteMsg.action" striped="true"

            rownumbers="true" fitColumns="true" border="false">

        <thead>

            <tr>

                <th field="ck" checkbox=true></th>

                <th field="rid"  hidden="true" >路线ID</th>

                <th field="rname" width='50' resizable='false' >路线名称</th>

                <th field="rstart" width='50' resizable='false'>路线起点</th>

                <th field="rend" width='50' resizable='false'>路线终点</th>

            </tr>

        </thead>

        <div id="toolbar">

                <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-add"  plain="true"  onclick="addroute()">增加</a>

                <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-edit"  plain="true"  onclick="updateroute()">修改</a>

                <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-remove"  plain="true"  onclick="deleteroute()">删除</a>

            </div>

   </body>

   </html>

   2、编写zhj.xml文件

   代码示例:

    <package name="routes" namespace="/route" extends="struts-default">

        <action name="route_*" method="{1}" class="com.zr.action.RouteAction">

        </action>

    </package>

   3、编写RouteAction类测试请求是否发送成功

   代码示例:

   public class RouteAction(){

          System.out.println(111);

   }

 

   4、编写RouteDao接口添加查找路线信息的方法

   代码示例:

   /**

    * 路线的dao层

    * @author Administrator

    *

    * @param <T>

    */

   public interface RouteDao<T> extends BaseDao<T> {

   /**

    * 查找路线信息的数量

    * @return

    */

   public long showRouteCount();

   /**

     * 根据页码返回路线的信息

     * @param page

     * @param rows

     * @return

     */

    public List<TRoute> showRouteMsg(int page,int rows);

   }

   5、编写RouteDaoImpl类重写RouteDao的方法

   代码示例:

   @Repository("routeDao")

   public class RouteDaoImpl<T> extends BaseDaOImpl<T> implements RouteDao<T> {

    @Override

    public long showRouteCount() {

        // TODO Auto-generated method stub

        //查询路线总数的hql语句

        String hql = "select count(*) from TRoute";

        //将查出来的数据放在list中

        List<Object> obj = this.getCurrentSession().createQuery(hql).list();

        //获取数据

        return (long) obj.get(0);

    }

    @Override

    public List<TRoute> showRouteMsg(int page, int rows) {

        // TODO Auto-generated method stub

      //查询车辆信息的sql语句

      String sql = "SELECT rid,rname,(SELECT dpname from t_priceofdistributionpoint p where t.rstart=p.podpid) rstart,(SELECT dpname from t_priceofdistributionpoint p where t.rend=p.podpid) rend from t_route t limit :start,:scount";

      //将查出来的数据转成map

      Query query=this.getCurrentSession().createSQLQuery(sql.toString()).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);

      //指定当前分页查询的起始位置和行数

      query.setInteger("start",(page-1)*rows);

      query.setInteger("scount",rows);

      //将Query对象query转换成集合,并且把该集合赋值给一个新的集合

      List<TRoute> routes = query.list();

      return routes;

    }            

   }

 

   6、编写RouteService接口添加查找路线的信息

   代码示例:

     /**

     * 查找路线的信息

     * @param page

     * @param rows

     * @return

     */

    public JSONObject showRouteMsg(int page,int rows);

  7、编写RouteServiceImpl类重写RouteService方法

  代码示例:

  @Repository("routeDao")

  public class RouteDaoImpl<T> extends BaseDaOImpl<T> implements RouteDao<T> {

    @Override

    public long showRouteCount() {

        // TODO Auto-generated method stub

        //查询路线总数的hql语句

        String hql = "select count(*) from TRoute";

        //将查出来的数据放在list中

        List<Object> obj = this.getCurrentSession().createQuery(hql).list();

        //获取数据

        return (long) obj.get(0);

    }

    @Override

    public List<TRoute> showRouteMsg(int page, int rows) {

        // TODO Auto-generated method stub

      //查询路线信息的sql语句

      String sql = "SELECT rid,rname,(SELECT dpname from t_priceofdistributionpoint p where t.rstart=p.podpid) rstart,(SELECT dpname from t_priceofdistributionpoint p where t.rend=p.podpid) rend from t_route t limit :start,:scount";

      //将查出来的数据转成map

      Query query=this.getCurrentSession().createSQLQuery(sql.toString()).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);

      //指定当前分页查询的起始位置和行数

      query.setInteger("start",(page-1)*rows);

      query.setInteger("scount",rows);

      //将Query对象query转换成集合,并且把该集合赋值给一个新的集合

      List<TRoute> routes = query.list();

      return routes;

    }            

   }

   8、编写RouteAction类完成具体实现方法

   代码示例:

   /**

    * 路线的控制层

    * @author Administrator

f730

    *

    */

   @Controller("routeAction")

   // 保证当有请求的时候,都创建一个Action对象

   @Scope(value="prototype")

   public class RouteAction extends ActionSupport implements ServletResponseAware{

    private HttpServletResponse response;

    private int page;

    private int rows;

    public int getPage() {     return page;  }

    public void setPage(int page) {     this.page = page; }

    public int getRows() {    return rows; }

    public void setRows(int rows) {  this.rows = rows; }

    @Resource

    private  RouteService  routeService;

    //显示路线信息

     public void showRouteMsg(){

         JSONObject obj = routeService.showRouteMsg(page, rows);

         response.setCharacterEncoding("utf-8");

         try {

            response.getWriter().write(obj.toString());

        } catch (IOException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

     }

    @Override

    public void setServletResponse(HttpServletResponse response) {

        // TODO Auto-generated method stub

        this.response=response;

    }

   }

 

   9、发送请求测试是否展示成功

二、删除路线管理系统的数据

   1、编写route.jsp页面

   代码示例:

   //删除用户信息

   function deleteroute(){

    //获取被选中需要删除的数据

     var data = $("#RouteList").datagrid('getSelections');

     if(data.length==0){

         $.messager.show({

                title:'警告',

                msg:'请选中需要删除的数据',

                timeout:1000,

                showType:'slide',

                style:{

                        top:'100',                        

                    }

            });

     }else{

          //声明一个空的数组 装选中的rid

          var rids = [];

          for (var i = 0; i < data.length; i++) {

            rids.push(data[i].rid);

        }

    $.messager.confirm('确认对话框', '您确认删除选中的'+data.length+'条数据吗?', function(r){

                if (r){

                    //通过ajax请求将对应数据发送到后台中

                    $.ajax({

                        type:"post",

                        url:'${pageContext.request.contextPath}/route/route_deleteRouteMsg.action',

                        data:{"rids":rids},

                        dataType:"text",

                        success:function(data){

                                //提示删除成功

                                $.messager.alert('提示','删除成功','info',function(){

                                $("#RouteList").datagrid('reload');

                                $("#RouteList").datagrid('uncheckAll');

                    });

                }

                });

             }

        });

     }

   }

   2、编写RouteAction类测试删除请求是否成功

   代码示例:

   //删除路线信息

    public void deleteRouteMsg(){

        System.out.println(111);

   }

 

   3、编写RouteDao接口添加删除的方法

   代码示例:

   /**

    * 删除路线信息

    * @param rid 传入车辆id

    */

   public void deleteRouteMsg(int rid);

   4、编写RouteDaoImpl类重写RouteDao接口的方法

   代码示例:

   @Override

   public void deleteRouteMsg(int rid) {

    // TODO Auto-generated method stub

    TRoute route = (TRoute) this.getCurrentSession().get(TRoute.class, Integer.valueOf(rid));

    this.getCurrentSession().delete(route);

    }

   5、编写RouteService接口添加批量删除的方法

   代码示例:

    /**

     * 批量删除路线的信息

     * @param rids 传入选中的路线rid

     */

    public void deleteRouteMsg(String rids[]);

   6、编写RouteServiceImpl类实现RouteService接口的方法

   代码示例:

   @Override

   public void deleteRouteMsg(String[] rids) {

    // TODO Auto-generated method stub

    for (int i = 0; i < rids.length; i++) {

        routeDao.deleteRouteMsg(Integer.valueOf(rids[i]));

    }

   }    

   7、编写RouteAction类调用RouteServiceImpl类中的方法

   代码示例:

   private HttpServletRequest request;

   private int rids[];

   public int[] getRids() {    return rids;}

   public void setRids(int[] rids) {this.rids = rids;}

   //删除路线信息

    public void deleteRouteMsg(){

        System.out.println(111);

        String rids[]=request.getParameterValues("rids[]");

        routeService.deleteRouteMsg(rids);

        PrintWriter pw;

        try {

            pw = response.getWriter();

            pw.write("");

        } catch (IOException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }        

        

    }

    @Override

    public void setServletRequest(HttpServletRequest request) {

    // TODO Auto-generated method stub

    this.request=request;

    }    

   8、发送请求测试删除是否成功

三、添加路线管理系统的数据

   1、编写route.jsp页面

   代码示例:

    <script type="text/javascript">

    //显示添加车辆信息框

    function addroute(){

    $("#dlg").dialog("open").dialog('setTitle', '添加车辆信息');

        $('#dlg').form('clear');    

        $('#routeupdate').hide();

        $('#routeadd').show();

        $('#rrid').hide();

        $('#lab').hide();

    }

   //确认添加车辆信息

    function routeadd(){

    //获得新增窗口内输入的文本框的值

    var route = new Object();

    route.rname = $("#rname").val();

    route.rstart = $("#rstart").combobox('getValue');

    route.rend = $("#rend").combobox('getValue');

    var json = JSON.stringify(route);

    //通过ajax请求将对应数据发送到后台中

    $.ajax({

    type:"post",

    url:"${pageContext.request.contextPath}/route/route_addRouteMsg.action",

    data:{"json":json},

    dataType:"text",

    success:function(data){

            $.messager.alert('提示','添加成功','info',function(){

                //刷新页面,关闭窗口,清除表单内容

                $("#RouteList").datagrid('reload');

                $('#dlg').dialog('close');

                $('#dlg').form('clear');    

            });

        }

    })

     };

     </script>

     <body>

     <div id="dlg" class="easyui-dialog"

style="width:400px;height:280px;padding:10px 20px"

            closed="true" buttons="#dlg-buttons">

        <div class="ftitle" id="">路线信息</div>

        <form id="fm" method="post" novalidate>

        <div class="fitem" id="routeid">

          <div class="fitem" id="rrid">

                <label>路线ID:</label>

                <input id="rid" name="rid" class="easyui-textbox" required="true">

            </div>

            <div class="fitem">

                <label>路线名称:</label>

                <input id="rname" name="cname" class="easyui-textbox" required="true" >

            </div>

            <div class="fitem">

                <label>路线起点:</label>

               <input id="rstart" class="easyui-combobox" name="rstart"

                data-options="editable:false,valueField:'id',textField:'text',url:'${pageContext.request.contextPath}/route/route_findRstartMsg.action'" />    

            </div>

             <div class="fitem">

                <label>路线终点:</label>

                <input id="rend" class="easyui-combobox" name="rend"

                data-options="editable:false,valueField:'id',textField:'text',url:'${pageContext.request.contextPath}/route/route_findRendMsg.action'" />        

            </div>

            <div class="fitem" id="lab">

                <label> 注:每次修改都需重新设置路线起点、终点</label>

            </div>

          </div>

        </form>

    </div>

    <div id="dlg-buttons">

        <a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok"

style="width:90px" onclick="routeupdate()" id="routeupdate">确认修改</a>

        <a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok"

onclick="routeadd()" style="width:90px" id="routeadd" >确认添加</a>

        <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel"

onclick="javascript:$('#dlg').dialog('close')" id="et" style="width:90px">取消</a>

    </div>

   </body>

   

   2、编写RouteAction测试请求是否发送成功

   代码示例:

   //展示路线起点配送点名称信息(动态加载配送点名称)

    public void findRstartMsg(){

         System.out.println(路线起点"");

    }

    //展示路线终点配送点名称信息(动态加载配送点名称)

    public void findRendMsg(){

         System.out.println("路线终点");

    }

    //添加路线信息

    public void addRouteMsg(){

             System.out.println("添加路线");

       }

    3、编写RouteDao接口添加动态加载起始点和添加的方法

    代码示例:

    /**

     * 查询配送点名称信息(动态加载状态)

     * @return

     */

    public JSONArray findDpnameMsg();

   /**

     * 添加路线信息

     * @param rname 传入路线名称    

     * @param rstart 传入路线起点

     * @param rend 传入路线终点

     * @return

     */

    public boolean addRouteMsg(String rname,String rstart,String rend);

   4、编写RouteDaoImpl类重写RouteDao的方法

   代码示例:

   @Override

    public JSONArray findDpnameMsg() {

        // TODO Auto-generated method stub

        //声明一个map数据集合

        Map<String, String> map = new HashMap<String,String>();

        //声明一个jso数组

        JSONArray jso=new JSONArray();

        //查询配送点名称信息的hql语句

        String hql="from TDistributionpoint";

        //查询hql语句

        Query query=this.getCurrentSession().createQuery(hql);

        //将查询出来的hql数据放入list中

        List<TDistributionpoint> tdbp = query.list();

        for (TDistributionpoint tDistributionpoint : tdbp) {    

            //获得配送点的id和名字

            String Dpid = String.valueOf(tDistributionpoint.getDpid());

            String Dpname = tDistributionpoint.getDpname();

            //将配送点id和名字放入map集合中

            map.put("id", Dpid);

            map.put("text", Dpname);

            //将这个集合放入jso数组中

            jso.add(map);

        }

        //返回jso数组

        return jso;

    }

    @Override

    public boolean addRouteMsg(String rname, String rstart, String rend) {

        // TODO Auto-generated method stub

        boolean flag =false;

        TRoute route = new TRoute();

        route.setRname(rname);

        route.setRstart(rstart);

        route.setRend(rend);

        this.getCurrentSession().save(route);

        return flag;

    }

    5、编写RouteService接口添加动态加载起始点的方法和添加的方法

    代码示例:

     /**

      * 查询配送点名称信息(动态加载状态)

      * @return

      */

     public JSONArray findDpnameMsg();

     /**

      * 添加路线信息

      * @param rname 传入路线名称    

      * @param rstart 传入路线起点

      * @param rend 传入路线终点

      * @return

      */

     public boolean addRouteMsg(String rname,String rstart,String rend);

    6、编写RouteServiceImpl类重写RouteService接口的方法

    代码示例:

    @Override

    public JSONArray findDpnameMsg() {

        // TODO Auto-generated method stub

        return routeDao.findDpnameMsg();

    }

    @Override

    public boolean addRouteMsg(String rname, String rstart, String rend) {

        // TODO Auto-generated method stub

        return routeDao.addRouteMsg(rname, rstart, rend);

    }

    7、编写RouteAction调用RouteServiceImpl的方法

    代码示例:

     //展示路线起点配送点名称信息(动态加载配送点名称)

    public void findRstartMsg(){

        JSONArray obj = routeService.findDpnameMsg();

        response.setCharacterEncoding("utf-8");

        try {

            response.getWriter().write(obj.toString());

        } catch (IOException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

    }

    //展示路线终点配送点名称信息(动态加载配送点名称)

    public void findRendMsg(){

        JSONArray obj = routeService.findDpnameMsg();

        response.setCharacterEncoding("utf-8");

        try {

            response.getWriter().write(obj.toString());

        } catch (IOException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

    }

    //添加路线信息

    public void addRouteMsg(){

        JSONObject jso = JSONObject.fromObject(json);

        System.out.println(json);

        String rname=jso.getString("rname");

        String rstart=jso.getString("rstart");

        String rend=jso.getString("rend");

        Boolean flag=routeService.addRouteMsg(rname,rstart,rend);

        response.setCharacterEncoding("utf8");

        PrintWriter pw;

        try {

            pw = response.getWriter();

            pw.write(flag+"");

        } catch (IOException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

    }

    8、测试添加功能是否成功

四、修改路线管理系统的数据

   1、编写route.jsp页面

   代码示例:

    

   <script type="text/javascript">

   //确认修改用户信息

   function routeupdate(){

     //获得新增窗口内输入的文本框的值

     var route = new Object();

     route.rid = $("#rid").val();

     route.rname = $("#rname").val();

     route.rstart = $("#rstart").combobox('getValue');

     route.rend = $("#rend").combobox('getValue');

     var json1 = JSON.stringify(route);

        $.ajax({                       

                type:"post",                                               url:"${pageContext.request.contextPath}/route/route_updateRouteMsg.action",

                data:{"json1":json1},

                dataType:"text",

                success:function(data){

                    $.messager.alert('提示','修改成功', data)

                  //刷新页面,关闭窗口,清除表单内容

                    $("#RouteList").datagrid('reload');

                    $('#dlg').dialog('close');

                    $('#dlg').form('clear');    

                }

        })

    }

    </script>

   2、编写RouteAction测试请求是否成功

   代码示例:

   //修改用户信息

    public void updateRouteMsg(){

            System.out.println(111);

   }

   3、编写RouteDao接口添加修改的方法

   代码示例:

   /**

    * 修改路线信息

    * @param rid 传入路线id    

    * @param rname 传入路线名称

    * @param rstart 传入路线起点

    * @param rend 传入路线终点

    */

   public void updateRouteMsg(int rid,String rname,String rstart,String rend);

   4、编写RouteDaoImpl类重写RouteDao接口的方法

   代码示例:

   @Override

    public void updateRouteMsg(int rid, String rname, String rstart, String rend) {

        // TODO Auto-generated method stub

        TRoute td = (TRoute) this.getCurrentSession().get(TRoute.class, Integer.valueOf(rid));

        td.setRname(rname);

        td.setRstart(rstart);

        td.setRend(rend);

        this.getCurrentSession().update(td);

    }

   5、编写RouteService接口添加修改路线的方法

   代码示例:

        /**

      * 修改路线信息

      * @param rid 传入路线id    

      * @param rname 传入路线名称

      * @param rstart 传入路线起点

      * @param rend 传入路线终点

      */

     public void updateRouteMsg(int rid,String rname,String rstart,String rend);

    6、编写RouteServiceImpl类重写RouteService接口的方法

    代码示例:

 

        @Override

    public void updateRouteMsg(int rid, String rname, String rstart, String rend) {

        // TODO Auto-generated method stub

        routeDao.updateRouteMsg(rid, rname, rstart, rend);

    }

    7、编写RouteAction类添加修改的方法

    代码示例:

    private String json1;

    public String getJson1() {    return json1;}

    public void setJson1(String json1) {    this.json1 = json1; }

    //修改用户信息

    public void updateRouteMsg(){

        JSONObject jso = JSONObject.fromObject(json1);

        int rid = jso.getInt("rid");

        String rname=jso.getString("rname");

        String rstart=jso.getString("rstart");

        String rend=jso.getString("rend");

        routeService.updateRouteMsg(rid, rname, rstart, rend);

        response.setCharacterEncoding("utf8");

        PrintWriter pw;

        try {

            pw = response.getWriter();

            pw.write("");

        } catch (IOException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

    }

    8、发送请求测试修改功能是否成功
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息