解决质量文件版本管理上传和查看文件时未关联版本添加数据问题

dev
swj 3 years ago
parent 704a457214
commit 95f2badd2e
  1. 26
      lab-service/lab-file/src/main/java/org/springblade/file/controller/StorageFileController.java
  2. 2
      lab-service/lab-file/src/main/java/org/springblade/file/service/IStorageFileService.java
  3. 12
      lab-service/lab-file/src/main/java/org/springblade/file/service/impl/QualityFileServiceImpl.java
  4. 10
      lab-service/lab-file/src/main/java/org/springblade/file/service/impl/StorageFileServiceImpl.java
  5. 11
      lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineResultController.java

@ -157,15 +157,13 @@ public class StorageFileController extends BladeController {
@PostMapping("/upload")
@ApiOperationSupport(order = 0)
@ApiOperation(value = "上传文件", notes = "上传文件")
public R upload(@ApiParam(value = "上传的文件", required = true)
@Valid @NotNull
@RequestParam("file") MultipartFile file,Long assistentFileId) {
public R upload(@ApiParam(value = "上传的文件", required = true) @Valid @NotNull @RequestParam("file") MultipartFile file) {
if (file.isEmpty()) {
return R.fail("文件不能为空");
}
String originalFilename = file.getOriginalFilename();
InputStream inputStream = file.getInputStream();
StorageFile storageFile = storageFileService.storageFileAndSave(originalFilename, inputStream, assistentFileId);
StorageFile storageFile = storageFileService.storageFileAndSave(originalFilename, inputStream);
return R.data(storageFile);
}
@ -182,25 +180,21 @@ public class StorageFileController extends BladeController {
@GetMapping("/download/{id}")
@ApiOperationSupport(order = 0)
@ApiOperation(value = "下载文件", notes = "下载文件")
public void download(@ApiParam(value = "下载的文件id", required = true)
@Valid @NotNull
@PathVariable("id") Long id) {
//获取文件主体
LambdaQueryWrapper<QualityFile> fileQueryWrapper = new LambdaQueryWrapper<>();
fileQueryWrapper.eq(QualityFile::getId, id);
QualityFile file = qualityFileService.getOne(fileQueryWrapper);
//根据主体中激活的版本查找子文件
public void download(@ApiParam(value = "下载的文件id", required = true) @Valid @NotNull @PathVariable("id") Long id) {
// 获取文件主体
QualityFile file = qualityFileService.getById(id);
// 根据主体中激活的版本查找子文件
LambdaQueryWrapper<QualityFileAssistent> fileAssQueryWrapper = new LambdaQueryWrapper<>();
fileAssQueryWrapper.eq(QualityFileAssistent::getQualityFileId ,id ).eq(QualityFileAssistent::getVersion, file.getVersion());
fileAssQueryWrapper.eq(QualityFileAssistent::getQualityFileId, id).eq(QualityFileAssistent::getVersion, file.getVersion());
QualityFileAssistent assisFile = qualityFileAssistentService.getOne(fileAssQueryWrapper);
//根据子文件id查找文件真正的保存的文件id
// 根据子文件id查找文件真正的保存的文件id
LambdaQueryWrapper<QualityStorageFileRel> qualityStorageFileRelLambdaQueryWrapper = new LambdaQueryWrapper<>();
qualityStorageFileRelLambdaQueryWrapper.eq(QualityStorageFileRel::getQualityFileId, assisFile.getId());
QualityStorageFileRel storageFileRel = qualityStorageFileRelService.getOne(qualityStorageFileRelLambdaQueryWrapper);
//查询
// 查询
InputStream inputStream = storageFileService.getInputStreamById(storageFileRel.getStorageFileId());
ResponseUtil.download(response, null, inputStream, "application/pdf");
}

@ -45,7 +45,7 @@ public interface IStorageFileService extends BaseService<StorageFile> {
InputStream getInputStreamById(Long id);
StorageFile storageFileAndSave(String originalFilename, InputStream inputStream, Long id) throws IOException;
StorageFile storageFileAndSave(String originalFilename, InputStream inputStream) throws IOException;
int countPageCount(Collection<Long> ids);
}

@ -17,6 +17,7 @@
package org.springblade.file.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import org.apache.commons.lang.math.RandomUtils;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil;
@ -106,8 +107,17 @@ public class QualityFileServiceImpl extends BaseServiceImpl<QualityFileMapper, Q
qualityFile.setActiveDeptIds(resultDeptStr);
// 新增或修改质量文件主表
long fileId = RandomUtils.nextLong();
qualityFile.setId(fileId);
qualityFileService.saveOrUpdate(qualityFile);
QualityFileAssistent assistent = new QualityFileAssistent();
assistent.setVersion(1);
assistent.setStatus(1);
assistent.setName("默认名称");
assistent.setQualityFileId(qualityFile.getId());
qualityFileAssistentService.save(assistent);
Long qualityFileId = qualityFile.getId();
//移除质量文件主表与部门关联表中的相关记录
@ -120,7 +130,7 @@ public class QualityFileServiceImpl extends BaseServiceImpl<QualityFileMapper, Q
Set<QualityStorageFileRelDTO> fileRels = qualityFile.getFiles();
//根据主表ID删除文件与存储关联的相关记录
qualityStorageFileRelService.removeByQualityFileId(qualityFileId);
// qualityStorageFileRelService.removeByQualityFileId(qualityFileId);
fileRels.forEach(dto -> dto.setQualityFileId(qualityFileId));
int pageCount = storageFileService.countPageCount(fileRels.stream().map(QualityStorageFileRel::getStorageFileId).collect(Collectors.toSet()));

@ -90,8 +90,7 @@ public class StorageFileServiceImpl extends BaseServiceImpl<StorageFileMapper, S
}
@Override
@Transactional(rollbackFor = Exception.class)
public StorageFile storageFileAndSave(String originalFilename, InputStream inputStream, Long assistentFileId) throws IOException {
public StorageFile storageFileAndSave(String originalFilename, InputStream inputStream) throws IOException {
String path = UUID.randomUUID().toString().replaceAll("-", "");
File localFile = Paths.get(basePath, path).toFile();
FileOutputStream outputStream = new FileOutputStream(localFile);
@ -100,16 +99,9 @@ public class StorageFileServiceImpl extends BaseServiceImpl<StorageFileMapper, S
IoUtil.closeQuietly(outputStream);
StorageFile storageFile = new StorageFile();
long id = RandomUtils.nextLong();
storageFile.setId(id);
storageFile.setFilename(originalFilename);
storageFile.setPath(path);
this.save(storageFile);
// StorageFile file = this.getOne(Condition.getQueryWrapper(storageFile));
// QualityStorageFileRel rel = new QualityStorageFileRel();
// rel.setQualityFileId(assistentFileId);
// rel.setStorageFileId(file.getId());
// qualityStorageFileRelMapper.insert(rel);
return storageFile;
}

@ -1096,8 +1096,6 @@ public class ExamineResultController extends BladeController {
}
// 判断应实验样品数量和实际样品数量是否相等
System.out.println(experieNum.length + "experieNum.length_________________________________________________");
System.out.println(simpleCount + "simpleCount_____________________________________________________________");
if (experieNum.length != simpleCount) {
throw new Exception("分配样品数量与检测样品数量不一致!");
}
@ -1122,7 +1120,7 @@ public class ExamineResultController extends BladeController {
examineResult.setExamineId(Long.valueOf(examine.getId()));
examineResult.setOriginRecordData(JSON.toJSONString(allData));
// result.setOriginRecordResult(JSON.toJSONString(resultMap));
result.setOriginRecordResult(JSON.toJSONString(realResultMap));
examineResult.setOriginRecordResult(JSON.toJSONString(realResultMap));
examineResult.setExamineDataArr(JSON.toJSONString(allDatas));
service.save(examineResult);
}
@ -1146,6 +1144,7 @@ public class ExamineResultController extends BladeController {
// 用于存放每个格子的值,有顺序,无规则
List<Map<String, Object>> allDatas = new ArrayList<>();
List<Map<String, Object>> allData = new ArrayList<>();
int simpleCount = 0;
// 按照公式计算实验数据并返回
// 参照组:2n 、对照组:2n + 1
for (int group = 0; group < groupCount / 2; group++) {
@ -1221,11 +1220,13 @@ public class ExamineResultController extends BladeController {
data1.put("result", "阳性");
allDatas.add(data1);
yangCount ++;
simpleCount ++;
} else {
data1.put("log2", isPig ? "<1:64" : "<1:128");
data1.put("result", "阴性");
allDatas.add(data1);
yinCount ++;
simpleCount ++;
}
}
}
@ -1237,7 +1238,7 @@ public class ExamineResultController extends BladeController {
realResultMap.put("yangCount", yangCount);
// 判断应实验样品数量和实际样品数量是否相等
if (experieNum.length != allDatas.size()) {
if (experieNum.length != simpleCount) {
throw new Exception("分配样品数量与检测样品数量不一致!");
}
@ -1255,7 +1256,7 @@ public class ExamineResultController extends BladeController {
examineResult.setExamineId(Long.valueOf(examine.getId()));
examineResult.setOriginRecordData(JSON.toJSONString(allData));
// result.setOriginRecordResult(JSON.toJSONString(resultMap));
result.setOriginRecordResult(JSON.toJSONString(realResultMap));
examineResult.setOriginRecordResult(JSON.toJSONString(realResultMap));
examineResult.setExamineDataArr(JSON.toJSONString(allDatas));
service.save(examineResult);
}

Loading…
Cancel
Save