diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsCoaTaskController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsCoaTaskController.java index 2f080f9d..965d72bd 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsCoaTaskController.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsCoaTaskController.java @@ -38,9 +38,6 @@ public class QmsCoaTaskController extends BaseController { @Resource private IQmsCoaTaskService coaTaskService; - @Resource - private List sendMessageServices; - @Resource private IQmsTodoItemService todoItemService; diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsQualityInspectorServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsQualityInspectorServiceImpl.java index 7f03534c..095f8f87 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsQualityInspectorServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsQualityInspectorServiceImpl.java @@ -221,16 +221,28 @@ public class QmsQualityInspectorServiceImpl extends ServiceImpl conflictMaterials = materialItemService.lambdaQuery() .in(QmsInspectorMaterialItem::getMaterialId, request.getAddMaterialIds()) .list(); if (!conflictMaterials.isEmpty()) { - throw new NflgException(STATE.BusinessError, "追加的物料中存在已被质检员绑定的物料,不允许重复追加"); + // 查冲突记录对应的质检员 inspectionType + List conflictInspectorIds = conflictMaterials.stream() + .map(QmsInspectorMaterialItem::getInspectorId) + .distinct() + .collect(Collectors.toList()); + boolean sameTypeConflict = lambdaQuery() + .in(QmsQualityInspector::getId, conflictInspectorIds) + .eq(QmsQualityInspector::getInspectionType, inspectionType) + .exists(); + if (sameTypeConflict) { + throw new NflgException(STATE.BusinessError, "追加的物料中存在已被相同质检类型的质检员绑定的物料,不允许重复追加"); + } } List toAdd = request.getAddMaterialIds().stream() .map(materialId -> new QmsInspectorMaterialItem() @@ -256,13 +268,23 @@ public class QmsQualityInspectorServiceImpl extends ServiceImpl codeToIdMap = getCategoryCodeToIdMap(request.getAddMaterialCategoryCodes()); List addCategoryIds = new ArrayList<>(codeToIdMap.values()); - // 校验这些物料类别是否已被任意质检员绑定(含自己) + // 校验这些物料类别是否已被相同 inspectionType 的质检员绑定 if (!addCategoryIds.isEmpty()) { List conflictCategories = materialCategoryItemService.lambdaQuery() .in(QmsInspectorMaterialCategoryItem::getMaterialCategoryId, addCategoryIds) .list(); if (!conflictCategories.isEmpty()) { - throw new NflgException(STATE.BusinessError, "追加的物料类别中存在已被质检员绑定的类别,不允许重复追加"); + List conflictInspectorIds = conflictCategories.stream() + .map(QmsInspectorMaterialCategoryItem::getInspectorId) + .distinct() + .collect(Collectors.toList()); + boolean sameTypeConflict = lambdaQuery() + .in(QmsQualityInspector::getId, conflictInspectorIds) + .eq(QmsQualityInspector::getInspectionType, inspectionType) + .exists(); + if (sameTypeConflict) { + throw new NflgException(STATE.BusinessError, "追加的物料类别中存在已被相同质检类型的质检员绑定的类别,不允许重复追加"); + } } } List toAdd = new ArrayList<>();