refactor(incoming-inspection): 优化检验记录图片上传与展示逻辑
- 新增依赖注入 IFileUploadRecordService 用于文件上传记录管理 - 注释掉来料检验任务检验记录的查询方法,暂时停止使用该方法 - 优化检验数据图片字段处理,保存时存储图片ID逗号分隔字符串 - 查询时根据图片ID列表查询文件详细信息并映射为 FileUploadVO 对象列表 - 更新相关实体及数据传输对象,图片字段由字符串列表改为 FileUploadVO 对象列表 - 调整导入语句,统一通配符导入 VO 包,添加注解 @Qualifier - 修改图片列表字段注释,更准确描述为图片ID列表
This commit is contained in:
parent
d6211aac84
commit
5464981d5f
|
|
@ -40,6 +40,7 @@ import java.util.zip.ZipOutputStream;
|
|||
public class FileControllerService {
|
||||
|
||||
private final OkHttpClient client = new OkHttpClient();
|
||||
|
||||
@Resource
|
||||
private IFileUploadRecordService fileUploadRecordService;
|
||||
|
||||
|
|
|
|||
|
|
@ -7,14 +7,7 @@ import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapp
|
|||
import com.nflg.wms.common.constant.STATE;
|
||||
import com.nflg.wms.common.exception.NflgException;
|
||||
import com.nflg.wms.common.pojo.qo.*;
|
||||
import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskCheckDetailVO;
|
||||
import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskCheckItemVO;
|
||||
import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskCountVO;
|
||||
import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskRecordItemDataVO;
|
||||
import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskRecordItemDetailVO;
|
||||
import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskRecordItemVO;
|
||||
import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskRecordVO;
|
||||
import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskVO;
|
||||
import com.nflg.wms.common.pojo.vo.*;
|
||||
import com.nflg.wms.common.util.UserUtil;
|
||||
import com.nflg.wms.common.util.VUtil;
|
||||
import com.nflg.wms.repository.entity.*;
|
||||
|
|
@ -23,6 +16,7 @@ import jakarta.annotation.Resource;
|
|||
import jakarta.validation.Valid;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
|
|
@ -103,6 +97,9 @@ public class IncomingInspectionTaskControllerService {
|
|||
@Resource
|
||||
private IQmsInspectionStandardItemContentService inspectionStandardItemContentService;
|
||||
|
||||
@Resource
|
||||
private IFileUploadRecordService fileUploadRecordService;
|
||||
|
||||
/**
|
||||
* 来料检验申请(对外接口)
|
||||
* 业务规则:
|
||||
|
|
@ -600,115 +597,115 @@ public class IncomingInspectionTaskControllerService {
|
|||
.list();
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询来料检验任务检验记录(含检验项和检验数据)
|
||||
*/
|
||||
public List<QmsIncomingInspectionTaskRecordVO> getInspectionRecords(Long taskId) {
|
||||
// 1. 查询该任务下所有检验记录
|
||||
List<QmsIncomingInspectionTaskRecord> records = incomingInspectionTaskRecordService.lambdaQuery()
|
||||
.eq(QmsIncomingInspectionTaskRecord::getTaskId, taskId)
|
||||
.list();
|
||||
|
||||
if (CollectionUtil.isEmpty(records)) {
|
||||
return List.of();
|
||||
}
|
||||
|
||||
// 2. 收集所有记录ID
|
||||
List<Long> recordIds = records.stream()
|
||||
.map(QmsIncomingInspectionTaskRecord::getId)
|
||||
.toList();
|
||||
|
||||
// 3. 查询所有记录下的检验项
|
||||
List<QmsIncomingInspectionTaskRecordItem> allItems = incomingInspectionTaskRecordItemService.lambdaQuery()
|
||||
.in(QmsIncomingInspectionTaskRecordItem::getRecordId, recordIds)
|
||||
.list();
|
||||
|
||||
// 4. 收集所有检验项ID,并构建 recordId -> items 映射
|
||||
Map<Long, List<QmsIncomingInspectionTaskRecordItem>> recordItemMap = allItems.stream()
|
||||
.collect(Collectors.groupingBy(QmsIncomingInspectionTaskRecordItem::getRecordId));
|
||||
|
||||
// 5. 查询检验标准项内容(获取检测项名称、标准等信息)
|
||||
List<Long> contentIds = allItems.stream()
|
||||
.map(QmsIncomingInspectionTaskRecordItem::getInspectionStandardItemContentId)
|
||||
.filter(Objects::nonNull)
|
||||
.distinct()
|
||||
.toList();
|
||||
Map<Long, QmsInspectionStandardItemContent> contentMap = Map.of();
|
||||
if (!contentIds.isEmpty()) {
|
||||
contentMap = inspectionStandardItemContentService.lambdaQuery()
|
||||
.in(QmsInspectionStandardItemContent::getId, contentIds)
|
||||
.list()
|
||||
.stream()
|
||||
.collect(Collectors.toMap(QmsInspectionStandardItemContent::getId, Function.identity()));
|
||||
}
|
||||
|
||||
// 6. 查询所有检验项下的检验数据
|
||||
List<Long> itemIds = allItems.stream()
|
||||
.map(QmsIncomingInspectionTaskRecordItem::getId)
|
||||
.toList();
|
||||
Map<Long, List<QmsIncomingInspectionTaskRecordItemData>> itemDataMap = Map.of();
|
||||
if (!itemIds.isEmpty()) {
|
||||
itemDataMap = incomingInspectionTaskRecordItemDataService.lambdaQuery()
|
||||
.in(QmsIncomingInspectionTaskRecordItemData::getItemId, itemIds)
|
||||
.list()
|
||||
.stream()
|
||||
.collect(Collectors.groupingBy(QmsIncomingInspectionTaskRecordItemData::getItemId));
|
||||
}
|
||||
|
||||
// 7. 组装返回VO
|
||||
Map<Long, QmsInspectionStandardItemContent> finalContentMap = contentMap;
|
||||
Map<Long, List<QmsIncomingInspectionTaskRecordItemData>> finalItemDataMap = itemDataMap;
|
||||
return records.stream().map(record -> {
|
||||
QmsIncomingInspectionTaskRecordVO vo = new QmsIncomingInspectionTaskRecordVO();
|
||||
vo.setId(record.getId());
|
||||
vo.setTaskId(record.getTaskId());
|
||||
vo.setMaterialUniqueNo(record.getMaterialUniqueNo());
|
||||
vo.setQualified(record.getQualified());
|
||||
vo.setInspectionQty(record.getInspectionQty());
|
||||
vo.setQualifiedQty(record.getQualifiedQty());
|
||||
vo.setUnqualifiedQty(record.getUnqualifiedQty());
|
||||
vo.setCreateUserId(record.getCreateUserId());
|
||||
vo.setCreateUserName(record.getCreateUserName());
|
||||
vo.setCreateTime(record.getCreateTime());
|
||||
|
||||
// 组装检验项
|
||||
List<QmsIncomingInspectionTaskRecordItem> items = recordItemMap.getOrDefault(record.getId(), List.of());
|
||||
List<QmsIncomingInspectionTaskRecordItemVO> itemVOs = items.stream().map(item -> {
|
||||
QmsIncomingInspectionTaskRecordItemVO itemVO = new QmsIncomingInspectionTaskRecordItemVO();
|
||||
itemVO.setId(item.getId());
|
||||
itemVO.setRecordId(item.getRecordId());
|
||||
itemVO.setInspectionStandardItemContentId(item.getInspectionStandardItemContentId());
|
||||
itemVO.setRemark(item.getRemark());
|
||||
|
||||
// 填充检验标准项内容信息
|
||||
QmsInspectionStandardItemContent content = finalContentMap.get(item.getInspectionStandardItemContentId());
|
||||
if (content != null) {
|
||||
itemVO.setName(content.getName());
|
||||
itemVO.setTestStandard(content.getTestStandard());
|
||||
itemVO.setJudgmentType(content.getJudgmentType());
|
||||
}
|
||||
|
||||
// 组装检验数据
|
||||
List<QmsIncomingInspectionTaskRecordItemData> datas = finalItemDataMap.getOrDefault(item.getId(), List.of());
|
||||
List<QmsIncomingInspectionTaskRecordItemDataVO> dataVOs = datas.stream().map(data -> {
|
||||
QmsIncomingInspectionTaskRecordItemDataVO dataVO = new QmsIncomingInspectionTaskRecordItemDataVO();
|
||||
dataVO.setId(data.getId());
|
||||
dataVO.setTaskId(data.getTaskId());
|
||||
dataVO.setItemId(data.getItemId());
|
||||
dataVO.setMeasuredValue(data.getMeasuredValue());
|
||||
dataVO.setQualified(data.getQualified());
|
||||
dataVO.setImages(StrUtil.isNotBlank(data.getImages())
|
||||
? List.of(data.getImages().split(","))
|
||||
: List.of());
|
||||
return dataVO;
|
||||
}).toList();
|
||||
itemVO.setDatas(dataVOs);
|
||||
return itemVO;
|
||||
}).toList();
|
||||
vo.setItems(itemVOs);
|
||||
return vo;
|
||||
}).toList();
|
||||
}
|
||||
// /**
|
||||
// * 查询来料检验任务检验记录(含检验项和检验数据)
|
||||
// */
|
||||
// public List<QmsIncomingInspectionTaskRecordVO> getInspectionRecords(Long taskId) {
|
||||
// // 1. 查询该任务下所有检验记录
|
||||
// List<QmsIncomingInspectionTaskRecord> records = incomingInspectionTaskRecordService.lambdaQuery()
|
||||
// .eq(QmsIncomingInspectionTaskRecord::getTaskId, taskId)
|
||||
// .list();
|
||||
//
|
||||
// if (CollectionUtil.isEmpty(records)) {
|
||||
// return List.of();
|
||||
// }
|
||||
//
|
||||
// // 2. 收集所有记录ID
|
||||
// List<Long> recordIds = records.stream()
|
||||
// .map(QmsIncomingInspectionTaskRecord::getId)
|
||||
// .toList();
|
||||
//
|
||||
// // 3. 查询所有记录下的检验项
|
||||
// List<QmsIncomingInspectionTaskRecordItem> allItems = incomingInspectionTaskRecordItemService.lambdaQuery()
|
||||
// .in(QmsIncomingInspectionTaskRecordItem::getRecordId, recordIds)
|
||||
// .list();
|
||||
//
|
||||
// // 4. 收集所有检验项ID,并构建 recordId -> items 映射
|
||||
// Map<Long, List<QmsIncomingInspectionTaskRecordItem>> recordItemMap = allItems.stream()
|
||||
// .collect(Collectors.groupingBy(QmsIncomingInspectionTaskRecordItem::getRecordId));
|
||||
//
|
||||
// // 5. 查询检验标准项内容(获取检测项名称、标准等信息)
|
||||
// List<Long> contentIds = allItems.stream()
|
||||
// .map(QmsIncomingInspectionTaskRecordItem::getInspectionStandardItemContentId)
|
||||
// .filter(Objects::nonNull)
|
||||
// .distinct()
|
||||
// .toList();
|
||||
// Map<Long, QmsInspectionStandardItemContent> contentMap = Map.of();
|
||||
// if (!contentIds.isEmpty()) {
|
||||
// contentMap = inspectionStandardItemContentService.lambdaQuery()
|
||||
// .in(QmsInspectionStandardItemContent::getId, contentIds)
|
||||
// .list()
|
||||
// .stream()
|
||||
// .collect(Collectors.toMap(QmsInspectionStandardItemContent::getId, Function.identity()));
|
||||
// }
|
||||
//
|
||||
// // 6. 查询所有检验项下的检验数据
|
||||
// List<Long> itemIds = allItems.stream()
|
||||
// .map(QmsIncomingInspectionTaskRecordItem::getId)
|
||||
// .toList();
|
||||
// Map<Long, List<QmsIncomingInspectionTaskRecordItemData>> itemDataMap = Map.of();
|
||||
// if (!itemIds.isEmpty()) {
|
||||
// itemDataMap = incomingInspectionTaskRecordItemDataService.lambdaQuery()
|
||||
// .in(QmsIncomingInspectionTaskRecordItemData::getItemId, itemIds)
|
||||
// .list()
|
||||
// .stream()
|
||||
// .collect(Collectors.groupingBy(QmsIncomingInspectionTaskRecordItemData::getItemId));
|
||||
// }
|
||||
//
|
||||
// // 7. 组装返回VO
|
||||
// Map<Long, QmsInspectionStandardItemContent> finalContentMap = contentMap;
|
||||
// Map<Long, List<QmsIncomingInspectionTaskRecordItemData>> finalItemDataMap = itemDataMap;
|
||||
// return records.stream().map(record -> {
|
||||
// QmsIncomingInspectionTaskRecordVO vo = new QmsIncomingInspectionTaskRecordVO();
|
||||
// vo.setId(record.getId());
|
||||
// vo.setTaskId(record.getTaskId());
|
||||
// vo.setMaterialUniqueNo(record.getMaterialUniqueNo());
|
||||
// vo.setQualified(record.getQualified());
|
||||
// vo.setInspectionQty(record.getInspectionQty());
|
||||
// vo.setQualifiedQty(record.getQualifiedQty());
|
||||
// vo.setUnqualifiedQty(record.getUnqualifiedQty());
|
||||
// vo.setCreateUserId(record.getCreateUserId());
|
||||
// vo.setCreateUserName(record.getCreateUserName());
|
||||
// vo.setCreateTime(record.getCreateTime());
|
||||
//
|
||||
// // 组装检验项
|
||||
// List<QmsIncomingInspectionTaskRecordItem> items = recordItemMap.getOrDefault(record.getId(), List.of());
|
||||
// List<QmsIncomingInspectionTaskRecordItemVO> itemVOs = items.stream().map(item -> {
|
||||
// QmsIncomingInspectionTaskRecordItemVO itemVO = new QmsIncomingInspectionTaskRecordItemVO();
|
||||
// itemVO.setId(item.getId());
|
||||
// itemVO.setRecordId(item.getRecordId());
|
||||
// itemVO.setInspectionStandardItemContentId(item.getInspectionStandardItemContentId());
|
||||
// itemVO.setRemark(item.getRemark());
|
||||
//
|
||||
// // 填充检验标准项内容信息
|
||||
// QmsInspectionStandardItemContent content = finalContentMap.get(item.getInspectionStandardItemContentId());
|
||||
// if (content != null) {
|
||||
// itemVO.setName(content.getName());
|
||||
// itemVO.setTestStandard(content.getTestStandard());
|
||||
// itemVO.setJudgmentType(content.getJudgmentType());
|
||||
// }
|
||||
//
|
||||
// // 组装检验数据
|
||||
// List<QmsIncomingInspectionTaskRecordItemData> datas = finalItemDataMap.getOrDefault(item.getId(), List.of());
|
||||
// List<QmsIncomingInspectionTaskRecordItemDataVO> dataVOs = datas.stream().map(data -> {
|
||||
// QmsIncomingInspectionTaskRecordItemDataVO dataVO = new QmsIncomingInspectionTaskRecordItemDataVO();
|
||||
// dataVO.setId(data.getId());
|
||||
// dataVO.setTaskId(data.getTaskId());
|
||||
// dataVO.setItemId(data.getItemId());
|
||||
// dataVO.setMeasuredValue(data.getMeasuredValue());
|
||||
// dataVO.setQualified(data.getQualified());
|
||||
// dataVO.setImages(StrUtil.isNotBlank(data.getImages())
|
||||
// ? List.of(data.getImages().split(","))
|
||||
// : List.of());
|
||||
// return dataVO;
|
||||
// }).toList();
|
||||
// itemVO.setDatas(dataVOs);
|
||||
// return itemVO;
|
||||
// }).toList();
|
||||
// vo.setItems(itemVOs);
|
||||
// return vo;
|
||||
// }).toList();
|
||||
// }
|
||||
|
||||
public QmsIncomingInspectionTaskCheckDetailVO getItemsForCheck(@Valid QmsIncomingInspectionTaskTodoCheckItemsQO request) {
|
||||
QmsIncomingInspectionTask task = incomingInspectionTaskService.getById(request.getTaskId());
|
||||
|
|
@ -799,7 +796,14 @@ public class IncomingInspectionTaskControllerService {
|
|||
.setItemId(ditem.getId())
|
||||
.setQualified(data.getQualified())
|
||||
.setMeasuredValue(data.getMeasuredValue())
|
||||
.setImages(StrUtil.join(",",data.getImages()));
|
||||
.setImages(
|
||||
StrUtil.join(",",
|
||||
data.getImages()
|
||||
.stream()
|
||||
.map(FileUploadVO::getId)
|
||||
.toList()
|
||||
)
|
||||
);
|
||||
incomingInspectionTaskRecordItemDataService.saveOrUpdate(ddata);
|
||||
});
|
||||
});
|
||||
|
|
@ -1001,9 +1005,20 @@ public class IncomingInspectionTaskControllerService {
|
|||
dataVO.setItemId(data.getItemId());
|
||||
dataVO.setMeasuredValue(data.getMeasuredValue());
|
||||
dataVO.setQualified(data.getQualified());
|
||||
dataVO.setImages(StrUtil.isNotBlank(data.getImages())
|
||||
? List.of(data.getImages().split(","))
|
||||
: List.of());
|
||||
if (StrUtil.isNotBlank(data.getImages())) {
|
||||
dataVO.setImages(
|
||||
fileUploadRecordService.lambdaQuery()
|
||||
.in(FileUploadRecord::getId, StrUtil.split(data.getImages(), ","))
|
||||
.list()
|
||||
.stream()
|
||||
.map(file -> new FileUploadVO()
|
||||
.setId(file.getId())
|
||||
.setFileName(file.getFileName())
|
||||
.setUrl(file.getUrl())
|
||||
)
|
||||
.collect(Collectors.toList())
|
||||
);
|
||||
}
|
||||
return dataVO;
|
||||
}).toList();
|
||||
vo.setDatas(dataVOs);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.nflg.wms.common.pojo.qo;
|
||||
|
||||
import com.nflg.wms.common.pojo.vo.FileUploadVO;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
|
|
@ -25,5 +26,5 @@ public class QmsIncomingInspectionTaskTodoCheckSubmitItemDataQO {
|
|||
/**
|
||||
* 图片列表
|
||||
*/
|
||||
private List<String> images;
|
||||
private List<FileUploadVO> images;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,5 +36,5 @@ public class QmsIncomingInspectionTaskRecordItemDataVO {
|
|||
/**
|
||||
* 图片列表
|
||||
*/
|
||||
private List<String> images;
|
||||
private List<FileUploadVO> images;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ public class QmsIncomingInspectionTaskRecordItemData {
|
|||
private Boolean qualified;
|
||||
|
||||
/**
|
||||
* 图片列表,多个逗号分隔
|
||||
* 图片id列表,多个逗号分隔
|
||||
*/
|
||||
private String images;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue