|
|
|
|
@ -37,6 +37,8 @@ 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; |
|
|
|
|
@ -94,23 +96,31 @@ public class QualityFileServiceImpl extends BaseServiceImpl<QualityFileMapper, Q |
|
|
|
|
@Override |
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
public boolean saveOrUpdateDTO(QualityFileDTO qualityFile) { |
|
|
|
|
|
|
|
|
|
// 临时将部门id转串存表
|
|
|
|
|
Set<String> deptIds1 = qualityFile.getDeptIds(); |
|
|
|
|
String resultDeptStr = ""; |
|
|
|
|
for (String s : deptIds1) { |
|
|
|
|
resultDeptStr += s + ","; |
|
|
|
|
} |
|
|
|
|
qualityFile.setActiveDeptIds(resultDeptStr); |
|
|
|
|
|
|
|
|
|
// 新增和修改质量文件主表
|
|
|
|
|
qualityFileService.saveOrUpdate(qualityFile); |
|
|
|
|
|
|
|
|
|
Long qualityFileId = qualityFile.getId(); |
|
|
|
|
|
|
|
|
|
qualityFileDeptRelService.removeByQualityFileId(qualityFileId); |
|
|
|
|
Set<Long> deptIds = qualityFile.getDeptIds(); |
|
|
|
|
qualityFileDeptRelService.saveBatch(deptIds.stream() |
|
|
|
|
.map(deptId -> QualityFileDeptRel.builder().qualityFileId(qualityFileId).deptId(deptId).build()) |
|
|
|
|
.collect(Collectors.toList())); |
|
|
|
|
|
|
|
|
|
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(); |
|
|
|
|
|
|
|
|
|
qualityStorageFileRelService.removeByQualityFileId(qualityFileId); |
|
|
|
|
fileRels.forEach(dto -> dto.setQualityFileId(qualityFileId)); |
|
|
|
|
|
|
|
|
|
int pageCount = storageFileService.countPageCount(fileRels.stream() |
|
|
|
|
.map(QualityStorageFileRel::getStorageFileId) |
|
|
|
|
.collect(Collectors.toSet())); |
|
|
|
|
int pageCount = storageFileService.countPageCount(fileRels.stream().map(QualityStorageFileRel::getStorageFileId).collect(Collectors.toSet())); |
|
|
|
|
qualityStorageFileRelService.saveBatch(new ArrayList<>(fileRels)); |
|
|
|
|
|
|
|
|
|
qualityFile.setPageCount(pageCount); |
|
|
|
|
|