新增了删除工程的接口

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; import org.springframework.web.multipart.MultipartFile;
@RestController @RestController
@RequestMapping("/data/ed/local/prj")
public class ImportPrjController { public class ImportPrjController {
@Resource @Resource
@ -41,9 +42,15 @@ public class ImportPrjController {
} }
@RequestMapping("/download") @RequestMapping("/download")
@UserOperation(value = "下载文件", modelName = UserOperationModuleEnum.IMPORT_PFJ) @UserOperation(value = "下载工程文件", modelName = UserOperationModuleEnum.IMPORT_PFJ)
public ResponseEntity<InputStreamResource> download(@RequestParam("id") String id, HttpServletResponse response) { public ResponseEntity<InputStreamResource> download(@RequestParam("id") String id, HttpServletResponse response) {
return importPrjService.download(id, 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); 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.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.conditions.query.LambdaQueryWrapper;
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.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.File;
import java.io.InputStream; import java.io.InputStream;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry; import java.util.zip.ZipEntry;
import java.util.zip.ZipFile; import java.util.zip.ZipFile;
@ -54,6 +56,7 @@ public class ImportPrjServiceImpl extends ServiceImpl<ImportPrjInfoMapper, Impor
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean importPrj(MultipartFile file) { public boolean importPrj(MultipartFile file) {
Assert.isTrue(Objects.equals(FileUtil.getSuffix(file.getOriginalFilename()), "zip"), "当前仅支持zip格式");
String zipTmpPath = elePropertyConfig.getEleTmpPath() + File.pathSeparator + UUID.randomUUID() + ".zip"; String zipTmpPath = elePropertyConfig.getEleTmpPath() + File.pathSeparator + UUID.randomUUID() + ".zip";
ZipFile zipFile = null; ZipFile zipFile = null;
try { 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) Page<ImportFileInfo> importFileInfoPage = this.baseMapper.selectPage(new Page<>(pageNum, pageSize), Wrappers.lambdaQuery(ImportFileInfo.class)
.select(ImportFileInfo::getId, ImportFileInfo::getFileName) .select(ImportFileInfo::getId, ImportFileInfo::getFileName)
.eq(ImportFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code) .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); List<ImportFileDirQueryVO> page = BeanUtil.copyToList(importFileInfoPage.getRecords(), ImportFileDirQueryVO.class);
return new RespPageVO<>(importFileInfoPage.getTotal(), page); return new RespPageVO<>(importFileInfoPage.getTotal(), page);
} }
@ -194,6 +198,20 @@ public class ImportPrjServiceImpl extends ServiceImpl<ImportPrjInfoMapper, Impor
return respPageVO; 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) { 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;

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