地质所 沉降监测网建设项目
chenhuan
2024-06-25 880c8f54cddc8533f00f674da3f14c2cf0d34340
Merge branch 'master' of http://117.78.1.188:8089/r/dkyChenJiang
1个文件已删除
6个文件已修改
1个文件已添加
1640 ■■■■ 已修改文件
javaweb-plus/javaweb-admin/src/main/resources/templates/main.html 336 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-admin/src/main/resources/templates/main4.html 772 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-admin/src/main/resources/templates/mainBAK.html 514 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/HoleController.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/Project.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/HoleLogMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/hole/hole.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/project/info.html 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-admin/src/main/resources/templates/main.html
@@ -18,10 +18,86 @@
    [v-cloak]{
        display: none;
    }
    .el-card__header{
        height: 40px;
        padding: 8px 20px;
    }
    .active-red{
        width: 20px;
        height: 20px;
        border-radius: 50%;
        font-size: 14px;
        color: white;
        background: #F56C6C;
        text-align: center;
        line-height: 20px;
        float: left;
    }
    .active-yellow{
        width: 20px;
        height: 20px;
        border-radius: 50%;
        font-size: 14px;
        color: white;
        background: #E6A23C;
        text-align: center;
        line-height: 20px;
        float: left;
    }
    .active-blue{
        width: 20px;
        height: 20px;
        border-radius: 50%;
        font-size: 14px;
        color: white;
        background: #67C23A;
        text-align: center;
        line-height: 20px;
        float: left;
    }
    .cdcode{
        width: 15%;
        float: left;
        margin-left: 10px;
        font-size: 16px;
        line-height: 20px;
    }
    .cdstatus{
        width: 15%;
        float: left;
        margin-left: 0px;
        font-size: 16px;
        line-height: 20px;
    }
    .cdprocess{
        width: 60%;
        float: left;
        margin-left: 10px;
    }
    .rankrow{
        margin-top: 12px;
        cursor: pointer;
    }
    .ilblock{
        border-left: 1px solid #e3e5e7;
        padding: 0 40px;
        align-content: center;
    }
    .ilblock>span{
        display: block;
        line-height: 30px;
    }
    <!-- 表格样式 -->
    .el-table, .el-table__expanded-cell {
        background-color: transparent;
        color: #4D4D4D;
        font-size: 13px;
    }
    .el-table th,
    .el-table tr,
    .el-table td {
@@ -32,26 +108,235 @@
        font-family: Source Han Sans CN Normal, Source Han Sans CN Normal-Normal;
        font-weight: Normal;
    }
    .el-table::before {
        height: 0px;
    }
    .el-table__body tr,
    .el-table__body td {
        padding: 0;
        height: 22px;
    }
    .custom-icon:hover {
        color: #0981ea;
        cursor: pointer;
    .el-table__row.warning-row {
        background:rgb(252,212,165);
    }
    .el-table__body-wrapper::-webkit-scrollbar-track {
        background-color: rgb(252,212,165);
    }
    .el-table__body-wrapper::-webkit-scrollbar {
        width: 10px;
        opacity: 0.5;
    }
    .el-table__body-wrapper::-webkit-scrollbar-thumb {
        border-radius: 15px;
        background-color:rgb(252,212,165);
    }
</style>
</head>
<body class="gray-bg">
    <div class="content" id="app" v-cloak>
        <div id="map_div" style="position:fixed;width: 100%;height: 100vh;margin-top: -5px"></div>
        <div style="position:fixed;top: 5px">
            <li onclick="careraFunction()" class="el-icon-video-camera custom-icon" style="font-size: 100px;margin-right: 5px;margin-left: -5px;"></li>
            <li onclick="tubFunction()" class="el-icon-user custom-icon" style="font-size: 100px;margin-right: 5px;margin-left: -5px;"></li>
        </div>
        <div id="Chart1" style="position:fixed;width: 300px;height: 300px;bottom: -60px;right: -40px"></div>
        <el-row style="height: 127px;">
            <el-col :span="6">
                <el-card class="box-card">
                    <div style="flex:4;padding-right: 20px;" >
                        <div>
                            <li class="el-icon-s-promotion" style="font-size: 18px;margin-right: 5px;margin-left: -5px;color: #409eff;"></li>
                            <span style="color:rgba(0,0,0,.65);font-size: 15px;font-weight: bold;">场地数量</span>
                        </div>
                        <div style="text-align: center;">
                        <span style="color:#ED1C24;font-size: 30px;word-break: break-all;line-height: 70px">34
                        </span>
                        </div>
                    </div>
                    <div style="flex:6;" class="ilblock">
                        <span style="color:rgba(0,0,0,.87);font-size: 15px;">
                            协调中
                            <span style="float: right">{{indexDataCount.projectStatus0}}</span>
<!--                            <li class="el-icon-caret-bottom" style="color: #f56c6c">-->
                        </span>
                        <span style="color:rgba(0,0,0,.87);font-size: 15px;">
                            待开工
                            <span style="float: right">{{indexDataCount.projectStatus1}}</span>
<!--                            <li class="el-icon-caret-bottom" style="color: #e6a23c">-->
                        </span>
                        <span style="color:rgba(0,0,0,.87);font-size: 15px;">
                            进行中
                            <span style="float: right">{{indexDataCount.projectStatus2}}</span>
<!--                            <li class="el-icon-caret-top" style="color: #409eff">-->
                        </span>
                    </div>
                </el-card>
            </el-col>
            <el-col :span="6">
                <el-card class="box-card">
                    <div style="flex:4;padding-right: 20px;">
                        <div>
                            <li class="el-icon-coin" style="font-size: 18px;margin-right: 5px;margin-left: -5px;color: #085abe"></li>
                            <span style="color:rgba(0,0,0,.65);font-size: 15px;font-weight: bold;">钻孔进尺</span>
                        </div>
                        <div style="text-align: center">
                        <span style="color:#1894F6;font-size: 30px;word-break: break-all;line-height: 70px;">647
                        </span>
                        </div>
                    </div>
                    <div style="flex:6;" class="ilblock">
                        <span style="color:rgba(0,0,0,.87);font-size: 15px;">
                            总进尺 <span style="float: right">{{indexDataCount.footageCount}}m</span>
<!--                            <li class="el-icon-caret-bottom" style="color: #f56c6c">-->
                        </span>
                        <span style="color:rgba(0,0,0,.87);font-size: 15px;">
                            已完成   <span style="float: right">{{indexDataCount.footageCplCount}}m</span>
<!--                            <li class="el-icon-caret-bottom" style="color: #409eff">-->
                        </span>
                    </div>
                </el-card>
            </el-col>
            <el-col :span="6">
                <el-card class="box-card">
                    <div style="flex:4;padding-right: 20px;">
                        <div>
                            <li class="el-icon-video-camera" style="font-size: 18px;margin-right: 5px;margin-left: -5px;color: #11d713"></li>
                            <span style="color:rgba(0,0,0,.65);font-size: 15px;font-weight: bold;">实时监控</span>
                        </div>
                        <div style="text-align: center">
                        <span style="color:#F7931E;font-size: 30px;word-break: break-all;line-height: 70px">68
                        </span>
                        </div>
                    </div>
                    <div style="flex:6;" class="ilblock">
                        <div>
                        </div>
                        <span style="color:rgba(0,0,0,.87);font-size: 15px;">
                            已安装  <span style="float: right">{{indexDataCount.cameraCount}}</span>
<!--                            <li class="el-icon-caret-bottom" style="color: #f56c6c">-->
                        </span>
                        <span style="color:rgba(0,0,0,.87);font-size: 15px;">
                            未安装   <span style="float: right">{{indexDataCount.cameraCountNaN}}</span>
<!--                            <li class="el-icon-caret-bottom" style="color: #409eff">-->
                        </span>
                    </div>
                </el-card>
            </el-col>
            <el-col :span="6">
                <el-card class="box-card">
                    <div style="flex:4;padding-right: 20px;">
                        <div>
                            <li class="el-icon-s-order" style="font-size: 18px;margin-right: 5px;margin-left: -5px;color: #917ed0"></li>
                            <span style="color:rgba(0,0,0,.65);font-size: 15px;font-weight: bold;">资料文件</span>
                        </div>
                        <div style="text-align: center">
                        <span style="color:#F7931E;font-size: 30px;word-break: break-all;line-height: 70px;">
                            {{indexDataCount.fileCount}}
                        </span>
                        </div>
                    </div>
                    <div style="flex:6;" class="ilblock">
                        <span style="color:rgba(0,0,0,.87);font-size: 15px;">
                            施工资料  <span style="float: right">0</span>
<!--                            <li class="el-icon-caret-bottom" style="color: #f56c6c">-->
                        </span>
                        <span style="color:rgba(0,0,0,.87);font-size: 15px;">
                            安全资料   <span style="float: right">0</span>
<!--                            <li class="el-icon-caret-bottom" style="color: #409eff">-->
                        </span>
                        <span style="color:rgba(0,0,0,.87);font-size: 15px;">
                            质量资料   <span style="float: right">0</span>
<!--                            <li class="el-icon-caret-bottom" style="color: #409eff">-->
                        </span>
                    </div>
                </el-card>
            </el-col>
        </el-row>
        <el-row>
            <el-col :span="16">
                <el-card class="box-card">
                    <div style="height: 200px;width: 100%;">
                        <h3>材料统计</h3>
                        <el-col :span="10" style="height: 200px;">
                            <div style="margin-top: 15px">
                                <template>
                                    <el-table :data="tubLogs" border size="small" style="width: 100%"
                                              :header-cell-style="{color: '#4D4D4D',background: '#F7931E',fontWeight: '400'}"
                                              :row-class-name="tableRowClassName">
                                        <!--                                    <el-table-column prop="code" label="序号"></el-table-column>-->
                                        <el-table-column prop="tubName" label="名称"></el-table-column>
                                        <el-table-column prop="inboundNumber" label="入库数量"></el-table-column>
                                        <el-table-column prop="outboundNumber" label="出库数量"></el-table-column>
                                        <el-table-column prop="unit" label="单位"></el-table-column>
                                    </el-table>
                                </template>
                            </div>
                        </el-col>
                        <el-col :span="14" style="height: 200px;">
                            <div id="column-chart" style="height: 180px; width: 100%;"></div>
                        </el-col>
                    </div>
                </el-card>
                <el-card class="box-card" style="margin-top: 20px;">
                    <div id="map_div" style="width: 100%;height: 550px;margin-top: -5px"></div>
                </el-card>
            </el-col>
            <el-col :span="8">
                <el-card class="box-card">
                    <div style="height: 200px;width: 100%">
                        <div style="width: 100%;height: 20px;">
                            <h3>项目总体进度(%)</h3>
                        </div>
                        <div id="Chart1" style="width: 80%;height: 180px;margin-left: 10%;"></div>
                    </div>
                </el-card>
                <el-card class="box-card" style="margin-top: 20px;">
                    <div style="width: 100%">
                        <div style="width: 100%;height: 20px;margin-bottom: 10px;text-align: center;">
                            <h3>场地详细进度(%)</h3>
                        </div>
                        <div style="width: 100%;height: 500px;overflow: auto">
                            <el-row class="rankrow" v-for='entity in stationProcessData' @click.native='viewStation(entity)'>
                                <el-col :span="2" >
                                    <div v-if="entity.status=='协调中'" class="active-red">{{entity.ranking}}</div>
                                    <div v-if="entity.status=='待开工'" class="active-yellow">{{entity.ranking}}</div>
                                    <div v-if="entity.status=='进行中'" class="active-blue">{{entity.ranking}}</div>
                                </el-col>
                                <el-col :span="7">
                                    <div style="font-size: 16px">{{entity.station}}</div>
                                </el-col >
                                <el-col :span="5">
                                    <div style="font-size: 16px">{{entity.status}}</div>
                                </el-col>
                                <el-col :span="8">
                                    <div>
                                        <el-progress :stroke-width="10" :percentage="entity.value"></el-progress>
                                    </div>
                                </el-col>
                            </el-row>
                        </div>
                    </div>
                </el-card>
            </el-col>
        </el-row>
    </div>
@@ -76,9 +361,9 @@
        loadMap();
        getReallyData();
        totalProcess();
        //stationProcess();
        //indexCount();
        //tubLogs();
        stationProcess();
        indexCount();
        tubLogs();
    })
    //场地和地图点击联动
    function viewStation(station) {
@@ -175,19 +460,6 @@
        $.ajaxSettings.async = false;
    }
    //摄像头列表
    function careraFunction() {
        let url = ctx + "/system/camera";
        $.modal.openTab("摄像头列表",url);
    }
    //管材统计
    function tubFunction() {
        let url = ctx + "/system/tub";
        $.modal.openTab("管材统计",url);
    }
    //场地进度
    function stationProcess() {
        let url = ctx + "/system/stat/projectProcess";
@@ -289,9 +561,8 @@
    }
    //地图上展示项目点
    function showProjectPoint(data){
        var projectIcon;
        var projectIcon ;
        for(let i =0;i<data.length;i++){
            if (data[i].status === '1'){
                projectIcon = new T.Icon({
                    iconUrl: '/bjfw/images/icon/yellow.png',
@@ -317,7 +588,6 @@
            let marker = new T.Marker(new T.LngLat(lng, lat), { title: "场地位置",icon:projectIcon});
            let proj = infoWindowProject(data[i]);
            addClickHandler(proj, marker);
            map.addOverLay(marker);
        }
@@ -333,7 +603,7 @@
                "<font style='font-weight: bolder;'>场地编号 :</font>" + e.code + "<br>" +
                "<font style='font-weight: bolder;'>场地名字 :</font>" + e.fullName + "<br>" +
                "<font style='font-weight: bolder;'>负责人 :</font>" + e.leader + "<br>" +
                "<a class='btn' onclick=viewdata(" +"'" + ids+ "'" + ")>场地数据</a>" + "<br>" +
                "<a class='btn' onclick=viewdata(" +"'" + ids+ "'" + ")>场地数据</a>" +
                "</div>" +
                "</div>" +
                "</div>";
@@ -345,7 +615,6 @@
    function addClickHandler(content, marker) {
        marker.addEventListener("click", function (e) {
            console.log("你点击了",content);
            openInfo(content, e)
        });
    }
@@ -370,7 +639,7 @@
        $.ajaxSettings.async = false;
        var option = {
            backgroundColor: "transparent",
            backgroundColor: "#fff",
            series: [
                {
                    type: "gauge",
@@ -509,6 +778,11 @@
        Chart1.setOption(option);
    }
</script>
</body>
</html>
javaweb-plus/javaweb-admin/src/main/resources/templates/main4.html
File was deleted
javaweb-plus/javaweb-admin/src/main/resources/templates/mainBAK.html
New file
@@ -0,0 +1,514 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
<th:block th:include="include :: header('弹层组件')" />
<link href="../static/css/bootstrap.min.css" th:href="@{/css/bootstrap.min.css}" rel="stylesheet" />
<link href="../static/css/font-awesome.min.css" th:href="@{/css/font-awesome.min.css}" rel="stylesheet" />
<link href="../static/css/main/animate.min.css" th:href="@{/css/main/animate.min.css}" rel="stylesheet" />
<link href="../static/css/main/style.min862f.css" th:href="@{/css/main/style.min862f.css}" rel="stylesheet" />
<link rel="stylesheet" th:href="@{/css/custom/main.css}" />
<link href="../static/js/elementUI/index.css" th:href="@{/js/elementUI/index.css}" rel="stylesheet" />
<style type="text/css">
    .content {
        width: 100%;
        background-color: rgba(0,0,0,0.01) !important;
        padding:10px;
    }
    [v-cloak]{
        display: none;
    }
    .ilblock>span{
        display: block;
        line-height: 30px;
    }
    .el-table th,
    .el-table tr,
    .el-table td {
        background-color: transparent;
        border: 0px;
        color: #4D4D4D;
        font-size: 13px;
        font-family: Source Han Sans CN Normal, Source Han Sans CN Normal-Normal;
        font-weight: Normal;
    }
    .el-table__body tr,
    .el-table__body td {
        padding: 0;
        height: 22px;
    }
    .custom-icon:hover {
        color: #0981ea;
        cursor: pointer;
    }
</style>
</head>
<body class="gray-bg">
    <div class="content" id="app" v-cloak>
        <div id="map_div" style="position:fixed;width: 100%;height: 100vh;margin-top: -5px"></div>
        <div style="position:fixed;top: 5px">
            <li onclick="careraFunction()" class="el-icon-video-camera custom-icon" style="font-size: 100px;margin-right: 5px;margin-left: -5px;"></li>
            <li onclick="tubFunction()" class="el-icon-user custom-icon" style="font-size: 100px;margin-right: 5px;margin-left: -5px;"></li>
        </div>
        <div id="Chart1" style="position:fixed;width: 300px;height: 300px;bottom: -60px;right: -40px"></div>
    </div>
    <script th:src="@{/js/jquery.min.js}"></script>
    <script th:src="@{/js/bootstrap.min.js}"></script>
    <script th:src="@{/ajax/libs/flot/jquery.flot.js}"></script>
    <script th:src="@{/ajax/libs/report/echarts/echarts-all.js}"></script>
    <script th:src="@{/js/tdt.js}" type="text/javascript"></script>
    <script src="http://lbs.tianditu.gov.cn/js/lib/d3/d3.min.js" type="text/javascript"></script>
    <script src="http://lbs.tianditu.gov.cn/api/js4.0/opensource/openlibrary/D3SvgOverlay.js" type="text/javascript"></script>
    <script th:src="@{/js/custom/main.js}"></script>
    <script th:src="@{/js/vue.min.js}"></script>
    <script th:src="@{/js/elementUI/index.js}"></script>
    <th:block th:include="include :: sparkline-js" />
    <th:block th:include="include :: footer" />
    <script th:inline="javascript">
    $(function() {
        loadMap();
        getReallyData();
        totalProcess();
        //stationProcess();
        //indexCount();
        //tubLogs();
    })
    //场地和地图点击联动
    function viewStation(station) {
        var lng = station.lng;
        var lat = station.lat;
        map.centerAndZoom(new T.LngLat(lng, lat), 13);
    }
    function tubLogs() {
        const chart = echarts.init(document.getElementById("column-chart"));
        const option = {
            tooltip: {
                trigger: 'axis',
                axisPointer: {
                    type: 'shadow'
                }
            },
            legend: {},
            grid: {
                left: '3%',
                right: '4%',
                bottom: '3%',
                containLabel: true
            },
            xAxis: [
                {
                    type: 'category',
                    data: []
                }
            ],
            yAxis: [
                {
                    type: 'value'
                }
            ],
            series: [
                {
                    name: '出库',
                    type: 'bar',
                    emphasis: {
                        focus: 'series'
                    },
                    data: [],
                    itemStyle: {
                        // 修改柱子的颜色
                        color: '#e2b507'
                    }
                },
                {
                    name: '入库',
                    type: 'bar',
                    stack: 'Ad',
                    emphasis: {
                        focus: 'series'
                    },
                    data: [],
                    itemStyle: {
                        // 修改柱子的颜色
                        color: '#2992c6'
                    }
                },
            ]
        };
        let url = ctx + "/system/stat/tubLogData";
        $.ajaxSettings.async = false;
        $.get(url,{},function(res){
            vm.tubLogs = res.tubLogs;
            res.tubLogs.forEach(function(value, index, array) {
                const tubName = value.tubName;
                const inboundNumber = value.inboundNumber;
                const outboundNumber = value.outboundNumber;
                const unit = value.unit;
                option.xAxis[0].data[index] = tubName;
                option.series[0].data[index] = outboundNumber;
                option.series[1].data[index] = inboundNumber;
            });
            chart.setOption(option, true);
        })
        $.ajaxSettings.async = false;
    }
    //首页第一行个数统计
    function indexCount() {
        let url = ctx + "/system/stat/indexDataCount";
        $.ajaxSettings.async = false;
        $.get(url,{},function(res){
            vm.indexDataCount = res.data;
            vm.indexDataCount.cameraCountNaN = 68 -vm.indexDataCount.cameraCount;
        })
        $.ajaxSettings.async = false;
    }
    //摄像头列表
    function careraFunction() {
        let url = ctx + "/system/camera";
        $.modal.openTab("摄像头列表",url);
    }
    //管材统计
    function tubFunction() {
        let url = ctx + "/system/tub";
        $.modal.openTab("管材统计",url);
    }
    //场地进度
    function stationProcess() {
        let url = ctx + "/system/stat/projectProcess";
        $.ajaxSettings.async = false;
        $.get(url,{},function(res){
            vm.stationProcessData = res.projectData;
        })
        $.ajaxSettings.async = false;
    }
    var vm = new Vue({
        el: "#app",
        data() {
            return {
                stationProcessData: [],
                indexDataCount :"",
                tubLogs:[],
            };
        },
        methods: {
            tableRowClassName({ row, rowIndex }) {
                if (rowIndex % 2 == 0) {
                    return "";
                } else {
                    return "warning-row";
                }
            },
        }
    });
    // 加载地图
    let map=null;
    var countries = [];
    var countriesOverlay = new T.D3Overlay(init,redraw);
    var countriesOverlay1 = new T.D3Overlay(init1,redraw1);
    function loadMap() {
        map = new T.Map('map_div');
        map.centerAndZoom(new T.LngLat(116.38, 40.2), 9);
        var control = new T.Control.Zoom();
        control.setPosition(T_ANCHOR_TOP_RIGHT);
        map.addControl(control);// 添加缩放平移控件
        var scale = new T.Control.Scale();// 创建比例尺控件对象
        d3.json("/bjfw/js/custom/beijing.json", function (data) {
            countries = data.features;
            map.addOverLay(countriesOverlay)
            countriesOverlay.bringToBack();
            map.addOverLay(countriesOverlay1)
            countriesOverlay.bringToBack();
        });
        //map.setStyle("indigo");
    }
    function init(sel, transform) {
        var upd = sel.selectAll('path.geojson').data(countries);
        upd.enter()
                .append('path')
                .attr("class", "geojson")
                .attr('stroke', 'grey')
                .attr('fill', function (d, i) {
                    //return d3.hsl(Math.random() * 360, 0.9, 0.5)
                    return "transparent"
                })
                .attr('fill-opacity', '0')
    }
    function redraw(sel, transform) {
        sel.selectAll('path.geojson').each(
                function (d, i) {
                    d3.select(this).attr('d', transform.pathFromGeojson)
                }
        )
    }
    function init1(sel, transform) {
        var upd = sel.selectAll('path.geojson1').data(countries);
        upd.enter()
                .append('path')
                .attr("class", "geojson1")
                .attr('stroke', 'grey')
                .attr('fill', function (d, i) {
                    return d3.hsl(Math.random() * 360, 0.9, 0.5)
                })
                .attr('fill-opacity', '0.1')
    }
    function redraw1(sel, transform) {
        sel.selectAll('path.geojson1').each(
                function (d, i) {
                    d3.select(this).attr('d', transform.pathFromGeojson)
                }
        )
    }
    // 获取数据库真实数据
    function getReallyData() {
        let url = window.location.protocol + "//" + window.location.host + "/bjfw/system/stat/project";
        $.get(url,function(res){
            var data = res.projects;
            showProjectPoint(data);
        })
    }
    //地图上展示项目点
    function showProjectPoint(data){
        var projectIcon;
        for(let i =0;i<data.length;i++){
            if (data[i].status === '1'){
                projectIcon = new T.Icon({
                    iconUrl: '/bjfw/images/icon/yellow.png',
                    iconSize: new T.Point(30, 30),
                    iconAnchor: new T.Point(6, 40),
                });
            }else if (data[i].status === '2'){
                projectIcon = new T.Icon({
                    iconUrl: '/bjfw/images/icon/blue.png',
                    iconSize: new T.Point(30, 30),
                    iconAnchor: new T.Point(6, 40),
                });
            }else {
                projectIcon = new T.Icon({
                    iconUrl: '/bjfw/images/icon/red.png',
                    iconSize: new T.Point(30, 30),
                    iconAnchor: new T.Point(6, 40),
                });
            }
            let lng = data[i].lng;
            let lat = data[i].lat;
            let marker = new T.Marker(new T.LngLat(lng, lat), { title: "场地位置",icon:projectIcon});
            let proj = infoWindowProject(data[i]);
            addClickHandler(proj, marker);
            map.addOverLay(marker);
        }
    }
    function infoWindowProject(e){
        let ids = e.ids + "";
        var sContent =
                "<div style='margin:0px;'>" +
                "<div>" +
                "<div style='margin:1px 0px 1px 2px;width: 200px;'>" +
                "<font style='font-weight: bolder;'>场地编号 :</font>" + e.code + "<br>" +
                "<font style='font-weight: bolder;'>场地名字 :</font>" + e.fullName + "<br>" +
                "<font style='font-weight: bolder;'>负责人 :</font>" + e.leader + "<br>" +
                "<a class='btn' onclick=viewdata(" +"'" + ids+ "'" + ")>场地数据</a>" + "<br>" +
                "</div>" +
                "</div>" +
                "</div>";
        return sContent;
    }
    function viewdata (id) {
        $.modal.openTab("场地导航",ctx+ "/geo/project/navigate?ids="+id);
    }
    function addClickHandler(content, marker) {
        marker.addEventListener("click", function (e) {
            console.log("你点击了",content);
            openInfo(content, e)
        });
    }
    function openInfo(content, e) {
        var point = e.lnglat;
        var markerInfoWin = new T.InfoWindow(content, { offset: new T.Point(0, -30) }); // 创建信息窗口对象
        map.openInfoWindow(markerInfoWin, point); //开启信息窗口
    }
    //总进度仪表盘
    function totalProcess() {
        var Chart1 = echarts.init(document.getElementById('Chart1'));
        var pointerData = 0; // 仪表指针数据
        let url = ctx + "/system/stat/totalProcess";
        $.ajaxSettings.async = false;
        $.get(url,{},function(res){
            pointerData = res.pointerData;
            pointerData = (pointerData*100).toFixed(0);
        });
        $.ajaxSettings.async = false;
        var option = {
            backgroundColor: "transparent",
            series: [
                {
                    type: "gauge",
                    radius: 80,
                    z: 1,
                    startAngle: 225,
                    endAngle: -45,
                    splitNumber: 50,
                    title: {
                        color: "red",
                    },
                    splitLine: {
                        show: true,
                        length: 15,
                        distance: -10,
                        lineStyle: {
                            color: "#fff",
                            width: 1,
                        },
                    },
                    detail: {
                        show: true,
                        offsetCenter: [0, 60],
                        fontSize: 22,
                        formatter: (val) => [`{a|${val}}`, `{b|%}`].join(""),
                        rich: {
                            a: {
                                fontSize: 20,
                                color: "rgba(84, 108, 198, 0.65)",
                            },
                            b: {
                                fontSize: 24,
                                color: "rgba(84, 108, 198, 0.65)",
                            },
                        },
                    },
                    // 仪表盘的线,颜色值为一个数组
                    axisLine: {
                        show: true,
                        // 两端是否设置为圆角;在5.0之后的版本有效
                        roundCap: false,
                        lineStyle: {
                            width: 15,
                            shadowColor: "#0093ee", //默认透明
                            shadowOffsetX: 0,
                            shadowOffsetY: 0,
                            shadowBlur: 20,
                            opacity: 1,
                            color: [
                                [
                                    pointerData / 100,
                                    {
                                        x: 0,
                                        y: 0,
                                        x1: 1,
                                        y1: 0,
                                        colorStops: [
                                            {
                                                offset: 0,
                                                color: "rgba(0, 255, 255, 0.6)",
                                            },
                                            {
                                                offset: 1,
                                                color: "rgba(0, 0, 255, .6)",
                                            },
                                        ],
                                    },
                                ],
                                [1, "rgba(0,0,0,0.15)"],
                            ],
                        },
                    },
                    // 仪表盘刻度标签
                    axisLabel: {
                        show: true,
                        color: "rgba(84, 108, 198, 0.65)",
                        fontSize: 14,
                        distance: 20,
                        formatter: (val) => {
                            const num = Math.floor(val);
                            return num % 20 === 0 ? num : "";
                        },
                    },
                    // 刻度
                    axisTick: {
                        show: false,
                    },
                    // 指针,此设置仅对5.0以上的版本生效
                    anchor: {
                        show: true,
                        icon: "circle",
                        showAbove: true,
                        size: 20,
                        itemStyle: {
                            borderWidth: 6,
                            borderColor: "rgba(84, 108, 198, 0.85)",
                        },
                    },
                    data: [pointerData],
                },
                {
                    // 背景渐变色
                    type: "pie",
                    radius: "80%",
                    // 不响应及触发鼠标事件
                    silent: true,
                    // 关闭背景动画
                    animation: false,
                    z: 0,
                    itemStyle: {
                        color: {
                            type: "radial", // 径向渐变
                            x: 0.5,
                            y: 0.5,
                            r: 0.25,
                            colorStops: [
                                {
                                    offset: 0,
                                    color: "rgba(84, 103, 198, 0.6)",
                                },
                                {
                                    offset: 0.1,
                                    color: "rgba(84, 103, 198, 0.35)",
                                },
                                {
                                    offset: 1,
                                    color: "rgba(84, 103, 198, 0)",
                                },
                            ],
                        },
                    },
                    data: [pointerData],
                },
            ],
        };
        Chart1.setOption(option);
    }
</script>
</body>
</html>
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/HoleController.java
@@ -71,7 +71,10 @@
    public AjaxResult holeProcess(Hole hole) {
        Hole hole2 =  holeMapper.selectProjectProcess(hole.getProjectId());
        Double process = Arith.div(hole2.getFootageCpl(), hole2.getFootage(), 2);
        Double process =0.0d;
        if(ObjectUtil.isNotEmpty(hole2.getFootageCpl()) && ObjectUtil.isNotEmpty(hole2.getFootage())) {
            process = Arith.div(hole2.getFootageCpl(), hole2.getFootage(), 2);
        }
        return  AjaxResult.success(process);
    }
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/domain/Project.java
@@ -127,10 +127,10 @@
    @Excel(name = "是否删除")
    private String isDeleted;
    @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date endTime;
    @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date startTime;
    public Date getStartTime() {
javaweb-plus/javaweb-cms/src/main/resources/mapper/geo/HoleLogMapper.xml
@@ -40,6 +40,7 @@
                and date_format(create_time,'%y%m%d') &lt;= date_format(#{params.endCreateTime},'%y%m%d')
            </if>
        </where>
        order by create_time asc
    </select>
    
    <select id="selectHoleLogById" parameterType="String" resultMap="HoleLogResult">
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/hole/hole.html
@@ -173,7 +173,7 @@
        //查看钻孔列表
        function preview(code) {
            const url = prefix2 + "/viewHoleLog?projectId=" + projectId + "&holeCode=" + code;
            $.modal.open("钻孔进度记录列表", url , 1100, 750);
            $.modal.open("钻孔进度记录列表", url , 1100, 700);
        }
    </script>
</body>
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/project/info.html
@@ -98,7 +98,7 @@
                                <i class="el-icon-user"></i>
                                负责人:
                            </template>
                            {{project.leaderName}}
                            {{project.leader}}
                        </el-descriptions-item>
                        <el-descriptions-item>
                            <template slot="label">
@@ -159,7 +159,7 @@
                    </div>
                    <div style="height: 250px;">
                        <template>
                            <el-table :data="holeData" size="small" style="width: 100%" height="250">
                            <el-table :data="holeData" size="small" style="width: 99%" height="250">
                                <el-table-column prop="code" label="编号"></el-table-column>
                                <el-table-column prop="type" label="类型"></el-table-column>
                                <el-table-column prop="footage" label="总进尺(m)"></el-table-column>
@@ -187,7 +187,7 @@
                        </div>
                        <el-col :span="10" style="height: 320px;">
                            <template>
                                <el-table :data="tubLogs" border size="small" style="width: 100%"
                                <el-table :data="tubLogs" border size="small" style="width: 99%"
                                          :header-cell-style="{color: '#4D4D4D',background: '#F7931E',fontWeight: '400'}"
                                          :row-class-name="tableRowClassName">
                                    <el-table-column prop="tubName" label="名称"></el-table-column>