liding
2025-04-30 fbde0b947b4641081b558302ea77d88c902c4cd1
可靠性计划优化检验项
已修改7个文件
137 ■■■■■ 文件已修改
inspect-server/src/main/java/com/ruoyi/inspect/dto/ReliabilityPlanProductDto.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/dto/ReliabilityPlanProductItemDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/mapper/ReliabilityPlanProductItemMapper.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProduct.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProductItem.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductItemServiceImpl.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductServiceImpl.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/dto/ReliabilityPlanProductDto.java
@@ -5,4 +5,6 @@
@Data
public class ReliabilityPlanProductDto extends ReliabilityPlanProduct {
    private String itemType;
}
inspect-server/src/main/java/com/ruoyi/inspect/dto/ReliabilityPlanProductItemDto.java
@@ -5,5 +5,5 @@
@Data
public class ReliabilityPlanProductItemDto extends ReliabilityPlanProductItem {
    private Integer rePlanId;
    private Long rePlanId;
}
inspect-server/src/main/java/com/ruoyi/inspect/mapper/ReliabilityPlanProductItemMapper.java
@@ -1,7 +1,7 @@
package com.ruoyi.inspect.mapper;
import com.ruoyi.framework.mybatis_config.MyBaseMapper;
import com.ruoyi.inspect.pojo.ReliabilityPlanProductItem;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -15,13 +15,13 @@
 * @author ld
 * @since 2025-04-01 05:12:38
 */
public interface ReliabilityPlanProductItemMapper extends BaseMapper<ReliabilityPlanProductItem> {
public interface ReliabilityPlanProductItemMapper extends MyBaseMapper<ReliabilityPlanProductItem> {
    List<Map<String, Object>> itemList(@Param("planId") Integer rePlanId);
    List<Map<String, Object>> itemList(@Param("planId") Long rePlanId);
    List<Map<String, Object>> codeList(@Param("planId") Integer rePlanId);
    List<Map<String, Object>> codeList(@Param("planId") Long rePlanId);
    List<Map<String, Object>> materialItem(@Param("planId") Integer rePlanId);
    List<Map<String, Object>> materialItem(@Param("planId") Long rePlanId);
    List<Map<String, Object>> materialCodeList(@Param("planId") Integer rePlanId);
    List<Map<String, Object>> materialCodeList(@Param("planId") Long rePlanId);
}
inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProduct.java
@@ -24,7 +24,7 @@
public class ReliabilityPlanProduct implements Serializable {
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    private Long id;
    @ApiModelProperty("产品名称")
    private String productName;
inspect-server/src/main/java/com/ruoyi/inspect/pojo/ReliabilityPlanProductItem.java
@@ -26,7 +26,7 @@
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    private Long id;
    @ApiModelProperty("检验项")
    private String inspectionItem;
@@ -41,7 +41,7 @@
    private String remark;
    @ApiModelProperty("关联可靠性计划产品id")
    private Integer planId;
    private Long planId;
    /**
     * 成品/原辅材
     */
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductItemServiceImpl.java
@@ -31,75 +31,9 @@
    @Override
    public List<ReliabilityPlanProductItem> selectProductItem(ReliabilityPlanProductItemDto reliabilityPlanProductItemDto) {
        // 从数据库中查询新的数据
        List<Map<String, Object>> maps = reliabilityPlanProductItemMapper.itemList(reliabilityPlanProductItemDto.getRePlanId());
        List<ReliabilityPlanProductItem> newItemList = new ArrayList<>();
        for (Map<String, Object> map : maps) {
            ReliabilityPlanProductItem item = new ReliabilityPlanProductItem();
            item.setInspectionItem((String) map.get("inspectionItem"));
            item.setStandard((String) map.get("standard"));
            item.setFrequency((String) map.get("frequency"));
            item.setPlanId(reliabilityPlanProductItemDto.getRePlanId());
            item.setType(reliabilityPlanProductItemDto.getType());
            newItemList.add(item);
        }
        // 查询数据库中已存在的数据
        List<ReliabilityPlanProductItem> existingItemList = reliabilityPlanProductItemMapper.selectList(
                new LambdaQueryWrapper<ReliabilityPlanProductItem>()
        return reliabilityPlanProductItemMapper.selectList(new LambdaQueryWrapper<ReliabilityPlanProductItem>()
                        .eq(ReliabilityPlanProductItem::getPlanId, reliabilityPlanProductItemDto.getRePlanId())
                        .eq(ReliabilityPlanProductItem::getType, reliabilityPlanProductItemDto.getType())
        );
        // 将已存在的数据转换为以 inspectionItem_planId_type 为键的 Map
        Map<String, ReliabilityPlanProductItem> existingItemMap = new HashMap<>();
        for (ReliabilityPlanProductItem item : existingItemList) {
            StringBuilder keyBuilder = new StringBuilder();
            keyBuilder.append(item.getInspectionItem())
                    .append("_")
                    .append(item.getPlanId())
                    .append("_")
                    .append(item.getType());
            existingItemMap.put(keyBuilder.toString(), item);
        }
        List<ReliabilityPlanProductItem> itemsToUpdate = new ArrayList<>();
        List<ReliabilityPlanProductItem> itemsToInsert = new ArrayList<>();
        // 对比新数据和已存在的数据,区分出需要更新和需要新增的记录
        for (ReliabilityPlanProductItem newItem : newItemList) {
            StringBuilder keyBuilder = new StringBuilder();
            keyBuilder.append(newItem.getInspectionItem())
                    .append("_")
                    .append(newItem.getPlanId())
                    .append("_")
                    .append(newItem.getType());
            String key = keyBuilder.toString();
            ReliabilityPlanProductItem existingItem = existingItemMap.get(key);
            if (existingItem != null) {
                // 存在则更新
                existingItem.setStandard(newItem.getStandard());
                existingItem.setFrequency(newItem.getFrequency());
                itemsToUpdate.add(existingItem);
            } else {
                // 不存在则新增
                itemsToInsert.add(newItem);
            }
        }
        // 执行更新和新增操作
        if (!itemsToUpdate.isEmpty()) {
            saveOrUpdateBatch(itemsToUpdate);
        }
        if (!itemsToInsert.isEmpty()) {
            saveBatch(itemsToInsert);
        }
        // 可以考虑在前面的查询中保留需要的结果,避免再次查询
        return existingItemList.stream()
                .filter(item -> item.getPlanId().equals(reliabilityPlanProductItemDto.getRePlanId())
                        && item.getType().equals(reliabilityPlanProductItemDto.getType()))
                .collect(Collectors.toList());
                        .eq(ReliabilityPlanProductItem::getType, reliabilityPlanProductItemDto.getType()));
    }
    @Override
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductServiceImpl.java
@@ -1,17 +1,22 @@
package com.ruoyi.inspect.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.QueryWrappers;
import com.ruoyi.inspect.dto.ReliabilityPlanProductDto;
import com.ruoyi.inspect.mapper.ReliabilityPlanProductItemMapper;
import com.ruoyi.inspect.pojo.ReliabilityPlanProduct;
import com.ruoyi.inspect.mapper.ReliabilityPlanProductMapper;
import com.ruoyi.inspect.pojo.ReliabilityPlanProductItem;
import com.ruoyi.inspect.service.ReliabilityPlanProductService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Objects;
import java.util.*;
/**
 * <p>
@@ -26,6 +31,7 @@
public class ReliabilityPlanProductServiceImpl extends ServiceImpl<ReliabilityPlanProductMapper, ReliabilityPlanProduct> implements ReliabilityPlanProductService {
    private ReliabilityPlanProductMapper reliabilityPlanProductMapper;
    private ReliabilityPlanProductItemMapper reliabilityPlanProductItemMapper;
    @Override
    public IPage<ReliabilityPlanProduct> selectProduct(Page page, ReliabilityPlanProductDto reliabilityPlanProductDto) {
@@ -34,17 +40,48 @@
    @Override
    public int addOrUpdateProduct(ReliabilityPlanProductDto reliabilityPlanProductDto) {
        int i;
        if (Objects.isNull(reliabilityPlanProductDto.getId())) {
            reliabilityPlanProductDto.setState(0);
            return reliabilityPlanProductMapper.insert(reliabilityPlanProductDto);
            i = reliabilityPlanProductMapper.insert(reliabilityPlanProductDto);
        } else {
           // 审核状态 0.待提交1.待审核2.通过3.不通过
            // 审核状态 0.待提交1.待审核2.通过3.不通过
            int state = reliabilityPlanProductDto.getState();
            if (state != 0 && state != 1 && state != 2) {
                reliabilityPlanProductDto.setState(3);
            }
            return reliabilityPlanProductMapper.updateById(reliabilityPlanProductDto);
            i = reliabilityPlanProductMapper.updateById(reliabilityPlanProductDto);
        }
        if (i > 0) {
            Long id = reliabilityPlanProductDto.getId(); // 从数据库中查询新的数据
            List<Map<String, Object>> maps = reliabilityPlanProductItemMapper.itemList(id);
            List<ReliabilityPlanProductItem> newItemList = new ArrayList<>();
            for (Map<String, Object> map : maps) {
                ReliabilityPlanProductItem item = new ReliabilityPlanProductItem();
                item.setInspectionItem((String) map.get("inspectionItem"));
                item.setStandard((String) map.get("standard"));
                item.setFrequency((String) map.get("frequency"));
                item.setPlanId(id);
                item.setType(reliabilityPlanProductDto.getItemType());
                newItemList.add(item);
            }
            // 查询数据库中已存在的数据
            List<ReliabilityPlanProductItem> existingItemList = reliabilityPlanProductItemMapper.selectList(
                    new LambdaQueryWrapper<ReliabilityPlanProductItem>()
                            .eq(ReliabilityPlanProductItem::getPlanId, id)
                            .eq(ReliabilityPlanProductItem::getType, reliabilityPlanProductDto.getItemType())
            );
            if (!existingItemList.isEmpty()) {
                // 如果有数据,执行删除操作
                reliabilityPlanProductItemMapper.delete(new LambdaUpdateWrapper<ReliabilityPlanProductItem>()
                                .eq(ReliabilityPlanProductItem::getPlanId, id)
                                .eq(ReliabilityPlanProductItem::getType, reliabilityPlanProductDto.getItemType())
                );
            }
            reliabilityPlanProductItemMapper.insertBatchSomeColumn(newItemList);
        }
        return i;
    }
    @Override