refactor(qms): 重构质检员PQC机型绑定功能
- 将QmsQualityInspectorDetailVO中的pqcModels字段类型从List<QmsQualityInspectorPqcModelVO>改为List<String> - 移除QmsQualityInspectorPqcModelVO中的pqcRuleId字段 - 删除QmsQualityInspectorVO中的pqcModelNos字段 - 新增QmsInspectorModelItem实体类用于存储质检员机型明细 - 新增IQmsInspectorModelItemService接口及其实现类 - 新增QmsInspectorModelItemMapper及相关XML配置文件 - 修改QmsQualityInspectorServiceImpl中PQC机型绑定逻辑,使用新的机型明细表进行数据操作 - 移除旧的PQC检验规则服务依赖和相关处理方法 - 简化机型绑定保存和查询逻辑,直接操作机型明细表
This commit is contained in:
parent
39534370ec
commit
7b0ead0275
|
|
@ -63,5 +63,5 @@ public class QmsQualityInspectorDetailVO {
|
|||
/**
|
||||
* PQC绑定机型列表
|
||||
*/
|
||||
private List<QmsQualityInspectorPqcModelVO> pqcModels;
|
||||
private List<String> pqcModels;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,10 +8,6 @@ import lombok.Data;
|
|||
@Data
|
||||
public class QmsQualityInspectorPqcModelVO {
|
||||
|
||||
/**
|
||||
* PQC规则ID
|
||||
*/
|
||||
private Long pqcRuleId;
|
||||
|
||||
/**
|
||||
* 机型编号
|
||||
|
|
|
|||
|
|
@ -61,11 +61,6 @@ public class QmsQualityInspectorVO {
|
|||
*/
|
||||
private Integer inspectionType;
|
||||
|
||||
/**
|
||||
* PQC绑定机型编号列表
|
||||
*/
|
||||
private List<String> pqcModelNos;
|
||||
|
||||
/**
|
||||
* 转办人ID
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 质检员机型明细表
|
||||
* </p>
|
||||
*
|
||||
* @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;
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
package com.nflg.wms.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.nflg.wms.repository.entity.QmsInspectorModelItem;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 质检员机型明细 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2025
|
||||
*/
|
||||
public interface QmsInspectorModelItemMapper extends BaseMapper<QmsInspectorModelItem> {
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
package com.nflg.wms.repository.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.nflg.wms.repository.entity.QmsInspectorModelItem;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 质检员机型明细 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2025
|
||||
*/
|
||||
public interface IQmsInspectorModelItemService extends IService<QmsInspectorModelItem> {
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 质检员机型明细 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2025
|
||||
*/
|
||||
@Service
|
||||
public class QmsInspectorModelItemServiceImpl
|
||||
extends ServiceImpl<QmsInspectorModelItemMapper, QmsInspectorModelItem>
|
||||
implements IQmsInspectorModelItemService {
|
||||
|
||||
}
|
||||
|
|
@ -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<QmsQualityInspec
|
|||
private IPositionService positionService;
|
||||
|
||||
@Resource
|
||||
private IQmsPqcInspectionRuleService pqcInspectionRuleService;
|
||||
private IQmsInspectorModelItemService inspectorModelItemService;
|
||||
|
||||
// ========================= 工具方法 =========================
|
||||
|
||||
|
|
@ -95,105 +79,35 @@ public class QmsQualityInspectorServiceImpl extends ServiceImpl<QmsQualityInspec
|
|||
.collect(Collectors.toMap(QmsQcMaterialCategory::getCategoryCode, QmsQcMaterialCategory::getId));
|
||||
}
|
||||
|
||||
private List<String> normalizeModelNos(List<String> 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<String> modelNos) {
|
||||
List<String> normalizedModelNos = normalizeModelNos(modelNos);
|
||||
if (!normalizedModelNos.isEmpty()) {
|
||||
List<String> 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<String> missingModelNos = normalizedModelNos.stream()
|
||||
.filter(modelNo -> !existingModelNos.contains(modelNo))
|
||||
.collect(Collectors.toList());
|
||||
throw new NflgException(STATE.BusinessError, "PQC机型规则不存在:" + String.join(",", missingModelNos));
|
||||
}
|
||||
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())
|
||||
);
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
private List<QmsQualityInspectorPqcModelVO> getPqcModelsByInspectorId(Long inspectorId) {
|
||||
private List<String> 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<QmsQualityInspectorVO> records) {
|
||||
if (CollectionUtils.isEmpty(records)) {
|
||||
return;
|
||||
}
|
||||
List<Long> 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<Long, List<String>> 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<QmsQualityInspec
|
|||
.eq(QmsInspectorMaterialCategoryItem::getInspectorId, id)
|
||||
.remove();
|
||||
if (Objects.equals(inspector.getInspectionType(), 2)) {
|
||||
pqcInspectionRuleService.lambdaUpdate()
|
||||
.eq(QmsPqcInspectionRule::getInspectorId, inspector.getId())
|
||||
.set(QmsPqcInspectionRule::getInspectorId, null)
|
||||
.update();
|
||||
inspectorModelItemService.lambdaUpdate()
|
||||
.eq(QmsInspectorModelItem::getInspectorId, inspector.getId())
|
||||
.remove();
|
||||
}
|
||||
// 删除主表
|
||||
removeById(id);
|
||||
|
|
@ -500,9 +413,7 @@ public class QmsQualityInspectorServiceImpl extends ServiceImpl<QmsQualityInspec
|
|||
|
||||
@Override
|
||||
public IPage<QmsQualityInspectorVO> search(QmsQualityInspectorSearchQO request) {
|
||||
IPage<QmsQualityInspectorVO> 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
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.nflg.wms.repository.mapper.QmsInspectorModelItemMapper">
|
||||
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue