ZengTao
2024-08-06 7664b90f93c4862785b8c3c18ad26a0cf0eeec33
Merge branch 'master' of http://bore.pub:10439/r/HangZhouMes

# Conflicts:
# UI-Project/src/utils/WebSocketService.js
卧式理片进片添加尺寸判断
5个文件已修改
149 ■■■■ 已修改文件
UI-Project/config.js 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/utils/constants.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/Identify/identify.vue 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/Slicecage/slicecage.vue 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java 25 ●●●●● 补丁 | 查看 | 原始文档 | 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()){
//            //识别摆片 当前版图数据