UI-Project/src/lang/en.js
@@ -484,6 +484,7 @@ createTime :'Return date', }, large:{ percent:'Percent', time: 'The time of the break', number: 'Order number', jobnumber: 'Job number', UI-Project/src/lang/zh.js
@@ -482,6 +482,7 @@ createTime :'返库日期', }, large:{ percent:'进度百分比', time: '次破时间', number: '订单号', jobnumber: '报工编号', hangzhoumesParent/common/servicebase/src/main/java/com/mes/bigstoragecagetask/entity/BigStorageTaskVO.java
New file @@ -0,0 +1,17 @@ package com.mes.bigstoragecagetask.entity; import lombok.Data; /** * @Author : zhoush * @Date: 2025/3/3 15:05 * @Description: */ @Data public class BigStorageTaskVO extends BigStorageCageTask{ /** * 是否相同 */ private int isSame; } hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
@@ -128,9 +128,8 @@ @Override public String deleteWarehousing(Long slotId) { update(new LambdaUpdateWrapper<RawGlassStorageDetails>().eq(RawGlassStorageDetails::getSlot, slotId) .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_OUT) .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)); remove(new LambdaUpdateWrapper<RawGlassStorageDetails>().eq(RawGlassStorageDetails::getSlot, slotId) .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)); return "success"; } hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OPCPlcSlicecage.java
@@ -4,10 +4,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.kangaroohy.milo.model.ReadWriteEntity; import com.kangaroohy.milo.service.MiloService; import com.mes.bigstorage.entity.BigStorageCageDetails; import com.mes.bigstorage.service.BigStorageCageDetailsService; import com.mes.bigstorage.service.BigStorageCageService; import com.mes.bigstoragecagetask.entity.BigStorageCageTask; import com.mes.bigstoragecagetask.entity.BigStorageTaskVO; import com.mes.bigstoragecagetask.service.BigStorageCageTaskService; import com.mes.common.config.Const; import com.mes.glassinfo.service.GlassInfoService; import com.mes.temperingglass.entity.TemperingGlassInfo; import com.mes.temperingglass.service.TemperingGlassInfoService; @@ -54,19 +57,26 @@ carPostion.add(0.5); jsonObject.append("carPostion", carPostion); //界面展示笼子信息 jsonObject.append("bigStorageCageInfos", bigStorageCageDetailsService.querybigStorageCageDetail()); jsonObject.append("bigStorageCageInfos", bigStorageCageDetailsService.querybigStorageCageDetail()); try{ try { //进片任务数据 List<BigStorageCageTask> inTaskList = new ArrayList(); List<BigStorageTaskVO> inTaskList = new ArrayList(); ReadWriteEntity fromOpcUa = miloService.readFromOpcUa("DLP1A.DLP1A.FROM1"); for (int i = 1; i <= 6; i++) { ReadWriteEntity requestWord = miloService.readFromOpcUa("DLP1A.DLP1A.DI" + i); ReadWriteEntity targetSlotWord = miloService.readFromOpcUa("DLP1A.DLP1A.TO" + i); ReadWriteEntity stateWord = miloService.readFromOpcUa("DLP1A.DLP1A.STATE" + i); if (null != requestWord.getValue()) { BigStorageCageTask task = new BigStorageCageTask(); BigStorageTaskVO task = new BigStorageTaskVO(); task.setGlassId(requestWord.getValue() + ""); int isExistCount = bigStorageCageDetailsService.count(new LambdaQueryWrapper<BigStorageCageDetails>().in(BigStorageCageDetails::getGlassId, task.getGlassId()) .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO)); if (isExistCount > 0) { task.setIsSame(1); } else { task.setIsSame(0); } task.setStartSlot(Integer.parseInt(fromOpcUa.getValue() + "")); task.setTargetSlot(Integer.parseInt(targetSlotWord.getValue() + "")); task.setTaskState(Integer.parseInt(stateWord.getValue() + "")); @@ -75,7 +85,10 @@ } } jsonObject.append("bigStorageCageDetailsFeedTask", inTaskList); } catch (Exception e) { //todo:不做任务处理 } try { //进片联机 ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP1A.DLP1A.mesControl"); jsonObject.append("inkageEntity", inkageEntity.getValue()); @@ -91,14 +104,14 @@ //出片请求 ReadWriteEntity outRequestEntity = miloService.readFromOpcUa("DLP1B.DLP1B.RequestMes"); jsonObject.append("outRequestEntity", outRequestEntity.getValue()); }catch(Exception e){ //出片任务数据 List<BigStorageCageTask> outTaskList = bigStorageCageTaskService.queryTaskMessage("big_storage_cage_out_one_task"); jsonObject.append("bigStorageCageDetailsOutTask", outTaskList); } catch (Exception e) { //todo:不做任务处理 } //出片任务数据 List<BigStorageCageTask> outTaskList = bigStorageCageTaskService.queryTaskMessage("big_storage_cage_out_one_task"); jsonObject.append("bigStorageCageDetailsOutTask", outTaskList); //钢化开关 boolean temperingSwitch = false; hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/controller/RawGlassStorageDetailsController.java
@@ -41,21 +41,21 @@ 200, "入库已完成,等待任务执行", rawGlassStorageDetailsService.patternWarehousing(request)); } @ApiOperation("更新剩余数量") @PostMapping("/updateQuantity") public Result<Object> updateQuantity(@Validated @RequestBody RawGlassRequest request) { return Result.success(rawGlassStorageDetailsService.updateQuantity(request)); } @ApiOperation("更新剩余数量") @PostMapping("/updateQuantity") public Result<Object> updateQuantity(@Validated @RequestBody RawGlassRequest request) { return Result.success(rawGlassStorageDetailsService.updateQuantity(request)); } @ApiOperation("删除原片") @PostMapping("/deleteWarehousing") public Result<Object> deleteWarehousing(Long slotId) { return Result.success(rawGlassStorageDetailsService.deleteWarehousing(slotId)); } @ApiOperation("删除原片") @PostMapping("/deleteWarehousing") public Result<Object> deleteWarehousing(Long slot) { return Result.success(rawGlassStorageDetailsService.deleteWarehousing(slot)); } @ApiOperation("原片出库") @PostMapping("/outWarehousing") public Result<Object> outWarehousing(@RequestBody Long slotId) { public Result<Object> outWarehousing(Long slotId) { return Result.success(rawGlassStorageDetailsService.outWarehousing(slotId)); } @@ -78,7 +78,6 @@ public Result<List<RawGlassStorageDetailsDTO>> patternUsage(String width, String height, String thickness, String films) { return Result.build(200, "查询成功", rawGlassStorageDetailsService.patternUsage(width, height, thickness, films)); } } hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassOutRelationInfoServiceImpl.java
@@ -28,6 +28,7 @@ import freemarker.template.Version; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -59,6 +60,12 @@ @Resource RedisUtil redisUtil; @Value("${mes.glassGap}") private Integer glassGap; @Value("${mes.carWidth}") private Integer carWidth; private static final int ID_RATIO = 10; @@ -328,20 +335,45 @@ .queryOutGlassList(request.getFlowCardId(), request.getCell()); int isPairCount = glassInfo.getTotalLayer() * request.getTotalPairQuantity(); List<HollowGlassQueueInfo> hollowQueues = new ArrayList<>(); loop: for (HollowBigStorageCageDetails queue : hollowBigStorageCageDetailsList) { HollowGlassQueueInfo queueInfo = new HollowGlassQueueInfo(); BeanUtils.copyProperties(queue, queueInfo); queueInfo.setRelationId(info.getId()); queueInfo.setState(Const.TEMPERING_NEW); queueInfo.setCell(request.getCell()); queueInfo.setCreateTime(new Date()); queueInfo.setUpdateTime(new Date()); hollowQueues.add(queueInfo); if (queue.getIsPair() == 1) { isPairCount -= 1; if (isPairCount == 0) { break loop; if (930 == request.getCell()) { Map<Integer, List<HollowBigStorageCageDetails>> listMap = hollowBigStorageCageDetailsList.stream() .collect(Collectors.groupingBy(HollowBigStorageCageDetails::getHollowSequence)); for (Map.Entry<Integer, List<HollowBigStorageCageDetails>> entry : listMap.entrySet()) { //创建队列接收不满足成对情况下:一对玻璃分几次上车的次序问题 List<HollowGlassQueueInfo> tempList = new ArrayList<>(); //先将玻璃按照正常顺序排列,计算一车最多放几块,算好块数之后将一车的玻璃按照倒序存储 List<HollowBigStorageCageDetails> reverse = CollectionUtil.reverse(entry.getValue()); int remainWidth = carWidth; for (HollowBigStorageCageDetails item : reverse) { remainWidth = remainWidth - (int) Math.max(item.getWidth(), item.getHeight()); if (remainWidth < 0) { tempList = CollectionUtil.reverse(tempList); remainWidth = carWidth - (int) Math.max(item.getWidth(), item.getHeight()); } HollowGlassQueueInfo queueInfo = HollowBDetailToQueue(item, info.getId(), request.getCell()); tempList.add(queueInfo); remainWidth = remainWidth - glassGap; } hollowQueues.addAll(tempList); HollowBigStorageCageDetails cageDetails = entry.getValue().get(0); if (cageDetails.getIsPair() == 1) { isPairCount = isPairCount - cageDetails.getTotalLayer(); if (isPairCount == 0) { break; } } } } else { loop: for (HollowBigStorageCageDetails item : hollowBigStorageCageDetailsList) { HollowGlassQueueInfo queueInfo = HollowBDetailToQueue(item, info.getId(), request.getCell()); hollowQueues.add(queueInfo); if (item.getIsPair() == 1) { isPairCount = isPairCount - 1; if (isPairCount == 0) { break loop; } } } } @@ -355,5 +387,16 @@ } return info; } private HollowGlassQueueInfo HollowBDetailToQueue(HollowBigStorageCageDetails details, Long taskId, int targetCell) { HollowGlassQueueInfo queueInfo = new HollowGlassQueueInfo(); BeanUtils.copyProperties(details, queueInfo); queueInfo.setRelationId(taskId); queueInfo.setState(Const.TEMPERING_NEW); queueInfo.setCell(targetCell); queueInfo.setCreateTime(new Date()); queueInfo.setUpdateTime(new Date()); return queueInfo; } } hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java
@@ -6,8 +6,10 @@ import com.kangaroohy.milo.model.ReadWriteEntity; import com.kangaroohy.milo.service.MiloService; import com.mes.bigstoragecagetask.entity.BigStorageCageTask; import com.mes.bigstoragecagetask.entity.BigStorageTaskVO; import com.mes.bigstoragecagetask.service.BigStorageCageTaskService; import com.mes.common.config.Const; import com.mes.hollow.entity.HollowBigStorageCageDetails; import com.mes.hollow.entity.HollowGlassOutRelationInfo; import com.mes.hollow.service.HollowBigStorageCageDetailsService; import com.mes.hollow.service.HollowBigStorageCageService; @@ -69,13 +71,13 @@ jsonObject.append("932", listMap.get(932)); try { //930空闲信号 ReadWriteEntity freeOneRequestEntity = miloService.readFromOpcUa("CMJ1.CMJ1.isFree"); ReadWriteEntity freeOneRequestEntity = miloService.readFromOpcUa("CMJ1.CMJ1.isFree"); jsonObject.append("freeOneRequestEntity", freeOneRequestEntity.getValue()); //931空闲信号 ReadWriteEntity freeTwoRequestEntity = miloService.readFromOpcUa("ZKQ2.ZKQ2.isFree"); jsonObject.append("freeTwoRequestEntity", freeTwoRequestEntity.getValue()); }catch (Exception e){ log.error("opc存在异常",e); } catch (Exception e) { log.error("opc存在异常", e); } List<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("HollowGlass"); @@ -124,17 +126,24 @@ //界面展示笼子信息 jsonObject.append("bigStorageCageInfos", hollowBigStorageCageDetailsService.queryHollowbigStorageCageDetail()); try{ try { //进片任务数据 List<BigStorageCageTask> inTaskList = new ArrayList(); List<BigStorageTaskVO> inTaskList = new ArrayList(); ReadWriteEntity fromOpcUa = miloService.readFromOpcUa("DLP2A.DLP2A.FROM1"); for (int i = 1; i <= 6; i++) { ReadWriteEntity requestWord = miloService.readFromOpcUa("DLP2A.DLP2A.DI" + i); ReadWriteEntity targetSlotWord = miloService.readFromOpcUa("DLP2A.DLP2A.TO" + i); ReadWriteEntity stateWord = miloService.readFromOpcUa("DLP2A.DLP2A.STATE" + i); if (null != requestWord.getValue()) { BigStorageCageTask task = new BigStorageCageTask(); BigStorageTaskVO task = new BigStorageTaskVO(); task.setGlassId(requestWord.getValue() + ""); int isExistCount = hollowBigStorageCageDetailsService.count(new LambdaQueryWrapper<HollowBigStorageCageDetails>().in(HollowBigStorageCageDetails::getGlassId, task.getGlassId()) .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO)); if (isExistCount > 0) { task.setIsSame(1); } else { task.setIsSame(0); } task.setStartSlot(Integer.parseInt(fromOpcUa.getValue() + "")); task.setTargetSlot(Integer.parseInt(targetSlotWord.getValue() + "")); task.setTaskState(Integer.parseInt(stateWord.getValue() + "")); @@ -143,6 +152,10 @@ } } jsonObject.append("bigStorageCageDetailsFeedTask", inTaskList); } catch (Exception e) { //todo:不做任务处理 } try { //进片联机 ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP2A.DLP2A.mesControl"); jsonObject.append("inkageEntity", inkageEntity.getValue()); @@ -159,13 +172,12 @@ ReadWriteEntity outRequestEntity = miloService.readFromOpcUa("DLP2B.DLP2B.RequestMes"); jsonObject.append("outRequestEntity", outRequestEntity.getValue()); //930空闲信号 ReadWriteEntity freeOneRequestEntity = miloService.readFromOpcUa("CMJ1.CMJ1.isFree"); ReadWriteEntity freeOneRequestEntity = miloService.readFromOpcUa("CMJ1.CMJ1.isFree"); jsonObject.append("freeOneRequestEntity", freeOneRequestEntity.getValue()); //931空闲信号 ReadWriteEntity freeTwoRequestEntity = miloService.readFromOpcUa("ZKQ2.ZKQ2.isFree"); jsonObject.append("freeTwoRequestEntity", freeTwoRequestEntity.getValue()); }catch(Exception e){ } catch (Exception e) { //todo:不做任务处理 } @@ -185,17 +197,6 @@ //理片笼使用情况 List<Map<String, Object>> bigStorageCageUsage = hollowBigStorageCageService.selectBigStorageCageUsage(); jsonObject.append("bigStorageCageUsage", bigStorageCageUsage); // // //打印开关 // boolean autoPrint = false; // if (redisUtil.getCacheObject("autoPrint") == null) { // redisUtil.setCacheObject("autoPrint", false); // } else { // autoPrint = redisUtil.getCacheObject("autoPrint"); // } // jsonObject.append("autoPrint", autoPrint); } }