完成工程操作相关接口
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.enums.UserOperationModuleEnum;
|
||||
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.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
|
@ -11,18 +17,33 @@ import org.springframework.web.multipart.MultipartFile;
|
|||
@RestController
|
||||
public class ImportPrjController {
|
||||
|
||||
/**
|
||||
* 导入本地工程
|
||||
*
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping("/importPrj")
|
||||
@UserOperation(value = "导入本地工程", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE)
|
||||
public ElectromagneticResult<?> importPrj(@RequestParam("file") MultipartFile file) {
|
||||
@Resource
|
||||
private ImportPrjService importPrjService;
|
||||
|
||||
return null;
|
||||
@RequestMapping("/importPrj")
|
||||
@UserOperation(value = "导入本地工程", modelName = UserOperationModuleEnum.IMPORT_PFJ)
|
||||
public ElectromagneticResult<?> importPrj(@RequestParam("file") MultipartFile file) {
|
||||
return ElectromagneticResultUtil.success(importPrjService.importPrj(file));
|
||||
}
|
||||
|
||||
@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;
|
||||
|
||||
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 org.springframework.core.io.InputStreamResource;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
|
|
@ -11,5 +14,8 @@ public interface ImportPrjService {
|
|||
|
||||
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;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.codec.Base64;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
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.crypto.SecureUtil;
|
||||
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.electromagnetic.industry.software.common.cons.ElectromagneticConstants;
|
||||
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
|
||||
import com.electromagnetic.industry.software.common.enums.EleDataTypeEnum;
|
||||
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.IdWorker;
|
||||
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
||||
import com.electromagnetic.industry.software.manage.config.ElePropertyConfig;
|
||||
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.req.ImportFileDirQueryVO;
|
||||
import com.electromagnetic.industry.software.manage.pojo.req.ImportFileInfoVO;
|
||||
import com.electromagnetic.industry.software.manage.service.ImportPrjService;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
|
|
@ -39,16 +43,13 @@ import java.util.*;
|
|||
import java.util.zip.ZipEntry;
|
||||
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.FILE_SEC_PASSWD;
|
||||
import static com.electromagnetic.industry.software.common.cons.ElectromagneticConstants.*;
|
||||
|
||||
@Service
|
||||
public class ImportPrjServiceImpl extends ServiceImpl<ImportPrjInfoMapper, ImportFileInfo> implements ImportPrjService {
|
||||
|
||||
@Resource
|
||||
private ElePropertyConfig elePropertyConfig;
|
||||
@Resource
|
||||
private CommonService commonService;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
|
|
@ -119,6 +120,10 @@ public class ImportPrjServiceImpl extends ServiceImpl<ImportPrjInfoMapper, Impor
|
|||
FileUtil.writeFromStream(inputStream, destPath);
|
||||
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) {
|
||||
throw new BizException("导入工程失败,原因 " + e.getMessage(), e);
|
||||
} 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) {
|
||||
if (!StrUtil.equals(importFileInfo.getParentId(), ElectromagneticConstants.PRJ_PARENT_ID)) {
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@ spring.servlet.multipart.max-file-size=500MB
|
|||
spring.servlet.multipart.max-request-size=500MB
|
||||
spring.mvc.async.request-timeout=3600000
|
||||
#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.username=em_user_dev
|
||||
spring.datasource.username=root
|
||||
spring.datasource.password=123456
|
||||
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
|
||||
#ai
|
||||
|
|
@ -51,6 +51,10 @@ data.user.download.path=user_download/
|
|||
data.repo.prj.path=repo_project/
|
||||
data.repo.upload.path=repo_upload/
|
||||
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
|
||||
# backupFiles
|
||||
tmp.file.store.hour=48
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ public enum UserOperationModuleEnum {
|
|||
REPO_PRJ_DATABASE("repo_prj_database", "库数据管理"),
|
||||
REPO_PRJ_SETTING("repo_prj_setting", "库数据层级定义"),
|
||||
|
||||
IMPORT_PFJ("import_pjr", "导入的工程数据"),
|
||||
|
||||
USER_PRJ("user_prj", "个人数据"),
|
||||
UNKNOWN("unknown", "未分组"),
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,8 @@ public class RespPageVO<T> implements Serializable {
|
|||
|
||||
private ImportTableInfoVO importTableInfoVO;
|
||||
|
||||
private List<?> importDirs;
|
||||
|
||||
public RespPageVO(long total, List<T> records) {
|
||||
this.struct = false;
|
||||
this.total = total;
|
||||
|
|
@ -29,4 +31,6 @@ public class RespPageVO<T> implements Serializable {
|
|||
this.struct = true;
|
||||
this.importTableInfoVO = importTableInfoVO;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue