liding
2025-04-30 fbde0b947b4641081b558302ea77d88c902c4cd1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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.*;
 
/**
 * <p>
 * 可靠性计划成品 服务实现类
 * </p>
 *
 * @author ld
 * @since 2025-03-26 01:54:17
 */
@Service
@AllArgsConstructor
public class ReliabilityPlanProductServiceImpl extends ServiceImpl<ReliabilityPlanProductMapper, ReliabilityPlanProduct> implements ReliabilityPlanProductService {
 
    private ReliabilityPlanProductMapper reliabilityPlanProductMapper;
    private ReliabilityPlanProductItemMapper reliabilityPlanProductItemMapper;
 
    @Override
    public IPage<ReliabilityPlanProduct> selectProduct(Page page, ReliabilityPlanProductDto reliabilityPlanProductDto) {
        return reliabilityPlanProductMapper.selectPage(page, QueryWrappers.queryWrappers(reliabilityPlanProductDto));
    }
 
    @Override
    public int addOrUpdateProduct(ReliabilityPlanProductDto reliabilityPlanProductDto) {
        int i;
        if (Objects.isNull(reliabilityPlanProductDto.getId())) {
            reliabilityPlanProductDto.setState(0);
            i = reliabilityPlanProductMapper.insert(reliabilityPlanProductDto);
        } else {
            // 审核状态 0.待提交1.待审核2.通过3.不通过
            int state = reliabilityPlanProductDto.getState();
            if (state != 0 && state != 1 && state != 2) {
                reliabilityPlanProductDto.setState(3);
            }
            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
    public int delProduct(Integer id) {
        return reliabilityPlanProductMapper.deleteById(id);
    }
}