|
@@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import io.swagger.annotations.ApiModelProperty;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
+import org.springblade.archive.entity.ArchivesAuto;
|
|
|
import org.springblade.archive.entity.ScanFile;
|
|
|
import org.springblade.archive.entity.ScanFolder;
|
|
|
import org.springblade.archive.mapper.ScanFileMapper;
|
|
@@ -12,14 +14,19 @@ import org.springblade.archive.mapper.ScanFolderMapper;
|
|
|
import org.springblade.archive.service.ScanFileService;
|
|
|
import org.springblade.archive.utils.FileUtils;
|
|
|
import org.springblade.archive.vo.ScanFolderVO;
|
|
|
+import org.springblade.business.entity.ArchiveFile;
|
|
|
+import org.springblade.business.feign.ArchiveFileClient;
|
|
|
import org.springblade.common.utils.SnowFlakeUtil;
|
|
|
import org.springblade.core.mp.support.Query;
|
|
|
import org.springblade.core.oss.model.BladeFile;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.core.tool.utils.Func;
|
|
|
import org.springblade.core.tool.utils.StringUtil;
|
|
|
+import org.springblade.manager.entity.ArchiveTreeContract;
|
|
|
+import org.springblade.manager.feign.ArchiveTreeContractClient;
|
|
|
import org.springblade.resource.feign.NewIOSSClient;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
+import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import java.io.File;
|
|
|
import java.io.IOException;
|
|
@@ -31,6 +38,7 @@ import java.nio.file.attribute.BasicFileAttributes;
|
|
|
import java.security.DigestInputStream;
|
|
|
import java.security.MessageDigest;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -50,6 +58,10 @@ public class ScanFileServiceImpl extends ServiceImpl<ScanFileMapper, ScanFile>
|
|
|
private final ScanFolderMapper scanFolderMapper;
|
|
|
private final ScanFileMapper scanFileMapper;
|
|
|
private final NewIOSSClient newIOSSClient;
|
|
|
+ private final ArchiveTreeContractClient archiveTreeContractClient;
|
|
|
+ private final JdbcTemplate jdbcTemplate;
|
|
|
+ private final ArchiveFileClient archiveFileClient;
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -104,9 +116,9 @@ public class ScanFileServiceImpl extends ServiceImpl<ScanFileMapper, ScanFile>
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public IPage<ScanFile> getScanFile(Long contractId, Long projectId, Long folderId, Query query) {
|
|
|
+ public IPage<ScanFile> getScanFile(Long contractId, Long projectId, Long folderId, Query query,Integer move) {
|
|
|
IPage<ScanFile> page = new Page<>(query.getCurrent(), query.getSize());
|
|
|
- page=baseMapper.getScanFile(page,contractId,projectId,folderId);
|
|
|
+ page=baseMapper.getScanFile(page,contractId,projectId,folderId,move);
|
|
|
return page;
|
|
|
}
|
|
|
|
|
@@ -124,10 +136,51 @@ public class ScanFileServiceImpl extends ServiceImpl<ScanFileMapper, ScanFile>
|
|
|
public Boolean autoRecognize(String ids) {
|
|
|
List<Long> longList = Func.toLongList(ids);
|
|
|
List<ScanFile> scanFiles = baseMapper.selectList(new LambdaQueryWrapper<>(ScanFile.class).in(ScanFile::getId, longList));
|
|
|
-
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean moveScanFile(List<Long> ids, Long nodeId) {
|
|
|
+ try {
|
|
|
+ List<ScanFile> scanFiles = baseMapper.selectList(new LambdaQueryWrapper<>(ScanFile.class).in(ScanFile::getId, ids));
|
|
|
+ ArchiveTreeContract contract = archiveTreeContractClient.getArchiveTreeContractById(nodeId);
|
|
|
+ String sql="select IFNULL(max(sort),0) from u_archive_file where project_id="+contract.getProjectId()+" and contract_id="+contract.getContractId()+" and is_deleted=0";
|
|
|
+ Integer sort = jdbcTemplate.queryForObject(sql, Integer.class);
|
|
|
+ List<ArchiveFile>list=new ArrayList<>();
|
|
|
+ if(contract!=null){
|
|
|
+ for (ScanFile file : scanFiles) {
|
|
|
+ ArchiveFile archiveFile = new ArchiveFile();
|
|
|
+ archiveFile.setId(SnowFlakeUtil.getId());
|
|
|
+ archiveFile.setProjectId(contract.getProjectId()+"");
|
|
|
+ archiveFile.setContractId(contract.getContractId()+"");
|
|
|
+ archiveFile.setNodeId(nodeId+"");
|
|
|
+ archiveFile.setFileNumber(file.getFileNum());
|
|
|
+ archiveFile.setFileName(file.getFileName());
|
|
|
+ archiveFile.setFileTime(file.getFileDate());
|
|
|
+ archiveFile.setFileUrl(file.getOssUrl());
|
|
|
+ archiveFile.setPdfFileUrl(file.getOssUrl());
|
|
|
+ archiveFile.setFilePage(file.getFileSize()!=null?Integer.parseInt(file.getFileSize()):0);
|
|
|
+ archiveFile.setIsApproval(0);
|
|
|
+ archiveFile.setIsNeedCertification(0);
|
|
|
+ archiveFile.setIsCertification(0);
|
|
|
+ archiveFile.setDutyUser(file.getResponsible());
|
|
|
+ archiveFile.setIsArchive(0);
|
|
|
+ archiveFile.setSourceType(2);
|
|
|
+ archiveFile.setIsElement(0);
|
|
|
+ archiveFile.setClassify(contract.getClassify());
|
|
|
+ archiveFile.setNodeTreeStructure(contract.getTreeStructure());
|
|
|
+ archiveFile.setSort(sort++);
|
|
|
+ list.add(archiveFile);
|
|
|
+ }
|
|
|
+ archiveFileClient.saveBatchArchiveFile(list);
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }catch (Exception e){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 入口方法:扫描并入库指定contractId的所有文件夹
|
|
|
* @param contractId 传入的合同ID(对应D:\PDF下的文件夹名)
|
|
@@ -259,7 +312,7 @@ public class ScanFileServiceImpl extends ServiceImpl<ScanFileMapper, ScanFile>
|
|
|
|
|
|
@Override
|
|
|
public void sortNumber(Long contractId, Long projectId) {
|
|
|
- List<ScanFile> scanFiles = scanFileMapper.selectList(new LambdaQueryWrapper<ScanFile>().eq(ScanFile::getContractId, contractId).eq(ScanFile::getProjectId, projectId).isNull(ScanFile::getSort).isNull(ScanFile::getDigitalNum).orderByDesc(ScanFile::getFileDate));
|
|
|
+ List<ScanFile> scanFiles = scanFileMapper.selectList(new LambdaQueryWrapper<ScanFile>().eq(ScanFile::getContractId, contractId).eq(ScanFile::getProjectId, projectId).isNull(ScanFile::getSort).isNull(ScanFile::getDigitalNum).orderByAsc(ScanFile::getCreatTime));
|
|
|
Integer maxDigitalNum=scanFileMapper.selectMaxDigitalNum(contractId,projectId);
|
|
|
if(maxDigitalNum==null||maxDigitalNum<1){
|
|
|
maxDigitalNum=0;
|
|
@@ -359,6 +412,7 @@ public class ScanFileServiceImpl extends ServiceImpl<ScanFileMapper, ScanFile>
|
|
|
filePath,
|
|
|
bladeFile.getLink(),//OSS路径
|
|
|
null,//负责人
|
|
|
+ 0,
|
|
|
0
|
|
|
);
|
|
|
// 入库
|