From 78e5175a05eeb3776d3f21f603fb6fb7a18b3d54 Mon Sep 17 00:00:00 2001 From: zhoushihao <zsh19950802@163.com> Date: 星期四, 08 八月 2024 10:14:59 +0800 Subject: [PATCH] 1、任务表中新增是否删除字段 0:未删除 1:已删除 2、磨边队列方法改造:增加设置参数接口,websocket推送数据时可按照设置的参数推送对应的数据 3、任务新增破损、拿走状态处理 4、破损数据新增批量新增 5、工位流程卡玻璃是否到齐方法完善 --- hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java | 66 +++++++++++++++++++++++++++------ 1 files changed, 54 insertions(+), 12 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 d6369fa..6ff5565 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 @@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.mes.common.S7object; import com.mes.common.config.Const; +import com.mes.damage.entity.Damage; +import com.mes.damage.service.DamageService; import com.mes.device.PlcParameterObject; import com.mes.downglassinfo.entity.DownGlassInfo; import com.mes.downglassinfo.entity.DownGlassTask; @@ -54,9 +56,8 @@ DownWorkstationService downWorkstationService; @Autowired DownGlassInfoService downGlassInfoService; - - @Value("${mes.threshold}") - private Integer threshold; + @Autowired + DamageService damageService; @Value("${mes.throughWidth}") private Integer throughWidth; @@ -126,6 +127,43 @@ } } + @Scheduled(fixedDelay = 300) + public void plcShelfFull() { + List<DownWorkstation> list = downGlassInfoService.queryWorkStationIsFull(); + if (CollectionUtils.isNotEmpty(list)) { + S7control s7control = S7object.getinstance().plccontrol; + PlcParameterObject plcMesObject = S7object.getinstance().PlcMesObject; + s7control.writeWord(plcMesObject.getPlcParameter("alarm_signal").getAddress(), 1); + } + } + + @Scheduled(fixedDelay = 1000) + public void dealDamageTask() { + Date startDate = new Date(); + log.info("涓嬬墖鐮存崯鐜荤拑娓呴櫎浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate); + List<DownGlassTask> downGlassTaskList = downGlassTaskService.list(new LambdaQueryWrapper<DownGlassTask>() + .in(DownGlassTask::getTaskType, Const.GLASS_CACHE_TYPE_OUT_ALL).in(DownGlassTask::getTaskStatus, Const.GLASS_STATE_DAMAGE_TAKE)); + if (CollectionUtils.isNotEmpty(downGlassTaskList)) { + //鑾峰彇鐮存崯/鎷胯蛋鐜荤拑id + List<String> glassList = downGlassTaskList.stream().map(DownGlassTask::getGlassId).collect(Collectors.toList()); + //灏嗕换鍔¤〃涓殑鏁版嵁鍒犻櫎 + downGlassTaskService.remove(new LambdaQueryWrapper<DownGlassTask>().in(DownGlassTask::getTaskType, Const.GLASS_CACHE_TYPE_OUT_ALL).in(DownGlassTask::getGlassId, glassList)); + List<Damage> damageList = downGlassTaskList.stream().map(e -> { + Damage damage = new Damage(); + damage.setGlassId(e.getGlassId()); + damage.setLine(Const.TEMPERING_OUT_TARGET_POSITION); + damage.setWorkingProcedure("涓嬬墖"); + damage.setRemark("涓嬬墖"); + damage.setStatus(0); + damage.setType(e.getTaskStatus()); + return damage; + }).collect(Collectors.toList()); + damageService.batchInsertDamage(damageList); + } + Date endDate = new Date(); + log.info("鏈浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms", endDate, endDate.getTime() - startDate.getTime()); + } + public void inTo(String glassId, String requestWord, String currentSlot) { log.info("1銆佹寜鐓х幓鐠僫d:{}鑾峰彇鐜荤拑灏忕墖淇℃伅,褰撳墠鏍煎瓙涓�:{}", glassId, currentSlot); //娣诲姞杩涚墖浠诲姟 鏌ユ壘绌烘牸 @@ -160,7 +198,7 @@ if (!checkFlag && !isBind) { log.info("璇ョ幓鐠冪殑娴佺▼鍗℃湭缁戝畾鏋跺瓙锛岃幏鍙栨槸鍚︽湁绌烘灦瀛�"); List<DownWorkstation> list = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>() - .isNull(DownWorkstation::getFlowCardId).orderByDesc(DownWorkstation::getWorkstationId)); + .and(on -> on.isNull(DownWorkstation::getFlowCardId).or().eq(DownWorkstation::getFlowCardId, "")).orderByDesc(DownWorkstation::getWorkstationId)); if (CollectionUtils.isNotEmpty(list)) { log.info("鏈夌┖鏋跺瓙,灏嗘祦绋嬪崱涓庢灦瀛愬ソ缁戝畾锛屾墽琛岃繘鐗囦换鍔� 缁撴潫"); //缁戝畾娴佺▼鍗� @@ -170,7 +208,7 @@ } if (!checkFlag) { log.info("鏃犵┖鏋跺瓙,鑾峰彇宸茬粦瀹氭灦瀛愮殑娴佺▼鍗′俊鎭�,鏌ョ湅鐜荤拑淇℃伅鏄惁鍙瀵硅皟"); - List<DownGlassInfoDTO> downGlassInfoDTOList = downGlassInfoService.queryWorkStationIsIn(Boolean.FALSE); + List<DownGlassInfoDTO> downGlassInfoDTOList = downGlassInfoService.queryWorkStationIsIn(Const.WORK_STATION_ALL, Boolean.FALSE); log.info("鑾峰彇鏋跺瓙涓婂凡缁戝畾娴佺▼鍗¤惤鏋剁殑鏁伴噺鍙婃湭钀芥灦鐨勭幓鐠冩暟鎹細{}", downGlassInfoDTOList); if (CollectionUtils.isEmpty(downGlassInfoDTOList)) { log.info("宸茬粦瀹氭祦绋嬪崱鍧囨棤鏈惤鏋剁幓鐠冿紝璇峰強鏃跺鐞嗘灦瀛愪笂鐨勭幓鐠冿紝娓呴櫎娴佺▼鍗�,鎵ц杩涚墖浠诲姟"); @@ -309,6 +347,7 @@ } } List<Integer> workStationAll = Arrays.asList(1, 2, 3, 4, 5, 6); + //鑾峰彇闈炴湰娆¤惤鏋剁殑鏋跺瓙淇℃伅 List<Integer> offWorkStationList = workStationAll.stream().filter(e -> !workList.contains(e)).collect(Collectors.toList()); List<DownStorageCageDetails> list = new ArrayList(); //鏄惁鏈夌┖鏋跺瓙 true锛氭湁 false:鏃� @@ -330,13 +369,13 @@ } else { //鑾峰彇鍙惤鏋剁殑鐨勬灦瀛愪俊鎭紙鍖呮嫭绌烘灦瀛愶級 //浠呰幏鍙栫┖鏋跺瓙淇℃伅 - List<DownWorkstation> workstationsIsNotBind = downWorkstationList.stream().filter(item -> null == (item.getFlowCardId())).collect(Collectors.toList()); + List<DownWorkstation> workstationsIsNotBind = downWorkstationList.stream().filter(item -> StringUtils.isBlank(item.getFlowCardId())).collect(Collectors.toList()); //灏嗘灦瀛愮殑娴佺▼鍗″彿鍙婂眰鏁颁綔涓簁ey 涓嶅瓨鍦ㄧ┖鏋跺瓙鐨勬儏鍐� if (CollectionUtils.isEmpty(workstationsIsNotBind)) { log.info("涓嶅瓨鍦ㄦ湭缁戝畾娴佺▼鍗℃灦瀛�"); //绛涢�夊嚭瀵瑰簲鏋跺瓙宸茬粦瀹氭祦绋嬪崱鍙笅鐗囩殑鐜荤拑 Map<String, List<DownWorkstation>> listMap = downWorkstationList.stream() - .filter(item -> null != (item.getFlowCardId())).collect(Collectors.groupingBy(item -> item.getFlowCardId() + ":" + item.getLayer())); + .filter(item -> StringUtils.isNotBlank(item.getFlowCardId())).collect(Collectors.groupingBy(item -> item.getFlowCardId() + ":" + item.getLayer())); //杩囨护绛涢�夎幏鍙栨灦瀛愪笂瀵瑰簲娴佺▼鍗�+灞傛暟鐨勭瀛愬唴鐨勭幓鐠冧俊鎭� list = tempList.stream().filter(item -> listMap.containsKey(item.getFlowCardId() + ":" + item.getLayer())).collect(Collectors.toList()); } else { @@ -349,7 +388,7 @@ list = tempList; } else { //绗煎唴瀛樺湪鏃犳硶鍑虹墖鐨勭幓鐠冧俊鎭紝杩囨护鏃犳硶鍑虹墖鐨勭幓鐠冧俊鎭紝浠呰幏鍙栧彲鍑虹墖鐨勭幓鐠冧俊鎭� 鏃犳硶鍑虹墖鐨勭幓鐠冧负锛氭湭缁戝畾鏋跺瓙銆佺粦瀹氭灦瀛愯绂佺敤銆侀潪鏈満姊拌噦瀵瑰簲鐨勬灦瀛� - Map<String, List<DownWorkstation>> listOffMap = downWorkstationOffList.stream().filter(item -> null != (item.getFlowCardId())).collect(Collectors.groupingBy(item -> item.getFlowCardId() + ":" + item.getLayer())); + Map<String, List<DownWorkstation>> listOffMap = downWorkstationOffList.stream().filter(item -> StringUtils.isNotBlank(item.getFlowCardId())).collect(Collectors.groupingBy(item -> item.getFlowCardId() + ":" + item.getLayer())); list = tempList.stream().filter(item -> !listOffMap.containsKey(item.getFlowCardId() + ":" + item.getLayer())).collect(Collectors.toList()); } //绌烘灦瀛愯〃绀虹疆涓簍rue @@ -387,12 +426,12 @@ loop: if (StringUtils.isBlank(tempGlassId)) { //鑾峰彇姝e湪钀芥灦鐨勭粦瀹氭祦绋嬪崱鐨勪俊鎭�(娴佺▼鍗°�佸眰鏁般�佽惤鏋舵暟閲�) - List<DownGlassInfoDTO> downGlassInfoDTOList = downGlassInfoService.queryWorkStationIsIn(Boolean.TRUE); + //todo:钀芥灦鐜荤拑鏁颁负0锛屽嵆浣跨粦瀹氫簡娴佺▼鍗★紝涔熸棤娉曟壘鍒板搴旂殑鏋跺瓙淇℃伅锛屽彧鑳介噸鏂扮粦瀹� + List<DownGlassInfoDTO> downGlassInfoDTOList = downGlassInfoService.queryWorkStationFlowCard(workList); List<String> downGlassFlowList = downGlassInfoDTOList.stream().map(item -> item.getFlowCardId() + ":" + item.getLayer()).collect(Collectors.toList()); if (CollectionUtils.isEmpty(downGlassFlowList)) { //鏋跺瓙閮芥湭缁戝畾娴佺▼鍗★紝鍑虹鍐呭瓙鏁伴噺鏈�澶氬昂瀵告渶澶х殑鐜荤拑id,鏃� 鍒欒繑鍥炴壂鎻忔壂鍒扮殑鐜荤拑id杩涜鍑虹墖 tempGlassId = downStorageCageDetailsService.getGlassInfoMaxCount(glassId, offWorkStationList); - isNeedBind = Boolean.TRUE; break loop; } @@ -456,6 +495,7 @@ if (CollectionUtils.isNotEmpty(downStorageCageDetails)) { tempGlassId = downStorageCageDetails.get(0).getGlassId(); break; + } } } @@ -498,7 +538,7 @@ if (isNeedBind) { //鑾峰彇绌烘灦瀛愪俊鎭紝灏嗙┖鏋跺瓙淇℃伅缁戝畾娴佺▼鍗� DownWorkstation emptyDownWorkstation = downWorkstationService.getOne(new LambdaQueryWrapper<DownWorkstation>() - .isNull(DownWorkstation::getFlowCardId).in(DownWorkstation::getWorkstationId, workList).orderByDesc(DownWorkstation::getWorkstationId).last("limit 1")); + .and(on -> on.isNull(DownWorkstation::getFlowCardId).or().eq(DownWorkstation::getFlowCardId, "")).in(DownWorkstation::getWorkstationId, workList).orderByDesc(DownWorkstation::getWorkstationId).last("limit 1")); if (null != emptyDownWorkstation) { log.info("鑾峰彇鍒扮┖鏋跺瓙淇℃伅锛岀粦瀹氭祦绋嬪崱"); downWorkstationService.updateFlowCardIdAndCount(downStorageCageDetails.getFlowCardId(), emptyDownWorkstation.getWorkstationId(), downStorageCageDetails.getLayer()); @@ -513,7 +553,7 @@ endCell = workstation.getWorkstationId(); } //鏇存柊钀芥灦鐜荤拑鏁伴噺 - if (endCell == 7) { + if (endCell == Const.G13_WORK_STATION) { downWorkstationService.update(new UpdateWrapper<DownWorkstation>().eq("flow_card_id", downStorageCageDetails.getFlowCardId()) .eq("layer", downStorageCageDetails.getLayer()).setSql("other_number = other_number +1")); } else { @@ -526,6 +566,8 @@ BeanUtils.copyProperties(downStorageCageDetails, downGlassInfo); //钀芥灦鐗囧簭 downGlassInfo.setSequence(downGlassInfoService.queryMaxSequence(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer())); + downGlassInfo.setWorkStationId(endCell); + downGlassInfo.setGmtCreate(new Date()); downGlassInfoService.save(downGlassInfo); //鐢熸垚浠诲姟淇℃伅 GlassInfo glassInfo = new GlassInfo(); -- Gitblit v1.8.0