feat(QmsInspectionStandard): 实现检验标准管理功能

- 添加检验标准分页查询功能,支持物料编号、类别和IQE姓名模糊搜索
- 实现检验标准批量发布、单条启用/禁用和批量删除功能
- 新增检验标准,包括自动维护物料的标准维护状态
- 编辑检验标准,校验版本唯一性并禁止已发布标准修改
- 获取检验标准详情,包含检测项及其内容的完整信息
- 实现检测项及内容的新增、更新和删除逻辑
- 支持检验标准暂存(草稿)功能,保证已发布标准不被修改
- 添加对应数据库映射文件,支持分页和详情查询的SQL语句
This commit is contained in:
曹鹏飞 2026-04-20 16:39:25 +08:00
parent 0e1a3c460d
commit 50853294f0
2 changed files with 14 additions and 5 deletions

View File

@ -13,6 +13,7 @@ import com.nflg.wms.common.pojo.vo.QmsInspectionStandardItemContentVO;
import com.nflg.wms.common.pojo.vo.QmsInspectionStandardItemVO;
import com.nflg.wms.common.pojo.vo.QmsInspectionStandardVO;
import com.nflg.wms.common.util.UserUtil;
import com.nflg.wms.common.util.VUtil;
import com.nflg.wms.repository.entity.QmsInspectionStandard;
import com.nflg.wms.repository.entity.QmsInspectionStandardItem;
import com.nflg.wms.repository.entity.QmsInspectionStandardItemContent;
@ -330,6 +331,13 @@ public class QmsInspectionStandardControllerService {
if (standard.getPublishStatus() != null && standard.getPublishStatus() == 1) {
throw new NflgException(com.nflg.wms.common.constant.STATE.BusinessError, "已发布的检验标准不允许修改");
}
VUtil.trueThrowBusinessError(
inspectionStandardService.lambdaQuery()
.ne(QmsInspectionStandard::getId, qo.getId())
.eq(QmsInspectionStandard::getMaterialId, qo.getMaterialId())
.eq(QmsInspectionStandard::getVersion, qo.getVersion())
.exists()
).throwMessage("存在相同版本的检验标准");
Long userId = UserUtil.getUserId();
String userName = UserUtil.getUserName();

View File

@ -28,7 +28,8 @@
s.update_time AS updateTime
FROM qms_inspection_standard s
LEFT JOIN qms_qc_material m ON s.material_id = m.id
LEFT JOIN qms_quality_inspector iqe ON m.id = iqe.material_id AND iqe.inspection_type = 1 AND iqe.enable = true
LEFT JOIN qms_inspector_material_item imi ON imi.material_id = m.id
LEFT JOIN qms_quality_inspector iqe ON imi.inspector_id = iqe.id AND iqe.inspection_type = 1 AND iqe.enable = true
LEFT JOIN "user" iqe_user ON iqe.user_id = iqe_user.id
<where>
<if test="request.materialNo != null and request.materialNo != ''">
@ -58,9 +59,8 @@
m.material_category_code_path_name AS materialCategoryCodePathName,
m.material_desc AS materialDesc,
m.drawing_no_ver AS drawingNoVer,
s.inspection_task_item_id AS inspectionTaskItemId,
s.drawing_url AS drawingUrl,
s.version_no AS versionNo,
s.version AS versionNo,
s.is_enabled AS isEnabled,
s.packaging_method_id AS packagingMethodId,
s.inspection_cycle AS inspectionCycle,
@ -77,11 +77,12 @@
s.update_time AS updateTime
FROM qms_inspection_standard s
LEFT JOIN qms_qc_material m ON s.material_id = m.id
LEFT JOIN qms_quality_inspector iqe ON m.id = iqe.material_id AND iqe.inspection_type = 1 AND iqe.enable = true
LEFT JOIN qms_inspector_material_item imi ON imi.material_id = m.id
LEFT JOIN qms_quality_inspector iqe ON m.id = imi.inspector_id AND iqe.inspection_type = 1 AND iqe.enable = true
LEFT JOIN "user" iqe_user ON iqe.user_id = iqe_user.id
WHERE s.id = #{id}
GROUP BY s.id, s.material_id, m.material_no, m.material_category_code_path_name, m.material_desc, m.drawing_no_ver,
s.inspection_task_item_id, s.drawing_url, s.version_no, s.is_enabled, s.packaging_method_id,
s.drawing_url, s.version, s.is_enabled, s.packaging_method_id,
s.inspection_cycle, s.publish_status, s.publish_user_id, s.publish_user_name, s.publish_time,
s.create_user_id, s.create_user_name, s.create_time, s.update_user_id, s.update_user_name, s.update_time
</select>