package com.mes.glassinfo.service.impl;
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.github.yulichang.base.MPJBaseServiceImpl;
|
import com.github.yulichang.query.MPJQueryWrapper;
|
import com.mes.glassinfo.entity.GlassInfo;
|
import com.mes.glassinfo.entity.OptimizeGlassinfo;
|
import com.mes.glassinfo.mapper.GlassInfoMapper;
|
import com.mes.glassinfo.service.GlassInfoService;
|
import com.mes.pp.entity.OptimizeProject;
|
import com.mes.pp.mapper.OptimizeProjectMapper;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 服务实现类
|
* </p>
|
*
|
* @author wu
|
* @since 2024-04-29
|
*/
|
@Service
|
@Slf4j
|
public class GlassInfoServiceImpl extends MPJBaseServiceImpl<GlassInfoMapper, GlassInfo> implements GlassInfoService {
|
@Autowired
|
OptimizeProjectMapper optimizeProjectMapper;
|
|
@Override
|
@DS("pp")
|
public List<GlassInfo> selectGlassInfo(String engineeringId) {
|
List<OptimizeGlassinfo> optimizeGlassinfos = null;
|
if (engineeringId != null) {
|
optimizeGlassinfos = optimizeProjectMapper.selectJoinList(OptimizeGlassinfo.class, new MPJQueryWrapper<OptimizeProject>()
|
.select("b.process_id,t.glass_type,b.o_width,b.o_height,t.glass_thickness,b.order_sort,b.p_width,b.p_height,b.layer, b.total_layer, b.stock_id,b.heat_layout_id,b.heat_layout_sort,c.x_axis,c.y_axis,b.project_no,b.glass_id,c.rotate_angle")
|
.leftJoin("optimize_detail b on t.project_no=b.project_no")
|
.leftJoin("optimize_heat_detail c on c.project_no=t.project_no and b.heat_layout_id=c.layout_id and b.heat_layout_sort=c.sort")
|
//.eq("t.state",100)
|
.eq("t.project_no", engineeringId));
|
}
|
//order_sort,o_width,o_height
|
// 创建一个 List 用于保存映射后的实体对象
|
List<GlassInfo> resultList = new ArrayList<>();
|
|
if (optimizeGlassinfos != null) {
|
for (OptimizeGlassinfo map : optimizeGlassinfos) {
|
// 创建一个新的 OptimizeGlassinfo 对象
|
GlassInfo glassInfo = new GlassInfo();
|
// 将 Map 中的每个键值对映射到 OptimizeGlassinfo 对象的相应字段上
|
glassInfo.setEngineerId(map.getProjectNo());
|
glassInfo.setFlowCardId(map.getProcessId());
|
glassInfo.setFilmsid(map.getGlassType());
|
glassInfo.setGlassType(map.getOrderSort());//订单序号
|
glassInfo.setWidth(map.getOWidth());//订单宽
|
glassInfo.setHeight(map.getOHeight());//订单高
|
glassInfo.setEdgWidth(map.getPWidth());
|
glassInfo.setLayer(map.getLayer());
|
glassInfo.setTotalLayer(map.getTotalLayer());
|
glassInfo.setEdgHeight(map.getPHeight());
|
glassInfo.setThickness(map.getGlassThickness());
|
glassInfo.setPatternSequence(map.getStockId());//
|
glassInfo.setTemperingLayoutId(map.getHeatLayoutId());//钢化版图id
|
glassInfo.setTemperingFeedSequence(map.getHeatLayoutSort());//钢化版图顺序
|
glassInfo.setXCoordinate(map.getXAxis());
|
glassInfo.setYCoordinate(map.getYAxis());
|
glassInfo.setAngle(map.getRotateAngle());
|
glassInfo.setGlassId(map.getGlassId());
|
// 将映射后的对象添加到结果列表中
|
resultList.add(glassInfo);
|
}
|
}
|
log.info("查询出glassinfo的数据{}:", resultList);
|
log.info("查询出glassinfopro的数据{}:", optimizeGlassinfos);
|
return resultList;
|
}
|
|
@Override
|
public void saveGlassInfo(List<GlassInfo> glassinfo) {
|
this.saveBatch(glassinfo);
|
}
|
/*
|
|
@Override
|
public int getGlassInfoCountByFlowCardId(String flowCardId,int layer) {
|
return baseMapper.selectCount(new QueryWrapper<GlassInfo>().lambda()
|
.eq(GlassInfo::getFlowCardId, flowCardId)
|
.eq(GlassInfo::getLayer, layer));
|
|
}
|
|
|
@Override
|
public List<Map<String, Object>> getFlowCardId() {
|
// 第二个查询:查询 OptimizeProject 表,根据 GlassInfo 的 engineerId 和 state 进行筛选
|
List<OptimizeProject> optimizeProjects = optimizeProjectMapper.selectList(
|
new QueryWrapper<OptimizeProject>()
|
.ne("state", 300)
|
);
|
// 提取 engineerId 列表
|
List<String> engineerIds = optimizeProjects.stream()
|
.map(OptimizeProject::getProjectNo)
|
.collect(Collectors.toList());
|
|
// 第一个查询:查询 GlassInfo 表并按 flow_card_id 分组,同时筛选出在 engineerIds 列表中的记录
|
List<GlassInfo> glassInfos = baseMapper.selectList(
|
new QueryWrapper<GlassInfo>()
|
.in("engineer_id", engineerIds)
|
.groupBy("flow_card_id")
|
.groupBy("layer")
|
);
|
|
// 转换为 List<Map<String, Object>>
|
List<Map<String, Object>> result = glassInfos.stream()
|
.map(glassInfo -> {
|
Map<String, Object> map = new HashMap<>();
|
map.put("flow_card_id", glassInfo.getFlowCardId()+" | "+glassInfo.getLayer());
|
// 如果还有其他字段需要添加到 map 中,在这里继续添加
|
return map;
|
})
|
.collect(Collectors.toList());
|
log.info("result666: {}", result);
|
return result;
|
}*/
|
|
|
|
|
|
}
|