hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
@@ -17,6 +17,8 @@ import com.mes.bigstoragetask.mapper.BigStorageCageFeedTaskMapper; import com.mes.bigstoragetask.mapper.BigStorageCageOutTaskMapper; import com.mes.common.config.Const; import com.mes.damage.entity.Damage; import com.mes.damage.service.DamageService; import com.mes.glassinfo.entity.GlassInfo; import com.mes.glassinfo.mapper.GlassInfoMapper; import com.mes.temperingglass.entity.TemperingGlassInfo; @@ -53,6 +55,9 @@ private BigStorageCageService bigStorageCageService; @Resource private GlassInfoMapper glassInfoMapper; @Resource private DamageService damageService; @Value("${mes.minCount}") private int minCount; @@ -204,7 +209,12 @@ baseMapper.updateById(bigStorageCageDetails); bigStorageCageService.updateRemainWidth(bigStorageCageDetails.getSlot()); //todo:插入破损数据 Damage damage = new Damage(); damage.setGlassId(bigStorageCageDetails.getGlassId()); damage.setWorkingProcedure("冷加工"); damage.setRemark("大理片笼破损"); damage.setStatus(2); damageService.insertDamage(damage); } //查询玻璃信息 @@ -260,7 +270,7 @@ .leftJoin(BigStorageCageDetails.class, BigStorageCageDetails::getSlot, BigStorageCage::getSlot) .eq(BigStorageCage::getEnableState, Const.SLOT_ON) .eq(BigStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId()) .gt(BigStorageCage::getRemainWidth, glassInfo.getWidth()) .gt(BigStorageCage::getRemainWidth, Math.max(glassInfo.getWidth(), glassInfo.getHeight())) .last("limit 1"); if (glassInfo.getTemperingLayoutId() == 0) { wrapper.eq(BigStorageCageDetails::getWidth, glassInfo.getWidth()).eq(BigStorageCageDetails::getHeight, glassInfo.getHeight()); @@ -288,7 +298,23 @@ bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId()); return bigStorageDTO; } //todo:获取玻璃的厚度:重新选笼子需要按照笼子可放玻璃厚度进行选择 //获取玻璃的厚度:重新选笼子需要按照笼子可放玻璃厚度进行选择 bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>() .eq(BigStorageCage::getRemainWidth, slotWidth) .eq(BigStorageCage::getEnableState, Const.SLOT_ON) .notInSql(BigStorageCage::getDeviceId, "select distinct device_id from big_storage_cage_details where tempering_layout_id = " + glassInfo.getTemperingLayoutId()) .gt(BigStorageCage::getMaxThickness, glassInfo.getThickness()) .orderByAsc(BigStorageCage::getDeviceId) .last("limit 1")); if (null != bigStorageCage) { bigStorageDTO = new BigStorageDTO(); bigStorageDTO.setWidth(bigStorageCage.getRemainWidth()); bigStorageDTO.setSlot(bigStorageCage.getSlot()); bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId()); return bigStorageDTO; } bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>() .eq(BigStorageCage::getRemainWidth, slotWidth) .eq(BigStorageCage::getEnableState, Const.SLOT_ON) hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
@@ -18,6 +18,7 @@ import com.mes.temperingglass.service.TemperingGlassInfoService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -48,6 +49,9 @@ @Resource private GlassInfoService glassInfoService; @Value("${mes.glassGap}") private Integer glassGap; //进片逻辑 @Override @@ -217,15 +221,13 @@ LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailsWrapper = new LambdaQueryWrapper(); bigStorageCageDetailsWrapper .eq(BigStorageCageDetails::getSlot, slot) .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN) .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_ARTIFICIAL); .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL); List<BigStorageCageDetails> bigStorageCageDetailsList = bigStorageCageDetailsMapper.selectList(bigStorageCageDetailsWrapper); for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList ) { double widths = bigStorageCageDetails.getWidth(); double gap = bigStorageCageDetails.getGap(); width -= widths + gap; width = width - widths - glassGap; } //修改格子剩余宽度 BigStorageCage bigStorageCage = new BigStorageCage(); @@ -242,8 +244,8 @@ wrapper.selectAll(BigStorageCage.class).selectCollection(BigStorageCageDetails.class, BigStorageCage::getBigStorageCageDetails) .leftJoin(BigStorageCageDetails.class, on -> on.eq(BigStorageCageDetails::getSlot, BigStorageCage::getSlot) .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL)) .orderByAsc(BigStorageCage::getDeviceId) .orderByAsc(BigStorageCage::getSlot); .orderByAsc(BigStorageCage::getDeviceId) .orderByAsc(BigStorageCage::getSlot); return bigStorageCageMapper.selectJoinList(BigStorageCage.class, wrapper); } hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -528,7 +528,7 @@ //2、获取目标格子信息 BigStorageDTO bigStorageDTO = bigStorageCageDetailsService.queryTargetSlotByTempering(info); //3、更新大理片笼表剩余宽度 bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, bigStorageDTO.getWidth() - info.getWidth()) bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, bigStorageDTO.getWidth() - info.getWidth() - glassGap) .eq(BigStorageCage::getSlot, bigStorageDTO.getSlot())); //4、更新进片任务表,目标格子及状态(状态改为2 电气扫到自行处理) 遇到问题:无法批量更新,批量更新无法走指定从库 e.setTargetSlot(bigStorageDTO.getSlot()); @@ -631,7 +631,7 @@ } //获取玻璃信息 GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId)); return sitToUpRemainWidth.getWidth() < glassInfo.getWidth(); return sitToUpRemainWidth.getWidth() < Math.max(glassInfo.getWidth(), glassInfo.getHeight()); } }