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.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.*;
/**
*
* 光纤配置的套管表 服务实现类
*
*
* @author 江苏鵷雏网络科技有限公司
* @since 2024-05-30 05:58:16
*/
@Service
@AllArgsConstructor
public class InsBushingServiceImpl extends ServiceImpl implements InsBushingService {
private InsBushingMapper insBushingMapper;
private StandardTemplateService standardTemplateService;
@Override
public List selectBushingBySampleId(Integer sampleId) {
List insBushings = insBushingMapper.selectList(Wrappers.lambdaQuery().eq(InsBushing::getInsSampleId, sampleId));
List 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 insProducts) {
Set set = new HashSet<>();
Map 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 cellData = JSON.parseArray(JSON.toJSONString(sheet.get("celldata")), JSONObject.class);
Map 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()));
}
}
}
}