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.github.yulichang.toolkit.JoinWrappers; 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 com.mes.uppattenusage.entity.UpPattenUsage; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.Map; /** *

* 服务实现类 *

* * @author wu * @since 2024-04-29 */ @Service @Slf4j public class GlassInfoServiceImpl extends MPJBaseServiceImpl implements GlassInfoService { @Autowired OptimizeProjectMapper optimizeProjectMapper; @Override @DS("pp") public List selectGlassInfo(String engineeringId) { List optimizeGlassinfos=null; if (engineeringId != null) { optimizeGlassinfos = optimizeProjectMapper.selectJoinList(OptimizeGlassinfo.class, new MPJQueryWrapper() .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 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) { this.saveBatch(glassinfo); } @Override public int getGlassInfoCountByFlowCardId(String flowCardId) { return baseMapper.selectCount(new QueryWrapper().lambda() .eq(GlassInfo::getFlowCardId, flowCardId)); } @Override public List> getFlowCardId() { return baseMapper.selectJoinMaps(JoinWrappers.lambda(GlassInfo.class) .select(GlassInfo::getFlowCardId) .leftJoin(UpPattenUsage.class, on -> on .eq(OptimizeProject::getProjectNo, GlassInfo::getEngineerId) .ne(OptimizeProject::getState, 300) ) .groupBy(GlassInfo::getFlowCardId) ); } }