pdi查询检测项方法修改
This commit is contained in:
parent
ef483e22a0
commit
26e08d0a0e
|
|
@ -119,6 +119,14 @@ public class QmsPdiStatusItemController extends BaseController {
|
|||
return ApiResult.success(statusItemControllerService.search(request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询特殊检测项(扁平返回)
|
||||
*/
|
||||
@PostMapping("/search/special")
|
||||
public ApiResult<PageData<QmsPdiStatusItemGroupVO.QmsPdiStatusItemVO>> searchSpecial(@Valid @RequestBody QmsPdiStatusItemSearchQO request) {
|
||||
return ApiResult.success(statusItemControllerService.searchSpecial(request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量更新排序
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -408,6 +408,10 @@ public class QmsPdiStatusItemControllerService {
|
|||
* 查询PDI检测项,按部件分组返回
|
||||
*/
|
||||
public PageData<QmsPdiStatusItemGroupVO> search(QmsPdiStatusItemSearchQO request) {
|
||||
if (isSpecialStatus(request.getStatus())) {
|
||||
throw new NflgException(STATE.BusinessError, "特殊检测项请调用特殊检测项查询接口");
|
||||
}
|
||||
|
||||
// 1. 根据detectionRulesId和status查询检测项
|
||||
List<QmsPdiDetectionRulesStatusItem> items = statusItemService.lambdaQuery()
|
||||
.eq(QmsPdiDetectionRulesStatusItem::getDetectionRulesId, request.getDetectionRulesId())
|
||||
|
|
@ -435,6 +439,7 @@ public class QmsPdiStatusItemControllerService {
|
|||
}
|
||||
|
||||
// 2. 提取所有componentsId并去重
|
||||
List<Long> componentIds = items.stream()
|
||||
List<Long> componentIds = items.stream()
|
||||
.map(QmsPdiDetectionRulesStatusItem::getComponentsId)
|
||||
.filter(Objects::nonNull)
|
||||
|
|
@ -475,6 +480,22 @@ public class QmsPdiStatusItemControllerService {
|
|||
return pageGroups(request, voList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询特殊检测项,扁平返回。
|
||||
*/
|
||||
public PageData<QmsPdiStatusItemGroupVO.QmsPdiStatusItemVO> searchSpecial(QmsPdiStatusItemSearchQO request) {
|
||||
request.setStatus(SPECIAL_STATUS);
|
||||
List<QmsPdiStatusItemGroupVO.QmsPdiStatusItemVO> voList = statusItemService.lambdaQuery()
|
||||
.eq(QmsPdiDetectionRulesStatusItem::getDetectionRulesId, request.getDetectionRulesId())
|
||||
.eq(QmsPdiDetectionRulesStatusItem::getStatus, SPECIAL_STATUS)
|
||||
.orderByAsc(QmsPdiDetectionRulesStatusItem::getSort)
|
||||
.list()
|
||||
.stream()
|
||||
.map(this::toItemVO)
|
||||
.collect(Collectors.toList());
|
||||
return pageItems(request, voList);
|
||||
}
|
||||
|
||||
private PageData<QmsPdiStatusItemGroupVO> pageGroups(QmsPdiStatusItemSearchQO request, List<QmsPdiStatusItemGroupVO> voList) {
|
||||
int total = voList.size();
|
||||
int pageNum = request.getPage();
|
||||
|
|
@ -500,6 +521,30 @@ public class QmsPdiStatusItemControllerService {
|
|||
/**
|
||||
* 转换检测项为VO
|
||||
*/
|
||||
private PageData<QmsPdiStatusItemGroupVO.QmsPdiStatusItemVO> pageItems(
|
||||
QmsPdiStatusItemSearchQO request,
|
||||
List<QmsPdiStatusItemGroupVO.QmsPdiStatusItemVO> voList) {
|
||||
int total = voList.size();
|
||||
int pageNum = request.getPage();
|
||||
int pageSize = request.getPageSize();
|
||||
int fromIndex = (pageNum - 1) * pageSize;
|
||||
int toIndex = Math.min(fromIndex + pageSize, total);
|
||||
|
||||
List<QmsPdiStatusItemGroupVO.QmsPdiStatusItemVO> pagedList;
|
||||
if (fromIndex >= total) {
|
||||
pagedList = List.of();
|
||||
} else {
|
||||
pagedList = voList.subList(fromIndex, toIndex);
|
||||
}
|
||||
|
||||
PageData<QmsPdiStatusItemGroupVO.QmsPdiStatusItemVO> pd = new PageData<>();
|
||||
pd.setPage(pageNum);
|
||||
pd.setPageSize(pageSize);
|
||||
pd.setTotal(total);
|
||||
pd.setItems(pagedList);
|
||||
return pd;
|
||||
}
|
||||
|
||||
private QmsPdiStatusItemGroupVO.QmsPdiStatusItemVO toItemVO(QmsPdiDetectionRulesStatusItem item) {
|
||||
QmsPdiStatusItemGroupVO.QmsPdiStatusItemVO vo = new QmsPdiStatusItemGroupVO.QmsPdiStatusItemVO();
|
||||
vo.setId(item.getId());
|
||||
|
|
|
|||
Loading…
Reference in New Issue