From a4cc855f17c36f6ceda20100bc491bc6a0071c27 Mon Sep 17 00:00:00 2001 From: zhoushihao <zsh19950802@163.com> Date: 星期四, 11 七月 2024 10:33:06 +0800 Subject: [PATCH] 下片:人工下片表字段改为其他 大理片:新增读取plc数据计时功能 --- hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java | 79 ++++++++++++++++++++++----------------- 1 files changed, 44 insertions(+), 35 deletions(-) diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java index 9eaf129..1e79b15 100644 --- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java +++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java @@ -4,6 +4,7 @@ import cn.smallbun.screw.core.util.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.mes.common.S7object; import com.mes.common.config.Const; import com.mes.device.PlcParameterObject; @@ -72,8 +73,14 @@ @Value("${mes.maxHeight}") private Integer maxHeight; + @Value("${mes.minWidth}") + private Integer minWidth; - @Scheduled(fixedDelay = 1000) + @Value("${mes.minHeight}") + private Integer minHeight; + + + @Scheduled(fixedDelay = 3000) public void plcHomeEdgTask() { PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; String requestWord = plcParameterObject.getPlcParameter("requestWord").getValue(); @@ -87,6 +94,7 @@ String confirmationWrodAddress = plcParameterObject.getPlcParameter("confirmationWord").getAddress(); String currentSlot = plcParameterObject.getPlcParameter("currentCell").getValue(); + log.info("1銆佽幏鍙栧埌鐨勮姹傚瓧涓猴細{}锛岃幏鍙栧埌鐨勬壂鎻廔D涓猴細{}锛岃幏鍙栧埌鐨勭‘璁ゅ瓧涓猴細{}锛岃幏鍙栧埌鐨勫嚭鐗囩姸鎬佸垎鍒负锛歡06:{}銆乬08:{}銆乬11:{}銆乬13:{},褰撳墠鏍煎瓙鍙蜂负锛歿}", requestWord, glassIdeValue, confirmationWrodValue, out06Glassstate, out08Glassstate, out11Glassstate, out13Glassstate, currentSlot); @@ -96,7 +104,7 @@ return; } log.info("2銆佽幏鍙栧埌鐨勮姹傚瓧涓�0锛屽皢纭瀛楁敼涓�0"); - S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, (short) 0); + S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, 0); return; } if (!"0".equals(confirmationWrodValue)) { @@ -108,7 +116,7 @@ inTo(glassIdeValue, requestWord, currentSlot); } else if ("2".equals(requestWord)) { //09绌洪棽 锛�1 10绌洪棽 锛�2 閮界┖闂诧細3 鍏朵粬0 - log.info("2銆佸嚭鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�"); + log.info("2銆佸嚭鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛屽嚭鐗囦换鍔�"); outTo(out06Glassstate, out08Glassstate, out11Glassstate, out13Glassstate, glassIdeValue, currentSlot); } else if ("3".equals(requestWord)) { log.info("2銆佽繘鐗囧拰鍑虹墖閮界┖闂诧紝鎵ц鍑虹墖浠诲姟"); @@ -135,8 +143,8 @@ } Boolean checkFlag = Boolean.FALSE; //鐜荤拑灏哄鏄惁璧颁汉宸ヤ笅鐗� - if (glassInfo.getWidth() > maxWidth || glassInfo.getHeight() > maxHeight) { - log.info("璇ョ幓鐠冨昂瀵歌蛋浜哄伐涓嬬墖,鐩存帴杩涚墖"); + if (glassInfo.getWidth() > maxWidth || glassInfo.getHeight() > maxHeight || glassInfo.getWidth() < minWidth || glassInfo.getHeight() < minHeight) { + log.info("璇ョ幓鐠冨昂瀵镐笉绗﹀悎瑕佹眰锛岄渶瑕佽蛋浜哄伐涓嬬墖鐩存帴杩涚墖"); } else { log.info("璇ョ幓鐠冨昂瀵搁潪浜哄伐涓嬬墖"); //鑾峰彇璇ョ幓鐠冪殑娴佺▼鍗℃槸鍚﹀凡缁戝畾鏋跺瓙 @@ -152,14 +160,11 @@ if (!checkFlag && !isBind) { log.info("璇ョ幓鐠冪殑娴佺▼鍗℃湭缁戝畾鏋跺瓙锛岃幏鍙栨槸鍚︽湁绌烘灦瀛�"); List<DownWorkstation> list = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>() - .isNull(DownWorkstation::getFlowCardId)); + .isNull(DownWorkstation::getFlowCardId).orderByDesc(DownWorkstation::getWorkstationId)); if (CollectionUtils.isNotEmpty(list)) { log.info("鏈夌┖鏋跺瓙,灏嗘祦绋嬪崱涓庢灦瀛愬ソ缁戝畾锛屾墽琛岃繘鐗囦换鍔� 缁撴潫"); //缁戝畾娴佺▼鍗� - downWorkstationService.update(new LambdaUpdateWrapper<DownWorkstation>() - .set(DownWorkstation::getFlowCardId, glassInfo.getFlowCardId()) - .set(DownWorkstation::getLayer, glassInfo.getLayer()) - .eq(DownWorkstation::getWorkstationId, list.get(0).getWorkstationId())); + downWorkstationService.updateFlowCardIdAndCount(glassInfo.getFlowCardId(), glassInfo.getLayer(), list.get(0).getWorkstationId()); checkFlag = Boolean.TRUE; } } @@ -236,8 +241,8 @@ return Boolean.FALSE; } Boolean flag08 = "1".equals(out08Glassstate) ? Boolean.TRUE : Boolean.FALSE; - if (!generateTaskByShelf(glassStatus11, flag08, glassStatus13, tempList, cageDetails)) { - return generateTaskByShelf(glassStatus11, !flag08, glassStatus13, tempList, cageDetails); + if (!generateTaskByShelf(glassStatus06, glassStatus11, flag08, glassStatus13, tempList, cageDetails, glassId)) { + return generateTaskByShelf(glassStatus06, glassStatus11, !flag08, glassStatus13, tempList, cageDetails, glassId); } return Boolean.TRUE; } @@ -279,16 +284,16 @@ } } - private Boolean generateTaskByShelf(String glassStatus, Boolean flag08, String glassStatus13, List<DownStorageCageDetails> tempList, DownStorageCageDetails cageDetails) { + private Boolean generateTaskByShelf(String glassStatus06, String glassStatus11, Boolean flag08, String glassStatus13, List<DownStorageCageDetails> tempList, DownStorageCageDetails cageDetails, String glassId) { //鑾峰彇2涓満姊拌噦鑼冨洿鍐呯殑鏋跺瓙缁戝畾鐨勬祦绋嬪崱淇℃伅 List<Integer> workList = new ArrayList(); if (flag08) { - if (!"2".equals(glassStatus)) { + if (!"2".equals(glassStatus11)) { workList.addAll(Const.G11_WORK_STATION); } } else { - if (!"2".equals(glassStatus)) { + if (!"2".equals(glassStatus06)) { workList.addAll(Const.G06_WORK_STATION); } } @@ -297,7 +302,7 @@ //瀵圭鍐呯幓鐠冭繘琛岃繃婊わ紝浠呭嚭绗﹀悎閫昏緫鐨勭幓鐠� if (CollectionUtils.isNotEmpty(workList)) { List<DownWorkstation> downWorkstationList = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>() - .eq(DownWorkstation::getEnableState, 0).in(DownWorkstation::getWorkstationId, workList)); + .eq(DownWorkstation::getEnableState, Const.SLOT_ON).in(DownWorkstation::getWorkstationId, workList)); log.info("鏋跺瓙琚鐢紝鏃犳硶鍑虹墖钀芥灦"); if (CollectionUtils.isEmpty(downWorkstationList)) { log.info("绗煎瓙琚鐢紝鏃犳硶璧版満姊拌噦涓嬬墖"); @@ -348,10 +353,8 @@ List<DownGlassInfoDTO> downGlassInfoDTOList = downGlassInfoService.queryWorkStationIsIn(Boolean.TRUE); List<String> downGlassFlowList = downGlassInfoDTOList.stream().map(item -> item.getFlowCardId() + ":" + item.getLayer()).collect(Collectors.toList()); if (CollectionUtils.isEmpty(downGlassFlowList)) { - //鏋跺瓙閮芥湭缁戝畾娴佺▼鍗★紝鍑虹鍐呭瓙鏁伴噺鏈�澶氬昂瀵告渶澶х殑鐜荤拑 - DownStorageCageDetails downStorageCageDetails = downStorageCageDetailsService.getGlassInfoMaxCount(); - //缁戝畾娴佺▼鍗★紝鏇存柊鐜荤拑鐘舵�侊紝鐢熸垚鍑虹墖浠诲姟锛� - tempGlassId = downStorageCageDetails.getGlassId(); + //鏋跺瓙閮芥湭缁戝畾娴佺▼鍗★紝鍑虹鍐呭瓙鏁伴噺鏈�澶氬昂瀵告渶澶х殑鐜荤拑id,鏃� 鍒欒繑鍥炴壂鎻忔壂鍒扮殑鐜荤拑id杩涜鍑虹墖 + tempGlassId = downStorageCageDetailsService.getGlassInfoMaxCount(glassId); isBind = Boolean.TRUE; break loop; } @@ -362,9 +365,8 @@ // List<DownWorkstation> emptyShelfList = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>() // .isNull(DownWorkstation::getFlowCardId)); if (isEmptyShelf) { - DownStorageCageDetails downStorageCageDetails = downStorageCageDetailsService.getGlassInfoMaxCount(); - //缁戝畾娴佺▼鍗★紝鏇存柊鐜荤拑鐘舵�侊紝鐢熸垚鍑虹墖浠诲姟 - tempGlassId = downStorageCageDetails.getGlassId(); + //鏋跺瓙閮芥湭缁戝畾娴佺▼鍗★紝鍑虹鍐呭瓙鏁伴噺鏈�澶氬昂瀵告渶澶х殑鐜荤拑id,鏃� 鍒欒繑鍥炴壂鎻忔壂鍒扮殑鐜荤拑id杩涜鍑虹墖 + tempGlassId = downStorageCageDetailsService.getGlassInfoMaxCount(glassId); isBind = Boolean.TRUE; break loop; } @@ -453,9 +455,7 @@ .isNull(DownWorkstation::getFlowCardId).orderByDesc(DownWorkstation::getWorkstationId).last("limit 1")); if (null != emptyDownWorkstation) { log.info("鑾峰彇鍒扮┖鏋跺瓙淇℃伅锛岀粦瀹氭祦绋嬪崱"); - emptyDownWorkstation.setFlowCardId(downStorageCageDetails.getFlowCardId()); - emptyDownWorkstation.setLayer(downStorageCageDetails.getLayer()); - downWorkstationService.updateById(emptyDownWorkstation); + downWorkstationService.updateFlowCardIdAndCount(downStorageCageDetails.getFlowCardId(), downStorageCageDetails.getLayer(), emptyDownWorkstation.getWorkstationId()); endCell = emptyDownWorkstation.getWorkstationId(); } else { log.info("娌℃湁绌烘灦瀛愪俊鎭紝鏃犳硶缁戝畾娴佺▼鍗�"); @@ -474,6 +474,15 @@ log.info("鏇存柊璇︽儏琛ㄥ唴鐨勭姸鎬佸け璐�"); return Boolean.FALSE; } + //鏇存柊钀芥灦鐜荤拑鏁伴噺 + if (endCell == 7) { + downWorkstationService.update(new UpdateWrapper<DownWorkstation>().eq("flow_card_id", downStorageCageDetails.getFlowCardId()) + .eq("layer", downStorageCageDetails.getLayer()).setSql("other_number = other_number +1")); + } else { + downWorkstationService.update(new UpdateWrapper<DownWorkstation>().eq("flow_card_id", downStorageCageDetails.getFlowCardId()) + .eq("layer", downStorageCageDetails.getLayer()).setSql("racks_number = racks_number +1")); + } + //鐢熸垚浠诲姟淇℃伅 DownGlassInfo downGlassInfo = new DownGlassInfo(); BeanUtils.copyProperties(downStorageCageDetails, downGlassInfo); @@ -490,12 +499,12 @@ downGlassTask.setStartCell(startCell); downGlassTask.setGlassId(glassInfo.getGlassId()); downGlassTask.setEndCell(endCell); - downGlassTask.setTaskType(taskType + ""); + downGlassTask.setTaskType(taskType); downGlassTask.setWidth((int) glassInfo.getWidth()); downGlassTask.setHeight((int) glassInfo.getHeight()); downGlassTask.setFlowCardId(glassInfo.getFlowCardId()); downGlassTask.setLayer(glassInfo.getLayer()); - downGlassTask.setTaskStauts(0); + downGlassTask.setTaskStatus(0); downGlassTask.setCreateTime(new Date()); downGlassTaskService.save(downGlassTask); //鍚憄lc鍙戦�佸懡浠� @@ -506,13 +515,13 @@ private Boolean sendMessageToPlc(int width, int height, int thickness, int startCell, int endCell, int taskType) { S7control s7control = S7object.getinstance().plccontrol; PlcParameterObject plcMesObject = S7object.getinstance().PlcMesObject; - s7control.writeWord(plcMesObject.getPlcParameter("Glass_width").getAddress(), (short) width); - s7control.writeWord(plcMesObject.getPlcParameter("Glass_height").getAddress(), (short) height); - s7control.writeWord(plcMesObject.getPlcParameter("Glass_thickness").getAddress(), (short) thickness); - s7control.writeWord(plcMesObject.getPlcParameter("Start_cell").getAddress(), (short) startCell); - s7control.writeWord(plcMesObject.getPlcParameter("End_cell").getAddress(), (short) endCell); - s7control.writeWord(plcMesObject.getPlcParameter("task_type").getAddress(), (short) taskType); - s7control.writeWord(plcMesObject.getPlcParameter("confirmationWord").getAddress(), (short) 1); + s7control.writeWord(plcMesObject.getPlcParameter("Glass_width").getAddress(), width); + s7control.writeWord(plcMesObject.getPlcParameter("Glass_height").getAddress(), height); + s7control.writeWord(plcMesObject.getPlcParameter("Glass_thickness").getAddress(), thickness); + s7control.writeWord(plcMesObject.getPlcParameter("Start_cell").getAddress(), startCell); + s7control.writeWord(plcMesObject.getPlcParameter("End_cell").getAddress(), endCell); + s7control.writeWord(plcMesObject.getPlcParameter("task_type").getAddress(), taskType); + s7control.writeWord(plcMesObject.getPlcParameter("confirmationWord").getAddress(), 1); return Boolean.TRUE; } } -- Gitblit v1.8.0