功能(qms): 新增PQC检验点列表查询

- 暴露检验点与项目列表数据用于规则管理
- 扩展规则控制器服务契约,增加相关查询方法
This commit is contained in:
yf001217 2026-05-26 17:34:14 +08:00
parent 56af2d61b9
commit 0985594f6b
5 changed files with 114 additions and 0 deletions

View File

@ -4,6 +4,8 @@ import com.nflg.qms.admin.pojo.qo.PqcInspectionRuleAddQO;
import com.nflg.qms.admin.pojo.qo.PqcInspectionRuleAuditQO;
import com.nflg.qms.admin.pojo.qo.PqcInspectionRuleEditQO;
import com.nflg.qms.admin.pojo.qo.PqcInspectionRuleSearchQO;
import com.nflg.qms.admin.pojo.vo.PqcInspectionPointItemListVO;
import com.nflg.qms.admin.pojo.vo.PqcInspectionPointListVO;
import com.nflg.qms.admin.pojo.vo.PqcInspectionRuleDetailVO;
import com.nflg.qms.admin.pojo.vo.PqcInspectionRuleVO;
import com.nflg.qms.admin.service.QmsPqcInspectionRuleControllerService;
@ -51,6 +53,22 @@ public class QmsPqcInspectionRuleController extends BaseController {
return ApiResult.success(ruleControllerService.getDetail(id));
}
/**
* 根据机型编号查询该机型最新启用PQC规则下的检查点列表
*/
@GetMapping("/points")
public ApiResult<List<PqcInspectionPointListVO>> listPointsByModelNo(@NotNull String modelNo) {
return ApiResult.success(ruleControllerService.listPointsByModelNo(modelNo));
}
/**
* 根据检查点ID查询对应的检测项列表
*/
@GetMapping("/items")
public ApiResult<List<PqcInspectionPointItemListVO>> listItemsByInspectionPointId(@NotNull Long inspectionPointId) {
return ApiResult.success(ruleControllerService.listItemsByInspectionPointId(inspectionPointId));
}
/**
* 新增规则
*/

View File

@ -0,0 +1,28 @@
package com.nflg.qms.admin.pojo.vo;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* PQC检测项列表返回对象
*/
@Data
@Accessors(chain = true)
public class PqcInspectionPointItemListVO {
private Long id;
private Long inspectionCodeId;
private Integer sort;
private String inspectionContent;
private Integer inspectionType;
private Integer inspectionMethods;
private String inspectionImgUrl;
private Integer inspectionLevel;
}

View File

@ -0,0 +1,18 @@
package com.nflg.qms.admin.pojo.vo;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* PQC检查点列表返回对象
*/
@Data
@Accessors(chain = true)
public class PqcInspectionPointListVO {
private Long id;
private String inspectionPointCode;
private String inspectionPointName;
}

View File

@ -5,6 +5,8 @@ import com.nflg.qms.admin.pojo.qo.PqcInspectionRuleAddQO;
import com.nflg.qms.admin.pojo.qo.PqcInspectionRuleAuditQO;
import com.nflg.qms.admin.pojo.qo.PqcInspectionRuleEditQO;
import com.nflg.qms.admin.pojo.qo.PqcInspectionRuleSearchQO;
import com.nflg.qms.admin.pojo.vo.PqcInspectionPointItemListVO;
import com.nflg.qms.admin.pojo.vo.PqcInspectionPointListVO;
import com.nflg.qms.admin.pojo.vo.PqcInspectionRuleDetailVO;
import com.nflg.qms.admin.pojo.vo.PqcInspectionRuleVO;
import com.nflg.wms.common.pojo.PageData;
@ -55,4 +57,8 @@ public interface QmsPqcInspectionRuleControllerService {
* 切换启用/禁用状态
*/
void toggleDisabled(Long id);
List<PqcInspectionPointListVO> listPointsByModelNo(String modelNo);
List<PqcInspectionPointItemListVO> listItemsByInspectionPointId(Long inspectionPointId);
}

View File

@ -8,7 +8,9 @@ import com.nflg.qms.admin.pojo.qo.PqcInspectionRuleAddQO;
import com.nflg.qms.admin.pojo.qo.PqcInspectionRuleAuditQO;
import com.nflg.qms.admin.pojo.qo.PqcInspectionRuleEditQO;
import com.nflg.qms.admin.pojo.qo.PqcInspectionRuleSearchQO;
import com.nflg.qms.admin.pojo.vo.PqcInspectionPointItemListVO;
import com.nflg.qms.admin.pojo.vo.PqcInspectionPointItemVO;
import com.nflg.qms.admin.pojo.vo.PqcInspectionPointListVO;
import com.nflg.qms.admin.pojo.vo.PqcInspectionPointVO;
import com.nflg.qms.admin.pojo.vo.PqcInspectionRuleDetailVO;
import com.nflg.qms.admin.pojo.vo.PqcInspectionRuleVO;
@ -31,6 +33,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@ -339,6 +342,47 @@ public class QmsPqcInspectionRuleControllerServiceImpl implements QmsPqcInspecti
/**
* 保存检查点和检查项
*/
@Override
public List<PqcInspectionPointListVO> listPointsByModelNo(String modelNo) {
QmsPqcInspectionRule latestRule = ruleService.lambdaQuery()
.eq(QmsPqcInspectionRule::getModelNo, modelNo)
.eq(QmsPqcInspectionRule::getIsDisabled, true)
.orderByDesc(QmsPqcInspectionRule::getRuleVersion)
.last("LIMIT 1")
.one();
if (latestRule == null) {
return Collections.emptyList();
}
return pointService.lambdaQuery()
.eq(QmsPqcInspectionPoint::getPqcRuleId, latestRule.getId())
.list()
.stream()
.map(point -> new PqcInspectionPointListVO()
.setId(point.getId())
.setInspectionPointCode(point.getInspectionPointCode())
.setInspectionPointName(point.getInspectionPointName()))
.collect(Collectors.toList());
}
@Override
public List<PqcInspectionPointItemListVO> listItemsByInspectionPointId(Long inspectionPointId) {
return itemsService.lambdaQuery()
.eq(QmsPqcInspectionPointItems::getInspectionCodeId, inspectionPointId)
.orderByAsc(QmsPqcInspectionPointItems::getSort)
.list()
.stream()
.map(item -> new PqcInspectionPointItemListVO()
.setId(item.getId())
.setInspectionCodeId(item.getInspectionCodeId())
.setSort(item.getSort())
.setInspectionContent(item.getInspectionContent())
.setInspectionType(item.getInspectionType())
.setInspectionMethods(item.getInspectionMethods())
.setInspectionImgUrl(item.getInspectionImgUrl())
.setInspectionLevel(item.getInspectionLevel()))
.collect(Collectors.toList());
}
private void savePointsAndItems(Long ruleId, List<PqcInspectionRuleAddQO.PqcInspectionPointAddQO> points,
String operator, Long operatorId, LocalDateTime now) {
if (points == null || points.isEmpty()) {