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()));
|
}
|
}
|
}
|
}
|