package com.mes.engineering.service.impl;
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.mes.engineering.entity.Engineering;
|
import com.mes.engineering.mapper.EngineeringMapper;
|
import com.mes.engineering.service.EngineeringService;
|
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.List;
|
|
/**
|
* <p>
|
* 服务实现类
|
* </p>
|
*
|
* @author wu
|
* @since 2024-04-22
|
*/
|
@Service
|
@Slf4j
|
public class EngineeringServiceImpl extends ServiceImpl<EngineeringMapper, Engineering> implements EngineeringService {
|
|
@Autowired
|
OptimizeProjectMapper optimizeProjectMapper;
|
@Autowired
|
private EngineeringMapper engineeringMapper;
|
|
//开始/暂停任务
|
@Override
|
public boolean changeTask(String projectId, Integer state) {
|
//暂停正在进行工程
|
LambdaUpdateChainWrapper<Engineering> pauseWrapper = new LambdaUpdateChainWrapper<>(this.getBaseMapper());
|
pauseWrapper.set(Engineering::getState,0);
|
pauseWrapper.eq(Engineering::getState,1);
|
boolean pause = pauseWrapper.update();
|
//使用projectId作为条件开始工程
|
LambdaUpdateChainWrapper<Engineering> wrapper = new LambdaUpdateChainWrapper<>(this.getBaseMapper());
|
wrapper.set(Engineering::getState,state);
|
wrapper.eq(Engineering::getEngineerId,projectId);
|
wrapper.update();
|
return pause;
|
}
|
|
@Override
|
@DS("pp")
|
public List<Engineering> selectEngineering(String engineeringId) {
|
//查询钢化工程信息
|
List<OptimizeProject> optimizeEngineerings = null;
|
if (engineeringId != null) {
|
QueryWrapper<OptimizeProject> wrapper = new QueryWrapper<>();
|
wrapper.select("project_no,project_name,avg_cut_pct,valid_cut_pct,last_cut_pct,glass_total,glass_total_area,raw_stock_qty,raw_stock_area,glass_type,remark ")
|
.eq("project_no", engineeringId);
|
optimizeEngineerings = optimizeProjectMapper.selectList(wrapper);
|
|
}
|
List<Engineering> resultList=new ArrayList<>();
|
// 遍历查询结果赋值
|
if (optimizeEngineerings != null) {
|
for (OptimizeProject map : optimizeEngineerings) {
|
// 创建一个新的 OptimizeProject 对象
|
Engineering engineering = new Engineering();
|
// 将 Map 中的每个键值对映射到 OptimizeProject 对象的相应字段上
|
engineering.setEngineerId( map.getProjectNo());//工程id
|
engineering.setEngineerName( map.getProjectName());//工程名称
|
engineering.setAvgAvailability( map.getAvgCutPct());//平均优化率
|
engineering.setValidAvailability( map.getValidCutPct());//有效优化率
|
engineering.setLastAvailability( map.getLastCutPct());//尾片优化率
|
engineering.setState(0);//状态
|
engineering.setGlassTotal( map.getGlassTotal());//小片玻璃总数
|
engineering.setGlassTotalArea( map.getGlassTotalArea());//小片总面积
|
engineering.setPlanPatternTotal( map.getRawStockQty());//计划原片总数
|
engineering.setPlanPatternTotalArea( map.getRawStockArea());//计划原片总面积
|
engineering.setFilmsId( map.getGlassType());//膜系
|
engineering.setNotes( map.getRemark());//备注
|
// 将映射后的对象添加到结果列表中
|
resultList.add(engineering);
|
}
|
}
|
log.info("查询出钢化工程集合保存到实体类{}",resultList);
|
return resultList;
|
}
|
|
@Override
|
public void saveEngineering(List<Engineering> engineering) {
|
this.saveBatch(engineering);
|
//保存钢化工程信息
|
}
|
|
@Override
|
public Engineering selectInitiate(Integer state) {
|
//查询是否有开始上片的工程任务
|
QueryWrapper<Engineering> wrapper = new QueryWrapper<>();
|
wrapper.eq("state", state);
|
return engineeringMapper.selectOne(wrapper);
|
}
|
|
@Override
|
public Engineering selectUpInitiate(Integer state, Integer equipmentId) {
|
return null;
|
}
|
|
@Override
|
public List<Engineering> selectTask() {
|
//查询可开始任务的工程
|
QueryWrapper<Engineering> wrapper = new QueryWrapper<>();
|
wrapper.eq("state", 0);
|
return engineeringMapper.selectList(wrapper);
|
}
|
|
@Override
|
public boolean pauseTask(String engineerId, Integer state) {
|
//暂停正在进行工程
|
LambdaUpdateChainWrapper<Engineering> pauseWrapper = new LambdaUpdateChainWrapper<>(this.getBaseMapper());
|
pauseWrapper.set(Engineering::getState,0);
|
pauseWrapper.eq(Engineering::getState,1);
|
return pauseWrapper.update();
|
}
|
|
}
|