From b639aacebde9923c025a3b1f9d2f6c41aaa6cb0e Mon Sep 17 00:00:00 2001 From: zhoushihao <zsh19950802@163.com> Date: 星期二, 16 七月 2024 14:55:43 +0800 Subject: [PATCH] 磨边前理片:新增笼子状态过滤 大理片:新增格子厚度参数过滤 --- hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml | 2 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java | 15 ++++++- hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java | 42 +++++++-------------- hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java | 13 ++++-- hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java | 18 ++++++--- 5 files changed, 48 insertions(+), 42 deletions(-) diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java index 1ac00f6..98206a6 100644 --- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.yulichang.query.MPJQueryWrapper; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.mes.common.S7object; import com.mes.common.config.Const; import com.mes.device.PlcParameterObject; @@ -128,27 +129,6 @@ } Date endDate = new Date(); log.info("鏈浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms", endDate, endDate.getTime() - startDate.getTime()); - } - - public void plcToHomeEdgTask() { - // log.info("鎺ㄦ暟鎹�"); - // jsonObject.append("params", new short[] { 30, 40, }); -// ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Home"); -// if (sendwServer != null) { -// for (WebSocketServer webserver : sendwServer) { -// webserver.sendMessage(jsonObject.toString()); -// if (webserver != null) { -// -// List<String> messages = webserver.getMessages(); -// -// if (!messages.isEmpty()) { -// // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛� -// webserver.clearMessages(); -// } -// } -// -// } -// } } /** @@ -277,6 +257,7 @@ MPJQueryWrapper<EdgStorageCageDetails> wrapper = new MPJQueryWrapper<>(); wrapper.select("count(t.glass_id), t.width, t.height") .eq("t.state", Const.GLASS_STATE_IN) + .inSql("t.slot", "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON) .groupBy("t.width, t.height"); if (endcell == Const.A10_OUT_TARGET_POSITION) { wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " + @@ -372,8 +353,9 @@ glassList.add(resultDetails); } //鑾峰彇绗煎唴鐜荤拑 - List<EdgStorageCageDetails> details = edgStorageCageDetailsService.list(new LambdaQueryWrapper<EdgStorageCageDetails>() - .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)); + List<EdgStorageCageDetails> details = edgStorageCageDetailsService.selectJoinList(EdgStorageCageDetails.class, new MPJLambdaWrapper<EdgStorageCageDetails>().selectAll(EdgStorageCageDetails.class) + .leftJoin(EdgStorageCage.class, on -> on.eq(EdgStorageCage::getSlot, EdgStorageCageDetails::getSlot).eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)) + .eq(EdgStorageCage::getEnableState, Const.SLOT_ON)); glassList.addAll(details); return glassList; @@ -384,19 +366,20 @@ * * @return */ - private boolean queryMaxMinDiff(int threshold) { + public boolean queryMaxMinDiff(int threshold) { //鑾峰彇绗煎瓙鍐呮渶澶х増鍥緄d鍜屾渶灏忕増鍥緄d鎻掑�硷紝鍒ゆ柇鏄惁澶т簬闃堝�硷紝澶т簬闃堝�肩洿鎺ュ嚭鏈�灏忕増鍥剧幓鐠� QueryWrapper<EdgStorageCageDetails> queryWrapper = new QueryWrapper<>(); queryWrapper.select("max(tempering_layout_id)-min(tempering_layout_id) as diff") - .eq("state", Const.GLASS_STATE_IN); + .eq("state", Const.GLASS_STATE_IN) + .inSql("slot", "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON); List<Object> list = edgStorageCageDetailsService.listObjs(queryWrapper); + //鑾峰彇绗煎唴鐜荤拑鐗堝浘宸�兼槸鍚﹀ぇ浜庨槇鍊� if (CollectionUtil.isNotEmpty(list)) { - Long diff = (Long) list.get(0); + int diff = (int) list.get(0); return diff > threshold; } else { return Boolean.FALSE; } - } /** @@ -411,6 +394,7 @@ .eq(EdgStorageCageDetails::getState, 100) .eq(width != 0, EdgStorageCageDetails::getWidth, width) .eq(height != 0, EdgStorageCageDetails::getHeight, height) + .inSql(EdgStorageCageDetails::getSlot, "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON) .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId) .orderBy(Boolean.TRUE, sequenceOrder, EdgStorageCageDetails::getTemperingFeedSequence) .last("limit 1")); @@ -446,6 +430,7 @@ .eq("t.glass_id", taskCache.getGlassId()) .ne("t1.glass_id", taskCache.getGlassId()) .eq("t1.state", Const.GLASS_STATE_IN) + .inSql("t1.slot", "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON) .orderByAsc("t1.tempering_layout_id") .orderBy(Boolean.TRUE, sequenceOrder, "t1.tempering_feed_sequence"); List<EdgStorageCageDetails> details = edgStorageCageDetailsService.selectJoinList(EdgStorageCageDetails.class, mpjLambdaWrapper); @@ -469,7 +454,7 @@ return null; } return edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getGlassId, taskCache.getGlassId()) -// .inSql(EdgStorageCageDetails::getEngineerId, "select engineer_id from engineering where state = 1") + .inSql(EdgStorageCageDetails::getSlot, "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON) .last(" limit 1 ")); } @@ -513,6 +498,7 @@ MPJQueryWrapper<EdgStorageCageDetails> wrapper = new MPJQueryWrapper<>(); wrapper.select("count(t.glass_id) as count, t.width, t.height") .eq("t.state", Const.GLASS_STATE_IN) + .inSql("t.slot", "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON) .groupBy("t.width, t.height"); if (endcell == Const.A10_OUT_TARGET_POSITION) { wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " + diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java index 9b6ecc4..5a79a88 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java @@ -46,15 +46,26 @@ private Integer slot; /** + * 鏍呮牸鍙� + */ + @ApiModelProperty(value = "鏈�灏忓帤搴�", position = 5) + private Integer minThickness; + /** + * 鏍呮牸鍙� + */ + @ApiModelProperty(value = "鏈�澶у帤搴�", position = 6) + private Integer maxThickness; + + /** * 鍚敤鐘舵�� */ - @ApiModelProperty(value = "鍚敤鐘舵��", position = 5) + @ApiModelProperty(value = "鍚敤鐘舵��", position = 7) private Integer enableState; /** * 鍓╀綑瀹藉害 */ - @ApiModelProperty(value = "鍓╀綑瀹藉害", position = 6) + @ApiModelProperty(value = "鍓╀綑瀹藉害", position = 8) private Integer remainWidth; @ApiModelProperty(hidden = true) diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java index 5b09ac0..b6fd6e6 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java @@ -96,12 +96,12 @@ .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT) .isNull(BigStorageCageFeedTask::getTargetSlot); List<BigStorageCageFeedTask> bigStorageCageFeedTaskNoTargetList = bigStorageCageFeedTaskMapper.selectList(feedTaskNoTargetWrapper); - for (BigStorageCageFeedTask bigStorageCageFeedTask:bigStorageCageFeedTaskNoTargetList - ) { - BigStorageCageDetails bigStorageCageDetails=new BigStorageCageDetails(); + for (BigStorageCageFeedTask bigStorageCageFeedTask : bigStorageCageFeedTaskNoTargetList + ) { + BigStorageCageDetails bigStorageCageDetails = new BigStorageCageDetails(); LambdaQueryWrapper<GlassInfo> glassInfoWrapper = new LambdaQueryWrapper<>(); - glassInfoWrapper.eq(GlassInfo::getGlassId,bigStorageCageFeedTask.getGlassId()); - GlassInfo glassInfo= glassInfoMapper.selectOne(glassInfoWrapper); + glassInfoWrapper.eq(GlassInfo::getGlassId, bigStorageCageFeedTask.getGlassId()); + GlassInfo glassInfo = glassInfoMapper.selectOne(glassInfoWrapper); BeanUtils.copyProperties(glassInfo, bigStorageCageDetails); bigStorageCageDetailsList.add(bigStorageCageDetails); } @@ -285,9 +285,12 @@ bigStorageDTO.setSlot(bigStorageCage.getSlot()); return bigStorageDTO; } + //todo:鑾峰彇鐜荤拑鐨勫帤搴︼細閲嶆柊閫夌瀛愰渶瑕佹寜鐓х瀛愬彲鏀剧幓鐠冨帤搴﹁繘琛岄�夋嫨 bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>() .eq(BigStorageCage::getRemainWidth, slotWidth) .eq(BigStorageCage::getEnableState, Const.SLOT_ON) + .gt(BigStorageCage::getMaxThickness, glassInfo.getThickness()) + .orderByAsc(BigStorageCage::getDeviceId) .last("limit 1")); Assert.isTrue(null != bigStorageCage, "娌℃湁绌轰綑鐨勭瀛愬瓨鏀剧幓鐠�"); bigStorageDTO = new BigStorageDTO(); diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java index ad16377..dfc2719 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java @@ -377,27 +377,29 @@ Boolean flag = Boolean.TRUE; //2銆佽幏鍙栧崸杞珛 Integer widthFirst = Math.max(edgGlassTaskInfoList.get(0).getWidth() / 10, edgGlassTaskInfoList.get(0).getHeight() / 10); + Integer heightFirst = Math.min(edgGlassTaskInfoList.get(0).getWidth() / 10, edgGlassTaskInfoList.get(0).getHeight() / 10); if (edgGlassTaskInfoList.size() == 1) { if (remainWidth >= widthFirst) { if (glassCount < inCarMaxSize) { - addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst); + addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst, heightFirst); } else { - addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst); + addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst, heightFirst); } } else { flag = Boolean.FALSE; } } else { Integer widthSecond = Math.max(edgGlassTaskInfoList.get(1).getWidth() / 10, edgGlassTaskInfoList.get(1).getHeight() / 10); + Integer heightSecond = Math.min(edgGlassTaskInfoList.get(1).getWidth() / 10, edgGlassTaskInfoList.get(1).getHeight() / 10); if (remainWidth >= widthFirst) { if (remainWidth - widthFirst - glassGap >= widthSecond) { if (glassCount < inCarMaxSize) { - addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst); + addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst, heightSecond); } else { - addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst); + addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst, heightSecond); } } else { - addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst); + addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst, heightSecond); } } else { flag = Boolean.FALSE; @@ -414,13 +416,14 @@ /** * 娣诲姞浠诲姟淇℃伅 */ - private Boolean addFeedTask(String glassId, Integer line, Integer taskType, Integer width) { + private Boolean addFeedTask(String glassId, Integer line, Integer taskType, Integer width, Integer height) { BigStorageCageFeedTask bigStorageCageFeedTask = new BigStorageCageFeedTask(); bigStorageCageFeedTask.setGlassId(glassId); bigStorageCageFeedTask.setTaskState(Const.BIG_STORAGE_IN_NEW); bigStorageCageFeedTask.setLine(line); bigStorageCageFeedTask.setTaskType(taskType); bigStorageCageFeedTask.setWidth(width); + bigStorageCageFeedTask.setHeight(height); bigStorageCageFeedTask.setCreateTime(new Date()); return bigStorageCageFeedTaskService.save(bigStorageCageFeedTask); } @@ -576,6 +579,9 @@ public Boolean computeIsRun(int line, String glassId) { //鑾峰彇鍗ц浆绔嬪墿浣欏搴� BigStorageDTO sitToUpRemainWidth = bigStorageCageFeedTaskService.querySitToUpRemainWidth(line); + if (sitToUpRemainWidth.getGlassCount() == 0) { + return Boolean.FALSE; + } //鑾峰彇鐜荤拑淇℃伅 GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId)); return sitToUpRemainWidth.getWidth() < glassInfo.getWidth(); diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml index 2776022..0a32e28 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml @@ -33,7 +33,7 @@ ELSE HEIGHT END MAX_LENGTH FROM BIG_STORAGE_CAGE_FEED_TASK - WHERE LINE = 2002 + WHERE LINE = #{line} AND TASK_STATE IN (1, 2) ) T </select> -- Gitblit v1.8.0