package com.mes.edgstoragecage.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.github.yulichang.base.MPJBaseServiceImpl;
|
import com.github.yulichang.query.MPJLambdaQueryWrapper;
|
import com.github.yulichang.query.MPJQueryWrapper;
|
import com.github.yulichang.toolkit.JoinWrappers;
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
import com.mes.edgstoragecage.entity.EdgStorageCage;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
|
import com.mes.edgstoragecage.mapper.EdgStorageCageMapper;
|
import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper;
|
import com.mes.edgstoragecage.service.EdgStorageCageService;
|
import com.mes.uppattenusage.entity.UpPattenUsage;
|
import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import java.util.Map;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 服务实现类
|
* </p>
|
*
|
* @author zhoush
|
* @since 2024-04-07
|
*/
|
@Service
|
public class EdgStorageCageServiceImpl extends MPJBaseServiceImpl<EdgStorageCageMapper, EdgStorageCage> implements EdgStorageCageService {
|
|
@Autowired
|
EdgStorageCageDetailsMapper edgStorageCageDetailsMapper;
|
@Autowired
|
UpPattenUsageMapper upPattenUsageMapper;
|
|
/**
|
* 查询笼内空格
|
* @return
|
*/
|
@Override
|
public List<Map<String, Object>> selectCacheEmpty(){
|
return baseMapper.selectJoinMaps(JoinWrappers.lambda(EdgStorageCage.class).selectAll(EdgStorageCage.class)
|
.select(EdgStorageCageDetails::getWidth, EdgStorageCageDetails::getHeight,EdgStorageCageDetails::getGlassId)
|
.leftJoin(EdgStorageCageDetails.class,on->on
|
.eq(EdgStorageCageDetails::getDeviceId,EdgStorageCage::getDeviceId)
|
.eq(EdgStorageCageDetails::getSlot,EdgStorageCage::getSlot))
|
.isNull(EdgStorageCageDetails::getSlot)
|
);
|
|
// return baseMapper.selectJoinMaps(new MPJQueryWrapper<EdgStorageCage>().selectAll(EdgStorageCage.class)
|
// .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height")
|
// .leftJoin("edg_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot")
|
// .isNull("escd.slot")
|
// );
|
}
|
|
/**
|
* 查询笼内出片任务 按钢化版图号+版图内序号
|
* @return
|
*/
|
@Override
|
public List<Map<String, Object>> selectCacheOut(){
|
|
return upPattenUsageMapper.selectJoinMaps(JoinWrappers.lambda(UpPattenUsage.class).selectAll(UpPattenUsage.class)
|
.select(EdgStorageCageDetails::getWidth, EdgStorageCageDetails::getHeight,EdgStorageCageDetails::getGlassId)
|
.leftJoin(EdgStorageCageDetails.class,on->on
|
.eq(EdgStorageCageDetails::getDeviceId,EdgStorageCage::getDeviceId)
|
.eq(EdgStorageCageDetails::getSlot,EdgStorageCage::getSlot))
|
.isNull(EdgStorageCageDetails::getSlot)
|
);
|
// return upPattenUsageMapper.selectJoinMaps(new MPJQueryWrapper<UpPattenUsage>().selectAll(UpPattenUsage.class)
|
// .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height")
|
// .leftJoin("edg_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot")
|
// .isNotNull("escd.slot")
|
// .orderByAsc("escd.tempering_layout_id","escd.tempering_feed_sequence")
|
// );
|
}
|
|
/**
|
* 理片缓存详情
|
* @return
|
*/
|
@Override
|
public List<Map<String, Object>> selectEdgStorageCages(){
|
return baseMapper.selectJoinMaps(JoinWrappers.lambda(EdgStorageCage.class)
|
.selectAll(EdgStorageCage.class)
|
.selectAs(EdgStorageCageDetails::getId,"esdId")
|
.select(EdgStorageCageDetails::getGlassId,EdgStorageCageDetails::getWidth,EdgStorageCageDetails::getHeight,EdgStorageCageDetails::getId)
|
.leftJoin(EdgStorageCageDetails.class,on->on
|
.eq(EdgStorageCageDetails::getDeviceId,EdgStorageCage::getDeviceId)
|
.eq(EdgStorageCageDetails::getSlot,EdgStorageCage::getSlot))
|
);
|
// return baseMapper.selectJoinMaps(new MPJQueryWrapper<EdgStorageCage>().selectAll(EdgStorageCage.class)
|
// .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height")
|
// .leftJoin("edg_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot")
|
// );
|
}
|
|
/**
|
* 修改理片笼信息 功能:对笼内栅格玻璃 【启用/禁用】
|
* @param edgStorageCage
|
* @return
|
*/
|
@Override
|
public boolean updateEdgStorageCage(EdgStorageCage edgStorageCage){
|
EdgStorageCage edgItem=baseMapper.selectById(edgStorageCage.getId());
|
edgItem.setEnableState(edgStorageCage.getEnableState());
|
baseMapper.updateById(edgItem);
|
return true;
|
}
|
|
/**
|
*修改理片笼信息 功能:对笼内栅格玻璃 【添加/删除/更换】
|
* @param edgStorageCage
|
* @param edgStorageCageDetails
|
* @return
|
*/
|
@Override
|
public boolean updateEdgStorageCageDetails(EdgStorageCage edgStorageCage,EdgStorageCageDetails edgStorageCageDetails){
|
EdgStorageCage edgItem=baseMapper.selectById(edgStorageCage.getId());
|
EdgStorageCageDetails edgDItem=edgStorageCageDetailsMapper.selectById(edgStorageCageDetails.getId());
|
if (edgItem!=null){
|
if(edgDItem==null){
|
//移除玻璃
|
EdgStorageCageDetails result=edgStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getId,edgStorageCageDetails.getId()));
|
result.setSlot(0);
|
edgStorageCageDetailsMapper.updateById(result);
|
}else{
|
//1.绑定新的玻璃 2.更换玻璃 上一片清除 重新绑定
|
EdgStorageCageDetails lastResult=edgStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getSlot,edgStorageCage.getSlot()));
|
lastResult.setSlot(0);
|
edgStorageCageDetailsMapper.updateById(lastResult);
|
EdgStorageCageDetails result=edgStorageCageDetailsMapper.selectById(edgStorageCageDetails.getId());
|
result.setSlot(edgStorageCageDetails.getSlot());
|
edgStorageCageDetailsMapper.updateById(result);
|
}
|
}
|
return true;
|
}
|
|
|
}
|