UI-Project/config.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
UI-Project/src/utils/constants.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
UI-Project/src/views/Identify/identify.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
UI-Project/src/views/Slicecage/slicecage.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
UI-Project/config.js
@@ -1,7 +1,10 @@ export default { serverUrl: "10.153.19.150:88/api", // serverUrl: "10.153.19.150:88/api", // serverUrl: "192.168.1.199:88/api", serverUrl2: "10.153.19.150:88" serverUrl: "127.0.0.1:88/api", // serverUrl2: "10.153.19.150:88" // serverUrl2: "192.168.1.199:88" serverUrl2: "127.0.0.1:88" //serverUrl:"res.abeim.cn" } UI-Project/src/utils/constants.js
@@ -1,3 +1,4 @@ // export const WebSocketHost = "192.168.1.199"; export const WebSocketHost = "10.153.19.150"; // export const WebSocketHost = "10.153.19.150"; export const WebSocketHost = "127.0.0.1"; export const host = "88"; UI-Project/src/views/Identify/identify.vue
@@ -1,6 +1,20 @@ <template> <template> <div style="display: flex;"> <el-input v-model="inputValue" style="margin-left: 15px;margin-top: 10px;width: 240px" placeholder="请输入工程号" @blur="handleBlur"/> <el-pagination v-model:current-page="currentPage3" v-model:page-size="pageSize3" :size="size" :disabled="disabled" :background="background" layout="prev, pager, next, jumper" :total="1000" @size-change="handleSizeChange" @current-change="handleCurrentChange" /> </div> <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading"> <el-scrollbar height="600px" > <el-scrollbar height="550px" > <div id="app" style="margin-top: 20px;"> <!-- <div :style="{ width: `${olWidth}px`, height: `${olHeight}px`,position: 'relative',}" @@ -41,7 +55,7 @@ <script setup lang="ts"> import { Delete, Upload } from '@element-plus/icons-vue' import { ElMessage, ElMessageBox } from 'element-plus' import { ref, onMounted, onBeforeUnmount,onUnmounted } from 'vue'; import { ref, onMounted, onBeforeUnmount,onUnmounted,watchEffect } from 'vue'; import request from "@/utils/request" import { WebSocketHost ,host} from '@/utils/constants' import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService'; @@ -53,7 +67,7 @@ const olHeight = ref(); const process_id = ref(); // 用于存储process_id的响应式引用 const glass_id = ref(); // const rects = ref([]); // 用于存储矩形数据的响应式引用 const inputValue = ref(''); const currentGlassId = ref(null); // 存储当前点击矩形的 glass_id const adjustedRects = ref([]); // const handleBind = (row) => { @@ -155,6 +169,42 @@ console.error(error); } } const handleBlur = async () => { if (inputValue.value !== '') { try { var url="/cacheGlass/taskCache/cutTerritory?current="+inputValue.value; const response = await request.post(url) if (response.data && response.data.currentCutTerritory) { // 假设返回的数据需要调整坐标和尺寸 adjustedRects.value = response.data.currentCutTerritory.map(rect => ({ ...rect, x_axis: 1360 - (rect.x_axis + rect.width) * 0.37, y_axis: (rect.y_axis * 100) * 0.003, width: (rect.width * 100) * 0.002, height: (rect.height * 100) * 0.002, widtha: rect.width , heighta: rect.height , glass_state: rect.glass_state })); } } catch (error) { console.error('请求数据失败:', error); } } }; // const handleBlur = async () => { // if (inputValue.value !=''){ // try { // var url="/cacheGlass/taskCache/cutTerritory?current="+inputValue.value; // const response = await request.post(url) // console.log(response.data.length); // if (response.code == 200) { // adjustedRects.value = response.data // ElMessage.success(response.message); // } else { // ElMessage.error(response.msg); // } // } function getRectColor(state: number): string { switch (state) { case 0: @@ -205,6 +255,11 @@ closeWebSocket(socket); } }); watchEffect(() => { if (inputValue.value === '') { handleMessage(); } }); onBeforeUnmount(() => { console.log("关闭了") closeWebSocket(); UI-Project/src/views/Slicecage/slicecage.vue
@@ -76,19 +76,7 @@ const cell8=ref(true); const cell9=ref(true); const selectedRow = ref(null); // 存储选中的行数据 onMounted(async () => { try { const response = await request.post('/cacheVerticalGlass/bigStorageCageDetails/selectTemperingGlass'); if (response.code === 200) { tableDatagh.value = response.data } else { ElMessage.warning(response.msg) } } catch (error) { // console.error('Error fetching rects :', error); } }); // 当前页码和每页显示的条数 const currentPage = ref(1); const itemsPerPage = computed(() => { @@ -513,6 +501,40 @@ dialoglea.value = true; // 打开绑定架子对话框 fetchFlowCardId(); }; const handleganghua = () => { dialogFormVisiblec.value = true; // 打开绑定架子对话框 fetchFlow(); }; // 钢化查询 onMounted(async () => { try { const response = await request.post('/cacheVerticalGlass/bigStorageCageDetails/selectTemperingGlass'); if (response.code === 200) { tableDatagh.value = response.data } else { ElMessage.warning(response.msg) } } catch (error) { // console.error('Error fetching rects :', error); } }); const fetchFlow = async () => { try { const response = await request.post('/cacheVerticalGlass/bigStorageCageDetails/selectTemperingGlass') if (response.code == 200) { ElMessage.success(response.message); tableDatagh.value = response.data } else { ElMessage.error(response.message); } } catch (error) { // 处理错误 console.error(error); } } // 值班信息 const fetchFlowCardId = async () => { try { const response = await request.post('/cacheVerticalGlass/work_assignment/selectWorkAssignment',{ @@ -523,7 +545,6 @@ ElMessage.success(response.message); tableDatax.value = response.data; console.log(tableDatax.value); console } else { ElMessage.error(response.message); } @@ -742,7 +763,7 @@ <div style="height: 600px;"> <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="primary" @click="dialogFormVisiblea = true">{{ $t('searchOrder.cageinformation') }}</el-button> <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="success" @click="dialogFormVisibleb = true">{{ $t('searchOrder.productionqueue') }}</el-button> <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="warning" @click="dialogFormVisiblec = true">{{ $t('searchOrder.temperingqueries') }}</el-button> <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="warning" @click="handleganghua">{{ $t('searchOrder.temperingqueries') }}</el-button> <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="info" @click="handlezhiban">{{ $t('searchOrder.dutyinformation') }}</el-button> <el-switch style="margin-top: 5px;margin-left: 10px;" v-model="ganghua" class="mb-2" :inactive-text="$t('searchOrder.temperedswitch')" @change="handleChange" /> <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" v-loading="loading"> hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
@@ -87,7 +87,7 @@ @Value("${mes.min.two.secondLength}") private String minTwoSecondLength; public static String engineerId=""; public static String engineerId = ""; @Scheduled(fixedDelay = 1000) public void plcHomeEdgTask() { @@ -140,11 +140,12 @@ Date endDate = new Date(); log.info("本次任务结束时间:{},共耗时:{}ms", endDate, endDate.getTime() - startDate.getTime()); } @Scheduled(fixedDelay = 1000) public void temperingIsRun(){ public void temperingIsRun() { JSONObject jsonObject = new JSONObject(); //正在进行的任务 List<TaskCache>taskCaches=taskCacheService.selectTaskCacheIsRun(); List<TaskCache> taskCaches = taskCacheService.selectTaskCacheIsRun(); jsonObject.append("taskCaches", taskCaches); ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("isRun"); if (sendwServer != null) { @@ -157,6 +158,7 @@ } } } /** * 进片任务 * @@ -173,20 +175,23 @@ //查询玻璃并进行交换 GlassInfo glassInfo = queryAndChangeGlass(glassId); log.info("3、将玻璃信息插入卧式理片笼,当前玻璃信息:{}", glassInfo); if (glassInfo == null) { return; } log.info("4、将玻璃信息插入卧式理片笼,当前玻璃信息:{}", glassInfo); EdgStorageCageDetails details = new EdgStorageCageDetails(); BeanUtils.copyProperties(glassInfo, details); details.setState(Const.GLASS_STATE_IN); details.setSlot(nearestEmpty.getSlot()); details.setDeviceId(nearestEmpty.getDeviceId()); edgStorageCageDetailsService.save(details); log.info("4、玻璃信息已存入理片笼详情表,玻璃信息为{}", details); log.info("5、玻璃信息已存入理片笼详情表,玻璃信息为{}", details); //添加进片任务 boolean taskCache = saveTaskCache(details.getGlassId(), 0, nearestEmpty.getSlot(), Const.GLASS_CACHE_TYPE_IN); log.info("5、生成进片任务信息存入任务表是否完成:{}", taskCache); log.info("6、生成进片任务信息存入任务表是否完成:{}", taskCache); S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, 1); log.info("6、发送确认字完成"); log.info("7、发送确认字完成"); } @@ -201,6 +206,10 @@ GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId)); // .inSql(GlassInfo::getEngineerId, "select engineer_id from engineering where state = 1")); Assert.isFalse(null == glassInfo, "玻璃信息不存在"); if ((glassInfo.getWidth() < Double.parseDouble(minTwoFirstLength) && glassInfo.getHeight() < Double.parseDouble(minTwoSecondLength)) || (glassInfo.getWidth() < Double.parseDouble(minTwoSecondLength) && glassInfo.getHeight() < Double.parseDouble(minTwoFirstLength))) { log.info("3、玻璃信息不符合进入理片笼最小尺寸,玻璃信息为{}", glassInfo); return null; } //按照玻璃尺寸 LambdaQueryWrapper<GlassInfo> queryWrapper = new LambdaQueryWrapper<GlassInfo>() .eq(GlassInfo::getWidth, glassInfo.getWidth()) @@ -698,7 +707,7 @@ @Scheduled(fixedDelay = 1000) public void CacheGlassTasks() { JSONObject jsonObject = new JSONObject(); List<Map<String, Object>> currentCutTerritorys= edgStorageCageDetailsService.selectCutTerritory(); List<Map<String, Object>> currentCutTerritorys = edgStorageCageDetailsService.selectCutTerritory(); // List<Map<String, Object>> currentCutTerritorys=new ArrayList<>(); // if(engineerId==null||engineerId.isEmpty()){ // //识别摆片 当前版图数据