package com.mes.uppattenusage.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.yulichang.base.MPJBaseServiceImpl;
import com.github.yulichang.query.MPJQueryWrapper;
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;
@Override
public List prioritylist(int state) {
log.info("将参数传入到查询类里,工程号做非空判断模糊查询");
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(UpPattenUsage::getState,state);
log.info("返回工程信息");
return this.list(wrapper);
}
@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.heat_layout_sort")
.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((String) map.getProjectNo());
optimizeProject.setFilmsId((String) map.getGlassType());
optimizeProject.setWidth((Double) map.getWidth());
optimizeProject.setHeight((Double) map.getHeight());
optimizeProject.setThickness((Double)map.getHeight());
optimizeProject.setLayoutSequence((Integer) map.getHeatLayoutSort());
optimizeProject.setState(0);
// 将映射后的对象添加到结果列表中
resultList.add(optimizeProject);
}
}
log.info("查询出上片顺序集合保存到实体类{}",resultList);
return resultList;
}
@Override
public void saveUpPattenUsage(List upPattenUsage) {
this.saveBatch(upPattenUsage);
//保存原片使用详情表
}
//@Override
public void selectSaveGlassinfo(String engineeringId) {
//保存玻璃信息表
//optimizeProjectMapper.selectJoinList();
}
}