hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/CacheVerticalClassModuleApplication.java
@@ -25,6 +25,5 @@ }catch (Exception e){ log.error(e.getMessage()); } } } hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageController.java
@@ -1,11 +1,17 @@ package com.mes.bigstorage.controller; import com.mes.bigstorage.entity.BigStorageCage; import com.mes.bigstorage.entity.BigStorageCageDetails; import com.mes.bigstorage.service.impl.BigStorageCageDetailsServiceImpl; import com.mes.bigstorage.service.impl.BigStorageCageServiceImpl; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * <p> @@ -19,11 +25,37 @@ @RequestMapping("/bigStorageCage") public class BigStorageCageController { private BigStorageCageServiceImpl bigStorageCageServiceImpl; private BigStorageCageDetailsServiceImpl bigStorageCageDetailsServiceImpl; //todo: 实例代码 待删除 @ApiOperation("测试") @GetMapping("/index") public String index() { return "hello world"; } @ApiOperation("理片笼信息") @GetMapping("/BigStorageCage") public List<BigStorageCage> BigStorageCage() { return bigStorageCageServiceImpl.list(); } @ApiOperation("理片笼详情") @GetMapping("/BigStorageCageDetails") public List<BigStorageCageDetails> BigStorageCageDetails() { return bigStorageCageDetailsServiceImpl.list(); } @ApiOperation("小车实时位置") @GetMapping("/CarPosition") public List<Integer> CarPosition() { return bigStorageCageDetailsServiceImpl.GetCarposition(); } @ApiOperation("手动完成任务") @GetMapping("/FinishTask") public void FinishTask(int type, int id) { // bigStorageCageDetailsService.FinishTask(); } } hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.mes.bigstorage.entity.BigStorageCageDetails; import feign.Param; /** @@ -14,4 +15,7 @@ */ public interface BigStorageCageDetailsMapper extends BaseMapper<BigStorageCageDetails> { BigStorageCageDetails SelectTemperingFeedSlot(@Param("bigStorageCageDetails") BigStorageCageDetails bigStorageCageDetails); BigStorageCageDetails SelectEmptyFeedSlot(); } hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java
@@ -2,6 +2,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.mes.bigstorage.entity.BigStorageCage; import com.mes.bigstorage.entity.BigStorageCageDetails; import com.mes.uppattenusage.entity.GlassInfo; import org.apache.ibatis.annotations.Update; /** * <p> @@ -13,4 +16,13 @@ */ public interface BigStorageCageMapper extends BaseMapper<BigStorageCage> { BigStorageCageDetails SelectEmptyFeedSlot(); @Update("update big_storage_cage set remain_width = #{width} where slot=#{slot}") public void UpdateRemainWidth(int slot,int width); BigStorageCageDetails SelectTemperingFeedSlot(GlassInfo glassInfo); BigStorageCageDetails SelectOtherFeedSlot(); } hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java
@@ -2,6 +2,9 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.mes.bigstorage.entity.BigStorageCageDetails; import com.mes.bigstorage.mapper.BigStorageCageMapper; import java.util.List; /** * <p> @@ -12,5 +15,9 @@ * @since 2024-03-27 */ public interface BigStorageCageDetailsService extends IService<BigStorageCageDetails> { List<Integer> GetCarposition(); //获取小车实时位置 } hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java
@@ -2,6 +2,15 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.mes.bigstorage.entity.BigStorageCage; import com.mes.bigstorage.entity.BigStorageCageDetails; import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper; import com.mes.bigstorage.mapper.BigStorageCageMapper; import com.mes.uppattenusage.entity.GlassInfo; import org.springframework.beans.factory.annotation.Autowired; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * <p> hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
@@ -3,9 +3,17 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mes.bigstorage.entity.BigStorageCageDetails; import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper; import com.mes.bigstorage.mapper.BigStorageCageMapper; import com.mes.bigstorage.service.BigStorageCageDetailsService; import com.mes.uppattenusage.entity.GlassInfo; import com.mes.uppattenusage.mapper.GlassInfoMapper; import com.mes.uppattenusage.service.GlassInfoService; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * <p> * 服务实现类 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
@@ -2,9 +2,17 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mes.bigstorage.entity.BigStorageCage; import com.mes.bigstorage.entity.BigStorageCageDetails; import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper; import com.mes.bigstorage.mapper.BigStorageCageMapper; import com.mes.bigstorage.service.BigStorageCageService; import com.mes.uppattenusage.entity.GlassInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * <p> @@ -16,5 +24,50 @@ */ @Service public class BigStorageCageServiceImpl extends ServiceImpl<BigStorageCageMapper, BigStorageCage> implements BigStorageCageService { @Autowired private BigStorageCageMapper; @Autowired private BigStorageCageDetailsMapper bigStorageCageDetailsMapper; public BigStorageCageDetails FeedGlass(GlassInfo glassInfo, BigStorageCageDetails bigStorageCageDetails) { BigStorageCageDetails bigStorageCageDetails=new ArrayList<>(); //获取同钢化版图id可进片的格子 BigStorageCageDetails layoutSlotInfo =bigStorageCageMapper.SelectTemperingFeedSlot(glassInfo); //有符合条件的格子时 if (layoutSlotInfo!=null) { //将玻璃信息填入理片笼详情表 bigStorageCageDetails.setSlot(layoutSlotInfo.getSlot()); }else{ //获取不到时: //获取可进片格子信息 BigStorageCageDetails EmptySlotInfo=bigStorageCageMapper.SelectEmptyFeedSlot(); if (EmptySlotInfo!=null){ bigStorageCageDetails.setSlot(EmptySlotInfo.getSlot()); }else{ //获取其他笼格子- BigStorageCageDetails OtherSlotInfo=bigStorageCageMapper.SelectOtherFeedSlot(); bigStorageCageDetails.setSlot(OtherSlotInfo.getSlot()); } //将玻璃信息放入该格子 } updateRemainWidth(bigStorageCageDetails.getSlot()); return bigStorageCageDetails; } //修改格子剩余宽度 private void updateRemainWidth(int Slot){ //获取该格子内玻璃信息 int width=5000; List<BigStorageCageDetails> bigStorageCageDetailsList= Collections.singletonList(bigStorageCageDetailsMapper.selectById(Slot)); for (BigStorageCageDetails bigStorageCageDetails:bigStorageCageDetailsList ) { width-=Integer.parseInt(bigStorageCageDetails.getWidth().toString())+bigStorageCageDetails.getGap(); } //修改格子剩余宽度 bigStorageCageMapper.UpdateRemainWidth(Slot,width); } } hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/component/PlcStorageCage.java
New file @@ -0,0 +1,62 @@ package com.mes.component; import com.mes.bigstorage.entity.BigStorageCageDetails; import com.mes.bigstorage.service.impl.BigStorageCageServiceImpl; import com.mes.temperingglass.entity.TemperingGlassInfo; import com.mes.temperingglass.service.impl.TemperingGlassInfoServiceImpl; import com.mes.uppattenusage.entity.GlassInfo; import com.mes.uppattenusage.service.impl.GlassInfoServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import java.util.List; public class PlcStorageCage extends Thread { @Autowired private BigStorageCageServiceImpl bigStorageCageServiceImpl; @Autowired private TemperingGlassInfoServiceImpl temperingGlassInfoServiceImpl; @Autowired private GlassInfoServiceImpl glassInfoServiceImpl; @Override public void run() { while (this != null) { try { Thread.sleep(500); String plcFeedReq ="0"; String plcFeedGlassid ="111"; //Plc进片请求时 if("1".equals(plcFeedReq)){ BigStorageCageDetails bigStorageCageDetails=new BigStorageCageDetails(); //传入玻璃id GlassInfo glassInfo=glassInfoServiceImpl.getById(plcFeedGlassid); BigStorageCageDetails SlotInfo=bigStorageCageServiceImpl.FeedGlass(glassInfo,bigStorageCageDetails); if(SlotInfo!=null){ //发送任务给Plc } } //出片请求 String plcOutReq ="0"; if("1".equals(plcOutReq)){ //获取钢化小片表未出笼信息 List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoServiceImpl.SelectTemperingGlassInfo(); //没有可出的玻璃时 if(temperingGlassInfoList!=null){ //查询是否有小片全部到齐的钢化版图 }else{ //继续当前钢化版图的任务 temperingGlassInfoServiceImpl.addOutTask(temperingGlassInfoList); } } } catch (Exception e) { e.printStackTrace(); } } } } hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
@@ -6,6 +6,8 @@ import com.mes.temperingglass.service.TemperingGlassInfoService; import org.springframework.stereotype.Service; import java.util.List; /** * <p> * 服务类 @@ -17,4 +19,21 @@ @Service public class TemperingGlassInfoServiceImpl extends ServiceImpl<TemperingGlassInfoMapper, TemperingGlassInfo> implements TemperingGlassInfoService { public void addOutTask(List<TemperingGlassInfo> temperingGlassInfoList) { double carwidth=5000; double gay=50; //写入任务到任务表 for (TemperingGlassInfo temperingGlassInfo:temperingGlassInfoList ) { if((carwidth-gay-temperingGlassInfo.getWidth())>0){ //添加任务到任务表 }else{ break; } } } public List<TemperingGlassInfo> SelectTemperingGlassInfo() { } }