第十三节 磁盘列表和统计

Java代码公用的在最后,单独的在每一节代码里

1 列表

效果

1.1 页面

1.1.1html

<!DOCTYPE html>
<html lang="en" class="no-js">

<body>
	<!--#include  virtual="../../common/head_global.html"-->
	<!--#include  virtual="../../common/head_theme.html"-->  

<div class="clearfix"></div>

<!-- BEGIN CONTAINER -->
<div class="page-container" style="margin: 0px;">

	<!-- BEGIN CONTENT -->
	<div class="page-content-wrapper">
		<div class="page-content">
			<!-- BEGIN PAGE CONTENT INNER -->
			<div class="row">
				<div class="col-md-12">
					<!-- BEGIN EXAMPLE TABLE PORTLET-->
					<div class="panel-body" style="padding:2px 2px;">
						<div class="panel panel-default">
							<div class="panel-heading">系统设置>>磁盘空间</div>
							<div class="panel-body">
								<form id="formSearch" class="form-horizontal">
									<div class="form-group" style="margin-top:3px">
										<div class="col-md-2">
											<select id="deleteFlag" class="form-control">
												<option value="1">未删除</option>
												<option value="0">已删除</option>
											</select>
										</div>
										<label  class="control-label col-sm-1" >是否启用</label>
										<div class="col-md-2">
											<select id="isQy" class="form-control">
												<option value="">全部</option>
												<option value="1">是</option>
												<option value="2">否</option>
											</select>
										</div>
										<label  class="control-label col-sm-1" >是否占满</label>
										<div class="col-md-2">
											<select id="isZm" class="form-control">
												<option value="">全部</option>
												<option value="1">是</option>
												<option value="2">否</option>
											</select>
										</div>

										<label  class="control-label col-sm-1" >是否挂载</label>
										<div class="col-md-2">
											<select id="isGz" class="form-control">
												<option value="">全部</option>
												<option value="1">是</option>
												<option value="2">否</option>
											</select>
										</div>

									</div>
									<div class="form-group" style="margin-top:3px">
										<div class="col-md-2">
											<input type="text" class="form-control" id="driveLetter" placeholder="请输入盘符" autocomplete="off" >
										</div>

										<div class="col-md-4" style="text-align:left;">
											<button type="button" id="btn_query" class="btn btn-primary" style="margin-left:5px">查询</button>
											<button type="button" id="btn_add" class="btn btn-primary" style="margin-left:5px;">新增</button>
											<button type="button" id="btn_delete" class="btn btn-primary" style="margin-left:5px;">删除</button>
											<button type="button" id="btn_recover" class="btn btn-primary" style="margin-left:5px;">恢复</button>
										</div>

										<div class="col-md-6" class="form-control">
											<label class="control-label" style="color:red" >磁盘空间小于20G时,将自动切换下一个磁盘空间充足的挂载磁盘,如手动切换时剩余磁盘空间不能小于20G</label>
										</div>
									</div>
								</form>
							</div>
						</div>
						<table id="tb_obj"></table>
					</div>
				</div>
			</div>
		</div>
	</div>
	<!-- END CONTENT -->
</div>
<!-- END CONTAINER -->

<!-- BEGIN modal_add -->
<div style="margin-top:6%;display: none" class="modal fade" id="modal_add" tabindex="-1" role="dialog" aria-hidden="true" aria-labelledby="modal_add_label">
	<div class="modal-dialog" role="document">
		<div class="modal-content">
			<div class="modal-header">
				<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
				<h4 class="modal-title" id="modal_add_label">新增</h4>
			</div>
			<div class="modal-body">
				<form class="form-horizontal" id="uploadForm" enctype="multipart/form-data">
					<div class="form-group">
						<label  class="control-label col-sm-2" >盘符</label>
						<div class="col-md-9">
							<input type="text" autocomplete="off" class="form-control"  id="add_driveLetter" placeholder="请输入盘符">
						</div>
					</div>
					<!--<div class="form-group">-->
						<!--<label  class="control-label col-sm-2" >路径</label>-->
						<!--<div class="col-md-9">-->
							<!--<input type="text" autocomplete="off" class="form-control"  id="add_path" placeholder="请输入路径">-->
						<!--</div>-->
					<!--</div>-->
					<!--<div class="form-group">-->
						<!--<label class="control-label col-md-2">是否启用</label>-->
						<!--<div class="col-md-9">-->
							<!--<select id="add_isQy" class="form-control">-->
								<!--<option value='1'>是</option>-->
								<!--<option value='2' selected>否</option>-->
							<!--</select>-->
						<!--</div>-->
					<!--</div>-->
					<!--<div class="form-group">-->
						<!--<label class="control-label col-md-2">是否占满</label>-->
						<!--<div class="col-md-9">-->
							<!--<select id="add_isZm" class="form-control">-->
								<!--<option value='1'>是</option>-->
								<!--<option value='2' selected>否</option>-->
							<!--</select>-->
						<!--</div>-->
					<!--</div>-->
					<div class="form-group">
						<label class="control-label col-md-2">是否挂载</label>
						<div class="col-md-9">
							<select id="add_isGz" class="form-control">
								<option value='1'>是</option>
								<option value='2' selected>否</option>
							</select>
						</div>
					</div>
					<div class="form-group">
						<label  class="control-label col-sm-2" >简介</label>
						<div class="col-md-9">
							<textarea rows="8" class="form-control"  id="add_remarks" ></textarea>
						</div>
					</div>
				</form>
			</div>
			<div class="modal-footer">
				<button type="button" class="btn btn-default" data-dismiss="modal"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span>关闭</button>
				<button type="button" id="btn_submit_add" class="btn btn-primary" data-dismiss="modal"><span class="glyphicon glyphicon-floppy-disk" aria-hidden="true"></span>保存</button>
			</div>
		</div>
	</div>
</div>
<!-- END modal_add -->

<!-- BEGIN modal_update -->
<div style="margin-top:6%;display: none" class="modal fade" id="modal_update" tabindex="-1" role="dialog" aria-hidden="true" aria-labelledby="modal_update_label">
	<div class="modal-dialog" role="document" style="margin-left: 30%">
		<div class="modal-content" style="width: 800px;">
			<div class="modal-header">
				<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
				<h4 class="modal-title" id="modal_update_label">编辑</h4>
				<input id="update_id" type="hidden"/>
			</div>

			<div class="modal-body">
				<form class="form-horizontal">
					<div class="form-group">
						<label  class="control-label col-sm-2" >盘符</label>
						<div class="col-md-9">
							<input type="text" autocomplete="off" class="form-control"  id="update_driveLetter" placeholder="请输入名称">
						</div>
					</div>
					<!--<div class="form-group">-->
						<!--<label  class="control-label col-sm-2" >路径</label>-->
						<!--<div class="col-md-9">-->
							<!--<input type="text" autocomplete="off" class="form-control"  id="update_path" placeholder="请输入路径">-->
						<!--</div>-->
					<!--</div>-->
					<!--<div class="form-group">-->
						<!--<label class="control-label col-md-2">是否启用</label>-->
						<!--<div class="col-md-9">-->
							<!--<select id="update_isQy" class="form-control">-->
								<!--<option value='1'>是</option>-->
								<!--<option value='2' selected>否</option>-->
							<!--</select>-->
						<!--</div>-->
					<!--</div>-->
					<!--<div class="form-group">-->
						<!--<label class="control-label col-md-2">是否占满</label>-->
						<!--<div class="col-md-9">-->
							<!--<select id="update_isZm" class="form-control">-->
								<!--<option value='1'>是</option>-->
								<!--<option value='2' selected>否</option>-->
							<!--</select>-->
						<!--</div>-->
					<!--</div>-->
					<div class="form-group">
						<label class="control-label col-md-2">是否挂载</label>
						<div class="col-md-9">
							<select id="update_isGz" class="form-control">
								<option value='1'>是</option>
								<option value='2' selected>否</option>
							</select>
						</div>
					</div>
					<div class="form-group">
						<label  class="control-label col-sm-2" >简介</label>
						<div class="col-md-9">
							<textarea rows="8" class="form-control"  id="update_remarks" ></textarea>
						</div>
					</div>
				</form>
			</div>
			<div class="modal-footer">
				<button type="button" class="btn btn-default" data-dismiss="modal"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span>关闭</button>
				<button type="button" id="btn_submit_update" class="btn btn-primary" data-dismiss="modal"><span class="glyphicon glyphicon-floppy-disk" aria-hidden="true"></span>保存</button>
			</div>
		</div>
	</div>
</div>
<!-- END modal_update -->

<!-- BEGIN modal_detail -->
<div style="margin-top:6%;display: none" class="modal fade" id="modal_detail" tabindex="-1" role="dialog" aria-hidden="true" aria-labelledby="modal_detail_label">
	<div class="modal-dialog" role="document" style="margin-left: 30%">
		<div class="modal-content" style="width: 800px;">
			<div class="modal-header">
				<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
				<h4 class="modal-title" id="modal_detail_label">详情</h4>
				<input id="detail_id" type="hidden"/>
			</div>

			<div class="modal-body">
				<form class="form-horizontal">
					<div class="form-group">
						<label  class="control-label col-sm-2" >盘符</label>
						<div class="col-md-9">
							<label class="control-label"  id="detail_driveLetter"></label>
						</div>
					</div>
					<div class="form-group">
						<label class="control-label col-md-2">是否启用</label>
						<div class="col-md-9">
							<label class="control-label"  id="detail_isQy"></label>
						</div>
					</div>
					<div class="form-group">
						<label class="control-label col-md-2">是否占满</label>
						<div class="col-md-9">
							<label class="control-label"  id="detail_isZm"></label>
						</div>
					</div>
					<div class="form-group">
						<label class="control-label col-md-2">是否挂载</label>
						<div class="col-md-9">
							<label class="control-label"  id="detail_isGz"></label>
						</div>
					</div>
					<div class="form-group">
						<label class="control-label col-md-2">总磁盘空间</label>
						<div class="col-md-9">
							<label class="control-label"  id="detail_totalDisk"></label>
						</div>
					</div>
					<div class="form-group">
						<label class="control-label col-md-2">剩余磁盘空间</label>
						<div class="col-md-9">
							<label class="control-label"  id="detail_usableDisk"></label>
						</div>
					</div>
					<div class="form-group">
						<label  class="control-label col-sm-2" >简介</label>
						<div class="col-md-9">
							<label class="control-label"  id="detail_remarks"></label>
						</div>
					</div>
				</form>
			</div>
			<div class="modal-footer">
				<button type="button" class="btn btn-default" data-dismiss="modal"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span>关闭</button>
			</div>
		</div>
	</div>
</div>
<!-- END modal_detail -->

<!--#include  virtual="../../common/bottom.html"-->

<!-- BEGIN JAVASCRIPTS(Load javascripts at bottom, this will reduce page load time) -->
<!-- END PAGE LEVEL SCRIPTS -->
<!--页面js文件的引用-->
<script type="text/javascript" src="../../js/ak_disk/ak_disk.js"></script>
<script>
    jQuery(document).ready(function() {
        ak_disk.init();
        Layout.init(); // init layout
        Demo.init(); // init demo features
    });
</script>
<!-- END JAVASCRIPTS -->
</body>
<!-- END BODY -->
</html>

1.1.2 js

// table 右侧按钮  进行初始化 点击事件
window.operateEvents = {
    'click .a_open': function(e, value, row, index) {
        window.location.href = "/manage-api/studyTeacherDetail?id="+ row.id
    },
    'click .a_edit': function(e, value, row, index) {
        $("#modal_update_label").text("编辑");
    
        $("#update_id").val(row.id);
        $("#update_driveLetter").val(row.driveLetter);
        // $("#update_isQy").val(row.isQy);
        // $("#update_isZm").val(row.isZm);
        $("#update_isGz").val(row.isGz);
        $("#update_remarks").val(row.remarks);
        // $("#update_path").val(row.path);
        $('#modal_update').modal();
    },
    'click .b_edit': function(e, value, row, index) {
        $("#modal_detail_label").text("详情");
    
        $("#detail_id").text(row.id);
        $("#detail_driveLetter").text(row.driveLetter);
        $("#detail_isQy").text(row.isQy);
        $("#detail_isZm").text(row.isZm);
        $("#detail_isGz").text(row.isGz);
        $("#detail_totalDisk").text(row.totalDisk);
        $("#detail_usableDisk").text(row.usableDisk);
        $("#detail_remarks").text(row.remarks);
        $('#modal_detail').modal();
    },
    'click .c_edit': function(e, value, row, index) {
        bootbox.dialog({
            message: "确认要启用选择的数据吗?",
            title: "操作提示",
            className:'bootbox-style',
            buttons:
                {
                    "success" :
                        {
                            "label" : "<i class='icon-ok'></i> 确定",
                            "className" : "btn-sm btn-success",
                            "callback": function() {
								var postdata = {};
								postdata.id = row.id;
								postdata.isQy = 1;
								
								var options=new Object();
								options.url="/manage-api/TDiskController/TDiskUpdate";
								options.type="POST";
								options.async=true;
								options.data=JSON.stringify(postdata);
								options.errorback=akglobe_config.errBack;
								options.callback=function(data){
								    if (data.flag) {
								        toastr.success(data.msg);
								        $("#tb_obj").bootstrapTable('refresh');
								    }else{
								        toastr.error(data.msg);
								    }
								};
								akglobe_config.ajaxQuery(options);
								
                            }
                        },
                    "cancel": {
                        "label" : "<i class='icon-info'></i> 取消",
                        "className" : "btn-sm btn-danger"
                    }
                }
        });
    },
    'click .d_edit': function(e, value, row, index) {
        bootbox.dialog({
            message: "确认要停用选择的数据吗?",
            title: "操作提示",
            className:'bootbox-style',
            buttons:
                {
                    "success" :
                        {
                            "label" : "<i class='icon-ok'></i> 确定",
                            "className" : "btn-sm btn-success",
                            "callback": function() {
								
								var postdata = {};
								postdata.id = row.id;
								postdata.isQy = 2;
								
								var options=new Object();
								options.url="/manage-api/TDiskController/TDiskUpdate";
								options.type="POST";
								options.async=true;
								options.data=JSON.stringify(postdata);
								options.errorback=akglobe_config.errBack;
								options.callback=function(data){
								    if (data.flag) {
								        toastr.success(data.msg);
								        $("#tb_obj").bootstrapTable('refresh');
								    }else{
								        toastr.error(data.msg);
								    }
								};
								akglobe_config.ajaxQuery(options);
                            }
                        },
                    "cancel": {
                        "label" : "<i class='icon-info'></i> 取消",
                        "className" : "btn-sm btn-danger"
                    }
                }
        });
    }
};


//基本数据  >>国别维护
var ak_disk = {
	mainUrl:ak_config.tm_urm+'template/page/ak_base/ak_disk.html',

    init: function () {
        //1.toastr提示框初始化
        ak_config.initToastr();
        //2.初始化下拉框(固定选项)
        this.select();
        //4.初始化Table
        this.TableInit();
        //5.初始化Button的点击事件
        this.ButtonInit();

        //6.权限判断
        //this.initQx();

    },
    //权限判断
    initQx: function () {
        // if(parent.net_tool.usertype==2 || parent.net_tool.usertype==1){
        $("#btn_add").show();
        $("#btn_update").show();
        $("#btn_delete").show();
        $("#btn_recover").show();
        // }
    },
    //初始化下拉框(固定选项)
    select: function () {
        $("#deleteFlag").select2();
        $("#examineFlag").select2();
    },
    // 表格初始化
    TableInit: function () {
        var columns = [{
            checkbox: true
        }, {
            //field: 'id',
            title: '序号',
            formatter: function (value, row, index) {
                return index+1;
            },
            width:50
        },{
            field: 'driveLetter',
            title: '盘符',
            width:110
        },{
            field: 'isQy',
            title: '是否启动',
            formatter:function(value,row,index){
                if(value=='1'){
                    return "是";
                }else{
                    return "否";
                }
            },
            width:90
        },{
            field: 'isZm',
            title: '是否占满',
            formatter:function(value,row,index){
                if(value=='1'){
                    return "是";
                }else{
                    return "否";
                }
            },
            width:90
        },{
            field: 'isGz',
            title: '是否挂载',
            formatter:function(value,row,index){
                if(value=='1'){
                    return "是";
                }else{
                    return "否";
                }
            },
            width:90
        },{
            field: 'totalDisk',
            title: '总磁盘空间',
            formatter:function(value,row,index){
                if(value!=null){
                    return value+"G";
                }else{
                    return "";
                }
            },
            width:120
        },{
            field: 'usableDisk',
            title: '剩余磁盘空间',
            formatter:function(value,row,index){
                if(value!=null){
                    return value+"G";
                }else{
                    return "";
                }
            },
            width:120
        },{
            field: 'createUserName',
            title: '创建人',
            width:90
        },{
            field: 'createTime',
            title: '创建时间',
            width:150
        },{
            field: 'operate',
            title: '操作',
            events:'operateEvents',
            formatter:'ak_disk.operateFormatter',
            width:170
        }]
		var options=new Object();
		options.url='/manage-api/TDiskController/TDiskList';
		options.queryParams=ak_disk.queryParams;
		options.columns=columns;
		akglobe_config.TableInit(options);
    },
    //得到查询的参数
    queryParams: function (params) {
        var temp = {   //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
            Authorization:akglobe_config.token,
            limit: params.limit,   //返回行的最大数目
            offset: params.offset,  //返回的第一行的偏移量
            driveLetter: $("#driveLetter").val(),    //名称
            deleteFlag:$("#deleteFlag").val(),
            isQy: $("#isQy").val(),
            isZm: $("#isZm").val(),
            isGz: $("#isGz").val()
        };
        return temp;
    },
    operateFormatter: function (value, row, index) {
        return [ '<a class="b_edit" href="javascript:void(0)">详情</a>',
            '<a class="a_edit" href="javascript:void(0)">编辑</a>',
            '<a class="c_edit" href="javascript:void(0)">启用</a>',
            '<a class="d_edit" href="javascript:void(0)">停用</a>'
        ].join('&nbsp;&nbsp;&nbsp;&nbsp;');
    },
    ButtonInit: function () {
        var postdata ={};
        //初始化页面上面的按钮事件
        //查询
        $("#btn_query").click(function () {
            $("#tb_obj").bootstrapTable('refresh');
        });
		$("#deleteFlag").change(function () {
		    $("#tb_obj").bootstrapTable('refresh');
		});
		$("#isQy").change(function () {
		    $("#tb_obj").bootstrapTable('refresh');
		});
		$("#isZm").change(function () {
		    $("#tb_obj").bootstrapTable('refresh');
		});
		$("#isGz").change(function () {
		    $("#tb_obj").bootstrapTable('refresh');
		});
        //新增面板弹出
        $("#btn_add").click(function () {
            $("#modal_add_label").text("新增");
            $('#modal_add').modal();
        });
        //保存
        $("#btn_submit_add").click(function () {
            ak_disk.add();
        });
        //编辑
        $("#btn_submit_update").click(function () {
            ak_disk.update();
        });
        //删除
        $("#btn_delete").click(function () {
            ak_disk.delete();
        });
        //恢复
        $("#btn_recover").click(function () {
            ak_disk.recover();
        });
    },
    //保存
    add:function () {
		var postdata = {};
		postdata.driveLetter = $("#add_driveLetter").val();
		postdata.isGz = $("#add_isGz").val();
		postdata.remarks = $("#add_remarks").val();
		
		if (postdata.driveLetter == null || postdata.driveLetter == "" || postdata.driveLetter == undefined) {
		    toastr.warning('盘符不能为空');
		    return false;
		}
		var options=new Object();
		options.url="/manage-api/TDiskController/TDiskSave";
		options.type="POST";
		options.async=true;
		options.data=JSON.stringify(postdata);
		options.errorback=akglobe_config.errBack;
		options.callback=function(data){
		    if (data.flag) {
		        toastr.success(data.msg);
		        //保存完自动返回
		        $("#tb_obj").bootstrapTable('refresh');
		    }else{
		        toastr.error(data.msg);
		    }
		};
		akglobe_config.ajaxQuery(options);
    },
    //编辑
    update:function () {
		
		var postdata = {};
		postdata.id = $("#update_id").val();
		postdata.driveLetter = $("#update_driveLetter").val();
		postdata.isGz = $("#update_isGz").val();
		postdata.remarks = $("#update_remarks").val();
		
		if (postdata.driveLetter == null || postdata.driveLetter == "" || postdata.driveLetter == undefined) {
		    toastr.warning('盘符不能为空');
		    return false;
		}
		
		var options=new Object();
		options.url="/manage-api/TDiskController/TDiskUpdate";
		options.type="POST";
		options.async=true;
		options.data=JSON.stringify(postdata);
		options.errorback=akglobe_config.errBack;
		options.callback=function(data){
		    if (data.flag) {
		        toastr.success(data.msg);
		        $("#tb_obj").bootstrapTable('refresh');
		    }else{
		        toastr.error(data.msg);
		    }
		};
		akglobe_config.ajaxQuery(options);
			
    },
    //删除
    delete:function(){
        var arrselections = $("#tb_obj").bootstrapTable('getSelections');
        if (arrselections.length <= 0) {
            toastr.warning('请选择有效数据');
            return;
        }
        if (arrselections[0].deleteFlag == 0) {
            toastr.warning('请选择未删除数据');
            return;
        }
        /*使用bootbox*/
        bootbox.dialog({
            message: "确认要删除选择的数据吗?",
            title: "操作提示",
            className:'bootbox-style',
            buttons:
                {
                    "success" :
                        {
                            "label" : "<i class='icon-ok'></i> 确定",
                            "className" : "btn-sm btn-success",
                            "callback": function() {
								var options=new Object();
								options.url="/manage-api/TDiskController/TDiskDelete";
								options.type="POST";
								options.data={ "postdata": JSON.stringify(arrselections) };
								options.async=true;
								options.contentType="application/x-www-form-urlencoded";
								options.errorback=akglobe_config.errBack;
								options.callback=function(data){
								    if (data.flag) {
								        toastr.success(data.msg);
								        $("#tb_obj").bootstrapTable('refresh');
								
								    }else{
								        toastr.error(data.msg);
								    }
								};
								akglobe_config.ajaxQuery(options);
                            },
							
                        },
                    "cancel": {
                        "label" : "<i class='icon-info'></i> 取消",
                        "className" : "btn-sm btn-danger"
                    }
                }
        });
    },
    //恢复
    recover:function(){
        var arrselections = $("#tb_obj").bootstrapTable('getSelections');
        if (arrselections.length <= 0) {
            toastr.warning('请选择有效数据');
            return;
        }
        if (arrselections[0].deleteFlag == 1) {
            toastr.warning('请选择已删除数据');
            return;
        }
        /*使用bootbox*/
        bootbox.dialog({
            message: "确认要恢复选择的数据吗?",
            title: "操作提示",
            className:'bootbox-style',
            buttons:
                {
                    "success" :
                        {
                            "label" : "<i class='icon-ok'></i> 确定",
                            "className" : "btn-sm btn-success",
                            "callback": function() {
                                
								var  options=new Object();
								options.url="/manage-api/TDiskController/TDiskRecover";
								options.type="POST";
								options.data={ "postdata": JSON.stringify(arrselections) };
								options.async=true;
								options.contentType="application/x-www-form-urlencoded";
								options.errorback=akglobe_config.errBack;
								options.callback=function(data){
								    if (data.flag) {
								        toastr.success(data.msg);
								        $("#tb_obj").bootstrapTable('refresh');
								
								    }else{
								        toastr.error(data.msg);
								    }
								};
								akglobe_config.ajaxQuery(options);
					
                            }
                        },
                    "cancel": {
                        "label" : "<i class='icon-info'></i> 取消",
                        "className" : "btn-sm btn-danger"
                    }
                }
        });
    }
}

1.2 代码

1.2.1 service 

package com.yinghui.soft.web.tDisk.services;



import com.yinghui.soft.web.tDisk.model.TDisk;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public interface TDiskService {

    /**
     * 列表
     *
     * @param map
     * @return
     */
    public List<TDisk> list(Map map);

    /**
     * 总数
     *
     * @param map
     * @return
     */
    public long count(Map map);
    /**
     * 修改
     *
     * @param TDisk
     * @return
     */
    public int update(TDisk TDisk);
    /**
     * 保存
     *
     * @param TDisk
     * @return
     */
    public int  save(TDisk TDisk);

    /**
     * 根据ID查询
     *
     * @param cableTypeId
     * @return
     */
    public TDisk getById(String cableTypeId);
    /**
     * 删除
     *
     * @param paramMap
     * @return
     */
    public HashMap<String, Object> delete(Map paramMap);
    /**
     * 恢复
     *
     * @param paramMap
     * @return
     */
    public HashMap<String, Object>  recovery(Map paramMap);

    /**
     * 获取启用磁盘
     * @return
     */
    public TDisk getTDiskSpace();

    /**
     * 判断当前启用磁盘空间是否足够
     * @return
     */
    public Map getDiskSpace();
}

1.1.2 impl

package com.yinghui.soft.web.tDisk.servicesImpl;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import com.yinghui.soft.web.tDisk.mapper.TDiskMapper;
import com.yinghui.soft.web.tDisk.model.TDisk;
import com.yinghui.soft.web.tDisk.services.TDiskService;
import com.yinghui.soft.web.tDisk.utils.MemoryUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
public class TDiskServiceImpl implements TDiskService {

    @Autowired
    private TDiskMapper mapper;

    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Value("${xdja.upload.file.path.temp}")	
    private String decryptFilePathTemp;			//上传文件存放目录

    @Value("${limitDiskSpace}")
    private double limitDiskSpace;		//磁盘大小


    @Override
    public List<TDisk> list(Map map) {
        return mapper.findPage(map);
    }

    @Override
    public long count(Map map) {
        return mapper.findPage_count(map);
    }

    @Override
    public int update(TDisk TDisk) {
        return this.mapper.updateByPrimaryKeySelective(TDisk);
    }

    @Override
    public int save(TDisk TDisk) {
        return mapper.insertSelective(TDisk);
    }

    @Override
    public TDisk getById(String cableTypeId) {
        return this.mapper.selectByPrimaryKey(Long.parseLong(cableTypeId));
    }

    @Override
    public HashMap<String, Object> delete(Map paramMap) {
        HashMap<String, Object> map = new HashMap<String, Object>();
        try{
            JSONObject jsonObject=null;
            JSONArray postdata = JSONArray.parseArray(String.valueOf(paramMap.get("postdata")));
            if(postdata.size()>0){
                for(int i=0;i<postdata.size();i++){
                    jsonObject=postdata.getJSONObject(i);
                    if (jsonObject.containsKey("id")
                            &&!StringUtils.isEmpty(jsonObject.getString("id"))) {
                        TDisk obj=getById(jsonObject.getString("id"));
                        if(obj!=null){
//                            this.mapper.deleteByPrimaryKey(obj.getId());
                            obj.setDeleteFlag(0);//设置为0
                            this.mapper.updateByPrimaryKeySelective(obj);
                            map.put("flag", true);
                            map.put("msg", "删除成功");
                        }else{
                            map.put("flag", false);
                            map.put("msg", "删除失败");
                        }
                    }else {
                        map.put("flag", false);
                        map.put("msg", "删除失败");
                    }
                }
            }
        }catch(Exception e){
            e.printStackTrace();
            map.put("flag", false);
            map.put("msg", "删除失败");
        }
        return map;
    }
    @Override
    public HashMap<String, Object> recovery(Map paramMap) {
        HashMap<String, Object> map = new HashMap<String, Object>();
        try{
            JSONObject jsonObject=null;
            JSONArray postdata = JSONArray.parseArray(String.valueOf(paramMap.get("postdata")));
            if(postdata.size()>0){
                for(int i=0;i<postdata.size();i++){
                    jsonObject=postdata.getJSONObject(i);
                    if (jsonObject.containsKey("id")
                            &&!StringUtils.isEmpty(jsonObject.getString("id"))) {
                        TDisk obj=getById(jsonObject.getString("id"));
                        if(obj!=null){
                            obj.setDeleteFlag(1);
                            this.mapper.updateByPrimaryKeySelective(obj);
                            map.put("flag", true);
                            map.put("msg", "恢复成功");
                        }else{
                            map.put("flag", false);
                            map.put("msg", "恢复失败");
                        }
                    }else {
                        map.put("flag", false);
                        map.put("msg", "恢复失败");
                    }
                }
            }
        }catch(Exception e){
            e.printStackTrace();
            map.put("flag", false);
            map.put("msg", "恢复失败");
        }
        return map;
    }

    @Override
    public TDisk getTDiskSpace() {
        return this.mapper.getTDiskSpace();
    }

    @Override
    public Map getDiskSpace() {
        Map map = new HashMap();
        try{
            TDisk obj =this.getTDiskSpace();
            if(null!=obj){

                if(null!=obj.getDriveLetter()){
                    String driveLetter = obj.getDriveLetter(); //当前启用盘符
//                    String path = obj.getPath(); //路径

                    long id = obj.getId();

                    //获取当前启用磁盘 总磁盘空间和剩余磁盘空间
                    File targetDiskPartition = new File(driveLetter);
                    long total = MemoryUtils.change(targetDiskPartition.getTotalSpace());  //总磁盘空间
                    long usable = MemoryUtils.change(targetDiskPartition.getUsableSpace()); //剩余磁盘空间

                    //更新磁盘总空间和磁盘剩余空间
                    String update = " update t_disk set total_disk="+total+",usable_disk="+usable+" where id="+id+" ";
                    jdbcTemplate.update(update);

                    //如果剩余空间大于20g 返回出去,可以进行资源上传
                    if(usable>limitDiskSpace){
                        map.put("driveLetter", driveLetter);
                        map.put("decryptFilePathTemp", driveLetter+decryptFilePathTemp);
//                        map.put("path", path);
                        map.put("flag", true);
                        map.put("msg", "操作成功");
                        return map;
                    }else{//如果剩余空间小于20g

                        map.put("flag", false);
                        map.put("msg", "当前启用磁盘已占满,请挂载新磁盘");

                        //将当前启用磁盘设置为 2未启用 并将是否占满 改为 1已占满
                        String update2 = " update t_disk set is_qy=2,is_zm=1 where id="+id+" ";
                        jdbcTemplate.update(update2);

                        //获取下一个盘符
                        String sql = " SELECT * FROM t_disk where is_gz=1 and is_qy=2  and is_zm=2 and delete_flag=1  order by id asc limit 1 ";
                        List list = jdbcTemplate.queryForList(sql);
                        if(list.size()>0){

                            Map bMap = (Map)list.get(0);
                            long isGz = Long.parseLong(bMap.get("is_gz").toString());
                            long id2 = Long.parseLong(bMap.get("id").toString());

                            //盘符
                            Object drive_letter = bMap.get("drive_letter");
                            String driveLetter2="";
                            if(null!=drive_letter){
                                driveLetter2 = bMap.get("drive_letter").toString();
                            }
//                            String path2 = obj.getPath(); //路径
                            //判断这个盘符是否存在,是否挂载
                            File file = new File(driveLetter2);
                            if(file.exists()){

                                long total2 = MemoryUtils.change(file.getTotalSpace());  //总磁盘空间
                                long usable2 = MemoryUtils.change(file.getUsableSpace()); //剩余磁盘空间

                                if(total2!=0 && usable2>limitDiskSpace){

                                    //如果这个磁盘总空间不为空,剩余磁盘空间大于20g 将这个磁盘是否启用改为为 1 已启用,是否挂载改为 1 已挂载,并更新磁盘的总空间和剩余磁盘空间
                                    String update3 = " update t_disk set is_qy=1,is_gz=1,total_disk="+total2+",usable_disk="+usable2+"  where id="+id2+" ";
                                    jdbcTemplate.update(update3);

                                    map.put("driveLetter", driveLetter2);
                                    map.put("decryptFilePathTemp", driveLetter2+decryptFilePathTemp);
//                                    map.put("path", path2);
                                    map.put("flag", true);
                                    map.put("msg", "操作成功");

                                }else{
                                    map.put("flag", false);
                                    map.put("msg", "当前启用磁盘已占满,请挂载新磁盘");
                                    return map;
                                }

                            }

                        }

                    }

                }
            }else{
                map.put("flag", false);
                map.put("msg", "当前没有获取到启用磁盘,请先设置启用磁盘");
            }
        }catch (Exception e){
            map.put("flag", false);
            map.put("msg", "操作失败");
        }

        return map;
    }
}

1.1.3 controller 

package com.yinghui.soft.web.tDisk.controller;



import com.yinghui.soft.utils.LogAnnotation;

import com.yinghui.soft.web.tDisk.model.TDisk;
import com.yinghui.soft.web.tDisk.services.TDiskService;
import com.yinghui.soft.web.tDisk.utils.MemoryUtils;
import com.yinghui.soft.web.tDisk.utils.PJCommon;
import com.yinghui.soft.webGeom.controller.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 磁盘配置空间
 */
@RequestMapping("/TDiskController")
@RestController
public class TDiskController extends BaseController {


    @Autowired
    private TDiskService service;

    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Value("${ipPort}")
    private String ipPort;

    @Value("${xdja.upload.file.path.temp}")
    private String decryptFilePathTemp;

    @Value("${limitDiskSpace}")
    private double limitDiskSpace;

    /**
     * 列表
     * @param request
     * @return
     */
    @RequestMapping(value = "/TDiskList", method = RequestMethod.GET)
    public Map list(HttpServletRequest request) {

        Map paramMap = PJCommon.getRequestParamMap(request);
        Map ret = new HashMap();
        Map page = new HashMap();
        Integer limit= Integer.valueOf(paramMap.get("limit").toString());
        Integer offset= Integer.valueOf(paramMap.get("offset").toString());
        page.put("limit",limit);
        page.put("offset",offset);
        if (paramMap.containsKey("driveLetter")
                &&!StringUtils.isEmpty(paramMap.get("driveLetter"))) {
            String driveLetter = paramMap.get("driveLetter").toString();
            page.put("driveLetter", driveLetter);
        }
        if (paramMap.containsKey("deleteFlag")
                &&!StringUtils.isEmpty(paramMap.get("deleteFlag"))) {
            page.put("deleteFlag", Integer.parseInt(paramMap.get("deleteFlag").toString()));
        }
        if (paramMap.containsKey("isQy")
                &&!StringUtils.isEmpty(paramMap.get("isQy"))) {
            page.put("isQy", Integer.parseInt(paramMap.get("isQy").toString()));
        }
        if (paramMap.containsKey("isZm")
                &&!StringUtils.isEmpty(paramMap.get("isZm"))) {
            page.put("isZm", Integer.parseInt(paramMap.get("isZm").toString()));
        }
        if (paramMap.containsKey("isGz")
                &&!StringUtils.isEmpty(paramMap.get("isGz"))) {
            page.put("isGz", Integer.parseInt(paramMap.get("isGz").toString()));
        }

        List<TDisk> list =service.list(page);
        long count =service.count(page);
        ret.put("total", count);
        ret.put("rows", list);

        Long pageCount=0L;
        if(count % limit==0){
            pageCount=count / limit;
        }else if(count==0){
            pageCount=0L;
        }else{
            pageCount=(count / limit)+1;
        }
        ret.put("pageCount", pageCount);//  一共有多少 页数

        return ret;
    }

    /**
     * 保存
     * @param TDisk
     * @param request
     * @return
     */
    @LogAnnotation(firstLevel = "系统设置",secondLevel = "磁盘管理",noteLevel = "新增")
    @RequestMapping(value = "/TDiskSave", method = RequestMethod.POST)
    public Map save(@RequestBody TDisk TDisk, HttpServletRequest request) {

        Map map = new HashMap();
        try{
            Map mapuser= getParametersUserinfo(request);
            Long userId=Long.parseLong(mapuser.get("userid").toString());

            if(null==TDisk.getDriveLetter()){
                map.put("flag", false);
                map.put("msg", "参数错误");
                return map;
            }
            String driveLetter = TDisk.getDriveLetter();

            //获取当前磁盘 总磁盘空间和剩余磁盘空间
            File targetDiskPartition = new File(driveLetter);
            long total = MemoryUtils.change(targetDiskPartition.getTotalSpace());  //总磁盘空间
            long usable = MemoryUtils.change(targetDiskPartition.getUsableSpace()); //剩余磁盘空间

            TDisk.setCreateUserId(userId);
            TDisk.setCreateTime(new Date());
            TDisk.setIsQy(2);
            TDisk.setIsZm(2);
            TDisk.setDeleteFlag(1);
            TDisk.setTotalDisk(Double.valueOf(total));
            TDisk.setUsableDisk(Double.valueOf(usable));
            int row = service.save(TDisk);

            if(row>0){
                map.put("flag", true);
                map.put("msg", "保存成功");
            }

        } catch (Exception e) {
            //logger.error("参数错误", e);
            map.put("flag", false);
            map.put("msg", "参数错误");
        }
        return map;
    }

    /**
     * 修改
     * @param TDisk
     * @param request
     * @return
     */
    @LogAnnotation(firstLevel = "系统设置", secondLevel = "磁盘管理", noteLevel = "修改")
    @PostMapping(value = "TDiskUpdate")
    public Map update(@RequestBody TDisk TDisk, HttpServletRequest request) {
        Map map = new HashMap(4);
        try{

            if(null!=TDisk.getIsQy() && TDisk.getIsQy()==1){

                Long id = TDisk.getId();
                TDisk obj = service.getById(id.toString());
                if(null!=obj.getUsableDisk()){
                    Double usableDisk = obj.getUsableDisk();
                    if(usableDisk<=limitDiskSpace){
                        TDisk tDisk = new TDisk();
                        tDisk.setId(id);
                        tDisk.setIsZm(1);
                        service.update(tDisk);

                        map.put("flag", false);
                        map.put("msg", "该盘符空间不足不能设置为启用");
                        return map;
                    }
                }
                String sql = " update t_disk set is_qy=2 where is_qy=1 ";
                jdbcTemplate.update(sql);
            }
            String sql = " select * from t_disk where id="+TDisk.getId()+"  ";
            List dList = jdbcTemplate.queryForList(sql);
            if(dList.size()>0){
                Map map1 = (Map) dList.get(0);
                String driveLetter = map1.get("drive_letter").toString();
                //获取当前磁盘 总磁盘空间和剩余磁盘空间
                File targetDiskPartition = new File(driveLetter);
                long total = MemoryUtils.change(targetDiskPartition.getTotalSpace());  //总磁盘空间
                long usable = MemoryUtils.change(targetDiskPartition.getUsableSpace()); //剩余磁盘空间
                TDisk.setTotalDisk(Double.valueOf(total));
                TDisk.setUsableDisk(Double.valueOf(usable));
            }
//            TDisk.setIsZm(2);
            int  i =service.update(TDisk);
            if (i == 1) {
                map.put("flag", true);
                map.put("msg", "修改成功");
            } else {
                map.put("flag", false);
                map.put("msg", "修改失败");
            }
        } catch (Exception e) {
            //logger.error("参数错误", e);
            map.put("flag", false);
            map.put("msg", "参数错误");
        }
        return map;
    }

    /**
     * 根据id查询
     * @param request
     * @return
     */
    @RequestMapping(value = "/getTDiskById", method = RequestMethod.GET)
    public TDisk getById(HttpServletRequest request) {

        Map paramMap = PJCommon.getRequestParamMap(request);

        TDisk ret = service.getById(paramMap.get("id").toString());

        return ret;
    }

    /**
     * 判断当前启用磁盘空间是否足够
     * @param request
     * @return
     */
    @RequestMapping(value = "/getTDiskSpace", method = RequestMethod.GET)
    public Map getTDiskSpace(HttpServletRequest request) {

        Map map = new HashMap();

        map=service.getDiskSpace();

        return map;
    }

    /**
     * 删除
     * @param request
     * @param response
     * @return
     */
    @LogAnnotation(firstLevel = "系统设置",secondLevel = "磁盘管理",noteLevel = "删除")
    @RequestMapping(value = "/TDiskDelete", method = RequestMethod.POST)
    public Map delete(HttpServletRequest request, HttpServletResponse response) {
        HashMap<String, Object> map = new HashMap<String, Object>();
        try{
            Map paramMap = PJCommon.getRequestParamMap(request);
            map=service.delete(paramMap);
        } catch (Exception e) {
            //logger.error("参数错误", e);
            map.put("flag", false);
            map.put("msg", "参数错误");
        }
        return map;
    }

    /**
     * 恢复
     * @param request
     * @param response
     * @return
     */
    @LogAnnotation(firstLevel = "系统设置",secondLevel = "磁盘管理",noteLevel = "恢复")
    @RequestMapping(value = "/TDiskRecover", method = RequestMethod.POST)
    public Map recover(HttpServletRequest request, HttpServletResponse response) {
        HashMap<String, Object> map = new HashMap<String, Object>();
        try{
            Map paramMap = PJCommon.getRequestParamMap(request);
            map= service.recovery(paramMap);
        } catch (Exception e) {
            //logger.error("参数错误", e);
            map.put("flag", false);
            map.put("msg", "参数错误");
        }
        return map;
    }
    /**
     * 跳转列表页面
     * @return
     */
    @RequestMapping(value = "/tDisk", method = RequestMethod.GET)
    public ModelAndView index(HttpServletRequest request, ModelAndView modelAndView) {
        modelAndView.setViewName("tDisk");
        return modelAndView;
    }

    /**
     * 跳转新增页面
     *
     */
    @RequestMapping(value = "/tDiskEditor", method = RequestMethod.GET)
    public ModelAndView indexEditor(HttpServletRequest request, ModelAndView modelAndView) {
        modelAndView.addObject("id", request.getParameter("id"));
        modelAndView.setViewName("tDiskEditor");
        return modelAndView;
    }

    /**
     * 跳转详情页面
     *
     */
    @RequestMapping(value = "/tDiskDetail", method = RequestMethod.GET)
    public ModelAndView indexDetail(HttpServletRequest request, ModelAndView modelAndView) {
        modelAndView.addObject("id", request.getParameter("id"));
        modelAndView.setViewName("tDiskDetail");
        return modelAndView;
    }
    
}

2 统计

效果

2.1 页面

2.1.1 html

<!DOCTYPE html>
<html lang="en" class="no-js">
<!-- BEGIN HEAD -->
<head>
	<meta charset="utf-8" />
	<title>磁盘使用情况</title>

	<!--#include  virtual="../../common/head_global.html"-->
	<!--#include  virtual="../../common/head_themenew.html"--> 
	
	<!-- BEGIN PAGE STYLES -->
	
	<!-- END PAGE STYLES -->

	
	
</head>
<!-- END HEAD -->
<!-- BEGIN BODY -->
<body class="page-header-fixed page-sidebar-closed-hide-logo page-sidebar-closed-hide-logo">

<div class="clearfix"></div>

<!-- BEGIN CONTAINER -->
 	<div class="page-container" style="margin-top:var(--tjtop);">
 
	<!-- BEGIN CONTENT -->
	<!-- BEGIN SIDEBAR -->
	<div class="page-sidebar-wrapper">
	<!--#include  virtual="../../common/common_nav.html"-->
	</div>
	<!-- END SIDEBAR -->
	
	<!-- BEGIN CONTENT -->
	<div class="page-content-wrapper">
		<div class="page-content">
			<!-- BEGIN PAGE CONTENT INNER -->
			<div class="row">
				<div class="col-md-12">
					<!-- BEGIN EXAMPLE TABLE PORTLET-->
					<div class="panel-body" style="padding:2px 2px;">

						<div style="height: 700px;width:100%;display: flex;margin-top: 40px;">

							<div style="height: 400px;width:40%;left: 120px;"  id="chart_1">
							</div>
							<div style="height: 400px;width:40%;left: 200px;" id="chart_2">
							</div>
						</div>

						<table id="tb_obj"></table>
					</div>
				</div>
			</div>
		</div>
	</div>
	<!-- END CONTENT -->
</div>
<!-- END CONTAINER -->

<!--#include  virtual="../../common/tj_bottomtag.html"-->

<!-- BEGIN JAVASCRIPTS(Load javascripts at bottom, this will reduce page load time) -->
<!-- END PAGE LEVEL SCRIPTS -->
<!--页面js文件的引用-->
<script type="text/javascript" src="scripts/ak_echarts_bate.js"></script>
<script type="text/javascript" src="../../js/ak_tj/ak_cpsyqk.js"></script>
<script>
    jQuery(document).ready(function() {
        ak_cpsyqk.init();
        Layout.init(); // init layout
        Demo.init(); // init demo features
    });
</script>
<!-- END JAVASCRIPTS -->
</body>
<!-- END BODY -->
</html>

2.1.2 js

var ak_cpsyqk={
	init:function(){
		this.echart_1();
	},
    echart_1:function() {
		
		var temp = {
		    name: $("#name").val(),
		    startTime:$("#startTime").val(),
		    endTime:$("#endTime").val()
		};
		var options=new Object();
		options.url="/manage-api/TjfxController/getCpsyqk";
		options.type="get";
		options.data=temp;
		options.errorback=akglobe_config.errBack;
		options.callback=function(data){
		    if(data.flag){
		        var list = data.list;
		        var title="服务器挂载磁盘空间使用情况";
		        var divid="chart_1";//在div中显示 div的id
		        var dataSource=[];
		        for(var i=0;i<list.length;i++){
		            var obj = list[i];
		            var obj1=new Object();
		            obj1.name=obj.name+":"+obj.num+"G";
		            obj1.value=obj.num;
		            dataSource.push(obj1);
		        }
		        var options = new Object();
		        options.title = title;
		        options.dataSource = dataSource;
		        options.divid = divid;
		        options.showlegend=true;
		        options.seriesName="服务器挂载磁盘空间使用率:";
		        ak_Echarts_bate.echartsStandardPie(options);
		        		
		        		
		        var qyList = data.qyList;
		        var title="服务器启用磁盘空间使用情况";
		        var divid="chart_2";//在div中显示 div的id
		        var dataSource2=[];
		        for(var j=0;j<qyList.length;j++){
		            var obj = qyList[j];
		            var obj1=new Object();
		            obj1.name=obj.name+":"+obj.num+"G";
		            obj1.value=obj.num;
		            dataSource2.push(obj1);
		        }
		        var options = new Object();
		        options.title = title;
		        options.dataSource = dataSource2;
		        options.divid = divid;
		        options.showlegend=true;
		        options.seriesName="服务器启用磁盘空间使用率:";
		        ak_Echarts_bate.echartsStandardPie(options);
		    	
		    }else{
		        toastr.error(data.msg);
		    }
		};
		akglobe_config.ajaxQuery(options);
	}

}

2.2 代码

2.2.1 service

package com.yinghui.soft.web.tDisk.services;

import java.util.Map;

public interface TjfxService {

    public Map getCpsyqk(Map map);

}

2.2.2 impl

package com.yinghui.soft.web.tDisk.servicesImpl;


import com.yinghui.soft.utils.StatusCode;
import com.yinghui.soft.web.tDisk.mapper.TDiskMapper;
import com.yinghui.soft.web.tDisk.model.TDisk;
import com.yinghui.soft.web.tDisk.services.TjfxService;
import com.yinghui.soft.web.tDisk.utils.MemoryUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.*;

@Service
public class TjfxServiceImpl implements TjfxService {

    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private TDiskMapper tDiskMapper;


    @Override
    public Map getCpsyqk(Map paramMap) {

        Map map = new HashMap();
        List list = new ArrayList();
        List qyList = new ArrayList();

        Map page = new HashMap();

        try {
            //当前所以挂载磁盘空间
            page.put("isGz",1);
            page.put("isQy",1);
            page.put("deleteFlag", 1);
            List<TDisk> dList = tDiskMapper.findPage(page);
            if(dList.size()>0){

                long useDisk = 0; //剩余磁盘空间
                long freeDisk = 0;//已使用磁盘空间

                for (TDisk tDisk : dList) {
                    if(null==tDisk.getDriveLetter()){
                        continue;
                    }
                    String driveLetter = tDisk.getDriveLetter();

                    File targetDiskPartition = new File(driveLetter);
                    long usable = MemoryUtils.change(targetDiskPartition.getUsableSpace()); //剩余磁盘空间
                    long total = MemoryUtils.change(targetDiskPartition.getTotalSpace());  //磁盘总空间
                    long free = total-usable;

                    useDisk=useDisk+usable;
                    freeDisk=freeDisk+free;

                }

                Map map1 = new HashMap();
                map1.put("name", "已使用空间");
                map1.put("num", freeDisk);

                Map map2 = new HashMap();
                map2.put("name", "可用空间");
                map2.put("num", useDisk);

                list.add(map1);
                list.add(map2);

            }
            //当前启用磁盘空间
            TDisk tDiskSpace = tDiskMapper.getTDiskSpace();
            if(null!=tDiskSpace){
                double totalDisk = 0; //磁盘总空间
                if(null!=tDiskSpace.getTotalDisk()){
                    totalDisk = tDiskSpace.getTotalDisk();
                }

                double usableDisk = 0; //剩余磁盘空间
                if(null!=tDiskSpace.getUsableDisk()){
                    usableDisk = tDiskSpace.getUsableDisk();
                }

                double freeDisk = totalDisk-usableDisk;

                Map map1 = new HashMap();
                map1.put("name", "已使用空间");
                map1.put("num", freeDisk);

                Map map2 = new HashMap();
                map2.put("name", "可用空间");
                map2.put("num", usableDisk);

                qyList.add(map1);
                qyList.add(map2);

            }

        } catch (Exception e) {
            e.printStackTrace();
            map.put("list",null);
            map.put("qyList",null);
        }
        map.put("list",list);
        map.put("qyList",qyList);
        return map;
    }
}

2.2.3 controller

package com.yinghui.soft.web.tDisk.controller;


import com.yinghui.soft.utils.StatusCode;
import com.yinghui.soft.web.tDisk.services.TjfxService;
import com.yinghui.soft.web.tDisk.utils.PJCommon;
import com.yinghui.soft.webGeom.controller.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.HashMap;
import java.util.Map;

@RequestMapping("/TjfxController")
@RestController
public class TjfxController extends BaseController {

    @Autowired
    private TjfxService service;

    /**
     * 磁盘使用情况
     * @param request
     * @return
     */
    @RequestMapping(value = "/getCpsyqk", method = RequestMethod.GET)
    public Map getCpsyqk(HttpServletRequest request) {
        Map map = new HashMap<String, Object>();
        try{
            Map paramMap = PJCommon.getRequestParamMap(request);

            map=service.getCpsyqk(paramMap);
            map.put("flag", true);
            map.put("status", StatusCode.C00000.getCode());
            map.put("msg", StatusCode.C00000.getMsg());

        } catch (Exception e) {
            map.put("flag", false);
            map.put("status", StatusCode.C00002.getCode());
            map.put("msg", StatusCode.C00002.getMsg());
            map.put("list",null);
            map.put("qyList",null);

        }
        return map;
    }

}

3 公用后台代码

3.1model

package com.yinghui.soft.web.tDisk.model;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.util.Date;

public class TDisk {
    private Long id;

    private String driveLetter;

    private Integer isQy;

    private Integer isZm;

    private Integer isGz;

    private Double totalDisk;

    private Double usableDisk;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Date createTime;

    private Long createUserId;

    private Integer deleteFlag;

    private String remarks;

    private String createUserName;

    private String path;

    public String getPath() {
        return path;
    }

    public void setPath(String path) {
        this.path = path;
    }

    public String getCreateUserName() {
        return createUserName;
    }

    public void setCreateUserName(String createUserName) {
        this.createUserName = createUserName;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getDriveLetter() {
        return driveLetter;
    }

    public void setDriveLetter(String driveLetter) {
        this.driveLetter = driveLetter == null ? null : driveLetter.trim();
    }

    public Integer getIsQy() {
        return isQy;
    }

    public void setIsQy(Integer isQy) {
        this.isQy = isQy;
    }

    public Integer getIsZm() {
        return isZm;
    }

    public void setIsZm(Integer isZm) {
        this.isZm = isZm;
    }

    public Integer getIsGz() {
        return isGz;
    }

    public void setIsGz(Integer isGz) {
        this.isGz = isGz;
    }

    public Double getTotalDisk() {
        return totalDisk;
    }

    public void setTotalDisk(Double totalDisk) {
        this.totalDisk = totalDisk;
    }

    public Double getUsableDisk() {
        return usableDisk;
    }

    public void setUsableDisk(Double usableDisk) {
        this.usableDisk = usableDisk;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Long getCreateUserId() {
        return createUserId;
    }

    public void setCreateUserId(Long createUserId) {
        this.createUserId = createUserId;
    }

    public Integer getDeleteFlag() {
        return deleteFlag;
    }

    public void setDeleteFlag(Integer deleteFlag) {
        this.deleteFlag = deleteFlag;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks == null ? null : remarks.trim();
    }
}

3.2 mapper.java

package com.yinghui.soft.web.tDisk.mapper;


import com.yinghui.soft.web.tDisk.model.TDisk;

import java.util.List;
import java.util.Map;

public interface TDiskMapper {
    int deleteByPrimaryKey(Long id);

    int insert(TDisk record);

    int insertSelective(TDisk record);

    TDisk selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(TDisk record);

    int updateByPrimaryKeyWithBLOBs(TDisk record);

    int updateByPrimaryKey(TDisk record);

    List<TDisk> findPage(Map map);

    long findPage_count(Map map);

    TDisk getTDiskSpace();
}

3.3 utils

package com.yinghui.soft.web.tDisk.utils;

import java.text.DecimalFormat;

public class MemoryUtils {

    public static long change(long num) {
        // return num;
        return num / 1024 / 1024 / 1024;
    }
    public static String bfb(Object num1, Object num2) {
        double val1 = Double.valueOf(num1.toString());
        double val2 = Double.valueOf(num2.toString());
        if (val2 == 0) {
            return "0.0%";
        } else {
            DecimalFormat df = new DecimalFormat("#0.00");
            return df.format(val1 / val2 * 100) + "%";
        }
    }

}
package com.yinghui.soft.web.tDisk.utils;

import com.yinghui.soft.utils.FilterUtils;
import com.yinghui.soft.utils.StatusCode;

import javax.servlet.http.HttpServletRequest;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;


public class PJCommon {

	/**
	 * 从request中取出所有参数(单键值对形式),并返回Map
	 * 
	 * @param request
	 * @return
	 */
	public static Map getRequestParamMap(HttpServletRequest request) {
		Map paramMap = new HashMap();
		Enumeration enu = request.getParameterNames();
		while (enu.hasMoreElements()) {
			String paramName = (String) enu.nextElement();
			String[] values = request.getParameterValues(paramName);
			
			for (int i = 0; i < values.length; i++) {
				String  name= values[i];
				if(paramName.equals("Authorization")){

				}else{
					boolean  iswd= FilterUtils.verification(name);// 特殊字符校验 如果是 文章内容注意不要校验
					if(!iswd){
						paramMap.put("flagTGG1001", false);// 防止有同名的参数  进行处理
						paramMap.put("msg", StatusCode.C00511.getMsg());
						paramMap.put("status", StatusCode.C00511.getCode());
						paramMap.put("total", 0);
						paramMap.put("rows", null);

					}
				}

				paramMap.put(paramName, values[i]);
			}

		}
		return paramMap;
	}
	
	public static Map getRequestParamForJS(HttpServletRequest request) {
		Map paramMap = new HashMap();
		Enumeration enu = request.getParameterNames();
		while (enu.hasMoreElements()) {
			String paramName = (String) enu.nextElement();
			String[] values = request.getParameterValues(paramName);
			
			for (int i = 0; i < values.length; i++) {
				try {
					paramMap.put(paramName,  URLDecoder.decode(values[i], "UTF-8"));
				} catch (UnsupportedEncodingException e) {
					e.printStackTrace();
				}
			}

		}
		return paramMap;
	}
	
	
}

3.4 yml

#上传文件存放目录
xdja.upload.file.path: /5tool/1tomact9/webapps
#分片临时文件存放目录
xdja.upload.file.path.temp: /upload/temp
limitDiskSpace: 20

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

akglobe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值