Преглед изворни кода

Merge branch 'feature-lihb-20250610' of http://219.151.181.73:3000/zhuwei/bladex into test-merge-02

LHB пре 3 месеци
родитељ
комит
20bae7ae07

+ 5 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/PrivateStandardDTO.java

@@ -24,4 +24,9 @@ public class PrivateStandardDTO extends PrivateStandard {
      * 文件
      */
     private List<StandardFile> standardFiles;
+
+    /**
+     * 当前规范文件下文件的数量
+     */
+    private Integer filesCount;
 }

+ 21 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/PrivateStandardController.java

@@ -120,6 +120,27 @@ public class PrivateStandardController {
         return R.data(save);
     }
 
+
+    /**
+     * 规范文件修改数据
+     *
+     * @param data 实体对象
+     * @param delIds 需要删除的规范文件id集合
+     * @param delFileIds 需要删除的文件id集合
+     * @param files 文件
+     * @return 新增结果
+     */
+    @PostMapping("updateTypeByTwo")
+    @ApiOperation(value = "规范文件修改数据")
+    public R<Boolean> updateTypeByTwo(@RequestPart("data") @Validated List<PrivateStandardDTO> data,
+                             @RequestPart("delIds") @Validated List<Long> delIds,
+                             @RequestPart("delFileIds") @Validated List<Long> delFileIds,
+                             @RequestPart("files") MultipartFile[] files) {
+        //封装数据
+        boolean save = this.privateStandardService.updateTypeByTwo(data,delIds,delFileIds,files);
+        return R.data(save);
+    }
+
     /**
      * 修改数据
      *

+ 3 - 2
blade-service/blade-business/src/main/java/org/springblade/business/controller/StandardInfoController.java

@@ -129,8 +129,9 @@ public class StandardInfoController {
      */
     @ApiOperation(value = "关联元素")
     @PostMapping("saveElementJoin")
-    public R<Boolean> setElementJoin(@RequestBody @Validated List<StandardInfoPrivateJoinVO> standardInfoPrivateJoins) {
-        Boolean b = this.uStandardInfoService.setElementJoin(standardInfoPrivateJoins);
+    public R<Boolean> setElementJoin(@RequestBody @Validated List<StandardInfoPrivateJoinVO> standardInfoPrivateJoins,
+                                     @RequestParam Long id) {
+        Boolean b = this.uStandardInfoService.setElementJoin(standardInfoPrivateJoins,id);
         return R.data(b);
     }
 

+ 3 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/PrivateStandardService.java

@@ -3,6 +3,7 @@ package org.springblade.business.service;
 import org.springblade.business.dto.PrivateStandardDTO;
 import org.springblade.business.entity.PrivateStandard;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
 
@@ -20,4 +21,6 @@ public interface PrivateStandardService extends IService<PrivateStandard> {
     boolean update(List<PrivateStandardDTO> privateStandards);
 
     boolean deleteFile(Long id);
+
+    boolean updateTypeByTwo(List<PrivateStandardDTO> data, List<Long> delIds, List<Long> delFileIds, MultipartFile[] files);
 }

+ 1 - 2
blade-service/blade-business/src/main/java/org/springblade/business/service/StandardInfoService.java

@@ -30,7 +30,7 @@ public interface StandardInfoService extends IService<StandardInfo> {
 
     Boolean setCondition(List<StandardInfoVO> standardInfoJoins, Long id);
 
-    Boolean setElementJoin(List<StandardInfoPrivateJoinVO> standardInfoPrivateJoins);
+    Boolean setElementJoin(List<StandardInfoPrivateJoinVO> standardInfoPrivateJoins,Long id);
 
     Boolean deleteConditionSet(Long leftId);
 
@@ -42,5 +42,4 @@ public interface StandardInfoService extends IService<StandardInfo> {
 
     List<StandardInfoPrivateJoinVO> effectPreview(String ids);
 
-    Boolean editConditionSet(List<StandardInfoVO> standardInfoJoins);
 }

+ 77 - 2
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/PrivateStandardServiceImpl.java

@@ -26,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
@@ -170,6 +171,14 @@ public class PrivateStandardServiceImpl extends ServiceImpl<PrivateStandardMappe
         try {
             //获取当前用户
             BladeUser user = SecureUtil.getUser();
+
+            //删除文件
+            List<StandardFile> list = standardFileService.list(Wrappers.<StandardFile>lambdaQuery()
+                    .eq(StandardFile::getStandardId, id));
+            for (StandardFile standardFile : list) {
+                deleteFile(standardFile.getId());
+            }
+            //更新西悉尼
             int update = baseMapper.update(null, Wrappers.<PrivateStandard>lambdaUpdate()
                     .set(PrivateStandard::getIsDeleted, 1)
                     .set(PrivateStandard::getUpdateUser, user.getUserId())
@@ -177,8 +186,6 @@ public class PrivateStandardServiceImpl extends ServiceImpl<PrivateStandardMappe
                     .or()
                     .eq(PrivateStandard::getParentId, id)
             );
-            //TODO 后续还要删除规范详细信息
-
 
             int update1 = standardInfoMapper.update(null, Wrappers.<StandardInfo>lambdaUpdate()
                     .set(StandardInfo::getIsDeleted, 1)
@@ -188,6 +195,7 @@ public class PrivateStandardServiceImpl extends ServiceImpl<PrivateStandardMappe
             standardInfoJoinMapper.updateJoin(user.getUserId(), 1, id);
             //TODo 还要删除与表单的关联信息
             standardInfoPrivateJoinMapper.updateJoin(user.getUserId(), 1, id);
+
             return update > 0;
         } catch (Exception e) {
             e.printStackTrace();
@@ -215,6 +223,73 @@ public class PrivateStandardServiceImpl extends ServiceImpl<PrivateStandardMappe
         }
         return false;
     }
+
+    @Override
+    @Transactional
+    public boolean updateTypeByTwo(List<PrivateStandardDTO> data,
+                                   List<Long> delIds,
+                                   List<Long> delFileIds,
+                                   MultipartFile[] allFiles) {
+        BladeUser user = SecureUtil.getUser();
+        //先删除文件
+        try {
+            List<StandardFile> standardFiles = standardFileService.listByIds(delFileIds);
+            for (StandardFile standardFile : standardFiles) {
+                this.deleteFile(standardFile.getId());
+            }
+            //删除规范文件
+            for (Long delId : delIds) {
+                delete(delId);
+            }
+        } catch (Exception e) {
+            throw new ServiceException("Oss删除文件失败");
+        }
+        try {
+            // 文件索引计数器
+            int fileIndex = 0;
+            for (PrivateStandardDTO dto : data) {
+                // 获取当前对象需要的文件数量
+                int fileCount = dto.getFilesCount();
+
+                // 为当前对象分配文件
+                MultipartFile[] objectFiles = new MultipartFile[fileCount];
+                for (int i = 0; i < fileCount; i++) {
+                    objectFiles[i] = allFiles[fileIndex++];
+                }
+                dto.setFiles(objectFiles);
+
+                //先上传文件,上传成功在执行添加
+                List<StandardFile> standardFiles = new ArrayList<>();
+                for (MultipartFile file : dto.getFiles()) {
+                    StandardFile standardFile = new StandardFile();
+                    standardFile.setId(SnowFlakeUtil.getId());
+                    standardFile.setStandardId(dto.getId());
+                    standardFile.setCreateUser(user.getUserId());
+                    String originalFilename = file.getOriginalFilename();
+                    standardFile.setFileName(originalFilename);
+                    originalFilename = "standard/" + dto.getId() + "|" + originalFilename;
+                    MockMultipartFile multipartFile = new MockMultipartFile("file", originalFilename, "application/pdf", file.getInputStream());
+                    //Oss上传 传特殊文件名 在oss中做特殊路径处理
+                    BladeFile bladeFile = newIOSSClient.uploadFileByInputStream(multipartFile);
+
+                    standardFile.setStandardFileUrl(bladeFile.getLink());
+                    standardFiles.add(standardFile);
+                }
+
+                //创建数据
+                PrivateStandard privateStandard = BeanUtil.copyProperties(dto, PrivateStandard.class);
+
+                //添加新文件
+                standardFileService.saveBatch(standardFiles);
+                //修改
+                baseMapper.updateById(privateStandard);
+                return true;
+            }
+            return false;
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+    }
 }
 
 

+ 13 - 51
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/UStandardInfoServiceImpl.java

@@ -223,7 +223,19 @@ public class UStandardInfoServiceImpl extends ServiceImpl<StandardInfoMapper, St
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Boolean setElementJoin(List<StandardInfoPrivateJoinVO> standardInfoPrivateJoins) {
+    public Boolean setElementJoin(List<StandardInfoPrivateJoinVO> standardInfoPrivateJoins, Long id) {
+        List<StandardInfo> standardInfoIds = baseMapper.selectList(Wrappers.<StandardInfo>lambdaQuery()
+                .eq(StandardInfo::getStandardId, id)
+                .eq(StandardInfo::getIsDeleted, 0));
+        if(CollectionUtil.isEmpty(standardInfoIds)){
+            throw new ServiceException("未查询到规范文件的信息");
+        }
+        List<Long> collect = standardInfoIds.stream().map(StandardInfo::getId).collect(Collectors.toList());
+        //删除当前规范文件下的条件设置
+        standardInfoPrivateJoinService.remove(Wrappers.<StandardInfoPrivateJoin>lambdaQuery()
+                .in(StandardInfoPrivateJoin::getStandardInfoId, collect));
+
+
         BladeUser user = SecureUtil.getUser();
         List<StandardInfoPrivateJoin> saveData = new ArrayList<>();
         List<Long> leftIds = new ArrayList<>();
@@ -252,10 +264,6 @@ public class UStandardInfoServiceImpl extends ServiceImpl<StandardInfoMapper, St
                     }
                 }
             }
-            //删除之前的关联关系
-            standardInfoPrivateJoinService.remove(Wrappers.<StandardInfoPrivateJoin>lambdaQuery()
-                    .in(StandardInfoPrivateJoin::getStandardInfoId, leftIds));
-
             return standardInfoPrivateJoinService.saveOrUpdateBatch(saveData);
         } catch (Exception e) {
             e.printStackTrace();
@@ -325,52 +333,6 @@ public class UStandardInfoServiceImpl extends ServiceImpl<StandardInfoMapper, St
         List<Long> collect = Arrays.stream(ids.split(",")).map(Long::parseLong).collect(Collectors.toList());
         return baseMapper.effectPreview(collect);
     }
-
-    @Override
-    @Transactional
-    public Boolean editConditionSet(List<StandardInfoVO> standardInfoJoins) {
-        BladeUser user = SecureUtil.getUser();
-        //先删除,在添加
-        List<Long> leftIds = new ArrayList<>();
-        //获取参宿
-        List<StandardInfoJoinDTO> list = new ArrayList<>();
-        //新增数据
-        List<StandardInfoJoin> saveData = new ArrayList<>();
-        //解析参数
-        for (StandardInfoVO standardInfoJoin : standardInfoJoins) {
-            StandardInfoJoinDTO standardInfoJoinDTO = new StandardInfoJoinDTO();
-
-            Long leftId = standardInfoJoin.getId();
-            standardInfoJoinDTO.setLeftId(leftId);
-            leftIds.add(leftId);
-            List<StandardInfoConditionVo> standardInfos = standardInfoJoin.getStandardInfos();
-            for (StandardInfoConditionVo standardInfo : standardInfos) {
-                StandardInfoGroupNameVO standardInfoGroupNameVO = standardInfo.getStandardInfoGroupNameVO();
-                List<Long> ids = standardInfoGroupNameVO.getIds();
-                standardInfoJoinDTO.getRightIds().addAll(ids);
-            }
-            list.add(standardInfoJoinDTO);
-        }
-
-
-        for (StandardInfoJoinDTO standardInfoJoin : list) {
-
-            List<Long> rightIds = standardInfoJoin.getRightIds();
-            for (Long rightId : rightIds) {
-                StandardInfoJoin uStandardInfoJoin = new StandardInfoJoin();
-                uStandardInfoJoin.setId(SnowFlakeUtil.getId());
-                uStandardInfoJoin.setStandardInfoLeftId(standardInfoJoin.getLeftId());
-                uStandardInfoJoin.setStandardInfoRightId(rightId);
-                uStandardInfoJoin.setCreateUser(user.getUserId());
-                saveData.add(uStandardInfoJoin);
-            }
-        }
-
-        boolean remove = standardInfoJoinService.remove(Wrappers.<StandardInfoJoin>lambdaQuery()
-                .in(StandardInfoJoin::getStandardInfoLeftId, leftIds));
-
-        return standardInfoJoinService.saveOrUpdateBatch(saveData);
-    }
 }