From 3a06d7a3ac18fc44631512d0234832dca7921a4f Mon Sep 17 00:00:00 2001
From: suerwei <18810552194@163.com>
Date: 星期二, 21 五月 2024 14:08:25 +0800
Subject: [PATCH] 钻孔日志模块
---
javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java | 157 +++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 135 insertions(+), 22 deletions(-)
diff --git a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java
index 732af07..030592f 100644
--- a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java
+++ b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java
@@ -1,62 +1,95 @@
package com.javaweb.geo.service.impl;
+import java.io.File;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
import java.util.List;
+
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.util.ZipUtil;
+import com.javaweb.common.config.Global;
+import com.javaweb.common.core.domain.AjaxResult;
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;
+
+import javax.servlet.http.HttpServletRequest;
/**
* 椤圭洰璧勬枡Service涓氬姟灞傚鐞�
- *
+ *
* @author cxy
* @date 2024-05-16
*/
@Service
-public class ProjectDataServiceImpl implements IProjectDataService
-{
+public class ProjectDataServiceImpl implements IProjectDataService {
+
+
+ private static String zipfile = "zipfile";
+ private static String zipfile2 = "zipfile2";
+
+ //zip 鍘熷鏂囦欢
+ private static String ZIPUploadPath = Global.getProfile() + "\\" + zipfile + "\\";
+
+ //瑙e帇鏂囦欢
+ private static String ZIPUploadPath2 = Global.getProfile() + "\\" + zipfile2 + "\\";
+
@Autowired
private ProjectDataMapper projectDataMapper;
+ @Autowired
+ private HoleMapper holeMapper;
+
+ @Autowired
+ private HoleMediaMapper mediaMapper;
+
/**
* 鏌ヨ椤圭洰璧勬枡
- *
+ *
* @param id 椤圭洰璧勬枡ID
* @return 椤圭洰璧勬枡
*/
@Override
- public ProjectData selectProjectDataById(String id)
- {
+ public ProjectData selectProjectDataById(String id) {
return projectDataMapper.selectProjectDataById(id);
}
/**
* 鏌ヨ椤圭洰璧勬枡鍒楄〃
- *
+ *
* @param projectData 椤圭洰璧勬枡
* @return 椤圭洰璧勬枡
*/
@Override
- public List<ProjectData> selectProjectDataList(ProjectData projectData)
- {
+ public List<ProjectData> selectProjectDataList(ProjectData projectData) {
+ if (!ObjectUtils.isEmpty(projectData.getDataType()) && projectData.getDataType().endsWith(",")) {
+ projectData.setDataType(projectData.getDataType().substring(0, 1));
+ }
return projectDataMapper.selectProjectDataList(projectData);
}
/**
* 鏂板椤圭洰璧勬枡
- *
+ *
* @param projectData 椤圭洰璧勬枡
* @return 缁撴灉
*/
@Override
- public int insertProjectData(ProjectData projectData)
- {
- if(ObjectUtils.isEmpty(projectData.getId())){
+ public int insertProjectData(ProjectData projectData) {
+ if (ObjectUtils.isEmpty(projectData.getId())) {
projectData.setId(IdGenerate.nextId());
}
projectData.setCreateTime(DateUtils.getNowDate());
@@ -65,38 +98,118 @@
/**
* 淇敼椤圭洰璧勬枡
- *
+ *
* @param projectData 椤圭洰璧勬枡
* @return 缁撴灉
*/
@Override
- public int updateProjectData(ProjectData projectData)
- {
+ public int updateProjectData(ProjectData projectData) {
projectData.setUpdateTime(DateUtils.getNowDate());
return projectDataMapper.updateProjectData(projectData);
}
/**
* 鍒犻櫎椤圭洰璧勬枡瀵硅薄
- *
+ *
* @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
* @return 缁撴灉
*/
@Override
- public int deleteProjectDataByIds(String ids)
- {
+ public int deleteProjectDataByIds(String ids) {
return projectDataMapper.deleteProjectDataByIds(Convert.toStrArray(ids));
}
/**
* 鍒犻櫎椤圭洰璧勬枡淇℃伅
- *
+ *
* @param id 椤圭洰璧勬枡ID
* @return 缁撴灉
*/
@Override
- public int deleteProjectDataById(String id)
- {
+ public int deleteProjectDataById(String id) {
return projectDataMapper.deleteProjectDataById(id);
}
+
+ @Override
+ public AjaxResult uploadZIP(MultipartFile file, HttpServletRequest request) {
+
+ String originalFilename = file.getOriginalFilename();
+ //浼犲叆鐨勯捇瀛旂殑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(ZIPUploadPath + dFileName);
+ try {
+ file.transferTo(file2);
+ } catch (Exception e) {
+ return AjaxResult.warn("闄勪欢涓婁紶澶辫触锛�");
+ }
+
+ //瑙e帇缂�
+ try {
+ ZipUtil.unzip(file2, Charset.forName("GBK"));
+ } catch (Exception e) {
+ return AjaxResult.warn("闄勪欢瑙e帇缂╁け璐ワ紒");
+ }
+
+ //绉诲姩鍒皕ipfile2 瀛樺偍瑙e帇瀹屾瘯鐨勬枃浠�
+ 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 void moveFile(String moveDir) {
+ File file = new File(moveDir);
+ 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();
+ 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);
+ }
+ }
+
+ }
}
--
Gitblit v1.9.1