瀏覽代碼

Merge remote-tracking branch 'origin/test-merge' into test-merge

LHB 1 周之前
父節點
當前提交
26f75e524c

+ 1 - 1
blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/dto/AddScanFileDto.java

@@ -7,7 +7,7 @@ public class AddScanFileDto {
     private Long projectId;
     private Long contractId;
     private String fileName;
-    private Long forderId;
+    private Long folderId;
     private Integer fileSize;
     private String ossUrl;
     private String responsible;

+ 2 - 2
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ScanFileController.java

@@ -143,13 +143,13 @@ public class ScanFileController {
     }
     @PostMapping("/addScanFile")
     @ApiOperation("新增节点扫描文件")
-    public R addScanFile(List<AddScanFileDto>list){
+    public R addScanFile(@RequestBody List<AddScanFileDto>list){
         return R.status(scanFileService.addScanFile(list));
     }
     @GetMapping("/deleteScanFolder")
     @ApiOperation("删除扫描文件夹")
     @ApiImplicitParam(name = "id", value = "文件夹ID")
-    public R deleteScanFolder(Long id){
+    public R deleteScanFolder(@RequestParam Long id){
         return R.status(scanFileService.deleteScanFolder(id));
     }
     @GetMapping("/getDetil")

+ 4 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ScanFolderMapper.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 import org.springblade.archive.entity.ScanFolder;
 
+import java.util.List;
+
 public interface ScanFolderMapper extends BaseMapper<ScanFolder> {
 
     int exists(@Param("projectId") Long projectId, @Param("contractId") Long contractId, @Param("folderName") String folderName);
@@ -12,4 +14,6 @@ public interface ScanFolderMapper extends BaseMapper<ScanFolder> {
 
 
     Long getId(@Param("folderName") String folderName, @Param("contractId") Long contractId, @Param("projectId") Long projectId);
+
+    List<ScanFolder> selectAllChildren(@Param("id") Long id);
 }

+ 3 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ScanFolderMapper.xml

@@ -9,4 +9,7 @@
     <select id="getId" resultType="java.lang.Long">
         select id from scan_folder where project_id = #{projectId} AND contract_id = #{contractId} AND folder_name = #{folderName}
     </select>
+    <select id="selectAllChildren" resultType="org.springblade.archive.entity.ScanFolder">
+        CALL GetScanFolderChildren(#{id})
+    </select>
 </mapper>

+ 3 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java

@@ -5373,6 +5373,7 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		//String url="D:\\AutoPdf\\";
 		//List<Long> idsList=Func.toLongList(ids);
 		List<ArchivesAuto> archivesAutoList = this.list(new LambdaQueryWrapper<ArchivesAuto>().in(ArchivesAuto::getId, idsList));
+		this.update(Wrappers.<ArchivesAuto>lambdaUpdate().set(ArchivesAuto::getColourStatus, 2).in(ArchivesAuto::getId, idsList));
 		for (ArchivesAuto auto : archivesAutoList) {
 			String sql=" select * from u_archive_file where is_deleted = 0 and archive_id="+auto.getId();
 			List<ArchiveFile> archiveFiles = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(ArchiveFile.class));
@@ -5429,6 +5430,8 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 
 			}finally {
 				FileUtils.removeFile(filePath);
+				String updateSql="update u_archives_auto set colour_status=1 where id="+auto.getId();
+				jdbcTemplate.execute(updateSql);
 			}
 		}
 		this.updateBatchById(archivesAutoList);

+ 25 - 7
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ScanFileServiceImpl.java

@@ -13,6 +13,7 @@ import org.springblade.archive.entity.ScanFolder;
 import org.springblade.archive.mapper.ScanFileMapper;
 import org.springblade.archive.mapper.ScanFolderMapper;
 import org.springblade.archive.service.ScanFileService;
+import org.springblade.archive.service.ScanFolderService;
 import org.springblade.archive.utils.FileUtils;
 import org.springblade.archive.vo.ScanFolderVO;
 import org.springblade.business.entity.ArchiveFile;
@@ -63,8 +64,7 @@ public class ScanFileServiceImpl  extends ServiceImpl<ScanFileMapper, ScanFile>
     private final ArchiveTreeContractClient archiveTreeContractClient;
     private final JdbcTemplate jdbcTemplate;
     private final ArchiveFileClient archiveFileClient;
-
-
+    private final ScanFolderService scanFolderService;
 
 
     @Override
@@ -225,7 +225,7 @@ public class ScanFileServiceImpl  extends ServiceImpl<ScanFileMapper, ScanFile>
         if(digitalNum==null||digitalNum<1){
             digitalNum=0;
         }
-        Integer sort = baseMapper.selectMaxSort(list.get(0).getContractId(), list.get(0).getProjectId(), list.get(0).getForderId());
+        Integer sort = baseMapper.selectMaxSort(list.get(0).getContractId(), list.get(0).getProjectId(), list.get(0).getFolderId());
         if(sort==null||sort<1){
             sort=0;
         }
@@ -244,14 +244,32 @@ public class ScanFileServiceImpl  extends ServiceImpl<ScanFileMapper, ScanFile>
 
     @Override
     public boolean deleteScanFolder(Long id) {
-        List<ScanFile> scanFiles = baseMapper.selectList(new LambdaQueryWrapper<>(ScanFile.class).eq(ScanFile::getFolderId, id));
-        if(scanFiles.size()>0){
-            throw new ServiceException("当前节点存在文件,无法删除");
+        List<ScanFolder> scanFolders = scanFolderMapper.selectAllChildren(id);
+        List<Long> longList = scanFolders.stream().map(ScanFolder::getId).collect(Collectors.toList());
+        List<ScanFile> scanFiles = baseMapper.selectList(new LambdaQueryWrapper<>(ScanFile.class).in(ScanFile::getFolderId, longList));
+        if(!scanFiles.isEmpty()){
+            throw new ServiceException("当前节点或子节点存在文件,无法删除");
+        }
+        for (ScanFolder folder : scanFolders) {
+            scanFolderMapper.deleteById(folder.getId());
+            this.deleteScanFolderLinux(folder.getId());
         }
-        scanFolderMapper.deleteById(id);
         return true;
     }
 
+    private void deleteScanFolderLinux(Long id) {
+        ScanFolder scanFolder = scanFolderMapper.selectById(id);
+        if (scanFolder != null&&scanFolder.getFolderPath()!=null){
+            File folder = new File(scanFolder.getFolderPath());
+            if (folder.exists()) {
+                boolean deleted = folder.delete();
+                if (!deleted) {
+                    throw new ServiceException("删除文件夹失败");
+                }
+            }
+        }
+    }
+
     /**
      * 入口方法:扫描并入库指定contractId的所有文件夹
      * @param contractId 传入的合同ID(对应D:\PDF下的文件夹名)

+ 6 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java

@@ -2372,6 +2372,12 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
             recordResignLog("一键重签", ids, queryList, requestMap, null, null, null);
         }
         taskProgressService.addTaskProgress(queryList.get(0).getProjectId(), queryList.get(0).getContractId(), 4,queryList.size(),ids);
+        try {
+            List<WbsTreeContractStatisticsDTO> collect = queryList.stream().map(WbsTreeContractStatisticsDTO::new).collect(Collectors.toList());
+            wbsTreeContractStatisticsClient.updateInformationQueryStatus(collect);
+        } catch (Exception e) {
+            log.error("更新统计异常", e);
+        }
         return R.success("操作成功");
     }
 

+ 2 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TextdictInfoController.java

@@ -423,7 +423,7 @@ public class TextdictInfoController extends BladeController {
                         String value;
                         if (type == 1) {
                             // 转数组格式
-                            value = String.format(" %s = if(substr(%s,1,1) = '[', %s, concat('[', substr(%s,1, if(instr(@v, '_^_') - 1 < 0, char_length(@v), instr(@v, '_^_') - 1) ,']', substr(%s, instr(%s, '_^_'))))", split[0], split[0], split[0], split[0], split[0], split[0]);
+                            value = String.format(" %s = if(substr(%s,1,1) = '[', %s, concat('[', @v := substr(%s,1, if(instr(%s, '_^_') - 1 < 0, char_length(%s), instr(%s, '_^_') - 1)), if(instr(@v,',') > 0, '', concat(',',@v)) ,']', substr(%s, instr(%s, '_^_'))))", split[0], split[0], split[0], split[0], split[0], split[0], split[0], split[0], split[0]);
                         } else {
                             // 转普通格式
                             value = String.format(" %s = if(substr(%s,1,1) = '[', concat(substr(%s, instr(%s, '[') + 1, (CHAR_LENGTH(%s) - instr(REVERSE(%s) , ']') - instr(%s, '['))), substr(%s, instr(%s, '_^_'))), %s)",
@@ -433,7 +433,7 @@ public class TextdictInfoController extends BladeController {
                             String value1;
                             if (type == 1) {
                                 // 转数组格式
-                                value1 = String.format(" key_201 = concat(SUBSTRING_INDEX(key_201,'%s:',1), '%s:', if(substr(@v := if(INSTR(SUBSTRING_INDEX(key_201, '%s:',-1),'$$') - 1 < 0, SUBSTRING_INDEX(key_201, '%s:',-1), SUBSTR(SUBSTRING_INDEX(key_201, '%s:',-1), 1 , INSTR(SUBSTRING_INDEX(key_201, '%s:',-1),'$$') - 1)) , 1, 1) = '[', @v, concat('[', substr(@v,1, if(instr(@v, '_^_') - 1 < 0, char_length(@v), instr(@v, '_^_') - 1) ,']', substr(@v, instr(@v, '_^_'))))  , if (INSTR(SUBSTRING_INDEX(key_201, 'key_16:',-1),'$$') - 1 < 0, '', concat('$$', SUBSTRING_INDEX(SUBSTRING_INDEX(key_201,'key_16:',-1),'$$',-1))) ) ",
+                                value1 = String.format(" key_201 = concat(SUBSTRING_INDEX(key_201,'%s:',1), '%s:', if(substr(@v := if(INSTR(SUBSTRING_INDEX(key_201, '%s:',-1),'$$') - 1 < 0, SUBSTRING_INDEX(key_201, '%s:',-1), SUBSTR(SUBSTRING_INDEX(key_201, '%s:',-1), 1 , INSTR(SUBSTRING_INDEX(key_201, '%s:',-1),'$$') - 1)) , 1, 1) = '[', @v, concat('[', @vv := substr(@v,1, if(instr(@v, '_^_') - 1 < 0, char_length(@v), instr(@v, '_^_') - 1), if(instr(@vv,',') > 0, '', concat(',',@vv)) ,']', substr(@v, instr(@v, '_^_'))))  , if (INSTR(SUBSTRING_INDEX(key_201, 'key_16:',-1),'$$') - 1 < 0, '', concat('$$', SUBSTRING_INDEX(SUBSTRING_INDEX(key_201,'key_16:',-1),'$$',-1))) ) ",
                                         split[0],split[0], split[0], split[0], split[0], split[0]);
                             } else {
                                 // 转普通格式