地质所 沉降监测网建设项目
563619a5cb13b6f9fdaac2a87467780ced71c135..6662074ac2366a1068f54cefb1e46af7fca4fc81
2024-05-18 zmk
Merge branch 'master' of ssh://117.78.1.188:29418/dkyChenJiang
666207 对比 | 目录
2024-05-18 zmk
提交代码
b9b712 对比 | 目录
9个文件已修改
271 ■■■■ 已修改文件
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/DeviceLogController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/ProjectDataController.java 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/DeviceLogServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/project/info.html 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/files.html 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/projectData.html 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/projectData2.html 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/upload.html 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/DeviceLogController.java
@@ -76,7 +76,7 @@
            number++;
        }
        String formattedNumber = String.format("%06d", number);
        String code = "ZK" + formattedNumber;
        String code = "ZTCJ" + formattedNumber;
        mmap.put("projectId", projectId);
        mmap.put("code", code);
        return prefix + "/add";
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/ProjectDataController.java
@@ -5,7 +5,11 @@
import java.util.List;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ObjectUtil;
import com.javaweb.common.config.Global;
import com.javaweb.geo.domain.Hole;
import com.javaweb.geo.domain.HoleMedia;
import com.javaweb.geo.service.IHoleMediaService;
import com.javaweb.geo.vo.FileVo;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
@@ -39,6 +43,9 @@
    @Autowired
    private IProjectDataService projectDataService;
    @Autowired
    private IHoleMediaService holeMediaService;
    @RequiresPermissions("geo:projectData:view")
    @GetMapping()
    public String projectData(String id, String type, ModelMap mmap) {
@@ -59,7 +66,8 @@
     * 导入压缩包
     */
    @GetMapping("/importImg")
    public String importPdf(){
    public String importPdf(String projectDataId,ModelMap mmap){
        mmap.put("projectDataId",projectDataId);
        return prefix + "/upload";
    }
@@ -183,28 +191,19 @@
    @ResponseBody
    public TableDataInfo listFile(String id){
        List<FileVo> paths = new ArrayList<>();
        ProjectData projectData = projectDataService.selectProjectDataById(id);
//        if (!ObjectUtils.isEmpty(projectData)){
//            String num = project.getNum();
//
//            String diskPath = Global.getUploadPath()  + "\\sources\\项目资料\\"+num;
//
//            File file = new File(diskPath);
//
//            if(FileUtil.exist(file)){
//                if(file.isDirectory()){
//                    File []lists  = file.listFiles();
//                    for(int i =0;i<lists.length;i++){
//                        String name =lists[i].getName();
//                        String path = urlPrefixPath + num + "/" +name;
//                        FileVo vo  = new FileVo() ;
//                        vo.setName(name);
//                        vo.setPath(path);
//                        paths.add(vo);
//                    }
//                }
//            }
//        }
        HoleMedia holeMedia = new HoleMedia();
        holeMedia.setRecordId(id);
        List<HoleMedia> holeMedias =holeMediaService.selectHoleMediaList(holeMedia);
        if(ObjectUtil.isNotEmpty(holeMedias)){
            for(HoleMedia holeMedia1 :holeMedias ){
                FileVo vo = new FileVo() ;
                vo.setName(holeMedia1.getName());
                vo.setPath(holeMedia1.getInternetPath());
                paths.add(vo);
            }
        }
        return getDataTable(paths);
    }
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/DeviceLogServiceImpl.java
@@ -132,7 +132,7 @@
                }else {
                    number++;
                }
                String code = "ZK" + String.format("%06d", number);
                String code = "ZTCJ" + String.format("%06d", number);
                item.setCode(code);
                item.setCreateDate(DateUtils.getNowDate());
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java
@@ -12,12 +12,17 @@
import com.javaweb.common.utils.DateUtils;
import com.javaweb.common.utils.IdGenerate;
import com.javaweb.common.utils.StringUtils;
import com.javaweb.geo.domain.Hole;
import com.javaweb.geo.domain.HoleMedia;
import com.javaweb.geo.mapper.HoleMapper;
import com.javaweb.geo.mapper.HoleMediaMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.javaweb.geo.mapper.ProjectDataMapper;
import com.javaweb.geo.domain.ProjectData;
import com.javaweb.geo.service.IProjectDataService;
import com.javaweb.common.core.text.Convert;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.web.multipart.MultipartFile;
@@ -33,12 +38,23 @@
public class ProjectDataServiceImpl implements IProjectDataService {
    private static String manUploadPath = "imgupload";
    private static String zipfile = "zipfile";
    private static String zipfile2 = "zipfile2";
    private static String imgUploadPath = Global.getProfile() + "\\" + manUploadPath + "\\";
    //zip 原始文件
    private static String ZIPUploadPath = Global.getProfile() + "\\" + zipfile + "\\";
    //解压文件
    private static String ZIPUploadPath2 = Global.getProfile() + "\\" + zipfile2 + "\\";
    @Autowired
    private ProjectDataMapper projectDataMapper;
    @Autowired
    private HoleMapper holeMapper;
    @Autowired
    private HoleMediaMapper mediaMapper;
    /**
     * 查询项目资料
@@ -116,21 +132,17 @@
    @Override
    public AjaxResult uploadZIP(MultipartFile file, HttpServletRequest request) {
        String uploadPath = Global.getProfile() + "\\";
        String originalFilename = file.getOriginalFilename();
        String fieldname = request.getParameter("fieldname");
        if (StringUtils.isEmpty(fieldname)) {
            fieldname = "filename";
        }
        //传入的钻孔的id
        String projectDataId = request.getParameter("projectDataId");
        //获取后缀.zip  保存的文件名
        String substring = originalFilename.substring(originalFilename.lastIndexOf("."));
        String UID = IdGenerate.nextId();
        String dFileName = UID + substring;
        File file2 = new File(uploadPath + dFileName);
        File file2 = new File(ZIPUploadPath + dFileName);
        try {
            file.transferTo(file2);
        } catch (Exception e) {
@@ -143,53 +155,60 @@
        } catch (Exception e) {
            return AjaxResult.warn("附件解压缩失败!");
        }
        String moveDir = Global.getProfile() + "\\" + UID + "\\" + originalFilename.replace(substring, "");
        List<String> movedFiles = moveFile(moveDir);
        updateFilePath(fieldname, movedFiles);
        FileUtil.del(new File(uploadPath + UID));
        FileUtil.del(file2);
        //移动到zipfile2  存储解压完毕的文件
        String moveDir = ZIPUploadPath + UID;
        moveFile(moveDir);
        //更新数据库
        updateFilePath(projectDataId, ZIPUploadPath2 + UID +"\\" + originalFilename.replace(substring, "") );
        ProjectData projectData = new ProjectData();
        //更新  projectData  url
        String dataUrl = zipfile + "/" + UID +".zip";
        projectData.setDataUrl(dataUrl);
        projectData.setId(projectDataId);
        projectDataMapper.updateProjectData(projectData);
        FileUtil.del(new File(ZIPUploadPath + UID));
        return AjaxResult.success("上传成功");
    }
    //移动 文件
    private List<String> moveFile(String moveDir) {
        List<String> list = new ArrayList<>();
    private void moveFile(String moveDir) {
        File file = new File(moveDir);
        String detpath = imgUploadPath;
        if (file.isDirectory()) {
            File[] files = file.listFiles();
        File dest = new File(ZIPUploadPath2);
        FileUtil.move(file,dest,true);
    }
    @Transactional(rollbackFor = Exception.class)
    public void updateFilePath(String projectDataId, String dirpath) {
        ProjectData projectData = projectDataMapper.selectProjectDataById(projectDataId);
        String projectId= projectData.getProjectId();
        File fileDir = new File(dirpath);
        if (fileDir.isDirectory()) {
            File[] files = fileDir.listFiles();
            int len = files.length;
            for (int i = 0; i < len; i++) {
                String filename = files[i].getName();
                list.add(filename);
                FileUtil.copy(files[i], new File(detpath + filename), true);
                String filepath = files[i].getPath();
                String url = filepath.replace(Global.getProfile(),"").replace("\\","/");
                HoleMedia media = new HoleMedia();
                media.setIds(IdGenerate.nextId());
                media.setRecordId(projectDataId);
                media.setProjectId(projectId);
                media.setName(filename);
                media.setInternetPath(url);
                media.setCreateTime(DateUtils.getNowDate());
                mediaMapper.insertHoleMedia(media);
            }
        }
        return list;
    }
    private void updateFilePath(String filedname, List<String> filesPath) {
        for (String fileName : filesPath) {
            String substring = fileName.substring(fileName.lastIndexOf("."));
            String docFileName = fileName.replace(substring, "").trim();
            ProjectData param = new ProjectData();
            if (filedname.equals("filename")) {
                param.setName(docFileName);
            }
            List<ProjectData> list = projectDataMapper.selectProjectDataList(param);
            if (!ObjectUtils.isEmpty(list)) {
                for (ProjectData item : list) {
                    ProjectData entity = new ProjectData();
                    entity.setId(item.getId());
                    entity.setDataUrl(manUploadPath + "/" + fileName);
                    projectDataMapper.updateProjectData(entity);
                }
            }
        }
    }
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/project/info.html
@@ -57,8 +57,9 @@
        <div class="row">
            <p class="project-name">
                <span class="name-label">场地名称:</span>
                <span class="name-val" th:text="${project.fullName}"></span>
                 <h3>场地信息</h3>
<!--                <span class="name-label">场地名称:</span>-->
<!--                <span class="name-val" th:text="${project.fullName}"></span>-->
            </p>
            <table class="basic-info">
                <tr>
@@ -93,6 +94,9 @@
            <!--        </div>-->
        </div>
        <div class="row" style="margin-top: 30px;">
            <h3>场地钻孔列表</h3>
        </div>
        <div class="row">
            <div class="col-sm-12 select-table table-striped">
                <table id="bootstrap-table"></table>
@@ -112,14 +116,7 @@
            var options = {
                url: prefix + "/list?projectId=" + projectId,
                modalName: "钻孔",
                columns: [{
                    checkbox: true
                },
                    {
                        field : 'ids',
                        title : '主键',
                        visible: false
                    },
                columns: [
                    {
                        field : 'code',
                        title : '钻孔编号'
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/files.html
@@ -60,7 +60,8 @@
         * @param path
         */
        function file(path) {
            window.open(path);
            var url = "/bjfw/profile" + path;
            window.open(url);
        }
    </script>
</body>
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/projectData.html
@@ -38,12 +38,7 @@
                <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="geo:projectData:remove">
                    <i class="fa fa-remove"></i> 删除
                </a>
<!--                <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="geo:projectData:export">-->
<!--                    <i class="fa fa-download"></i> 导出-->
<!--                 </a>-->
                <a class="btn btn-danger" data-toggle="modal" onclick="uploadZIP();">
                    <i class="fa fa-upload"></i>上传附件
                </a>
            </div>
            <div class="col-sm-12 select-table table-striped">
                <table id="bootstrap-table"></table>
@@ -94,9 +89,12 @@
                    align: 'center',
                    formatter: function(value, row, index) {
                        var actions = [];
                        actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
                        actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
                        actions.push('<a class="btn btn-info btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="uploadZIP(\'' + row.id + '\')"><i class="fa fa-upload"></i>上传</a> ');
                        actions.push('<a class="btn btn-info btn-xs ' + '" href="javascript:void(0)" onclick="viewResource(\'' + row.id + '\' , \'' + row.id + '\')"><i class="glyphicon glyphicon-menu-hamburger"></i>查看附件</a>');
                        return actions.join('');
                    }
                }]
@@ -105,20 +103,10 @@
        });
        // 上传附件
        function uploadZIP(){
            $.modal.open('上传附件', prefix + "/importImg");
        function uploadZIP(id){
            $.modal.open('上传附件', prefix + "/importImg?projectDataId="+id);
        }
        // 查看图片详情
        function viewImg(path, id) {
            if(path === null || path === '' || path === 'null'){
                $.modal.alertSuccess("文件无法打开!");
                return;
            }
            var url = prefix + "/viewImage?id=" + id;
            $.modal.open("查看图片", url, 800, 600);
        }
        //查看资料
        function viewResource(id){
@@ -126,4 +114,5 @@
        }
    </script>
</body>
</html>
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/projectData2.html
@@ -44,12 +44,7 @@
                <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="geo:projectData:remove">
                    <i class="fa fa-remove"></i> 删除
                </a>
<!--                <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="geo:projectData:export">-->
<!--                    <i class="fa fa-download"></i> 导出-->
<!--                 </a>-->
                <a class="btn btn-danger" data-toggle="modal" onclick="uploadZIP();">
                    <i class="fa fa-upload"></i>上传附件
                </a>
            </div>
            <div class="col-sm-12 select-table table-striped">
                <table id="bootstrap-table"></table>
@@ -79,27 +74,27 @@
                    checkbox: true
                },
                {
                    field : 'id',
                    field : 'id',
                    title : '主键',
                    visible: false
                },
                {
                    field : 'name',
                    field : 'name',
                    title : '资料名称'
                },
                {
                    field : 'fileType',
                    field : 'fileType',
                    title : '业务类型',
                    formatter: function(value, row, index) {
                       return $.table.selectDictLabel(fileTypeDatas, value);
                    }
                },
                {
                    field : 'labels',
                    field : 'labels',
                    title : '标签'
                },
                {
                    field : 'remark',
                    field : 'remark',
                    title : '备注'
                },
                {
@@ -109,7 +104,9 @@
                        var actions = [];
                        actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
                        actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
                        actions.push('<a class="btn btn-info btn-xs ' + '" href="javascript:void(0)" onclick="viewImg(\'' + row.dataUrl + '\' , \'' + row.id + '\')"><i class="glyphicon glyphicon-menu-hamburger"></i>查看附件</a>');
                        actions.push('<a class="btn btn-info btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="uploadZIP(\'' + row.id + '\')"><i class="fa fa-upload"></i>上传</a> ');
                        actions.push('<a class="btn btn-info btn-xs ' + '" href="javascript:void(0)" onclick="viewResource(\'' + row.id + '\' , \'' + row.id + '\')"><i class="glyphicon glyphicon-menu-hamburger"></i>查看附件</a>');
                        return actions.join('');
                    }
                }]
@@ -118,20 +115,16 @@
        });
        // 上传附件
        function uploadZIP(){
            $.modal.open('上传附件', prefix + "/importImg");
        function uploadZIP(id){
            $.modal.open('上传附件', prefix + "/importImg?projectDataId="+id);
        }
        // 查看图片详情
        function viewImg(path, id) {
            if(path === null || path === '' || path === 'null'){
                $.modal.alertSuccess("文件无法打开!");
                return;
            }
            var url = prefix + "/viewImage?id=" + id;
            $.modal.open("查看图片", url, 800, 600);
        //查看资料
        function viewResource(id){
            $.modal.open("资料列表",  prefix + "/projectDataFileList?id=" + id, 800, 600);
        }
    </script>
</body>
</html>
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/upload.html
@@ -2,7 +2,7 @@
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
    <th:block th:include="include :: header('文档描述列表')" />
    <th:block th:include="include :: header('文件上传')" />
       <th:block th:include="include :: select2-css" />
</head>
@@ -13,51 +13,44 @@
                <form id="formId"  enctype="multipart/form-data">
                    <div class="select-list">
                        <ul>
                            <li>
                                <p>匹配字段:</p>
                                <select id="docId" name="docId" class="form-control m-b">
                                     <option value="filename">图片名称</option>
                                </select>
                            </li>
                             <li>
                                <p>压缩包:</p>
                                <p>上传文件:</p>
                               <input type="file" id="file" name="file"/>       
                             </li>  
                             
                             <li>
                                 <a class="btn btn-primary btn-rounded btn-sm" onclick="upload()"><i class="fa fa-search"></i>&nbsp;上传</a>
                             </li>
                             </li>
                        </ul>
                    </div>
                </form>
            </div>
            <div class="col-sm-12 select-table table-striped">
                <span>1、单个或者多个文件请以.ZIP压缩包的形式上传,把单个或者多个文件放到文件夹中,压缩文件夹为zip格式<br> </span>
                <span>1、附件名称需要与系统内的资料名称一致<br> </span>
                <span>2、文件不允许包含特殊字符:空格 、正反斜线、问号、星号等<br> </span>
                <span>3、上传文件经过了 解压 、 移动  、遍历 、更新数据库等多个步骤,请耐心等待<br> </span>
                <h3>1、支持单文件和多文件模式<br> </h3>
                <h3>2、多个文件请以.ZIP压缩包的形式上传,把单个或者多个文件放到文件夹中,压缩文件夹为zip格式<br> </h3>
                <h3>3、文件不允许包含特殊字符:空格 、正反斜线、问号、星号等<br> </h3>
                <h3>4、上传文件经过了 解压 、 移动  、遍历 、更新数据库等多个步骤,请耐心等待<br> </h3>
            </div>
        </div>
    </div>
    <th:block th:include="include :: footer" />
    <th:block th:include="include :: select2-js" />
    <script th:inline="javascript">
        var projectDataId = [[${projectDataId}]];
    
    function upload(){
        var file = $('#file').val();
        if (file == '' || (!$.common.endWith(file, '.zip'))){
            $.modal.msgWarning("请选择压缩包");
            $.modal.msgWarning("请选择待上传的文件");
            return false;
        }
    
        var formData = new FormData();
        formData.append("file", $('#file')[0].files[0]);
        formData.append("fieldname", $('#docId').val());
        formData.append("projectDataId", projectDataId);
        $.modal.loading("数据上传解析中");
        $.ajax({