From b9b44b51b201e2f5a9a1f3665c7fb76b5690f9af Mon Sep 17 00:00:00 2001 From: wu <731351411@qq.com> Date: 星期一, 23 十二月 2024 16:13:08 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java | 141 ++++++++++++++++++---------------------------- 1 files changed, 56 insertions(+), 85 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 474bbf0..b120c03 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 @@ -30,7 +30,6 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -80,6 +79,12 @@ @Value("${mes.max.secondLength}") private String secondLength; + @Value("${mes.cache.cacheWidth}") + private double cacheWidth; + + @Value("${mes.cache.cacheHeight}") + private double cacheHeight; + @Value("${mes.min.one.firstLength}") private String minOneFirstLength; @@ -94,7 +99,7 @@ public static String engineerId = ""; - //@Scheduled(fixedDelay = 1000) + // @Scheduled(fixedDelay = 1000) public void plcHomeEdgTask() { Date startDate = new Date(); log.info("鏈浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate); @@ -107,6 +112,13 @@ String out10Glassstate = plcParameterObject.getPlcParameter("A10_glass_status").getValue(); String confirmationWrodAddress = plcParameterObject.getPlcParameter("MES_confirmation_word").getAddress(); String currentSlot = plcParameterObject.getPlcParameter("Current_slot").getValue(); + +// taskRequestTypeValue = "2"; +// out08Glassstate = "1"; +// out10Glassstate = "1"; +// currentSlot = "5"; +// confirmationWrodValue = "0"; +// glassIdeValue = "P24092706|15|5"; log.info("1銆佽幏鍙栧埌鐨勮姹傚瓧涓猴細{}锛岃幏鍙栧埌鐨勬壂鎻廔D涓猴細{}锛岃幏鍙栧埌鐨勭‘璁ゅ瓧涓猴細{}锛岃幏鍙栧埌鐨勫嚭鐗囩姸鎬佸垎鍒负锛欰09:{}銆丄10:{},褰撳墠鏍煎瓙鍙蜂负锛歿}", taskRequestTypeValue, glassIdeValue, confirmationWrodValue, out08Glassstate, out10Glassstate, currentSlot); @@ -132,7 +144,7 @@ //09绌洪棽 锛�1 10绌洪棽 锛�2 閮界┖闂诧細3 鍏朵粬0 log.info("2銆佸嚭鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛屽嚭鐗囦换鍔�"); outTo(Integer.parseInt(out08Glassstate), - Integer.parseInt(out10Glassstate), confirmationWrodAddress, "", 0); + Integer.parseInt(out10Glassstate), confirmationWrodAddress, "", Integer.parseInt(currentSlot)); } else if ("3".equals(taskRequestTypeValue)) { log.info("2銆佽繘鐗囧拰鍑虹墖閮界┖闂诧紝鎵ц鍑虹墖浠诲姟"); //鍔犵瀛愰噷闈㈡槸鍚︽湁鐜荤拑锛屾湁鍏堝嚭锛屾棤鐜荤拑鍏堣繘 @@ -148,7 +160,7 @@ } - @Scheduled(fixedDelay = 1000) + // @Scheduled(fixedDelay = 1000) public void dealDamageTask() { Date startDate = new Date(); log.info("鍗у紡鐞嗙墖鐮存崯鐜荤拑娓呴櫎浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate); @@ -165,9 +177,9 @@ Damage damage = new Damage(); damage.setGlassId(e.getGlassId()); damage.setLine(e.getEndCell()); - damage.setWorkingProcedure("鍐峰姞宸�"); + damage.setWorkingProcedure("纾ㄨ竟"); damage.setRemark("纾ㄨ竟鍓嶅崸寮忕悊鐗�"); - damage.setStatus(0); + damage.setStatus(1); damage.setType(e.getTaskStatus()); return damage; }).collect(Collectors.toList()); @@ -187,6 +199,16 @@ */ public void inTo(String glassId, String confirmationWrodAddress, String currentSlot) { log.info("1銆佹寜鐓х幓鐠僫d:{}鑾峰彇鐜荤拑灏忕墖淇℃伅,褰撳墠鏍煎瓙涓�:{}", glassId, currentSlot); + + GlassInfo feedGlassInfo = glassInfoService.getOne( + 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); + return; + } + //娣诲姞杩涚墖浠诲姟 鏌ユ壘绌烘牸 EdgStorageCage nearestEmpty = edgStorageCageService.selectNearestEmpty(Integer.parseInt(currentSlot), Boolean.FALSE); Assert.isTrue(null != nearestEmpty, "鏍煎瓙宸叉弧"); @@ -208,6 +230,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); @@ -233,11 +256,13 @@ .eq(GlassInfo::getHeight, glassInfo.getHeight()) .eq(GlassInfo::getThickness, glassInfo.getThickness()) .eq(GlassInfo::getFilmsid, glassInfo.getFilmsid()) + .eq(GlassInfo::getFlowCardId, glassInfo.getFlowCardId()) .eq(GlassInfo::getTotalLayer, glassInfo.getTotalLayer()) .eq(GlassInfo::getLayer, glassInfo.getLayer()) .eq(GlassInfo::getEngineerId, glassInfo.getEngineerId()) .notInSql(GlassInfo::getGlassId, "select distinct glass_id from edg_storage_cage_details " + - "where engineer_id = '" + glassInfo.getEngineerId() + "' and width = " + glassInfo.getWidth() + " and height = " + glassInfo.getHeight()) + "where engineer_id = '" + glassInfo.getEngineerId() + "' and width = " + glassInfo.getWidth() + " and height = " + glassInfo.getHeight() + + " and state != 100") .orderByAsc(GlassInfo::getTemperingLayoutId) .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence) .last("Limit 1"); @@ -272,17 +297,28 @@ // 鑾峰彇寰呭嚭绗肩殑鐜荤拑闇�瑕佹浛鎹㈢殑鐜荤拑淇℃伅 EdgStorageCageDetails swapGlassDetailInfo = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>() .eq(EdgStorageCageDetails::getGlassId, swapGlassId).eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)); + // 鐜荤拑灏忕墖琛ㄤ腑鐜荤拑宸茬粡鏇挎崲锛屾洿鏂板崸鐞嗙鍐呯幇鏈夌殑鍑嗗鍑虹鐨勭幓鐠冧俊鎭紝 if (null == swapGlassDetailInfo) { + GlassInfo glassInfoBase = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>() + .eq(GlassInfo::getGlassId, glassId)); //闇�瑕佹浛鎹㈢殑鐜荤拑涓哄瓨杩涘崸鐞嗭紝浠呴渶鏇存柊褰撳墠闇�瑕佸嚭绗肩殑鐜荤拑淇℃伅鍗冲彲 edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>() - .eq(EdgStorageCageDetails::getGlassId, glassId).set(EdgStorageCageDetails::getGlassId, swapGlassId)); + .eq(EdgStorageCageDetails::getGlassId, glassId) + .set(EdgStorageCageDetails::getTemperingLayoutId, glassInfoBase.getTemperingLayoutId()) + .set(EdgStorageCageDetails::getTemperingFeedSequence, glassInfoBase.getTemperingFeedSequence())); } else { //闇�瑕佹浛鎹㈢殑鐜荤拑閮藉湪鍗х悊鍐咃紝鎸夌収鐜荤拑id瀵硅皟鐜荤拑淇℃伅锛氬璋冪幓鐠僫d鍗冲彲 edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>() - .eq(EdgStorageCageDetails::getId, glassInfo.getId()).set(EdgStorageCageDetails::getGlassId, swapGlassId)); + .eq(EdgStorageCageDetails::getId, glassInfo.getId()) + .set(EdgStorageCageDetails::getTemperingLayoutId, swapGlassDetailInfo.getTemperingLayoutId()) + .set(EdgStorageCageDetails::getTemperingFeedSequence, swapGlassDetailInfo.getTemperingFeedSequence()) + ); edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>() - .eq(EdgStorageCageDetails::getId, swapGlassDetailInfo.getId()).set(EdgStorageCageDetails::getGlassId, glassId)); + .eq(EdgStorageCageDetails::getId, swapGlassDetailInfo.getId()) + .set(EdgStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId()) + .set(EdgStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence()) + ); } } @@ -317,6 +353,8 @@ //瀹氫箟鍑虹墖鐜荤拑淇℃伅 int endcell = 0; EdgStorageCageDetails glassInfo = null; + + boolean flag = queryMaxMinDiff(threshold); log.info("1銆佽幏鍙栭挗鍖栫増鍥炬槸鍚﹁秴杩囬槇鍊�:{}", flag); if (flag) { @@ -417,7 +455,7 @@ } } } - return saveOutGlassMessage(glassInfo, endcell, confirmationWrodAddress, glassId, currentSlot); + return saveOutGlassMessageBySlot(glassInfo, endcell, confirmationWrodAddress, glassId, currentSlot); } /** @@ -659,6 +697,7 @@ log.info("4銆佹坊鍔犲嚭鐗囦换鍔★紝鐜荤拑id锛歿}锛屼换鍔$被鍨嬶細{}锛岃捣濮嬩綅缃細{}锛岀粨鏉熶綅缃細{}", glassInfo.getGlassId(), 2, glassInfo.getSlot(), endcell); if (glassInfo.getGlassId().equals(glassId)) { + log.info("5銆佺洿閫氫换鍔�,灏嗙幓鐠冧俊鎭彃鍏ュ崸寮忕悊鐗囩,褰撳墠鐜荤拑淇℃伅:{}", glassInfo); EdgStorageCageDetails details = new EdgStorageCageDetails(); BeanUtils.copyProperties(glassInfo, details); @@ -718,7 +757,7 @@ BeanUtils.copyProperties(glassInfo, details); } else { GlassInfo one = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId)); - BeanUtils.copyProperties(glassInfo, details); + BeanUtils.copyProperties(one, details); } EdgStorageCage nearestEmpty = edgStorageCageService.selectNearestEmpty(currentSlot, Boolean.TRUE); Assert.isTrue(null != nearestEmpty, "鏍煎瓙宸叉弧,鏃犳硶鎵ц鐩撮�氫换鍔�"); @@ -730,7 +769,7 @@ log.info("6銆佹坊鍔犲嚭鐗囦换鍔℃槸鍚﹀畬鎴愶細{}", taskCacheStatus); } else { log.info("5銆侀潪鐩撮�氫换鍔�,灏嗙幓鐠冧俊鎭彃鍏ュ崸寮忕悊鐗囩,褰撳墠鐜荤拑淇℃伅:{}", glassInfo); - if (endcell != currentSlot) { + if (!glassInfo.getSlot().equals(currentSlot)) { EdgStorageCageDetails currentGlass = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>() .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN) .eq(EdgStorageCageDetails::getSlot, currentSlot).eq(EdgStorageCageDetails::getWidth, glassInfo.getWidth()) @@ -738,7 +777,6 @@ ); if (null != currentGlass) { glassInfo = currentGlass; - endcell = currentSlot; } } //鐜荤拑淇℃伅鏇挎崲 @@ -764,6 +802,7 @@ damage.setType(1); damage.setRemark("杩囧崸寮忕悊鐗�"); damageService.insertDamage(damage); + damageService.deleteByGlassId(glassId); return Boolean.TRUE; } return Boolean.FALSE; @@ -802,9 +841,10 @@ edgGlassTaskInfo.setHeight((int) (glassInfo.getHeight() * ratio)); edgGlassTaskInfo.setWidth((int) (glassInfo.getWidth() * ratio)); edgGlassTaskInfo.setThickness((int) (glassInfo.getThickness() * ratio)); - edgGlassTaskInfo.setStatus(Const.EDG_GLASS_BEFORE); + edgGlassTaskInfo.setState(Const.EDG_GLASS_BEFORE); edgGlassTaskInfo.setLine(endcell); - edgGlassTaskInfo.setTime(new Date()); + edgGlassTaskInfo.setCreateTime(new Date()); + edgGlassTaskInfo.setUpdateTime(new Date()); //鍏堝皢鍘嗗彶瀵瑰垪琛ㄤ腑鏈幓鐠冪殑鏁版嵁鍒犻櫎锛岄噸鏂版柊澧炰竴浠芥渶鏂扮殑鏁版嵁 edgGlassTaskInfoService.remove(new LambdaQueryWrapper<EdgGlassTaskInfo>().eq(EdgGlassTaskInfo::getGlassId, glassInfo.getGlassId())); return edgGlassTaskInfoService.save(edgGlassTaskInfo); @@ -832,73 +872,4 @@ } } - @Scheduled(fixedDelay = 1000) - 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) { - for (WebSocketServer webserver : sendwServer) { - if (webserver != null) { - webserver.sendMessage(jsonObject.toString()); - List<String> messages = webserver.getMessages(); - if (!messages.isEmpty()) { - // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛� - webserver.clearMessages(); - } - } else { - log.info("Home is closed"); - } - } - } - } - - @Scheduled(fixedDelay = 1000) - public void cacheGlassIsRun() { - JSONObject jsonObject = new JSONObject(); - //姝e湪杩涜鐨勪换鍔� - List<EdgGlassTaskInfo> taskCaches = edgGlassTaskInfoService.selectTaskCacheIsRun(); - jsonObject.append("taskCaches", taskCaches); - ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("cacheGlassIsRun"); - if (sendwServer != null) { - for (WebSocketServer webserver : sendwServer) { - if (webserver != null) { - webserver.sendMessage(jsonObject.toString()); - } else { - log.info("Home is closed"); - } - } - } - } - - @Scheduled(fixedDelay = 1000) - public void CacheGlassTaskss() { - JSONObject jsonObject = new JSONObject(); - //log.info("鏈璇嗗埆鐗堝浘{},++++{}",engineerId,currentCutTerritorys); - //纾ㄨ竟淇℃伅 - List<EdgGlassTaskInfo> edgTasks = edgGlassTaskInfoService.selectEdgInfo(); - jsonObject.append("edgTasks", edgTasks); - - ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("edgTasks"); - if (sendwServer != null) { - for (WebSocketServer webserver : sendwServer) { - if (webserver != null) { - webserver.sendMessage(jsonObject.toString()); - List<String> messages = webserver.getMessages(); - if (!messages.isEmpty()) { - // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛� - webserver.clearMessages(); - } - } else { - log.info("edgTasks is closed"); - } - } - } - } } -- Gitblit v1.8.0