value
2024-06-01 5299d63b70c02f3c915975565723930f4fd87e14
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
package com.yuanchu.mom.service.impl;
 
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.dto.BushingDto;
import com.yuanchu.mom.dto.FiberDto;
import com.yuanchu.mom.dto.FibersDto;
import com.yuanchu.mom.mapper.InsBushingMapper;
import com.yuanchu.mom.pojo.InsBushing;
import com.yuanchu.mom.pojo.InsProduct;
import com.yuanchu.mom.service.InsBushingService;
import com.yuanchu.mom.service.StandardTemplateService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
 
import java.util.*;
 
/**
 * <p>
 * 光纤配置的套管表 服务实现类
 * </p>
 *
 * @author 江苏鵷雏网络科技有限公司
 * @since 2024-05-30 05:58:16
 */
@Service
@AllArgsConstructor
public class InsBushingServiceImpl extends ServiceImpl<InsBushingMapper, InsBushing> implements InsBushingService {
 
    private InsBushingMapper insBushingMapper;
 
    private StandardTemplateService standardTemplateService;
 
    @Override
    public List<BushingDto> selectBushingBySampleId(Integer sampleId) {
        List<InsBushing> insBushings = insBushingMapper.selectList(Wrappers.<InsBushing>lambdaQuery().eq(InsBushing::getInsSampleId, sampleId));
        List<BushingDto> bushingDtos = new ArrayList<>();
        for (InsBushing insBushing : insBushings) {
            BushingDto bushingDto = JSON.parseObject(JSON.toJSONString(insBushing), BushingDto.class);
            bushingDto.setFiber(insBushingMapper.selectFiberByBushingId(bushingDto.getId()));
            if(bushingDto.getFiber().size()==0){
                bushingDto.setFibers(insBushingMapper.selectFibersByBushingId(insBushing.getId()));
                for (FibersDto fibers : bushingDto.getFibers()) {
                    getTemplateThing(fibers.getProductList());
                    fibers.setFiber(insBushingMapper.selectFiberByFibersId(fibers.getId()));
                    for (FiberDto fiberDto : fibers.getFiber()) {
                        getTemplateThing(fiberDto.getProductList());
                    }
                }
            }else{
                for (FiberDto fiberDto : bushingDto.getFiber()) {
                    getTemplateThing(fiberDto.getProductList());
                }
            }
            bushingDtos.add(bushingDto);
        }
        return bushingDtos;
    }
 
    private void getTemplateThing(List<InsProduct> insProducts) {
        Set<Integer> set = new HashSet<>();
        Map<Integer, String> map2 = new HashMap<>();
        for (InsProduct product : insProducts) {
            if (product.getTemplateId() == null) {
                product.setTemplate(new ArrayList<>());
                continue;
            }
            String thing = null;
            if (product.getTemplateId() != null && set.add(product.getTemplateId())) {
                map2.put(product.getTemplateId(), standardTemplateService.getStandTempThingById(product.getTemplateId()) + "");
                thing = map2.get(product.getTemplateId());
            }
            if (StrUtil.isNotEmpty(thing)) {
                JSONObject sheet = JSON.parseObject(JSON.toJSONString(JSON.parseArray(JSON.toJSONString(JSON.parseObject(thing).get("data"))).get(0)));
                JSONObject config = JSON.parseObject(JSON.toJSONString(sheet.get("config")));
                List<JSONObject> cellData = JSON.parseArray(JSON.toJSONString(sheet.get("celldata")), JSONObject.class);
                Map<String, Object> style = new HashMap<>();
                style.put("rowlen", config.get("rowlen"));
                style.put("columnlen", config.get("columnlen"));
                product.setTemplate(cellData);
                product.setStyle(style);
                product.setTemplateName(standardTemplateService.getStandTempNameById(product.getTemplateId()));
            }
        }
    }
}