diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsQualityInspectorController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsQualityInspectorController.java index a7b51e1b..6610f841 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsQualityInspectorController.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsQualityInspectorController.java @@ -75,7 +75,7 @@ public class QmsQualityInspectorController extends BaseController { /** * 按员工ID查询质检人员详情(物料和物料类别分开返回,不分页) * - * @param userId 员工ID + * @param userId 员工ID(user.id) */ @GetMapping("detail") public ApiResult detail(@NotNull Long userId) { diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsQualityInspectorCategoryVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsQualityInspectorCategoryVO.java index a01735f4..c1a96d72 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsQualityInspectorCategoryVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsQualityInspectorCategoryVO.java @@ -13,6 +13,11 @@ public class QmsQualityInspectorCategoryVO { */ private Long id; + /** + * 物料类别ID(qms_qc_material_category.id) + */ + private Long materialCategoryId; + /** * 物料类别编码 */ diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsQualityInspectorMaterialVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsQualityInspectorMaterialVO.java index 1efdfc05..5e2de9cf 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsQualityInspectorMaterialVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsQualityInspectorMaterialVO.java @@ -10,6 +10,7 @@ public class QmsQualityInspectorMaterialVO { /** * 关联记录ID(qms_inspector_material_item.id) +.id) */ private Long id; diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsQualityInspectorMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsQualityInspectorMapper.java index d1176e23..5fbb9116 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsQualityInspectorMapper.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsQualityInspectorMapper.java @@ -54,4 +54,14 @@ public interface QmsQualityInspectorMapper extends BaseMapper getCategoriesByUserId(@Param("userId") Long userId); + + /** + * 按 userId(明细表 inspector_id 存的是 user.id)查询关联物料列表 + */ + List getMaterialsByInspectorId(@Param("inspectorId") Long inspectorId); + + /** + * 按 userId(明细表 inspector_id 存的是 user.id)查询关联物料类别列表 + */ + List getCategoriesByInspectorId(@Param("inspectorId") Long inspectorId); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsQualityInspectorService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsQualityInspectorService.java index b255ffae..09f7830d 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsQualityInspectorService.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsQualityInspectorService.java @@ -46,7 +46,7 @@ public interface IQmsQualityInspectorService extends IService search(QmsQualityInspectorSearchQO request); /** - * 按员工ID查询质检人员详情,将物料和物料类别分开返回(不分页) + * 按员工ID(user_id)查询质检人员详情,物料和物料类别分开返回(不分页) */ QmsQualityInspectorDetailVO getDetailByUserId(Long userId); 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 7806c8ce..7f03534c 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 @@ -11,10 +11,7 @@ import com.nflg.wms.common.pojo.qo.QmsQualityInspectorAddQO; import com.nflg.wms.common.pojo.qo.QmsQualityInspectorSearchQO; import com.nflg.wms.common.pojo.qo.QmsQualityInspectorTransferQO; import com.nflg.wms.common.pojo.qo.QmsQualityInspectorUpdateQO; -import com.nflg.wms.common.pojo.vo.QmsQualityInspectorCategoryVO; -import com.nflg.wms.common.pojo.vo.QmsQualityInspectorDetailVO; -import com.nflg.wms.common.pojo.vo.QmsQualityInspectorMaterialVO; -import com.nflg.wms.common.pojo.vo.QmsQualityInspectorVO; +import com.nflg.wms.common.pojo.vo.*; import com.nflg.wms.common.util.UserUtil; import com.nflg.wms.repository.entity.QmsInspectorMaterialCategoryItem; import com.nflg.wms.repository.entity.QmsInspectorMaterialItem; @@ -24,6 +21,12 @@ import com.nflg.wms.repository.entity.User; import com.nflg.wms.repository.mapper.QmsQualityInspectorMapper; import com.nflg.wms.repository.service.IQmsInspectorMaterialCategoryItemService; import com.nflg.wms.repository.service.IQmsInspectorMaterialItemService; +import com.nflg.wms.repository.entity.Department; +import com.nflg.wms.repository.entity.Position; +import com.nflg.wms.repository.entity.UserInterior; +import com.nflg.wms.repository.service.IDepartmentService; +import com.nflg.wms.repository.service.IPositionService; +import com.nflg.wms.repository.service.IUserInteriorService; import com.nflg.wms.repository.service.IQmsQcMaterialCategoryService; import com.nflg.wms.repository.service.IQmsQualityInspectorService; import com.nflg.wms.repository.service.IUserService; @@ -33,10 +36,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; /** @@ -63,6 +63,15 @@ public class QmsQualityInspectorServiceImpl extends ServiceImpl conflictMaterials = materialItemService.lambdaQuery() @@ -121,7 +139,7 @@ public class QmsQualityInspectorServiceImpl extends ServiceImpl conflictMaterials = materialItemService.lambdaQuery() + .in(QmsInspectorMaterialItem::getMaterialId, request.getAddMaterialIds()) + .list(); + if (!conflictMaterials.isEmpty()) { + throw new NflgException(STATE.BusinessError, "追加的物料中存在已被质检员绑定的物料,不允许重复追加"); + } List toAdd = request.getAddMaterialIds().stream() .map(materialId -> new QmsInspectorMaterialItem() .setInspectorId(inspectorId) @@ -230,6 +255,16 @@ public class QmsQualityInspectorServiceImpl extends ServiceImpl codeToIdMap = getCategoryCodeToIdMap(request.getAddMaterialCategoryCodes()); + List addCategoryIds = new ArrayList<>(codeToIdMap.values()); + // 校验这些物料类别是否已被任意质检员绑定(含自己) + if (!addCategoryIds.isEmpty()) { + List conflictCategories = materialCategoryItemService.lambdaQuery() + .in(QmsInspectorMaterialCategoryItem::getMaterialCategoryId, addCategoryIds) + .list(); + if (!conflictCategories.isEmpty()) { + throw new NflgException(STATE.BusinessError, "追加的物料类别中存在已被质检员绑定的类别,不允许重复追加"); + } + } List toAdd = new ArrayList<>(); for (String code : request.getAddMaterialCategoryCodes()) { Long categoryId = codeToIdMap.get(code); @@ -270,7 +305,7 @@ public class QmsQualityInspectorServiceImpl extends ServiceImpl SELECT imci.id, + imci.material_category_id, mc.category_code AS material_category_code, mc.category_name AS material_category_name FROM qms_inspector_material_category_item imci @@ -147,4 +148,37 @@ ORDER BY imci.id ASC + + + + + +