hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/BigStorageCageBaseInfo.java
New file @@ -0,0 +1,32 @@ package com.mes.base.entity; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @Author : zhoush * @Date: 2024/6/21 9:40 * @Description: */ @Data public class BigStorageCageBaseInfo { /** * 玻璃id */ @ApiModelProperty(value = "玻璃id") private String glassId; /** * 宽 */ @ApiModelProperty(value = "宽") private Double width; /** * 格子号 */ @ApiModelProperty(value = "玻璃id") private Integer slot; } hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
@@ -121,12 +121,6 @@ public static final Integer BIG_STORAGE_IN_RUN = 2; /** * 大理片笼宽度 及 玻璃间距 */ public static final Integer BIG_STORAGE_WIDTH = 5000; public static final Integer BIG_STORAGE_GAP = 20; /** * 钢化小片表 * -1 生成任务 * 0 出片完成 hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.mes.base.entity.BigStorageCageBaseInfo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -20,7 +21,7 @@ @ApiModel(description = "<p> 钢化小片信息表 </p>") @Data @EqualsAndHashCode(callSuper = false) public class TemperingGlassInfo implements Serializable { public class TemperingGlassInfo extends BigStorageCageBaseInfo implements Serializable { private static final long serialVersionUID = 1L; @@ -30,12 +31,6 @@ @ApiModelProperty(value = "钢化小片信息表id", position = 2) @TableId(value = "id", type = IdType.AUTO) private Long id; /** * 玻璃id */ @ApiModelProperty(value = "玻璃id", position = 3) private String glassId; /** * 流程卡 @@ -48,12 +43,6 @@ */ @ApiModelProperty(value = "流程卡玻璃类型", position = 5) private Integer glassType; /** * 宽 */ @ApiModelProperty(value = "宽", position = 6) private Double width; /** * 高 @@ -71,7 +60,7 @@ * 膜系 */ @ApiModelProperty(value = "膜系", position = 9) private Integer filmsid; private String filmsid; /** * 钢化是否接受横放 @@ -114,10 +103,5 @@ */ @ApiModelProperty(value = "状态", position = 16) private Integer state; /** * 格子号 */ private Integer slot; } hangzhoumesParent/common/servicebase/src/main/resources/mapper/TemperingGlassInfoMapper.xml
@@ -2,11 +2,14 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mes.temperingglass.mapper.TemperingGlassInfoMapper"> <insert id="saveBatch"> INSERT INTO tempering_glass_info ( glass_id, width, height, thickness, tempering_layout_id, tempering_feed_sequence, "state" ) VALUES INSERT INTO tempering_glass_info (glass_id, flow_card_id, glass_type, width, height, thickness, filmsid, ishorizontal, tempering_layout_id, tempering_feed_sequence, x_coordinate, y_coordinate, angle, state, slot ) VALUES <foreach collection="list" item="item" separator=","> (#{item.glassId}, #{item.width}, #{item.height}, #{item.thickness}, #{item.temperingLayoutId}, #{item.temperingFeedSequence}, #{item.state}) (#{item.glassId}, #{item.flowCardId}, #{item.glassType}, #{item.width}, #{item.height}, #{item.thickness}, #{item.filmsid},#{item.ishorizontal}, #{item.temperingLayoutId}, #{item.temperingFeedSequence}, #{item.xCoordinate}, #{item.yCoordinate}, #{item.angle}, #{item.state}, #{item.slot}) </foreach> </insert> hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.mes.base.entity.BigStorageCageBaseInfo; import com.mes.bigstoragetask.entity.BigStorageCageFeedTask; import com.mes.bigstoragetask.entity.BigStorageCageOutTask; import io.swagger.annotations.Api; @@ -23,15 +24,15 @@ @Api(description = "大理片笼详情") @Data @EqualsAndHashCode(callSuper = false) public class BigStorageCageDetails implements Serializable { public class BigStorageCageDetails extends BigStorageCageBaseInfo implements Serializable { private static final long serialVersionUID = 1L; /** * 大理片笼详情表id */ @ApiModelProperty(value = "大理片笼详情表id", position = 2) @TableId(value = "id", type = IdType.AUTO) @ApiModelProperty(value = "大理片笼详情表id", position = 2) @TableId(value = "id", type = IdType.AUTO) private Long id; /** @@ -40,17 +41,6 @@ @ApiModelProperty(value = "设备id", position = 3) private Integer deviceId; /** * 栅格号 */ @ApiModelProperty(value = "栅格号", position = 4) private Integer slot; /** * 玻璃id */ @ApiModelProperty(value = "玻璃id", position = 5) private String glassId; /** * 小片在格内的顺序 @@ -69,12 +59,6 @@ */ @ApiModelProperty(value = "玻璃类型", position = 8) private Integer glassType; /** * 宽 */ @ApiModelProperty(value = "宽", position = 9) private Double width; /** * 高 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
@@ -26,7 +26,6 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -55,6 +54,18 @@ @Value("${mes.minCount}") private int minCount; @Value("${mes.carWidth}") private Integer carWidth; @Value("${mes.slotWidth}") private Integer slotWidth; @Value("${mes.carMaxSize}") private Integer carMaxSize; @Value("${mes.galssGap}") private Integer galssGap; /** * 查询进/出片任务 @@ -125,7 +136,7 @@ for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList ) { if (bigStorageCageDetails.getBigStorageCageFeedTask().getTaskState() == 0) { carWidth -= Integer.parseInt(bigStorageCageDetails.getWidth().toString()) + bigStorageCageDetails.getGap(); carWidth -= Integer.parseInt(bigStorageCageDetails.getWidth().toString()) + galssGap; } } return carWidth; @@ -175,7 +186,7 @@ BigStorageCageDetails bigStorageCageDetails = new BigStorageCageDetails(); BeanUtils.copyProperties(glassInfo, bigStorageCageDetails); bigStorageCageDetails.setState(0); bigStorageCageDetails.setGap(Const.BIG_STORAGE_GAP); bigStorageCageDetails.setGap(galssGap); return bigStorageCageDetails; } @@ -228,7 +239,7 @@ return bigStorageDTO; } bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>() .eq(BigStorageCage::getRemainWidth, Const.BIG_STORAGE_WIDTH) .eq(BigStorageCage::getRemainWidth, slotWidth) .inSql(BigStorageCage::getDeviceId, "select distinct device_id from big_storage_cage_details where tempering_layout_id = " + glassInfo.getTemperingLayoutId()) .last("limit 1")); @@ -239,7 +250,7 @@ return bigStorageDTO; } bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>() .eq(BigStorageCage::getRemainWidth, Const.BIG_STORAGE_WIDTH) .eq(BigStorageCage::getRemainWidth, slotWidth) .last("limit 1")); Assert.isTrue(null != bigStorageCage, "没有空余的笼子存放玻璃"); bigStorageDTO = new BigStorageDTO(); hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.mes.base.entity.BigStorageCageBaseInfo; import com.mes.bigstorage.entity.BigStorageCage; import com.mes.bigstorage.entity.BigStorageCageDetails; import com.mes.bigstorage.entity.BigStorageDTO; @@ -16,7 +18,9 @@ import com.mes.bigstoragetask.entity.BigStorageCageOutTask; import com.mes.bigstoragetask.service.BigStorageCageFeedTaskService; import com.mes.bigstoragetask.service.BigStorageCageOutTaskService; import com.mes.common.S7object; import com.mes.common.config.Const; import com.mes.device.PlcParameterObject; import com.mes.edgglasstask.entity.EdgGlassTaskInfo; import com.mes.edgglasstask.service.EdgGlassTaskInfoService; import com.mes.glassinfo.entity.GlassInfo; @@ -27,13 +31,11 @@ import org.apache.commons.lang.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import java.util.*; import java.util.stream.Collectors; /** @@ -63,26 +65,28 @@ @Value("${mes.sequence.order}") private boolean sequenceOrder; @Value("${mes.carWidth}") private Integer carWidth; @Value("${mes.slotWidth}") private Integer slotWidth; // @Scheduled(fixedDelay = 5000) public void plcToHomeEdgScan(String d01Id) { // PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; // String d01Request = plcParameterObject.getPlcParameter("D01Request").getValue(); // String d01Id = plcParameterObject.getPlcParameter("D01ID1").getValue(); // String d02SitState = plcParameterObject.getPlcParameter("D02SitState").getValue(); // String d04Request = plcParameterObject.getPlcParameter("D04Request").getValue(); // String d04Id = plcParameterObject.getPlcParameter("D04ID1").getValue(); // String d05SitState = plcParameterObject.getPlcParameter("D05SitState").getValue(); @Value("${mes.carMaxSize}") private Integer carMaxSize; String d01Request = "1"; String d02SitState = "0"; // String d01Id = "P24060403|3|6"; String d04Request = "0"; String d05SitState = "0"; // String d04Id = "P24060403|4|3"; String d04Id = "P24060403|5|4"; @Value("${mes.galssGap}") private Integer galssGap; @Scheduled(fixedDelay = 5000) public void plcToHomeEdgScan() { PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; String d01Request = plcParameterObject.getPlcParameter("D01Request").getValue(); String d01Id = plcParameterObject.getPlcParameter("D01ID1").getValue(); String d02SitState = plcParameterObject.getPlcParameter("D02SitState").getValue(); String d04Request = plcParameterObject.getPlcParameter("D04Request").getValue(); String d04Id = plcParameterObject.getPlcParameter("D04ID1").getValue(); String d05SitState = plcParameterObject.getPlcParameter("D05SitState").getValue(); log.info("1、获取到的请求字d01为:{},获取到的扫描ID为:{};获取到的请求字d04为:{},获取到的扫描ID为:{};", d01Request, d01Id, d04Request, d04Id); if (!REQUEST_WORD.equals(d01Request) && !REQUEST_WORD.equals(d04Request)) { @@ -116,23 +120,18 @@ } } // @Scheduled(fixedDelay = 5000) @Scheduled(fixedDelay = 5000) public void plcToHomeEdgFreeCarTask() { // PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; // String e01Status = plcParameterObject.getPlcParameter("E01Status").getValue(); String e01Status = "0"; PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; String e01Status = plcParameterObject.getPlcParameter("E01Status").getValue(); if (REQUEST_WORD.equals(e01Status)) { log.info("进片大车非空闲"); return; } // String d01Request = plcParameterObject.getPlcParameter("D01Request").getValue(); // String d01Id = plcParameterObject.getPlcParameter("D01ID1").getValue(); // String d04Request = plcParameterObject.getPlcParameter("D04Request").getValue(); // String d04Id = plcParameterObject.getPlcParameter("D04ID1").getValue(); String d01Request = ""; String d01Id = ""; String d04Request = "1"; String d04Id = ""; String d01Request = plcParameterObject.getPlcParameter("D01Request").getValue(); String d01Id = plcParameterObject.getPlcParameter("D01ID1").getValue(); String d04Request = plcParameterObject.getPlcParameter("D04Request").getValue(); String d04Id = plcParameterObject.getPlcParameter("D04ID1").getValue(); log.info("1、获取到的请求字d01为:{},获取到的扫描ID为:{};获取到的请求字d04为:{},获取到的扫描ID为:{};", d01Request, d01Id, d04Request, d04Id); //两条线都有进卧转立任务,直接结束 @@ -168,43 +167,29 @@ computeTargetByLine(outLine); } // @Scheduled(fixedDelay = 5000) @Scheduled(fixedDelay = 5000) public void plcToHomeEdgOutTask() { //任务数据 获取车子存放玻璃最大数量 玻璃间隔 List<BigStorageCageOutTask> bigStorageCageOutTaskList = new ArrayList<>(); List<BigStorageCageOutTask> outingList = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>().eq(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_NEW)); Assert.isTrue(CollectionUtils.isEmpty(outingList), "有正在执行出片的任务,结束当前出片线程"); //是否有正在钢化的玻璃 List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoService.list(new LambdaQueryWrapper<TemperingGlassInfo>() List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoService.selectJoinList(TemperingGlassInfo.class, new MPJLambdaWrapper<TemperingGlassInfo>() .selectAll(TemperingGlassInfo.class) .leftJoin(BigStorageCageOutTask.class, BigStorageCageOutTask::getGlassId, TemperingGlassInfo::getGlassId) .eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW) .isNull(BigStorageCageOutTask::getGlassId) .orderBy(Boolean.TRUE, sequenceOrder, TemperingGlassInfo::getTemperingFeedSequence)); if (CollectionUtils.isNotEmpty(temperingGlassInfoList)) { log.info("有正在出片的钢化任务"); //打车剩余尺寸 Integer remainWidth = Const.BIG_STORAGE_WIDTH; for (TemperingGlassInfo e : temperingGlassInfoList) { if (bigStorageCageOutTaskList.size() > 5 || e.getWidth() > remainWidth) { break; } remainWidth = remainWidth - e.getWidth().intValue() - Const.BIG_STORAGE_GAP; bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getState(), Const.A09_OUT_TARGET_POSITION, e.getWidth().intValue(), 0, 0, 1)); } bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList); computeOutGlassInfo(temperingGlassInfoList); return; } //是否有人工下片任务 有直接出 List<BigStorageCageDetails> artificialList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>() .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_ARTIFICIAL).orderByDesc(BigStorageCageDetails::getWidth)); if (CollectionUtils.isNotEmpty(artificialList)) { Integer remainWidth = Const.BIG_STORAGE_WIDTH; for (BigStorageCageDetails e : artificialList) { if (remainWidth < e.getWidth().intValue()) { break; } bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.A10_OUT_TARGET_POSITION, e.getWidth().intValue(), 0, 0, 1)); remainWidth = remainWidth - e.getWidth().intValue() - Const.BIG_STORAGE_GAP; } bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList); computeOutGlassInfo(temperingGlassInfoList); return; } //钢化优先:获取理片笼 玻璃小片 破损表 数量 判断笼内版图是否到齐 @@ -214,24 +199,14 @@ //到齐,将玻璃小片数据存入钢化小片表,逻辑生成出片任务 结束 List<TemperingGlassInfo> temperingGlassInfos = glassInfoService.selectJoinList(TemperingGlassInfo.class, JoinWrappers.lambda(GlassInfo.class) .selectAll(GlassInfo.class) .select("-1 as state") .selectAs(BigStorageCageDetails::getSlot, TemperingGlassInfo::getSlot) .innerJoin(BigStorageCageDetails.class, BigStorageCageDetails::getGlassId, GlassInfo::getGlassId) .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN) .eq(GlassInfo::getTemperingLayoutId, temperingLayoutDTO.getTemperingLayoutId()) .eq(GlassInfo::getEngineerId, temperingLayoutDTO.getEngineerId())); temperingGlassInfoService.saveBatch(temperingGlassInfos); //大车剩余尺寸 Integer remainWidth = Const.BIG_STORAGE_WIDTH; for (TemperingGlassInfo e : temperingGlassInfos) { if (bigStorageCageOutTaskList.size() > 5 || e.getWidth() > remainWidth) { break; } remainWidth = remainWidth - e.getWidth().intValue() - Const.BIG_STORAGE_GAP; bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getState(), Const.A09_OUT_TARGET_POSITION, e.getWidth().intValue(), 0, 0, 1)); } bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList); computeOutGlassInfo(temperingGlassInfoList); return; } //未到齐 执行内部调度任务 @@ -241,7 +216,7 @@ for (int i = 0; i < slotSequenceList.size() - 1; i++) { SlotSequenceDTO first = slotSequenceList.get(i); SlotSequenceDTO second = slotSequenceList.get(i + 1); int slotWidth = Const.BIG_STORAGE_WIDTH - first.getRemainWidth() - Const.BIG_STORAGE_GAP; int slotWidth = carWidth - first.getRemainWidth() - galssGap; if (first.getMinSequence() == second.getMaxSequence() + 1 && second.getRemainWidth() > slotWidth) { List<BigStorageCageDetails> list = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>() @@ -271,7 +246,7 @@ Integer remainWidth; Integer glassCount; if (0 == sitToUpRemainWidth.getGlassCount()) { remainWidth = Const.BIG_STORAGE_WIDTH; remainWidth = carWidth; glassCount = 0; } else { remainWidth = sitToUpRemainWidth.getWidth(); @@ -292,8 +267,8 @@ } else { Integer widthSecond = edgGlassTaskInfoList.get(1).getWidth(); if (remainWidth >= widthFirst) { if (remainWidth - widthFirst - Const.BIG_STORAGE_GAP >= widthSecond) { if (glassCount <= 5) { if (remainWidth - widthFirst - galssGap >= widthSecond) { if (glassCount <= carMaxSize - 1) { addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst); return Boolean.FALSE; } else { @@ -392,4 +367,60 @@ } return Boolean.TRUE; } private <T extends BigStorageCageBaseInfo> Boolean computeOutGlassInfo(List<T> list) { //任务数据 获取车子存放玻璃最大数量 玻璃间隔 List<BigStorageCageOutTask> bigStorageCageOutTaskList = new ArrayList<>(); //打车剩余尺寸 Integer remainWidth = carWidth; for (T e : list) { if (bigStorageCageOutTaskList.size() > carMaxSize || e.getWidth() > remainWidth) { break; } remainWidth = remainWidth - e.getWidth().intValue() - galssGap; bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.A09_OUT_TARGET_POSITION, e.getWidth().intValue(), 0, 0, 1)); } Assert.isFalse(CollectionUtils.isEmpty(bigStorageCageOutTaskList), "未获取出片数据,结束出片任务"); log.info("获取出片任务数据{}条,执行保存", bigStorageCageOutTaskList.size()); bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList); List<String> glassIds = bigStorageCageOutTaskList.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList()); log.info("将出片玻璃{}玻璃状态改为已出片", glassIds); bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>() .set(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT) .in(BigStorageCageDetails::getGlassId, glassIds)); //更新笼子内格子的剩余尺寸 updateSlotRemain(list, glassIds); return Boolean.TRUE; } /** * 更新笼子内格子的剩余尺寸 * * @param list * @param taskGlassIds * @param <T> */ public <T extends BigStorageCageBaseInfo> void updateSlotRemain(List<T> list, List<String> taskGlassIds) { //获取需要出去(包括待出去的)的所有玻璃格子号 List<Integer> slotList = list.stream().map(T::getSlot).distinct().collect(Collectors.toList()); //获取待出去的玻璃信息(等下车出去的玻璃) Map<Integer, Double> slotRemainMap = list.stream().filter(e -> !taskGlassIds.contains(e.getGlassId())) .collect(Collectors.groupingBy(T::getSlot, Collectors.summingDouble(item -> item.getWidth() + galssGap))); if (CollectionUtils.isNotEmpty(slotRemainMap)) { //按照格子号更新剩余尺寸 slotRemainMap.forEach((e, v) -> { bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, slotWidth - v) .eq(BigStorageCage::getSlot, e)); }); } Set<Integer> remainSlotList = slotRemainMap.keySet(); slotList.removeAll(remainSlotList); if (CollectionUtils.isNotEmpty(slotList)) { bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, slotWidth) .in(BigStorageCage::getSlot, slotList)); } } } hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java
@@ -1,6 +1,6 @@ package com.mes.temperingglass.service; import com.baomidou.mybatisplus.extension.service.IService; import com.github.yulichang.base.MPJBaseService; import com.mes.temperingglass.entity.TemperingGlassInfo; import java.util.List; @@ -13,7 +13,7 @@ * @author zhoush * @since 2024-03-27 */ public interface TemperingGlassInfoService extends IService<TemperingGlassInfo> { public interface TemperingGlassInfoService extends MPJBaseService<TemperingGlassInfo> { public void addOutTask(List<TemperingGlassInfo> temperingGlassInfoList); hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
@@ -14,4 +14,7 @@ sequence: order: false minCount: 5 slotWidth: 5000 carWidth: 5000 #大车宽度 slotWidth: 5000 #大车宽度 carMaxSize: 6 #大车最大存放玻璃数量 galssGap: 20 #玻璃间距 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java
@@ -1,5 +1,6 @@ package com.mes; import com.mes.base.entity.BigStorageCageBaseInfo; import com.mes.bigstorage.service.BigStorageCageService; import com.mes.common.config.Const; import com.mes.job.PlcStorageCageTask; @@ -40,74 +41,57 @@ } @Test public void updateSlotRemain() { List<String> taskGlassIds = Arrays.asList( // "P24060403|1|1", // "P24060403|1|2", // "P24060403|1|3", // "P24060403|1|4", "P24060403|1|5"); List<BigStorageCageBaseInfo> list = new ArrayList<>(); list.add(new BigStorageCageBaseInfo("P24060403|1|1", 1080.0, 4)); list.add(new BigStorageCageBaseInfo("P24060403|1|2", 1080.0, 1)); list.add(new BigStorageCageBaseInfo("P24060403|1|3", 1080.0, 1)); list.add(new BigStorageCageBaseInfo("P24060403|1|4", 1080.0, 16)); list.add(new BigStorageCageBaseInfo("P24060403|1|5", 1080.0, 15)); plcStorageCageTask.updateSlotRemain(list, taskGlassIds); } @Test public void plcToHomeEdgOutTask() { // log.info("获取大理片笼信息:{}",bigStorageCageService.querybigStorageCageDetail()); plcStorageCageTask.plcToHomeEdgOutTask(); } @Test public void plcToHomeEdgFreeCarTask() { // log.info("获取大理片笼信息:{}",bigStorageCageService.querybigStorageCageDetail()); plcStorageCageTask.plcToHomeEdgFreeCarTask(); } @Test public void plcStorageCageTask() { // log.info("获取大理片笼信息:{}",bigStorageCageService.querybigStorageCageDetail()); List<String> list = new ArrayList<>(); //2002 // list.add("P24060403|4|3"); // list.add("P24060403|5|4"); // list.add("P24060403|2|1"); // list.add("P24060403|3|2"); // list.add("P24060403|1|3"); // list.add("P24060403|3|1"); // list.add("P24060403|2|3"); // list.add("P24060403|1|1"); // list.add("P24060403|8|6"); // list.add("P24060403|7|2"); //2001 // list.add("P24060403|3|6"); // list.add("P24060403|5|2"); // list.add("P24060403|4|4"); // list.add("P24060403|3|5"); // list.add("P24060403|5|3"); // list.add("P24060403|1|2"); // list.add("P24060403|2|2"); // list.add("P24060403|5|1"); list.add("P24060403|2|4"); list.add("P24060403|1|5"); list.add("P24060403|4|2"); list.add("P24060403|1|4"); list.add("P24060403|4|1"); list.add("P24060403|8|7"); for (String e : list) { plcStorageCageTask.plcToHomeEdgScan(e); } plcStorageCageTask.plcToHomeEdgScan(); } @Test public void computeTargetByLine() { // log.info("获取大理片笼信息:{}",bigStorageCageService.querybigStorageCageDetail()); plcStorageCageTask.computeTargetByLine(2001); } @Test public void judgeGlassTypeStatus() { // log.info("获取大理片笼信息:{}",bigStorageCageService.querybigStorageCageDetail()); plcStorageCageTask.judgeGlassTypeStatus("P24060403|6|7", Const.A09_OUT_TARGET_POSITION); } @Test public void getStartLine() { // log.info("获取大理片笼信息:{}",bigStorageCageService.querybigStorageCageDetail()); Integer startLine = plcStorageCageTask.getStartLine(); log.info("---------{}", startLine); } @Test public void selectBigStorageCageUsage() { // bigStorageCageService.querybigStorageCageDetail(1); log.info("获取大理片笼信息:{}", bigStorageCageService.selectBigStorageCageUsage()); }