From f68d3c71819feb59e7a227a5d992b059b900916c Mon Sep 17 00:00:00 2001 From: ZengTao <2773468879@qq.com> Date: 星期五, 28 三月 2025 08:28:26 +0800 Subject: [PATCH] 修改报表,界面添加查询流程卡个数,调整推送数据到前端的间隔 --- hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java | 128 ++++++++++++++++++++++++++++++------------ 1 files changed, 91 insertions(+), 37 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 4feec2c..e964692 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 @@ -100,7 +100,7 @@ public static String engineerId = ""; - @Scheduled(fixedDelay = 1000) + @Scheduled(fixedDelay = 500) public void plcHomeEdgTask() { Date startDate = new Date(); log.info("鏈浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate); @@ -110,16 +110,22 @@ String confirmationWrodValue = plcParameterObject.getPlcParameter("MES_confirmation_word").getValue(); //A08 A09琛ㄧず绾胯矾鐩稿悓 鍙仛绛変环 鏃犳暟鎹浆int寮傚父 String out08Glassstate = plcParameterObject.getPlcParameter("A08_glass_status").getValue(); + String out09Glassstate = plcParameterObject.getPlcParameter("A09_glass_status").getValue(); String out10Glassstate = plcParameterObject.getPlcParameter("A10_glass_status").getValue(); String confirmationWrodAddress = plcParameterObject.getPlcParameter("MES_confirmation_word").getAddress(); String currentSlot = plcParameterObject.getPlcParameter("Current_slot").getValue(); + if ("1".equals(out09Glassstate)) { + log.info("A09绌洪棽"); + out08Glassstate = "1"; + } + // taskRequestTypeValue = "2"; // out08Glassstate = "1"; // out10Glassstate = "1"; -// currentSlot = "5"; +// currentSlot = "1"; // confirmationWrodValue = "0"; -// glassIdeValue = "P24092706|15|5"; +// glassIdeValue = "P25021704|75|12"; log.info("1銆佽幏鍙栧埌鐨勮姹傚瓧涓猴細{}锛岃幏鍙栧埌鐨勬壂鎻廔D涓猴細{}锛岃幏鍙栧埌鐨勭‘璁ゅ瓧涓猴細{}锛岃幏鍙栧埌鐨勫嚭鐗囩姸鎬佸垎鍒负锛欰09:{}銆丄10:{},褰撳墠鏍煎瓙鍙蜂负锛歿}", taskRequestTypeValue, glassIdeValue, confirmationWrodValue, out08Glassstate, out10Glassstate, currentSlot); @@ -138,15 +144,19 @@ return; } boolean result = edgStorageCageDetailsService.inToVerify(glassIdeValue); + if (!result) { + log.info("姝ょ幓鐠僫d宸茬粡杩涜繃"); + return; + } if ("1".equals(taskRequestTypeValue) && result) { log.info("2銆佽繘鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�,鎵爜閲嶅ID楠岃瘉銆愭湁閲嶅=false,鏃犻噸澶�=true銆戯細{}", result); inTo(glassIdeValue, confirmationWrodAddress, currentSlot); - } else if ("2".equals(taskRequestTypeValue)) { + } else if ("2".equals(taskRequestTypeValue) && result) { //09绌洪棽 锛�1 10绌洪棽 锛�2 閮界┖闂诧細3 鍏朵粬0 log.info("2銆佸嚭鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛屽嚭鐗囦换鍔�"); outTo(Integer.parseInt(out08Glassstate), Integer.parseInt(out10Glassstate), confirmationWrodAddress, "", Integer.parseInt(currentSlot)); - } else if ("3".equals(taskRequestTypeValue)) { + } else if ("3".equals(taskRequestTypeValue) && result) { log.info("2銆佽繘鐗囧拰鍑虹墖閮界┖闂诧紝鎵ц鍑虹墖浠诲姟"); //鍔犵瀛愰噷闈㈡槸鍚︽湁鐜荤拑锛屾湁鍏堝嚭锛屾棤鐜荤拑鍏堣繘 boolean outFlase = outTo(Integer.parseInt(out08Glassstate), @@ -161,7 +171,7 @@ } - @Scheduled(fixedDelay = 1000) + @Scheduled(fixedDelay = 500) public void dealDamageTask() { Date startDate = new Date(); log.info("鍗у紡鐞嗙墖鐮存崯鐜荤拑娓呴櫎浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate); @@ -205,8 +215,11 @@ new LambdaQueryWrapper<GlassInfo>() .eq(GlassInfo::getGlassId, glassId) ); - if (Math.max(feedGlassInfo.getWidth(), feedGlassInfo.getHeight()) > cacheWidth || Math.min(feedGlassInfo.getWidth(), feedGlassInfo.getHeight()) > cacheHeight) { - log.info("1.1銆佺幓鐠冭秴杩囧崸寮忕悊鐗囨渶澶у昂瀵�:{}", feedGlassInfo); + if (Math.max(feedGlassInfo.getWidth(), feedGlassInfo.getHeight()) > cacheWidth || + Math.min(feedGlassInfo.getWidth(), feedGlassInfo.getHeight()) > cacheHeight + || Math.min(feedGlassInfo.getWidth(), feedGlassInfo.getHeight()) < Integer.parseInt(minTwoFirstLength) + ) { + log.info("1.1銆佺幓鐠冭秴杩囧崸寮忕悊鐗囧昂瀵歌寖鍥�:{}", feedGlassInfo); return; } @@ -231,6 +244,7 @@ details.setSlot(nearestEmpty.getSlot()); details.setDeviceId(nearestEmpty.getDeviceId()); edgStorageCageDetailsService.save(details); + damageService.deleteByGlassId(glassId); log.info("5銆佺幓鐠冧俊鎭凡瀛樺叆鐞嗙墖绗艰鎯呰〃锛岀幓鐠冧俊鎭负{}", details); //娣诲姞杩涚墖浠诲姟 boolean taskCache = saveTaskCache(details.getGlassId(), 0, nearestEmpty.getSlot(), Const.GLASS_CACHE_TYPE_IN); @@ -345,15 +359,26 @@ // 1.2.3銆佹寜鐓у嚭鐗囦俊鎭幓璇︽儏琛ㄦ煡璇㈡牸瀛愬湪绗煎瓙閲岄潰鍓╀綑鐩稿悓灏哄鐨勭幓鐠冩暟鎹笖浠ョ増鍥緄d銆佺増搴忓崌搴忔帓搴� 鍙栫涓�鍧楃幓鐠冨嚭鐗� // 2銆佸鏋滄病鏈夊巻鍙插嚭鐗囦换鍔� // 2.1銆佸嚭褰撳墠鐗堝浘id鏈�灏忕増搴忔渶灏忕殑鐜荤拑锛堥棶棰橈細涓ゆ潯绾块兘娌℃湁鍘嗗彶浠诲姟锛屽嚭鐗囨椂涓ゆ潯绾跨殑鐜荤拑灏哄鐩稿悓锛屾槸鍚︽壘灏哄涓嶅悓鐨勶級 - if ((out08Glassstate == 2 && out10Glassstate == 2) || (out08Glassstate == 0 && out10Glassstate == 0)) { +// if ((out08Glassstate == 2 && out10Glassstate == 2) || (out08Glassstate == 0 && out10Glassstate == 0)) { +// log.info("A09銆丄10涓簕},{}闈炶嚜鍔ㄧ姸鎬侊紝鏃犳硶鍑虹墖", out08Glassstate, out10Glassstate); +// return Boolean.FALSE; +// } + if ((out08Glassstate == 2 && out10Glassstate == 2)) { log.info("A09銆丄10涓簕},{}闈炶嚜鍔ㄧ姸鎬侊紝鏃犳硶鍑虹墖", out08Glassstate, out10Glassstate); return Boolean.FALSE; + } + if ((out08Glassstate == 0 && out10Glassstate == 0)) { + out10Glassstate = 1; } log.info("0銆佸嚭鐗囦换鍔″嚭鐨勭姸鎬�:A09:銆恵}銆�;A10:銆恵}銆�)", out08Glassstate, out10Glassstate); //瀹氫箟鍑虹墖鐜荤拑淇℃伅 int endcell = 0; EdgStorageCageDetails glassInfo = null; - + //褰撶瀛愬凡婊℃椂锛屼笉鑰冭檻鍗у紡鐞嗙墖鍓嶇殑鐜荤拑 + EdgStorageCage nearestEmpty = edgStorageCageService.selectNearestEmpty(currentSlot, Boolean.FALSE); + if (nearestEmpty == null) { + glassId = ""; + } boolean flag = queryMaxMinDiff(threshold); log.info("1銆佽幏鍙栭挗鍖栫増鍥炬槸鍚﹁秴杩囬槇鍊�:{}", flag); @@ -370,12 +395,23 @@ endcell = queryLineByGlassInfo(a09EdgGlass, a10EdgGlass, glassInfo, out08Glassstate, out10Glassstate); } else { //鎸夌収鐘舵�佸垽鏂袱鏉$嚎璧伴偅鏉$嚎 - endcell = computerLineByState(out08Glassstate, out10Glassstate); - + GlassInfo glassInfos = glassInfoService.getOne( + new LambdaQueryWrapper<GlassInfo>() + .eq(GlassInfo::getGlassId, glassId) + ); + if (glassInfos != null) { + if (Math.max(glassInfos.getWidth(), glassInfos.getHeight()) > Integer.parseInt(firstLength) && out08Glassstate == 1) { + endcell = Const.A09_OUT_TARGET_POSITION; + } else { + endcell = computerLineByState(out08Glassstate, out10Glassstate); + } + } else { + endcell = computerLineByState(out08Glassstate, out10Glassstate); + } if (out08Glassstate == 1 && out10Glassstate == 1) { EdgStorageCageDetails a09EdgGlass = queryGlassByTaskCache(Const.A09_OUT_TARGET_POSITION, Const.GLASS_CACHE_TYPE_OUT_ALL); EdgStorageCageDetails a10EdgGlass = queryGlassByTaskCache(Const.A10_OUT_TARGET_POSITION, Const.GLASS_CACHE_TYPE_OUT_ALL); - if (a09EdgGlass == null && a10EdgGlass == null) { + if (a09EdgGlass != null || a10EdgGlass != null) { MPJQueryWrapper<EdgStorageCageDetails> wrapper = new MPJQueryWrapper<>(); wrapper.select("count(t.glass_id), t.width, t.height") .eq("t.state", Const.GLASS_STATE_IN) @@ -394,19 +430,21 @@ wrapper.last("order by count(t.glass_id) desc limit 2"); List<EdgStorageCageDetails> list = edgStorageCageDetailsService.list(wrapper); if (CollectionUtil.isEmpty(list)) { + log.info("绗煎瓙鍐呮病鏈夋壘鍒板悎閫傜殑鐜荤拑"); MPJQueryWrapper<GlassInfo> queryWrapper = new MPJQueryWrapper<GlassInfo>() .selectAll(GlassInfo.class).eq("t.glass_id", glassId); if (endcell == Const.A10_OUT_TARGET_POSITION) { - queryWrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " + + queryWrapper.leftJoin("(select glass_id, case when height <= width then width else height end as first_length, " + "case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " + "on t.glass_id = t1.glass_id and (t1.first_length between " + minTwoFirstLength + " and " + firstLength + " and t1.second_length between " + minTwoSecondLength + " and " + secondLength + ") "); } else { - queryWrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " + + queryWrapper.leftJoin("(select glass_id, case when height <= width then width else height end as first_length, " + "case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " + "on t.glass_id = t1.glass_id and (t1.first_length >=" + minOneFirstLength + " and t1.second_length>=" + minOneSecondLength + ") "); } GlassInfo one = glassInfoService.getOne(queryWrapper); + log.info("鎵惧埌鍚堥�傜殑鐜荤拑" + one); if (one != null) { EdgStorageCageDetails resultDetails = new EdgStorageCageDetails(); BeanUtils.copyProperties(one, resultDetails); @@ -454,6 +492,10 @@ } } } + } + if (endcell == Const.A09_OUT_TARGET_POSITION && Math.min(glassInfo.getWidth(), glassInfo.getHeight()) < Integer.parseInt(minOneFirstLength)) { + log.info("灏哄涓嶇鍚堟渶澶х嚎鏈�灏忓昂瀵竰}", glassInfo); + return Boolean.FALSE; } return saveOutGlassMessageBySlot(glassInfo, endcell, confirmationWrodAddress, glassId, currentSlot); } @@ -730,6 +772,7 @@ damage.setType(1); damage.setRemark("杩囧崸寮忕悊鐗�"); damageService.insertDamage(damage); + damageService.deleteByGlassId(glassId); return Boolean.TRUE; } return Boolean.FALSE; @@ -779,10 +822,10 @@ glassInfo = currentGlass; } } - //鐜荤拑淇℃伅鏇挎崲 - String glassIdChange = queryAndChangeGlass(glassInfo.getGlassId()); - //澶勭悊鍦ㄥ崸鐞嗗唴鐨勭幓鐠冧俊鎭細绗煎唴鐨勬暟鎹鐞� - queryEdgAndChangeGlass(glassInfo.getGlassId(), glassIdChange); +// //鐜荤拑淇℃伅鏇挎崲 +// String glassIdChange = queryAndChangeGlass(glassInfo.getGlassId()); +// //澶勭悊鍦ㄥ崸鐞嗗唴鐨勭幓鐠冧俊鎭細绗煎唴鐨勬暟鎹鐞� +// queryEdgAndChangeGlass(glassInfo.getGlassId(), glassIdChange); LambdaUpdateWrapper<EdgStorageCageDetails> wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(EdgStorageCageDetails::getGlassId, glassInfo.getGlassId()).set(EdgStorageCageDetails::getState, Const.GLASS_STATE_OUT); edgStorageCageDetailsService.update(wrapper); @@ -802,6 +845,7 @@ damage.setType(1); damage.setRemark("杩囧崸寮忕悊鐗�"); damageService.insertDamage(damage); + damageService.deleteByGlassId(glassId); return Boolean.TRUE; } return Boolean.FALSE; @@ -857,31 +901,41 @@ * @return */ private int computerLineByState(int out08Glassstate, int out10Glassstate) { - if (out08Glassstate == 0) { - if (out10Glassstate == 2) { - return Const.A09_OUT_TARGET_POSITION; - } else { +// if (out08Glassstate == 0) { +// if (out10Glassstate == 2) { +// return Const.A09_OUT_TARGET_POSITION; +// } else { +// return Const.A10_OUT_TARGET_POSITION; +// } +// } else if (out08Glassstate == 1) { +// return Const.A09_OUT_TARGET_POSITION; +// } else { +// return Const.A10_OUT_TARGET_POSITION; +// } + if (out10Glassstate == 0) { + if (out08Glassstate == 2) { return Const.A10_OUT_TARGET_POSITION; + } else { + return Const.A09_OUT_TARGET_POSITION; } - } else if (out08Glassstate == 1) { - return Const.A09_OUT_TARGET_POSITION; - } else { + } else if (out10Glassstate == 1) { return Const.A10_OUT_TARGET_POSITION; + } else { + return Const.A09_OUT_TARGET_POSITION; } } - @Scheduled(fixedDelay = 1000) + @Scheduled(fixedDelay = 3000) public void CacheGlassTasks() { - JSONObject jsonObject = new JSONObject(); - List<Map<String, Object>> currentCutTerritorys = edgStorageCageDetailsService.selectCutTerritory(); - jsonObject.append("currentCutTerritory", currentCutTerritorys); - //log.info("鏈璇嗗埆鐗堝浘{},++++{}",engineerId,currentCutTerritorys); - //鍗у缂撳瓨绗煎唴淇℃伅 - List<Map<String, Object>> EdgStorageCageinfos = edgStorageCageService.selectEdgStorageCages(); - jsonObject.append("EdgStorageCageinfos", EdgStorageCageinfos); - ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("cacheGlass"); if (sendwServer != null) { + JSONObject jsonObject = new JSONObject(); + List<Map<String, Object>> currentCutTerritorys = edgStorageCageDetailsService.selectCutTerritory(); + jsonObject.append("currentCutTerritory", currentCutTerritorys); + //log.info("鏈璇嗗埆鐗堝浘{},++++{}",engineerId,currentCutTerritorys); + //鍗у缂撳瓨绗煎唴淇℃伅 + List<Map<String, Object>> EdgStorageCageinfos = edgStorageCageService.selectEdgStorageCages(); + jsonObject.append("EdgStorageCageinfos", EdgStorageCageinfos); for (WebSocketServer webserver : sendwServer) { if (webserver != null) { webserver.sendMessage(jsonObject.toString()); @@ -897,7 +951,7 @@ } } - @Scheduled(fixedDelay = 1000) + @Scheduled(fixedDelay = 3000) public void cacheGlassIsRun() { JSONObject jsonObject = new JSONObject(); //姝e湪杩涜鐨勪换鍔� @@ -915,7 +969,7 @@ } } - @Scheduled(fixedDelay = 1000) + @Scheduled(fixedDelay = 3000) public void CacheGlassTaskss() { JSONObject jsonObject = new JSONObject(); //log.info("鏈璇嗗埆鐗堝浘{},++++{}",engineerId,currentCutTerritorys); -- Gitblit v1.8.0