|
|
|
|
@ -16,20 +16,19 @@ |
|
|
|
|
*/ |
|
|
|
|
package org.springblade.file.service.impl; |
|
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
|
|
|
|
import org.springblade.core.tool.api.R; |
|
|
|
|
import org.springblade.core.tool.utils.Func; |
|
|
|
|
import org.springblade.core.tool.utils.StringUtil; |
|
|
|
|
import org.springblade.file.dto.QualityFileDTO; |
|
|
|
|
import org.springblade.file.dto.QualityStorageFileRelDTO; |
|
|
|
|
import org.springblade.file.entity.QualityFile; |
|
|
|
|
import org.springblade.file.entity.QualityFileAssistent; |
|
|
|
|
import org.springblade.file.entity.QualityFileDeptRel; |
|
|
|
|
import org.springblade.file.entity.QualityStorageFileRel; |
|
|
|
|
import org.springblade.file.service.IQualityFileDeptRelService; |
|
|
|
|
import org.springblade.file.service.IQualityStorageFileRelService; |
|
|
|
|
import org.springblade.file.service.IStorageFileService; |
|
|
|
|
import org.springblade.file.service.*; |
|
|
|
|
import org.springblade.file.vo.QualityFileVO; |
|
|
|
|
import org.springblade.file.mapper.QualityFileMapper; |
|
|
|
|
import org.springblade.file.service.IQualityFileService; |
|
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
|
import org.springblade.system.feign.ISysClient; |
|
|
|
|
import org.springframework.context.annotation.Lazy; |
|
|
|
|
@ -37,8 +36,6 @@ import org.springframework.stereotype.Service; |
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
|
import javax.validation.constraints.NotEmpty; |
|
|
|
|
import javax.validation.constraints.NotNull; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Set; |
|
|
|
|
@ -61,16 +58,19 @@ public class QualityFileServiceImpl extends BaseServiceImpl<QualityFileMapper, Q |
|
|
|
|
|
|
|
|
|
private final IStorageFileService storageFileService; |
|
|
|
|
|
|
|
|
|
private final IQualityFileAssistentService qualityFileAssistentService; |
|
|
|
|
|
|
|
|
|
private final ISysClient sysClient; |
|
|
|
|
|
|
|
|
|
public QualityFileServiceImpl(@Lazy IQualityFileService qualityFileService, |
|
|
|
|
IQualityStorageFileRelService qualityStorageFileRelService, |
|
|
|
|
IQualityFileDeptRelService qualityFileDeptRelService, |
|
|
|
|
IStorageFileService storageFileService, ISysClient sysClient) { |
|
|
|
|
IStorageFileService storageFileService, IQualityFileAssistentService qualityFileAssistentService, ISysClient sysClient) { |
|
|
|
|
this.qualityFileService = qualityFileService; |
|
|
|
|
this.qualityStorageFileRelService = qualityStorageFileRelService; |
|
|
|
|
this.qualityFileDeptRelService = qualityFileDeptRelService; |
|
|
|
|
this.storageFileService = storageFileService; |
|
|
|
|
this.qualityFileAssistentService = qualityFileAssistentService; |
|
|
|
|
this.sysClient = sysClient; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -105,22 +105,26 @@ public class QualityFileServiceImpl extends BaseServiceImpl<QualityFileMapper, Q |
|
|
|
|
} |
|
|
|
|
qualityFile.setActiveDeptIds(resultDeptStr); |
|
|
|
|
|
|
|
|
|
// 新增和修改质量文件主表
|
|
|
|
|
// 新增或修改质量文件主表
|
|
|
|
|
qualityFileService.saveOrUpdate(qualityFile); |
|
|
|
|
|
|
|
|
|
Long qualityFileId = qualityFile.getId(); |
|
|
|
|
|
|
|
|
|
//移除质量文件主表与部门关联表中的相关记录
|
|
|
|
|
qualityFileDeptRelService.removeByQualityFileId(qualityFileId); |
|
|
|
|
|
|
|
|
|
//将新的部门关系加入到质量文件主表与部门关联表中
|
|
|
|
|
Set<String> deptIds = qualityFile.getDeptIds(); |
|
|
|
|
qualityFileDeptRelService.saveBatch(deptIds.stream().map(deptId -> QualityFileDeptRel.builder().qualityFileId(qualityFileId).deptId(deptId).build()).collect(Collectors.toList())); |
|
|
|
|
|
|
|
|
|
Set<QualityStorageFileRelDTO> fileRels = qualityFile.getFiles(); |
|
|
|
|
|
|
|
|
|
//根据主表ID删除文件与存储关联的相关记录
|
|
|
|
|
qualityStorageFileRelService.removeByQualityFileId(qualityFileId); |
|
|
|
|
fileRels.forEach(dto -> dto.setQualityFileId(qualityFileId)); |
|
|
|
|
|
|
|
|
|
int pageCount = storageFileService.countPageCount(fileRels.stream().map(QualityStorageFileRel::getStorageFileId).collect(Collectors.toSet())); |
|
|
|
|
//重新保存文件与存储关联关系
|
|
|
|
|
qualityStorageFileRelService.saveBatch(new ArrayList<>(fileRels)); |
|
|
|
|
|
|
|
|
|
qualityFile.setPageCount(pageCount); |
|
|
|
|
@ -129,4 +133,44 @@ public class QualityFileServiceImpl extends BaseServiceImpl<QualityFileMapper, Q |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
public boolean updateFile(QualityFile qualityFile) { |
|
|
|
|
//先更新主表信息
|
|
|
|
|
qualityFileService.updateById(qualityFile); |
|
|
|
|
LambdaUpdateWrapper<QualityFileAssistent> ass = new LambdaUpdateWrapper<>(); |
|
|
|
|
ass.eq(QualityFileAssistent::getQualityFileId, qualityFile.getId()).set(QualityFileAssistent::getStatus ,0); |
|
|
|
|
|
|
|
|
|
//更新子表信息
|
|
|
|
|
//先将所有符合条件的状态赋值为0,未激活
|
|
|
|
|
qualityFileAssistentService.update(ass); |
|
|
|
|
|
|
|
|
|
//然后将当前激活版本的状态赋值1
|
|
|
|
|
ass.eq(QualityFileAssistent::getVersion, qualityFile.getVersion()).set(QualityFileAssistent::getStatus ,1); |
|
|
|
|
qualityFileAssistentService.update(ass); |
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
public boolean removeFiles(String ids) { |
|
|
|
|
List<Long> longs = Func.toLongList(ids); |
|
|
|
|
for(Long l : longs){ |
|
|
|
|
//逻辑删除主表
|
|
|
|
|
LambdaUpdateWrapper<QualityFile> qualityWrapper = new LambdaUpdateWrapper<>(); |
|
|
|
|
qualityWrapper.eq(QualityFile::getId , l).set(QualityFile::getIsDeleted , 1); |
|
|
|
|
qualityFileService.update(qualityWrapper); |
|
|
|
|
|
|
|
|
|
//逻辑删除从表
|
|
|
|
|
LambdaUpdateWrapper<QualityFileAssistent> assWrapper = new LambdaUpdateWrapper<>(); |
|
|
|
|
assWrapper.eq(QualityFileAssistent::getQualityFileId , l).set(QualityFileAssistent::getIsDeleted , 1); |
|
|
|
|
qualityFileAssistentService.update(assWrapper); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|