package com.mes.uppattenusage.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.yulichang.base.MPJBaseServiceImpl; import com.github.yulichang.query.MPJQueryWrapper; import com.mes.engineering.entity.Engineering; import com.mes.engineering.service.EngineeringService; import com.mes.pp.entity.OptimizeProject; import com.mes.pp.mapper.OptimizeProjectMapper; import com.mes.uppattenusage.entity.OptimizeUpPattenUsage; import com.mes.uppattenusage.entity.UpPattenUsage; import com.mes.uppattenusage.service.UpPattenUsageService; import com.mes.uppattenusage.mapper.UpPattenUsageMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; /** *

* 服务实现类 *

* * @author zhoush * @since 2024-04-18 */ @Service @Slf4j public class UpPattenUsageServiceImpl extends MPJBaseServiceImpl implements UpPattenUsageService { @Autowired OptimizeProjectMapper optimizeProjectMapper; @Autowired EngineeringService engineeringService; @Override public List prioritylist() { //获取正在上片的任务id Engineering engineering= engineeringService.selectInitiate(1); log.info("将参数传入到查询类里{}",engineering); if(engineering!=null){ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(UpPattenUsage::getEngineeringId,engineering.getEngineerId()); return this.list(wrapper); }else { return null; } } @Override @DS("pp") public List selectSaveUpPattenUsage(String engineeringId) { List upPattenUsageList = null; if (engineeringId != null) { upPattenUsageList = optimizeProjectMapper.selectJoinList(OptimizeUpPattenUsage.class, new MPJQueryWrapper() .select("t.project_no,t.glass_type,b.width,b.height,REGEXP_REPLACE(t.glass_thickness,'\\D','')as glass_thickness,b.stock_id") .leftJoin("optimize_layout b on t.project_no=b.project_no") .eq("b.project_no", engineeringId)); } // 创建一个 List 用于保存映射后的实体对象 List resultList = new ArrayList<>(); // 遍历查询结果中的每个 Map 对象 if (upPattenUsageList != null) { for (OptimizeUpPattenUsage map : upPattenUsageList) { // 创建一个新的 OptimizeProject 对象 UpPattenUsage optimizeProject = new UpPattenUsage(); // 将 Map 中的每个键值对映射到 OptimizeProject 对象的相应字段上 optimizeProject.setEngineeringId(map.getProjectNo()); optimizeProject.setFilmsId( map.getGlassType()); optimizeProject.setWidth(map.getWidth()); optimizeProject.setHeight( map.getHeight()); optimizeProject.setThickness(map.getGlassThickness()); optimizeProject.setLayoutSequence( map.getStockId()); optimizeProject.setState(0); // 将映射后的对象添加到结果列表中 resultList.add(optimizeProject); } } log.info("查询出上片顺序集合保存到实体类{}",resultList); return resultList; } @Override public void saveUpPattenUsage(List upPattenUsage) { this.saveBatch(upPattenUsage); //保存原片使用详情表 } @Override public void updateUpPattenUsageState(UpPattenUsage upPattenUsage, Integer state) { upPattenUsage.setState(state); boolean updateSuccess=this.updateById(upPattenUsage); log.info("更新状态{}",updateSuccess); //更新状态 } @Override public UpPattenUsage selectedEngineering(String engineeringId) { QueryWrapperwrapper = new QueryWrapper<>(); wrapper.eq("engineering_id",engineeringId) .last("limit 1"); return this.getOne(wrapper); } @Override public UpPattenUsage selectOverTask() { QueryWrapperwrapper = new QueryWrapper<>(); wrapper.gt("state",0) .lt("state",99) .last("limit 1"); return this.getOne(wrapper); } }