package com.mes.downstorage.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; //import com.mes.device.PlcParameterObject; import com.mes.downglassinfo.entity.DownGlassTask; import com.mes.downglassinfo.service.DownGlassTaskService; import com.mes.downstorage.entity.DownStorageCage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mes.downstorage.entity.DownStorageCageDetails; import com.mes.downstorage.mapper.DownStorageCageDetailsMapper; import com.mes.downstorage.mapper.DownStorageCageMapper; import com.mes.downstorage.service.DownStorageCageDetailsService; import com.mes.downstorage.service.DownStorageCageService; import com.mes.glassinfo.entity.GlassInfo; import com.mes.glassinfo.service.GlassInfoService; import com.mes.pp.entity.OptimizeDetail; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; import java.util.Map; /** *

* 服务实现类 *

* * @author zhoush * @since 2024-03-27 */ @Slf4j @Service public class DownStorageCageServiceImpl extends ServiceImpl implements DownStorageCageService { @Autowired(required = false) private DownStorageCageMapper downStorageCageMapper; @Autowired private GlassInfoService glassInfoService; @Autowired private DownGlassTaskService downGlassTaskService; @Autowired private DownStorageCageDetailsService downStorageCageDetailsService; @Autowired private DownStorageCageDetailsMapper downStorageCageDetailsMapper; @Override public DownGlassTask createDownGlassTask(GlassInfo glassInfo, String startCell, String endCell, String taskType) { DownGlassTask downGlassTask = new DownGlassTask(); BeanUtils.copyProperties(glassInfo, downGlassTask); downGlassTask.setStartCell(startCell); downGlassTask.setTaskType(taskType); downGlassTask.setEndCell(endCell); return downGlassTask; } @Override public DownGlassTask createDownGlassTask(DownStorageCageDetails glassInfo, String startCell, String endCell, String taskType) { DownGlassTask downGlassTask = new DownGlassTask(); BeanUtils.copyProperties(glassInfo, downGlassTask); downGlassTask.setStartCell(startCell); downGlassTask.setTaskType(taskType); downGlassTask.setEndCell(endCell); return downGlassTask; } //找到空格子 @Override public List selectCacheEmpty() { return baseMapper.selectJoinList(DownStorageCageDetails.class, JoinWrappers.lambda(DownStorageCage.class) .selectAll(DownStorageCage.class) .select(DownStorageCageDetails::getWidth, DownStorageCageDetails::getHeight, DownStorageCageDetails::getGlassId) .leftJoin(DownStorageCageDetails.class, on -> on .eq(DownStorageCageDetails::getDeviceId, DownStorageCage::getDeviceId) .eq(DownStorageCageDetails::getSlot, DownStorageCage::getSlot)) .isNull(DownStorageCageDetails::getSlot) ); } @Override public List> selectDownStorageCages() { return baseMapper.selectJoinMaps(JoinWrappers.lambda(DownStorageCage.class) .selectAll(DownStorageCage.class) .selectAs(DownStorageCageDetails::getId, "esdId") .select(DownStorageCageDetails::getGlassId, DownStorageCageDetails::getWidth, DownStorageCageDetails::getHeight, DownStorageCageDetails::getId) .leftJoin(DownStorageCageDetails.class, on -> on .eq(DownStorageCageDetails::getDeviceId, DownStorageCage::getDeviceId) .eq(DownStorageCageDetails::getSlot, DownStorageCage::getSlot)) ); } /** * 修改理片笼信息 功能:对笼内栅格玻璃 【启用/禁用】 * * @param downStorageCage * @return */ @Override public boolean updateDownStorageCage(DownStorageCage downStorageCage) { DownStorageCage downItem = baseMapper.selectById(downStorageCage.getId()); downItem.setEnableState(downStorageCage.getEnableState()); baseMapper.updateById(downItem); return true; } /** * 修改理片笼信息 功能:对笼内栅格玻璃 【添加/删除/更换】 * * @param downStorageCageId * @param downStorageCageDetails * @return */ @Override public boolean updateDownStorageCageDetails(int downStorageCageId, DownStorageCageDetails downStorageCageDetails) { DownStorageCage downItem = baseMapper.selectById(downStorageCageId); log.info("正常" + downItem); if (downStorageCageDetails != null) { DownStorageCageDetails edgDItem = downStorageCageDetailsMapper.selectById(downStorageCageDetails.getId()); //添加 if (edgDItem != null) { //只传格子 :移除玻璃 DownStorageCageDetails newresult = downStorageCageDetailsMapper.selectById(downStorageCageDetails.getId()); newresult.setSlot(downItem.getSlot()); downStorageCageDetailsMapper.updateById(newresult); } } if (downItem != null) { //移除 DownStorageCageDetails result = downStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper().eq(DownStorageCageDetails::getSlot, downStorageCageId)); if (result != null) { result.setSlot(0); downStorageCageDetailsMapper.updateById(result); } } return true; } }