地质所 沉降监测网建设项目
zmk
2024-05-18 b9b712a7701eb83c7dbd8367c534d4c880503adb
提交代码
5个文件已修改
169 ■■■■ 已修改文件
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/ProjectDataController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java 109 ●●●●● 补丁 | 查看 | 原始文档 | 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/projectData.html 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/upload.html 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/controller/ProjectDataController.java
@@ -54,7 +54,8 @@
     * 导入压缩包
     */
    @GetMapping("/importImg")
    public String importPdf(){
    public String importPdf(String projectDataId,ModelMap mmap){
        mmap.put("projectDataId",projectDataId);
        return prefix + "/upload";
    }
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);
            }
        }
        return list;
    }
                String filepath = files[i].getPath();
                String url = filepath.replace(Global.getProfile(),"").replace("\\","/");
    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);
                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);
            }
            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/projectData.html
@@ -41,9 +41,9 @@
<!--                <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>
<!--                <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,8 +94,10 @@
                    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="viewImg(\'' + row.dataUrl + '\' , \'' + row.id + '\')"><i class="glyphicon glyphicon-menu-hamburger"></i>查看附件</a>');
                        return actions.join('');
                    }
@@ -105,11 +107,9 @@
        });
        // 上传附件
        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'){
@@ -121,4 +121,5 @@
        }
    </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>  
                        </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({