完成工程操作相关接口
This commit is contained in:
parent
3722dfb4f0
commit
c5a44bf01c
|
|
@ -3,6 +3,12 @@ package com.electromagnetic.industry.software.manage.controller;
|
||||||
import com.electromagnetic.industry.software.common.annotations.UserOperation;
|
import com.electromagnetic.industry.software.common.annotations.UserOperation;
|
||||||
import com.electromagnetic.industry.software.common.enums.UserOperationModuleEnum;
|
import com.electromagnetic.industry.software.common.enums.UserOperationModuleEnum;
|
||||||
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
|
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
|
||||||
|
import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil;
|
||||||
|
import com.electromagnetic.industry.software.manage.service.ImportPrjService;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import org.springframework.core.io.InputStreamResource;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
@ -11,18 +17,33 @@ import org.springframework.web.multipart.MultipartFile;
|
||||||
@RestController
|
@RestController
|
||||||
public class ImportPrjController {
|
public class ImportPrjController {
|
||||||
|
|
||||||
/**
|
@Resource
|
||||||
* 导入本地工程
|
private ImportPrjService importPrjService;
|
||||||
*
|
|
||||||
* @param
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@RequestMapping("/importPrj")
|
@RequestMapping("/importPrj")
|
||||||
@UserOperation(value = "导入本地工程", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE)
|
@UserOperation(value = "导入本地工程", modelName = UserOperationModuleEnum.IMPORT_PFJ)
|
||||||
public ElectromagneticResult<?> importPrj(@RequestParam("file") MultipartFile file) {
|
public ElectromagneticResult<?> importPrj(@RequestParam("file") MultipartFile file) {
|
||||||
|
return ElectromagneticResultUtil.success(importPrjService.importPrj(file));
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequestMapping("/queryPrjInfo")
|
||||||
|
@UserOperation(value = "查询导入工程列表", modelName = UserOperationModuleEnum.IMPORT_PFJ)
|
||||||
|
public ElectromagneticResult<?> queryPrjInfo(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize) {
|
||||||
|
return ElectromagneticResultUtil.success(importPrjService.queryPrjInfo(pageNum, pageSize));
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping("/queryImportFileInfo")
|
||||||
|
@UserOperation(value = "查询导入工程文件和文件夹信息", modelName = UserOperationModuleEnum.IMPORT_PFJ)
|
||||||
|
public ElectromagneticResult<?> queryImportFileInfo(@RequestParam("pageNum") Integer pageNum,
|
||||||
|
@RequestParam("pageSize") Integer pageSize,
|
||||||
|
@RequestParam("id") String id) {
|
||||||
|
return ElectromagneticResultUtil.success(importPrjService.queryImportFileInfo(id, pageNum, pageSize));
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping("/download")
|
||||||
|
@UserOperation(value = "下载文件", modelName = UserOperationModuleEnum.IMPORT_PFJ)
|
||||||
|
public ResponseEntity<InputStreamResource> download(@RequestParam("id") String id, HttpServletResponse response) {
|
||||||
|
return importPrjService.download(id, response);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
package com.electromagnetic.industry.software.manage.pojo.req;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ImportFileDirQueryVO {
|
||||||
|
|
||||||
|
private String fileName;
|
||||||
|
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
package com.electromagnetic.industry.software.manage.pojo.req;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ImportFileInfoVO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
private String id;
|
||||||
|
/**
|
||||||
|
* 父目录id
|
||||||
|
*/
|
||||||
|
private String parentId;
|
||||||
|
/**
|
||||||
|
* 文件类型
|
||||||
|
*/
|
||||||
|
private String fileType;
|
||||||
|
/**
|
||||||
|
* 文件名
|
||||||
|
*/
|
||||||
|
private String fileName;
|
||||||
|
/**
|
||||||
|
* 数据类型,0-文件夹 1-文件
|
||||||
|
*/
|
||||||
|
private Integer dataType;
|
||||||
|
/**
|
||||||
|
* 文件大小
|
||||||
|
*/
|
||||||
|
private Long fileSize;
|
||||||
|
|
||||||
|
private Date createdTime;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
package com.electromagnetic.industry.software.manage.service;
|
package com.electromagnetic.industry.software.manage.service;
|
||||||
|
|
||||||
|
import com.electromagnetic.industry.software.common.pojo.RespPageVO;
|
||||||
|
import com.electromagnetic.industry.software.manage.pojo.req.ImportFileDirQueryVO;
|
||||||
|
import com.electromagnetic.industry.software.manage.pojo.req.ImportFileInfoVO;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import org.springframework.core.io.InputStreamResource;
|
import org.springframework.core.io.InputStreamResource;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
|
|
@ -11,5 +14,8 @@ public interface ImportPrjService {
|
||||||
|
|
||||||
ResponseEntity<InputStreamResource> download(String id, HttpServletResponse response);
|
ResponseEntity<InputStreamResource> download(String id, HttpServletResponse response);
|
||||||
|
|
||||||
|
RespPageVO<ImportFileDirQueryVO> queryPrjInfo(Integer pageNum, Integer pageSize);
|
||||||
|
|
||||||
|
RespPageVO<ImportFileInfoVO> queryImportFileInfo(String id, Integer pageNo, Integer pageSize);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.electromagnetic.industry.software.manage.service.serviceimpl;
|
package com.electromagnetic.industry.software.manage.service.serviceimpl;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.codec.Base64;
|
import cn.hutool.core.codec.Base64;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.io.FileUtil;
|
import cn.hutool.core.io.FileUtil;
|
||||||
|
|
@ -8,18 +9,21 @@ import cn.hutool.core.text.StrFormatter;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.crypto.SecureUtil;
|
import cn.hutool.crypto.SecureUtil;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.electromagnetic.industry.software.common.cons.ElectromagneticConstants;
|
import com.electromagnetic.industry.software.common.cons.ElectromagneticConstants;
|
||||||
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
|
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
|
||||||
import com.electromagnetic.industry.software.common.enums.EleDataTypeEnum;
|
import com.electromagnetic.industry.software.common.enums.EleDataTypeEnum;
|
||||||
import com.electromagnetic.industry.software.common.exception.BizException;
|
import com.electromagnetic.industry.software.common.exception.BizException;
|
||||||
|
import com.electromagnetic.industry.software.common.pojo.RespPageVO;
|
||||||
import com.electromagnetic.industry.software.common.util.EleCommonUtil;
|
import com.electromagnetic.industry.software.common.util.EleCommonUtil;
|
||||||
import com.electromagnetic.industry.software.common.util.IdWorker;
|
import com.electromagnetic.industry.software.common.util.IdWorker;
|
||||||
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
||||||
import com.electromagnetic.industry.software.manage.config.ElePropertyConfig;
|
import com.electromagnetic.industry.software.manage.config.ElePropertyConfig;
|
||||||
import com.electromagnetic.industry.software.manage.mapper.ImportPrjInfoMapper;
|
import com.electromagnetic.industry.software.manage.mapper.ImportPrjInfoMapper;
|
||||||
import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo;
|
|
||||||
import com.electromagnetic.industry.software.manage.pojo.models.ImportFileInfo;
|
import com.electromagnetic.industry.software.manage.pojo.models.ImportFileInfo;
|
||||||
|
import com.electromagnetic.industry.software.manage.pojo.req.ImportFileDirQueryVO;
|
||||||
|
import com.electromagnetic.industry.software.manage.pojo.req.ImportFileInfoVO;
|
||||||
import com.electromagnetic.industry.software.manage.service.ImportPrjService;
|
import com.electromagnetic.industry.software.manage.service.ImportPrjService;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
|
@ -39,16 +43,13 @@ import java.util.*;
|
||||||
import java.util.zip.ZipEntry;
|
import java.util.zip.ZipEntry;
|
||||||
import java.util.zip.ZipFile;
|
import java.util.zip.ZipFile;
|
||||||
|
|
||||||
import static com.electromagnetic.industry.software.common.cons.ElectromagneticConstants.APPEND_NEW_FILE_NAME;
|
import static com.electromagnetic.industry.software.common.cons.ElectromagneticConstants.*;
|
||||||
import static com.electromagnetic.industry.software.common.cons.ElectromagneticConstants.FILE_SEC_PASSWD;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class ImportPrjServiceImpl extends ServiceImpl<ImportPrjInfoMapper, ImportFileInfo> implements ImportPrjService {
|
public class ImportPrjServiceImpl extends ServiceImpl<ImportPrjInfoMapper, ImportFileInfo> implements ImportPrjService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ElePropertyConfig elePropertyConfig;
|
private ElePropertyConfig elePropertyConfig;
|
||||||
@Resource
|
|
||||||
private CommonService commonService;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
|
@ -119,6 +120,10 @@ public class ImportPrjServiceImpl extends ServiceImpl<ImportPrjInfoMapper, Impor
|
||||||
FileUtil.writeFromStream(inputStream, destPath);
|
FileUtil.writeFromStream(inputStream, destPath);
|
||||||
EleCommonUtil.encryptFile(destPath, SecureUtil.aes(FILE_SEC_PASSWD.getBytes()));
|
EleCommonUtil.encryptFile(destPath, SecureUtil.aes(FILE_SEC_PASSWD.getBytes()));
|
||||||
}
|
}
|
||||||
|
String prjId = items.stream().filter(e -> e.getParentId().equals(PRJ_PARENT_ID)).findFirst().get().getId();
|
||||||
|
String prjPath = elePropertyConfig.getImportPrjPath() + File.separator + prjId;
|
||||||
|
FileUtil.writeFromStream(file.getInputStream(), prjPath);
|
||||||
|
EleCommonUtil.encryptFile(prjPath, SecureUtil.aes(FILE_SEC_PASSWD.getBytes()));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new BizException("导入工程失败,原因 " + e.getMessage(), e);
|
throw new BizException("导入工程失败,原因 " + e.getMessage(), e);
|
||||||
} finally {
|
} finally {
|
||||||
|
|
@ -159,6 +164,36 @@ public class ImportPrjServiceImpl extends ServiceImpl<ImportPrjInfoMapper, Impor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RespPageVO<ImportFileDirQueryVO> queryPrjInfo(Integer pageNum, Integer pageSize) {
|
||||||
|
Page<ImportFileInfo> importFileInfoPage = this.baseMapper.selectPage(new Page<>(pageNum, pageSize), Wrappers.lambdaQuery(ImportFileInfo.class)
|
||||||
|
.select(ImportFileInfo::getId, ImportFileInfo::getFileName)
|
||||||
|
.eq(ImportFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)
|
||||||
|
.eq(ImportFileInfo::getParentId, PRJ_PARENT_ID));
|
||||||
|
List<ImportFileDirQueryVO> page = BeanUtil.copyToList(importFileInfoPage.getRecords(), ImportFileDirQueryVO.class);
|
||||||
|
return new RespPageVO<>(importFileInfoPage.getTotal(), page);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RespPageVO<ImportFileInfoVO> queryImportFileInfo(String id, Integer pageNo, Integer pageSize) {
|
||||||
|
Page<ImportFileInfo> importFilePage = this.baseMapper.selectPage(new Page<>(pageNo, pageSize), Wrappers.<ImportFileInfo>lambdaQuery()
|
||||||
|
.eq(ImportFileInfo::getParentId, id)
|
||||||
|
.eq(ImportFileInfo::getDataType, EleDataTypeEnum.FILE.code)
|
||||||
|
.eq(ImportFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code));
|
||||||
|
List<ImportFileInfoVO> files = BeanUtil.copyToList(importFilePage.getRecords(), ImportFileInfoVO.class);
|
||||||
|
RespPageVO<ImportFileInfoVO> respPageVO = new RespPageVO<>(importFilePage.getTotal(), files);
|
||||||
|
// 如果是首页查询,则首先查询全部文件夹
|
||||||
|
if (Objects.equals(pageNo, 1)) {
|
||||||
|
List<ImportFileInfo> importDirs = this.baseMapper.selectList(Wrappers.<ImportFileInfo>lambdaQuery()
|
||||||
|
.eq(ImportFileInfo::getParentId, id)
|
||||||
|
.eq(ImportFileInfo::getDataType, EleDataTypeEnum.FOLDER.code)
|
||||||
|
.eq(ImportFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code));
|
||||||
|
List<ImportFileDirQueryVO> importFileDirQueryVOS = BeanUtil.copyToList(importDirs, ImportFileDirQueryVO.class);
|
||||||
|
respPageVO.setImportDirs(importFileDirQueryVOS);
|
||||||
|
}
|
||||||
|
return respPageVO;
|
||||||
|
}
|
||||||
|
|
||||||
public void resetPrjName(ImportFileInfo importFileInfo) {
|
public void resetPrjName(ImportFileInfo importFileInfo) {
|
||||||
if (!StrUtil.equals(importFileInfo.getParentId(), ElectromagneticConstants.PRJ_PARENT_ID)) {
|
if (!StrUtil.equals(importFileInfo.getParentId(), ElectromagneticConstants.PRJ_PARENT_ID)) {
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,9 @@ spring.servlet.multipart.max-file-size=500MB
|
||||||
spring.servlet.multipart.max-request-size=500MB
|
spring.servlet.multipart.max-request-size=500MB
|
||||||
spring.mvc.async.request-timeout=3600000
|
spring.mvc.async.request-timeout=3600000
|
||||||
#mysql
|
#mysql
|
||||||
spring.datasource.url=jdbc:mariadb://127.0.0.1:3306/em_data_dev?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&sslModel=true&serverTimezone=GMT%2B8&allowMultiQueries=true&rewriteBatchedStatements=true
|
spring.datasource.url=jdbc:mariadb://127.0.0.1:12345/em_data_dev?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&sslModel=true&serverTimezone=GMT%2B8&allowMultiQueries=true&rewriteBatchedStatements=true
|
||||||
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
|
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
|
||||||
spring.datasource.username=em_user_dev
|
spring.datasource.username=root
|
||||||
spring.datasource.password=123456
|
spring.datasource.password=123456
|
||||||
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
|
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
|
||||||
#ai
|
#ai
|
||||||
|
|
@ -51,6 +51,10 @@ data.user.download.path=user_download/
|
||||||
data.repo.prj.path=repo_project/
|
data.repo.prj.path=repo_project/
|
||||||
data.repo.upload.path=repo_upload/
|
data.repo.upload.path=repo_upload/
|
||||||
data.repo.download.path=repo_download/
|
data.repo.download.path=repo_download/
|
||||||
|
# import path
|
||||||
|
data.import.prj.path=import_project/
|
||||||
|
data.import.upload.path=import_upload/
|
||||||
|
data.import.download.path=import_download/
|
||||||
prj.folder.max.length=6
|
prj.folder.max.length=6
|
||||||
# backupFiles
|
# backupFiles
|
||||||
tmp.file.store.hour=48
|
tmp.file.store.hour=48
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,8 @@ public enum UserOperationModuleEnum {
|
||||||
REPO_PRJ_DATABASE("repo_prj_database", "库数据管理"),
|
REPO_PRJ_DATABASE("repo_prj_database", "库数据管理"),
|
||||||
REPO_PRJ_SETTING("repo_prj_setting", "库数据层级定义"),
|
REPO_PRJ_SETTING("repo_prj_setting", "库数据层级定义"),
|
||||||
|
|
||||||
|
IMPORT_PFJ("import_pjr", "导入的工程数据"),
|
||||||
|
|
||||||
USER_PRJ("user_prj", "个人数据"),
|
USER_PRJ("user_prj", "个人数据"),
|
||||||
UNKNOWN("unknown", "未分组"),
|
UNKNOWN("unknown", "未分组"),
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,8 @@ public class RespPageVO<T> implements Serializable {
|
||||||
|
|
||||||
private ImportTableInfoVO importTableInfoVO;
|
private ImportTableInfoVO importTableInfoVO;
|
||||||
|
|
||||||
|
private List<?> importDirs;
|
||||||
|
|
||||||
public RespPageVO(long total, List<T> records) {
|
public RespPageVO(long total, List<T> records) {
|
||||||
this.struct = false;
|
this.struct = false;
|
||||||
this.total = total;
|
this.total = total;
|
||||||
|
|
@ -29,4 +31,6 @@ public class RespPageVO<T> implements Serializable {
|
||||||
this.struct = true;
|
this.struct = true;
|
||||||
this.importTableInfoVO = importTableInfoVO;
|
this.importTableInfoVO = importTableInfoVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue