From 7b0ead0275d7490f889e969bd7c0aa7763922f8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Sat, 13 Jun 2026 20:56:44 +0800 Subject: [PATCH] =?UTF-8?q?refactor(qms):=20=E9=87=8D=E6=9E=84=E8=B4=A8?= =?UTF-8?q?=E6=A3=80=E5=91=98PQC=E6=9C=BA=E5=9E=8B=E7=BB=91=E5=AE=9A?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将QmsQualityInspectorDetailVO中的pqcModels字段类型从List改为List - 移除QmsQualityInspectorPqcModelVO中的pqcRuleId字段 - 删除QmsQualityInspectorVO中的pqcModelNos字段 - 新增QmsInspectorModelItem实体类用于存储质检员机型明细 - 新增IQmsInspectorModelItemService接口及其实现类 - 新增QmsInspectorModelItemMapper及相关XML配置文件 - 修改QmsQualityInspectorServiceImpl中PQC机型绑定逻辑,使用新的机型明细表进行数据操作 - 移除旧的PQC检验规则服务依赖和相关处理方法 - 简化机型绑定保存和查询逻辑,直接操作机型明细表 --- .../pojo/vo/QmsQualityInspectorDetailVO.java | 2 +- .../vo/QmsQualityInspectorPqcModelVO.java | 4 - .../common/pojo/vo/QmsQualityInspectorVO.java | 5 - .../entity/QmsInspectorModelItem.java | 63 ++++++++ .../mapper/QmsInspectorModelItemMapper.java | 16 ++ .../IQmsInspectorModelItemService.java | 16 ++ .../QmsInspectorModelItemServiceImpl.java | 22 +++ .../impl/QmsQualityInspectorServiceImpl.java | 139 ++++-------------- .../mapper/QmsInspectorModelItemMapper.xml | 5 + 9 files changed, 148 insertions(+), 124 deletions(-) create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsInspectorModelItem.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsInspectorModelItemMapper.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsInspectorModelItemService.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsInspectorModelItemServiceImpl.java create mode 100644 nflg-wms-repository/src/main/resources/mapper/QmsInspectorModelItemMapper.xml diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsQualityInspectorDetailVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsQualityInspectorDetailVO.java index 94defc8c..20ca0c52 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsQualityInspectorDetailVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsQualityInspectorDetailVO.java @@ -63,5 +63,5 @@ public class QmsQualityInspectorDetailVO { /** * PQC绑定机型列表 */ - private List pqcModels; + private List pqcModels; } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsQualityInspectorPqcModelVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsQualityInspectorPqcModelVO.java index a3d19676..2afcec08 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsQualityInspectorPqcModelVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsQualityInspectorPqcModelVO.java @@ -8,10 +8,6 @@ import lombok.Data; @Data public class QmsQualityInspectorPqcModelVO { - /** - * PQC规则ID - */ - private Long pqcRuleId; /** * 机型编号 diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsQualityInspectorVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsQualityInspectorVO.java index 40b875d4..3b4793b9 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsQualityInspectorVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsQualityInspectorVO.java @@ -61,11 +61,6 @@ public class QmsQualityInspectorVO { */ private Integer inspectionType; - /** - * PQC绑定机型编号列表 - */ - private List pqcModelNos; - /** * 转办人ID */ diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsInspectorModelItem.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsInspectorModelItem.java new file mode 100644 index 00000000..e0e548ea --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsInspectorModelItem.java @@ -0,0 +1,63 @@ +package com.nflg.wms.repository.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + *

+ * 质检员机型明细表 + *

+ * + * @author 代码生成器生成 + * @since 2025 + */ +@Getter +@Setter +@ToString +@Accessors(chain = true) +@TableName("qms_inspector_model_item") +public class QmsInspectorModelItem implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 质检员ID (qms_quality_inspector.id) + */ + private Long inspectorId; + + /** + * 机型编号 + */ + private String modelNo; + + /** + * 创建人 + */ + private String createBy; + + /** + * 创建时间 + */ + private LocalDateTime createTime; + + /** + * 修改人 + */ + private String updateBy; + + /** + * 修改时间 + */ + private LocalDateTime updateTime; +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsInspectorModelItemMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsInspectorModelItemMapper.java new file mode 100644 index 00000000..cff38bff --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsInspectorModelItemMapper.java @@ -0,0 +1,16 @@ +package com.nflg.wms.repository.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nflg.wms.repository.entity.QmsInspectorModelItem; + +/** + *

+ * 质检员机型明细 Mapper 接口 + *

+ * + * @author 代码生成器生成 + * @since 2025 + */ +public interface QmsInspectorModelItemMapper extends BaseMapper { + +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsInspectorModelItemService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsInspectorModelItemService.java new file mode 100644 index 00000000..b0e746ab --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsInspectorModelItemService.java @@ -0,0 +1,16 @@ +package com.nflg.wms.repository.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.nflg.wms.repository.entity.QmsInspectorModelItem; + +/** + *

+ * 质检员机型明细 服务类 + *

+ * + * @author 代码生成器生成 + * @since 2025 + */ +public interface IQmsInspectorModelItemService extends IService { + +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsInspectorModelItemServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsInspectorModelItemServiceImpl.java new file mode 100644 index 00000000..08cbed8f --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsInspectorModelItemServiceImpl.java @@ -0,0 +1,22 @@ +package com.nflg.wms.repository.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nflg.wms.repository.entity.QmsInspectorModelItem; +import com.nflg.wms.repository.mapper.QmsInspectorModelItemMapper; +import com.nflg.wms.repository.service.IQmsInspectorModelItemService; +import org.springframework.stereotype.Service; + +/** + *

+ * 质检员机型明细 服务实现类 + *

+ * + * @author 代码生成器生成 + * @since 2025 + */ +@Service +public class QmsInspectorModelItemServiceImpl + extends ServiceImpl + implements IQmsInspectorModelItemService { + +} 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 6afdccac..a7e08a87 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 @@ -15,25 +15,9 @@ import com.nflg.wms.common.pojo.qo.QmsQualityInspectorTransferQO; import com.nflg.wms.common.pojo.qo.QmsQualityInspectorUpdateQO; 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; -import com.nflg.wms.repository.entity.QmsPqcInspectionRule; -import com.nflg.wms.repository.entity.QmsQcMaterialCategory; -import com.nflg.wms.repository.entity.QmsQualityInspector; -import com.nflg.wms.repository.entity.User; +import com.nflg.wms.repository.entity.*; 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.IQmsPqcInspectionRuleService; -import com.nflg.wms.repository.service.IUserService; +import com.nflg.wms.repository.service.*; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -77,7 +61,7 @@ public class QmsQualityInspectorServiceImpl extends ServiceImpl normalizeModelNos(List modelNos) { - if (CollectionUtils.isEmpty(modelNos)) { - return Collections.emptyList(); - } - return modelNos.stream() - .filter(Objects::nonNull) - .map(String::trim) - .filter(modelNo -> !modelNo.isEmpty()) - .distinct() - .collect(Collectors.toList()); - } - private void savePqcModelBindings(Long inspectorId, List modelNos) { - List normalizedModelNos = normalizeModelNos(modelNos); - if (!normalizedModelNos.isEmpty()) { - List existingModelNos = pqcInspectionRuleService.lambdaQuery() - .in(QmsPqcInspectionRule::getModelNo, normalizedModelNos) - .list() - .stream() - .map(QmsPqcInspectionRule::getModelNo) - .filter(Objects::nonNull) - .distinct() - .collect(Collectors.toList()); - if (existingModelNos.size() != normalizedModelNos.size()) { - List missingModelNos = normalizedModelNos.stream() - .filter(modelNo -> !existingModelNos.contains(modelNo)) - .collect(Collectors.toList()); - throw new NflgException(STATE.BusinessError, "PQC机型规则不存在:" + String.join(",", missingModelNos)); - } - } - - pqcInspectionRuleService.lambdaUpdate() - .eq(QmsPqcInspectionRule::getInspectorId, inspectorId) - .set(QmsPqcInspectionRule::getInspectorId, null) - .update(); - - if (normalizedModelNos.isEmpty()) { - return; - } - - pqcInspectionRuleService.lambdaUpdate() - .in(QmsPqcInspectionRule::getModelNo, normalizedModelNos) - .set(QmsPqcInspectionRule::getInspectorId, inspectorId) - .set(QmsPqcInspectionRule::getUpdateBy, UserUtil.getUserId()) - .set(QmsPqcInspectionRule::getUpdateName, UserUtil.getUserName()) - .set(QmsPqcInspectionRule::getUpdateTime, LocalDateTime.now()) - .update(); + inspectorModelItemService.lambdaUpdate() + .eq(QmsInspectorModelItem::getInspectorId, inspectorId) + .remove(); + inspectorModelItemService.saveBatch(modelNos.stream() + .map(modelNo -> { + QmsInspectorModelItem item = new QmsInspectorModelItem(); + item.setInspectorId(inspectorId); + item.setModelNo(modelNo); + item.setCreateBy(UserUtil.getUserName()); + item.setCreateTime(LocalDateTime.now()); + return item; + }) + .collect(Collectors.toList()) + ); } - private List getPqcModelsByInspectorId(Long inspectorId) { + private List getPqcModelsByInspectorId(Long inspectorId) { if (inspectorId == null) { return Collections.emptyList(); } - return pqcInspectionRuleService.lambdaQuery() - .eq(QmsPqcInspectionRule::getInspectorId, inspectorId) - .orderByAsc(QmsPqcInspectionRule::getModelNo) + return inspectorModelItemService.lambdaQuery() + .eq(QmsInspectorModelItem::getInspectorId, inspectorId) .list() .stream() - .map(rule -> { - QmsQualityInspectorPqcModelVO vo = new QmsQualityInspectorPqcModelVO(); - vo.setPqcRuleId(rule.getId()); - vo.setModelNo(rule.getModelNo()); - vo.setPqcRuleCode(rule.getPqcRuleCode()); - vo.setRuleVersion(rule.getRuleVersion()); - return vo; - }) - .collect(Collectors.toList()); - } - - private void fillPqcModelNos(List records) { - if (CollectionUtils.isEmpty(records)) { - return; - } - List inspectorIds = records.stream() - .filter(vo -> Objects.equals(vo.getInspectionType(), 2)) - .map(QmsQualityInspectorVO::getId) + .map(QmsInspectorModelItem::getModelNo) .filter(Objects::nonNull) .distinct() .collect(Collectors.toList()); - if (inspectorIds.isEmpty()) { - return; - } - Map> modelNoMap = pqcInspectionRuleService.lambdaQuery() - .in(QmsPqcInspectionRule::getInspectorId, inspectorIds) - .list() - .stream() - .collect(Collectors.groupingBy( - QmsPqcInspectionRule::getInspectorId, - Collectors.mapping(QmsPqcInspectionRule::getModelNo, - Collectors.collectingAndThen(Collectors.toList(), modelNos -> modelNos.stream() - .filter(Objects::nonNull) - .distinct() - .collect(Collectors.toList()))) - )); - records.forEach(vo -> { - if (Objects.equals(vo.getInspectionType(), 2)) { - vo.setPqcModelNos(modelNoMap.getOrDefault(vo.getId(), Collections.emptyList())); - } - }); } private QmsQualityInspector getPqcInspector(Long id) { @@ -365,10 +279,9 @@ public class QmsQualityInspectorServiceImpl extends ServiceImpl search(QmsQualityInspectorSearchQO request) { - IPage page = baseMapper.searchPage(request, new Page<>(request.getPage(), request.getPageSize())); - fillPqcModelNos(page.getRecords()); - return page; + return baseMapper.searchPage(request, new Page<>(request.getPage(), request.getPageSize())); } @Override diff --git a/nflg-wms-repository/src/main/resources/mapper/QmsInspectorModelItemMapper.xml b/nflg-wms-repository/src/main/resources/mapper/QmsInspectorModelItemMapper.xml new file mode 100644 index 00000000..d0f8b671 --- /dev/null +++ b/nflg-wms-repository/src/main/resources/mapper/QmsInspectorModelItemMapper.xml @@ -0,0 +1,5 @@ + + + + +