新增了删除工程的接口

This commit is contained in:
chenxudong 2025-06-18 15:47:42 +08:00
parent c5a44bf01c
commit 0d70669b19
4 changed files with 63 additions and 37 deletions

View File

@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
@RestController
@RequestMapping("/data/ed/local/prj")
public class ImportPrjController {
@Resource
@ -41,9 +42,15 @@ public class ImportPrjController {
}
@RequestMapping("/download")
@UserOperation(value = "下载文件", modelName = UserOperationModuleEnum.IMPORT_PFJ)
@UserOperation(value = "下载工程文件", modelName = UserOperationModuleEnum.IMPORT_PFJ)
public ResponseEntity<InputStreamResource> download(@RequestParam("id") String id, HttpServletResponse response) {
return importPrjService.download(id, response);
}
@RequestMapping("/removePrj")
@UserOperation(value = "删除工程", modelName = UserOperationModuleEnum.IMPORT_PFJ)
public ElectromagneticResult<?> removePrj(@RequestParam("prjId") String prjId) {
return ElectromagneticResultUtil.success(importPrjService.removePrj(prjId));
}
}

View File

@ -18,4 +18,5 @@ public interface ImportPrjService {
RespPageVO<ImportFileInfoVO> queryImportFileInfo(String id, Integer pageNo, Integer pageSize);
boolean removePrj(String prjId);
}

View File

@ -8,6 +8,7 @@ import cn.hutool.core.lang.Assert;
import cn.hutool.core.text.StrFormatter;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -40,6 +41,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.InputStream;
import java.util.*;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
@ -54,6 +56,7 @@ public class ImportPrjServiceImpl extends ServiceImpl<ImportPrjInfoMapper, Impor
@Override
@Transactional(rollbackFor = Exception.class)
public boolean importPrj(MultipartFile file) {
Assert.isTrue(Objects.equals(FileUtil.getSuffix(file.getOriginalFilename()), "zip"), "当前仅支持zip格式");
String zipTmpPath = elePropertyConfig.getEleTmpPath() + File.pathSeparator + UUID.randomUUID() + ".zip";
ZipFile zipFile = null;
try {
@ -169,7 +172,8 @@ public class ImportPrjServiceImpl extends ServiceImpl<ImportPrjInfoMapper, Impor
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));
.eq(ImportFileInfo::getParentId, PRJ_PARENT_ID)
.orderByDesc(ImportFileInfo::getCreatedTime));
List<ImportFileDirQueryVO> page = BeanUtil.copyToList(importFileInfoPage.getRecords(), ImportFileDirQueryVO.class);
return new RespPageVO<>(importFileInfoPage.getTotal(), page);
}
@ -194,6 +198,20 @@ public class ImportPrjServiceImpl extends ServiceImpl<ImportPrjInfoMapper, Impor
return respPageVO;
}
@Override
@Transactional
public boolean removePrj(String prjId) {
LambdaQueryWrapper<ImportFileInfo> idSelectWrapper = Wrappers.lambdaQuery(ImportFileInfo.class)
.likeRight(ImportFileInfo::getFilePath, prjId + MYSQL_FILE_PATH_SPLIT)
.select(ImportFileInfo::getId);
Set<String> ids = this.baseMapper.selectList(idSelectWrapper).stream().map(ImportFileInfo::getId).collect(Collectors.toSet());
ids.add(prjId);
this.baseMapper.update(new ImportFileInfo(), Wrappers.<ImportFileInfo>lambdaUpdate()
.set(ImportFileInfo::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code)
.in(ImportFileInfo::getId, ids));
return true;
}
public void resetPrjName(ImportFileInfo importFileInfo) {
if (!StrUtil.equals(importFileInfo.getParentId(), ElectromagneticConstants.PRJ_PARENT_ID)) {
return;

View File

@ -1,35 +1,35 @@
import com.electromagnetic.industry.software.common.cons.UserConstants;
import com.electromagnetic.industry.software.common.pojo.UserLoginInfo;
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
import com.electromagnetic.industry.software.manage.Application;
import com.electromagnetic.industry.software.manage.config.ElePropertyConfig;
import com.electromagnetic.industry.software.manage.service.ImportPrjService;
import com.electromagnetic.industry.software.manage.service.ImportTableService;
import jakarta.annotation.Resource;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest(classes = Application.class)
public class ImportTableTest {
@Resource
private ImportTableService importTableService;
@Resource
private ImportPrjService importPrjService;
@Resource
private ElePropertyConfig elePropertyConfig;
public void testImportPrj() {
UserLoginInfo userLoginInfo = new UserLoginInfo();
userLoginInfo.setUserId("1916756770835075072");
userLoginInfo.setUsername("北航电磁仿真用户1");
userLoginInfo.setWorkNumber("");
userLoginInfo.setAdminType("");
userLoginInfo.setPrjTmpDir(elePropertyConfig.getEleTmpPath());
UserThreadLocal.set(userLoginInfo);
importPrjService.importPrj(null);
}
}
//import com.electromagnetic.industry.software.common.pojo.UserLoginInfo;
//import com.electromagnetic.industry.software.common.util.UserThreadLocal;
//import com.electromagnetic.industry.software.manage.Application;
//import com.electromagnetic.industry.software.manage.config.ElePropertyConfig;
//import com.electromagnetic.industry.software.manage.service.ImportPrjService;
//import com.electromagnetic.industry.software.manage.service.ImportTableService;
//import jakarta.annotation.Resource;
//import org.junit.jupiter.api.Test;
//import org.springframework.boot.test.context.SpringBootTest;
//
//@SpringBootTest(classes = Application.class)
//public class ImportTest {
//
// @Resource
// private ImportTableService importTableService;
// @Resource
// private ImportPrjService importPrjService;
// @Resource
// private ElePropertyConfig elePropertyConfig;
//
// @Test
// public void testImportPrj() {
// UserLoginInfo userLoginInfo = new UserLoginInfo();
// userLoginInfo.setUserId("1916756770835075072");
// userLoginInfo.setUsername("北航电磁仿真用户1");
// userLoginInfo.setWorkNumber("");
// userLoginInfo.setAdminType("");
// userLoginInfo.setPrjTmpDir(elePropertyConfig.getEleTmpPath());
// UserThreadLocal.set(userLoginInfo);
// importPrjService.importPrj(null);
//
// }
//
//
//}