|
@@ -8,9 +8,9 @@ import cn.cslg.pas.common.model.cronModel.SystemFile;
|
|
|
import cn.cslg.pas.common.utils.CacheUtils;
|
|
|
import cn.cslg.pas.common.utils.LoginUtils;
|
|
|
import cn.cslg.pas.common.vo.TechnicalCaseVO;
|
|
|
-import cn.cslg.pas.domain.business.NoveltyProject;
|
|
|
-import cn.cslg.pas.domain.business.Project;
|
|
|
-import cn.cslg.pas.domain.business.TechnicalCase;
|
|
|
+import cn.cslg.pas.domain.BaseEntity;
|
|
|
+import cn.cslg.pas.domain.business.*;
|
|
|
+import cn.cslg.pas.mapper.AssoTechnicalCaseFileMapper;
|
|
|
import cn.cslg.pas.mapper.TechnicalCaseMapper;
|
|
|
import cn.cslg.pas.service.common.FileManagerService;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
@@ -26,11 +26,13 @@ import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Propagation;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
@Slf4j
|
|
@@ -43,14 +45,20 @@ public class TechnicalCaseService extends ServiceImpl<TechnicalCaseMapper, Techn
|
|
|
private FileManagerService fileManagerService;
|
|
|
|
|
|
@Autowired
|
|
|
+ private AssoTechnicalCaseFileMapper assoTechnicalCaseFileMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private AssoTechnicalCaseFileService assoTechnicalCaseFileService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
private TechnicalCaseMapper technicalCaseMapper;
|
|
|
|
|
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
|
|
|
public Integer addOrUpdateTechnicalCase(AddTechnicalCaseDTO vo) {
|
|
|
+ PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
|
|
|
Integer technicalCaseId = null;
|
|
|
if (vo.getTechnicalCaseId() == null) {
|
|
|
if (vo.getProjectId() == null) {
|
|
|
- PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
|
|
|
Project project = new Project();
|
|
|
project.setType(4);
|
|
|
project.setCreateId(personnelVO.getId());
|
|
@@ -71,6 +79,28 @@ public class TechnicalCaseService extends ServiceImpl<TechnicalCaseMapper, Techn
|
|
|
technicalCase.updateById();
|
|
|
technicalCaseId = technicalCase.getId();
|
|
|
}
|
|
|
+
|
|
|
+ List<AssoTechnicalCaseFile> technicalCaseFiles = assoTechnicalCaseFileMapper.selectList(new LambdaQueryWrapper<AssoTechnicalCaseFile>()
|
|
|
+ .eq(AssoTechnicalCaseFile::getTechnicalCaseId, technicalCaseId));
|
|
|
+ if (!CollectionUtils.isEmpty(technicalCaseFiles)) {
|
|
|
+ List<Integer> collect = technicalCaseFiles.stream().map(BaseEntity::getId).collect(Collectors.toList());
|
|
|
+ assoTechnicalCaseFileMapper.deleteBatchIds(collect);
|
|
|
+ }
|
|
|
+ //添加技术方案和图片关联
|
|
|
+ List<AssoTechnicalCaseFile> assoTechnicalCaseFiles = new ArrayList<>();
|
|
|
+ List<String> fileGuids = vo.getFileGuids();
|
|
|
+ if (!CollectionUtils.isEmpty(fileGuids)) {
|
|
|
+ for (String fileGuid : fileGuids) {
|
|
|
+ AssoTechnicalCaseFile assoTechnicalCaseFile = new AssoTechnicalCaseFile();
|
|
|
+ assoTechnicalCaseFile.setTechnicalCaseId(technicalCaseId);
|
|
|
+ assoTechnicalCaseFile.setFileGuid(fileGuid);
|
|
|
+ assoTechnicalCaseFile.setCreateId(personnelVO.getId());
|
|
|
+ assoTechnicalCaseFiles.add(assoTechnicalCaseFile);
|
|
|
+ }
|
|
|
+ if (!CollectionUtils.isEmpty(assoTechnicalCaseFiles)) {
|
|
|
+ assoTechnicalCaseFileService.saveBatch(assoTechnicalCaseFiles);
|
|
|
+ }
|
|
|
+ }
|
|
|
return technicalCaseId;
|
|
|
}
|
|
|
|
|
@@ -80,9 +110,10 @@ public class TechnicalCaseService extends ServiceImpl<TechnicalCaseMapper, Techn
|
|
|
TechnicalCaseVO technicalCaseVO = new TechnicalCaseVO();
|
|
|
BeanUtils.copyProperties(technicalCase, technicalCaseVO);
|
|
|
technicalCaseVO.setTechnicalCaseId(technicalCase.getId());
|
|
|
- if (StringUtils.isNotEmpty(technicalCaseVO.getPicture())) {
|
|
|
- List<String> guids = new ArrayList<>();
|
|
|
- guids.add(technicalCaseVO.getPicture());
|
|
|
+ List<AssoTechnicalCaseFile> assoTechnicalCaseFiles = assoTechnicalCaseFileMapper.selectList(new LambdaQueryWrapper<AssoTechnicalCaseFile>()
|
|
|
+ .eq(AssoTechnicalCaseFile::getTechnicalCaseId, technicalCase.getId()));
|
|
|
+ if (!CollectionUtils.isEmpty(assoTechnicalCaseFiles)) {
|
|
|
+ List<String> guids = assoTechnicalCaseFiles.stream().map(AssoTechnicalCaseFile::getFileGuid).collect(Collectors.toList());
|
|
|
String res = null;
|
|
|
try {
|
|
|
res = fileManagerService.getSystemFileFromFMS(guids);
|
|
@@ -90,7 +121,7 @@ public class TechnicalCaseService extends ServiceImpl<TechnicalCaseMapper, Techn
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
if (StringUtils.isNotEmpty(res)) {
|
|
|
- final List<SystemFile> systemFiles = JSON.parseArray(res, SystemFile.class);
|
|
|
+ List<SystemFile> systemFiles = JSON.parseArray(res, SystemFile.class);
|
|
|
technicalCaseVO.setSystemFileList(systemFiles);
|
|
|
}
|
|
|
}
|
|
@@ -98,6 +129,10 @@ public class TechnicalCaseService extends ServiceImpl<TechnicalCaseMapper, Techn
|
|
|
}
|
|
|
|
|
|
public void deleteTechnicalCase(TechnicalCaseIdDTO vo) {
|
|
|
+ LambdaQueryWrapper<AssoTechnicalCaseFile> deleteFileWrapper = new LambdaQueryWrapper<>();
|
|
|
+ deleteFileWrapper.eq(AssoTechnicalCaseFile::getTechnicalCaseId, vo.getTechnicalCaseId());
|
|
|
+ assoTechnicalCaseFileService.remove(deleteFileWrapper);
|
|
|
+
|
|
|
this.removeById(vo.getTechnicalCaseId());
|
|
|
}
|
|
|
}
|