From 28f2652b6f7f079327d0d23cadfa20da15e12359 Mon Sep 17 00:00:00 2001 From: zhoushihao <zsh19950802@163.com> Date: 星期三, 12 六月 2024 16:57:12 +0800 Subject: [PATCH] 大理片笼:fixbug按照玻璃id判断玻璃状态及卧转立是否可直接启动 --- hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java | 208 +++++++++++++++++++++++++-------------------------- 1 files changed, 103 insertions(+), 105 deletions(-) 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 a850be6..40d8dd9 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 @@ -8,7 +8,6 @@ import com.mes.bigstorage.service.BigStorageCageDetailsService; import com.mes.bigstorage.service.BigStorageCageService; import com.mes.bigstoragetask.entity.BigStorageCageFeedTask; -import com.mes.bigstoragetask.entity.BigStorageCageOutTask; import com.mes.bigstoragetask.service.BigStorageCageFeedTaskService; import com.mes.bigstoragetask.service.BigStorageCageOutTaskService; import com.mes.common.S7object; @@ -69,102 +68,101 @@ * fixedRate : 涓婁竴涓皟鐢ㄥ紑濮嬪悗鍐嶆璋冪敤鐨勫欢鏃讹紙涓嶇敤绛夊緟涓婁竴娆¤皟鐢ㄥ畬鎴愶級 * fixedDelay : 涓婁竴涓皟鐢ㄧ粨鏉熷悗鍐嶆璋冪敤鐨勫欢鏃� */ - @Scheduled(fixedDelay = 5000) - public void plcStorageCageTask() throws InterruptedException { - - PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; - try { - - String plcFeedGlassid = ""; - String plcFeedReqLine = "0"; - if ("1".equals(plcParameterObject.getPlcParameter("D01Request").getValue())) { - plcFeedReqLine = "1"; - plcFeedGlassid = plcParameterObject.getPlcParameter("D01ID1").getValue(); - } - if ("1".equals(plcParameterObject.getPlcParameter("D04Request").getValue())) { - plcFeedReqLine = "2"; - plcFeedGlassid = plcParameterObject.getPlcParameter("D04ID1").getValue(); - } - line1Time += 1; - line2Time += 1; - - if (!("0".equals(plcFeedReqLine))) { - log.info("1銆丳lc杩涚墖璇锋眰鏃�"); - BigStorageCageDetails bigStorageCageDetails = new BigStorageCageDetails(); - GlassInfo glassInfo = glassInfoService.getById(plcFeedGlassid); - log.info("2銆佹牴鎹幓鐠僫d鑾峰彇鐜荤拑淇℃伅" + glassInfo); - if (bigStorageCageDetailsService.selectGetBoard(plcFeedReqLine) >= 0) { - BigStorageCageDetails slotInfo = bigStorageCageService.feedGlass(glassInfo, bigStorageCageDetails); - if (slotInfo != null) { - int taskType = edgGlassTaskInfoService.judgeTasktype(plcFeedReqLine); - log.info("3銆佹煡璇换鍔¤〃鍒ゆ柇褰撳墠浠诲姟绫诲瀷涓轰笂杞︾瓑鍒拌繕鏄笂杞﹀惎鍔�" + taskType); - bigStorageCageFeedTaskService.addFeedTask(slotInfo, Integer.parseInt(plcFeedReqLine), taskType); - log.info("4銆佹坊鍔犱换鍔″埌浠诲姟琛�"); - bigStorageCageFullAlarm = false; - } else { - bigStorageCageFullAlarm = true; - } - } else { - log.info("褰撳墠鐜荤拑瀹藉害涓嶅涓婅溅" + glassInfo); - if (!("1".equals(plcFeedReqLine))) { - S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("D02Go").getAddress(), 1); - } else { - S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("D05Go").getAddress(), 1); - } - } - } else { - List<BigStorageCageFeedTask> bigStorageCageFeedTaskList = bigStorageCageFeedTaskService.querybigStorageCageFeedTask(1); - log.info("5銆佹煡璇换鍔¤〃鏄惁鏈夊凡缁忓畬鎴愮殑杩涚墖浠诲姟" + bigStorageCageFeedTaskList.size()); - for (BigStorageCageFeedTask bigStorageCageFeedTask : bigStorageCageFeedTaskList - ) { - BigStorageCageDetails bigStorageCageDetails = new BigStorageCageDetails(); - bigStorageCageDetails.setId(bigStorageCageFeedTask.getId()); - bigStorageCageDetails.setState(1); - bigStorageCageDetailsService.updateById(bigStorageCageDetails); - log.info("6銆佷慨鏀圭悊鐗囩璇︽儏鐜荤拑鐘舵��"); - bigStorageCageFeedTaskService.removeById(bigStorageCageFeedTask); - log.info("7銆佸垹闄ゅ凡缁忓畬鎴愮殑杩涚墖浠诲姟"); - } - //鍚姩闃堝�� - if (line1Time >= 300) { - if ("0".equals(plcParameterObject.getPlcParameter("D05Go").getValue())) { - S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("D02Go").getAddress(), 1); - } - } - if (line2Time >= 300) { - if ("0".equals(plcParameterObject.getPlcParameter("D02Go").getValue())) { - S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("D05Go").getAddress(), 1); - } - } - } - - //鏌ヨ鍑虹墖琛ㄦ槸鍚︽湁浠诲姟鏈畬鎴愮殑浠诲姟 - List<BigStorageCageOutTask> bigStorageCageOutTask = bigStorageCageOutTaskService.querybigStorageCageOutTask(0); - if (bigStorageCageOutTask.size() == 0) { - boolean result = bigStorageCageService.outGlass(); - log.info("8銆佹病鏈夋湭瀹屾垚浠诲姟鏃惰皟鐢ㄥ嚭鐗囨帴鍙�"); - if (result == false) { - temperingGlassInfoService.schedulingTask(); - } - } - bigStorageCageOutTaskService.updateOutTask(); - log.info("9銆佹牴鎹换鍔¤〃鐘舵�佷慨鏀归挗鍖栧皬鐗囪〃浠诲姟鐘舵��"); - - //鏉ヤ笉鍙婇�佹椂鐩存帴璧� - String line = Integer.toString(edgGlassTaskInfoService.startTask()); - - if (!(line.equals(plcFeedReqLine))) { - S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("D02Go").getAddress(), 1); - } else { - S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("D05Go").getAddress(), 1); - } - - - } catch (Exception e) { - e.printStackTrace(); - } - } - +// @Scheduled(fixedDelay = 5000) +// public void plcStorageCageTask() throws InterruptedException { +// +// PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; +// try { +// +// String plcFeedGlassid = ""; +// String plcFeedReqLine = "0"; +// if ("1".equals(plcParameterObject.getPlcParameter("D01Request").getValue())) { +// plcFeedReqLine = "1"; +// plcFeedGlassid = plcParameterObject.getPlcParameter("D01ID1").getValue(); +// } +// if ("1".equals(plcParameterObject.getPlcParameter("D04Request").getValue())) { +// plcFeedReqLine = "2"; +// plcFeedGlassid = plcParameterObject.getPlcParameter("D04ID1").getValue(); +// } +// line1Time += 1; +// line2Time += 1; +// +// if (!("0".equals(plcFeedReqLine))) { +// log.info("1銆丳lc杩涚墖璇锋眰鏃�"); +// BigStorageCageDetails bigStorageCageDetails = new BigStorageCageDetails(); +// GlassInfo glassInfo = glassInfoService.getById(plcFeedGlassid); +// log.info("2銆佹牴鎹幓鐠僫d鑾峰彇鐜荤拑淇℃伅" + glassInfo); +// if (bigStorageCageDetailsService.selectGetBoard(plcFeedReqLine) >= 0) { +// BigStorageCageDetails slotInfo = bigStorageCageService.feedGlass(glassInfo, bigStorageCageDetails); +// if (slotInfo != null) { +// int taskType = edgGlassTaskInfoService.judgeTasktype(plcFeedReqLine); +// log.info("3銆佹煡璇换鍔¤〃鍒ゆ柇褰撳墠浠诲姟绫诲瀷涓轰笂杞︾瓑鍒拌繕鏄笂杞﹀惎鍔�" + taskType); +// bigStorageCageFeedTaskService.addFeedTask(slotInfo, Integer.parseInt(plcFeedReqLine), taskType); +// log.info("4銆佹坊鍔犱换鍔″埌浠诲姟琛�"); +// bigStorageCageFullAlarm = false; +// } else { +// bigStorageCageFullAlarm = true; +// } +// } else { +// log.info("褰撳墠鐜荤拑瀹藉害涓嶅涓婅溅" + glassInfo); +// if (!("1".equals(plcFeedReqLine))) { +// S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("D02Go").getAddress(), 1); +// } else { +// S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("D05Go").getAddress(), 1); +// } +// } +// } else { +// List<BigStorageCageFeedTask> bigStorageCageFeedTaskList = bigStorageCageFeedTaskService.querybigStorageCageFeedTask(1); +// log.info("5銆佹煡璇换鍔¤〃鏄惁鏈夊凡缁忓畬鎴愮殑杩涚墖浠诲姟" + bigStorageCageFeedTaskList.size()); +// for (BigStorageCageFeedTask bigStorageCageFeedTask : bigStorageCageFeedTaskList +// ) { +// BigStorageCageDetails bigStorageCageDetails = new BigStorageCageDetails(); +// bigStorageCageDetails.setId(bigStorageCageFeedTask.getId()); +// bigStorageCageDetails.setState(1); +// bigStorageCageDetailsService.updateById(bigStorageCageDetails); +// log.info("6銆佷慨鏀圭悊鐗囩璇︽儏鐜荤拑鐘舵��"); +// bigStorageCageFeedTaskService.removeById(bigStorageCageFeedTask); +// log.info("7銆佸垹闄ゅ凡缁忓畬鎴愮殑杩涚墖浠诲姟"); +// } +// //鍚姩闃堝�� +// if (line1Time >= 300) { +// if ("0".equals(plcParameterObject.getPlcParameter("D05Go").getValue())) { +// S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("D02Go").getAddress(), 1); +// } +// } +// if (line2Time >= 300) { +// if ("0".equals(plcParameterObject.getPlcParameter("D02Go").getValue())) { +// S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("D05Go").getAddress(), 1); +// } +// } +// } +// +// //鏌ヨ鍑虹墖琛ㄦ槸鍚︽湁浠诲姟鏈畬鎴愮殑浠诲姟 +// List<BigStorageCageOutTask> bigStorageCageOutTask = bigStorageCageOutTaskService.querybigStorageCageOutTask(0); +// if (bigStorageCageOutTask.size() == 0) { +// boolean result = bigStorageCageService.outGlass(); +// log.info("8銆佹病鏈夋湭瀹屾垚浠诲姟鏃惰皟鐢ㄥ嚭鐗囨帴鍙�"); +// if (result == false) { +// temperingGlassInfoService.schedulingTask(); +// } +// } +// bigStorageCageOutTaskService.updateOutTask(); +// log.info("9銆佹牴鎹换鍔¤〃鐘舵�佷慨鏀归挗鍖栧皬鐗囪〃浠诲姟鐘舵��"); +// +// //鏉ヤ笉鍙婇�佹椂鐩存帴璧� +// String line = Integer.toString(edgGlassTaskInfoService.startTask()); +// +// if (!(line.equals(plcFeedReqLine))) { +// S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("D02Go").getAddress(), 1); +// } else { +// S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("D05Go").getAddress(), 1); +// } +// +// +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } @Scheduled(fixedDelay = 5000) public void plcToHomeEdgScan() { PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; @@ -189,7 +187,7 @@ flag01 = judgeGlassTypeStatus(d01ID1, Const.A09_OUT_TARGET_POSITION); } if ("1".equals(d04Request)) { - flag04 = judgeGlassTypeStatus(d01ID1, Const.A10_OUT_TARGET_POSITION); + flag04 = judgeGlassTypeStatus(d04ID1, Const.A10_OUT_TARGET_POSITION); } if (flag01 && flag04) { //姣旇緝鏈�鏃╀竴鐗囦换鍔$殑鐗堝浘id鍙婄増搴� 姹傚嚭鍗ц浆绔嬬殑绾胯矾 @@ -264,16 +262,16 @@ */ public Boolean judgeGlassTypeStatus(String glassId, Integer line) { //1銆佽幏鍙栦换鍔¤〃涓浉閭荤幓鐠� - List<EdgGlassTaskInfo> edgGlassTaskInfoList = edgGlassTaskInfoService.list(new QueryWrapper<EdgGlassTaskInfo>() - .eq("line", line) - .gt("id", "select id from edg_glass_task_info where glass_id = " + glassId) - .orderByAsc("id")); - Assert.isTrue(CollectionUtils.isEmpty(edgGlassTaskInfoList), "璇嗗埆鐜荤拑淇℃伅鏈嚭鐜板湪灏哄琛ㄤ腑,鑾峰彇鐩搁偦涓ゅ潡鐜荤拑澶辫触"); + List<EdgGlassTaskInfo> edgGlassTaskInfoList = edgGlassTaskInfoService.list(new LambdaQueryWrapper<EdgGlassTaskInfo>() + .eq(EdgGlassTaskInfo::getLine, line) + .apply("time >= (select time from edg_glass_task_info where glass_id = '" + glassId + "')") + .orderByAsc(EdgGlassTaskInfo::getTime)); + Assert.isFalse(CollectionUtils.isEmpty(edgGlassTaskInfoList), "璇嗗埆鐜荤拑淇℃伅鏈嚭鐜板湪灏哄琛ㄤ腑,鑾峰彇鐩搁偦涓ゅ潡鐜荤拑澶辫触"); //2銆佽幏鍙栧崸杞珛鍓╀綑瀹藉害 Map<String, Object> map = bigStorageCageFeedTaskService.getMap(new QueryWrapper<BigStorageCageFeedTask>() - .select("5000 - sum(width + 20) as remainWidth") + .select("cast(5000 - sum(width + 20) as INT)as remainWidth") .eq("line", line).eq("task_state", Const.BIG_STORAGE_IN_UP)); - Integer remainWidth = Integer.parseInt(map.get("remainWidth") + ""); + Integer remainWidth = null == map ? 5000 : Integer.parseInt(map.get("remainWidth") + ""); //2銆佽幏鍙栧崸杞珛 Integer widthFirst = edgGlassTaskInfoList.get(0).getWidth(); if (edgGlassTaskInfoList.size() == 1) { -- Gitblit v1.8.0