zhoushihao
1 天以前 4e3b8155722b66e25df3c6fd42cc586b68dea391
Merge remote-tracking branch 'origin/master'
7个文件已修改
439 ■■■■ 已修改文件
UI-Project/src/lang/zh.js 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/largescreendisplay/screendisplay.vue 186 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/largescreendisplay/statistics.vue 109 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/largescreendisplay/timeaxis.vue 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/pom.xml 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/lang/zh.js
@@ -637,17 +637,17 @@
          historicaltasks9:'中空大理片',
          historicaltasks10:'生产统计',
          date:'日期',
          countOutOne: '切割一线数量',
          countOutOne: '切割一线',
          totalAreaOutOne: '切割一线面积',
          countOutTwo: '切割二线数量',
          countOutTwo: '切割二线',
          totalAreaOutTwo: '切割二线面积',
          countIn: '钢化前大理片数量',
          countIn: '钢化前大理片',
          totalAreaIn: '钢化前大理片面积',
          countOut: '钢化数量',
          countOut: '钢化',
          totalAreaOut: '钢化面积',
          hollowCountOutOne: '中空一线数量',
          hollowCountOutOne: '中空一线',
          hollowTotalAreaOutOne: '中空一线面积',
          hollowCountOutTwo: '中空二线数量',
          hollowCountOutTwo: '中空二线',
          hollowTotalAreaOutTwo: '中空二线面积',
      },
      reportmanage:{
UI-Project/src/views/largescreendisplay/screendisplay.vue
@@ -106,20 +106,15 @@
  const tableData = [];
  if (tableDatax.length > 0) {
    tableDatax.forEach((item, index) => {
      const time1 = new Date(index == 0 ? item.startTimestamp : tableDatax[index - 1].secondTimestamp);
      const time2 = new Date(index == tableDatax.length - 1 ? item.endTimestamp : item.firstTimestamp);
      const diffInSeconds = Math.abs(time2 - time1) / 1000;
      if (diffInSeconds > 60) {
        tableData.push({
          firstTimestamp: index == 0 ? item.startTimestamp : tableDatax[index - 1].secondTimestamp,
          secondTimestamp: index == tableDatax.length - 1 ? item.endTimestamp : item.firstTimestamp,
          diffMinutes: item.diffMinutes,
          startTimestamp: item.startTimestamp,
          endTimestamp: item.endTimestamp,
          state: 1
        });
        if (result) {
      tableData.push({
        firstTimestamp: index == 0 ? item.startTimestamp : tableDatax[index - 1].secondTimestamp,
        secondTimestamp: index == tableDatax.length - 1 ? item.endTimestamp : item.firstTimestamp,
        diffMinutes: item.diffMinutes,
        startTimestamp: item.startTimestamp,
        endTimestamp: item.endTimestamp,
        state: 1
      });
      if (result) {
        tableData.push({
          firstTimestamp: item.firstTimestamp,
          secondTimestamp: item.secondTimestamp,
@@ -129,14 +124,6 @@
          state: 2
        });
      }
        // console.log("间隔超过60秒", diffInSeconds, time1, time2);
      } else {
        if(index>0){
        // console.log(tableData,index);
        }
        // console.log("间隔不超过60秒", diffInSeconds, time1, time2);
      }
    });
  }
@@ -207,7 +194,14 @@
      backgroundColor: 'rgba(50,50,50,0.7)',
      textStyle: { color: '#fff' },
      formatter: (params) => {
        const seen = new Set();
        const items = params
          .filter(p => {
            const key = p.data?.extra?.start + '|' + p.data?.extra?.end;
            if (seen.has(key)) return false;
            seen.add(key);
            return true;
          })
          .map(p => {
            const start = p.data?.extra?.start;
            const end = p.data?.extra?.end;
@@ -283,7 +277,7 @@
    ]
  };
  mychart.setOption(optionOne,true);
  mychart.setOption(optionOne, true);
};
let socket4 = null;
@@ -296,11 +290,11 @@
let socket5 = null;
let myChart = null;
let myChart2 = null;
const switchNoorAreaLeft = ref(true)
const switchNoorAreaRight = ref(true)
const productionVO = ref([])
const socketUrl5 = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/largenScreenProduction`;
const handleMessage5 = (data) => {
  productionVO.value = data.productionVO[0];
  // 将原始数据转换为 ECharts 图表所需格式
const createchart = (productionVO) => {
  categories = productionVO.value.map(item => item.date); // 获取日期作为 x 轴
  totalAreaOutOne = productionVO.value.map(item => item.totalAreaOutOne);
  countIn = productionVO.value.map(item => item.countIn);
@@ -324,7 +318,18 @@
  if (!myChart) {
    myChart = echarts.init(chartDom);
  }
  let loadOneData;
  let loadTwoData;
  let tempfontData;
  if (switchNoorAreaLeft.value) {
    loadOneData = countOutOne;
    loadTwoData = countOutTwo;
    tempfontData = countIn;
  } else {
    loadOneData = totalAreaOutOne;
    loadTwoData = totalAreaOutTwo;
    tempfontData = totalAreaIn;
  }
@@ -335,32 +340,52 @@
    legend: {
      data: [
        t('large.countOutOne'),
        t('large.totalAreaOutOne'),
        // t('large.totalAreaOutOne'),
        t('large.countOutTwo'),
        t('large.totalAreaOutTwo'),
        // t('large.totalAreaOutTwo'),
        t('large.countIn'),
        t('large.totalAreaIn')
        // t('large.totalAreaIn')
      ]
    },
    grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true },
    toolbox: { feature: { saveAsImage: {} } },
    grid: { top: '20%', left: '3%', right: '4%', bottom: '3%', containLabel: true },
    toolbox: {
      feature: {
        saveAsImage: {},
        myTool1: {
          show: true,
          title: t('large.switch'),
          icon: 'path://M512 0C229.234 0 0 229.234 0 512s229.234 512 512 512 512-229.234 512-512S794.766 0 512 0z m0 960C264.602 960 64 759.398 64 512S264.602 64 512 64s448 200.602 448 448-200.602 448-448 448z m0-768c-176.448 0-320 143.552-320 320s143.552 320 320 320 320-143.552 320-320-143.552-320-320-320z', // 圆形按钮图标(可换)
          onclick: function () {
            switchNoorAreaLeft.value = !switchNoorAreaLeft.value;
            createchart(productionVO);
            // customButtonClick(); // 调用你自定义的方法
          }
        }
      }
    },
    xAxis: {
      type: 'category',
      boundaryGap: false,
      boundaryGap: true,
      data: categories // 这是日期数据
    },
    yAxis: { type: 'value' },
    yAxis: {
      type: 'value',
      name: switchNoorAreaLeft.value==true?t('large.quantity'):t('large.are'), // 坐标轴名称
      axisLabel: {
        formatter: '{value}'
      }
    },
    series: [
      { name: t('large.countOutOne'), type: 'bar', data: countOutOne },
      { name: t('large.totalAreaOutOne'), type: 'bar', data: totalAreaOutOne },
      { name: t('large.countOutTwo'), type: 'bar', data: countOutTwo },
      { name: t('large.totalAreaOutTwo'), type: 'bar', data: totalAreaOutTwo },
      { name: t('large.countIn'), type: 'bar', data: countIn },
      { name: t('large.totalAreaIn'), type: 'bar', data: totalAreaIn }
      { name: t('large.countOutOne'), type: 'bar', data: loadOneData },
      // { name: t('large.totalAreaOutOne'), type: 'bar', data: totalAreaOutOne },
      { name: t('large.countOutTwo'), type: 'bar', data: loadTwoData },
      // { name: t('large.totalAreaOutTwo'), type: 'bar', data: totalAreaOutTwo },
      { name: t('large.countIn'), type: 'bar', data: tempfontData },
      // { name: t('large.totalAreaIn'), type: 'bar', data: totalAreaIn }
    ]
  };
  myChart.setOption(option,true);
  myChart.setOption(option, true);
  const chartDom2 = chartRef2.value;
@@ -375,38 +400,74 @@
  // else {
  //     myChart2.clear();
  //   }
  let tempData;
  let hollowOneData;
  let hollowTwoData;
  if (switchNoorAreaRight.value) {
    tempData = countOut;
    hollowOneData = hollowCountOutOne;
    hollowTwoData = hollowCountOutTwo;
  } else {
    tempData = totalAreaOut;
    hollowOneData = hollowTotalAreaOutOne;
    hollowTwoData = hollowTotalAreaOutTwo;
  }
  const option2 = {
    title: { text: '' },
    tooltip: { trigger: 'axis' },
    legend: {
      data: [
        t('large.totalAreaOut'),
        t('large.countOut'),
        t('large.hollowTotalAreaOutOne'),
        // t('large.totalAreaOut'),
        t('large.hollowCountOutOne'),
        // t('large.hollowTotalAreaOutOne'),
        t('large.hollowCountOutTwo'),
        t('large.hollowTotalAreaOutTwo')
        // t('large.hollowTotalAreaOutTwo')
      ]
    },
    grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true },
    toolbox: { feature: { saveAsImage: {} } },
    toolbox: {
      feature: {
        saveAsImage: {},
        myTool1: {
          show: true,
          title: t('large.switch'),
          icon: 'path://M512 0C229.234 0 0 229.234 0 512s229.234 512 512 512 512-229.234 512-512S794.766 0 512 0z m0 960C264.602 960 64 759.398 64 512S264.602 64 512 64s448 200.602 448 448-200.602 448-448 448z m0-768c-176.448 0-320 143.552-320 320s143.552 320 320 320 320-143.552 320-320-143.552-320-320-320z', // 圆形按钮图标(可换)
          onclick: function () {
            switchNoorAreaRight.value = !switchNoorAreaRight.value;
            createchart(productionVO);
            // customButtonClick(); // 调用你自定义的方法
          }
        }
      }
    },
    xAxis: {
      type: 'category',
      boundaryGap: false,
      boundaryGap: true,
      data: categories // 这是日期数据
    },
    yAxis: { type: 'value' },
    yAxis: {
      type: 'value',
      name: switchNoorAreaRight.value==true?t('large.quantity'):t('large.are'), // 坐标轴名称
      axisLabel: {
        formatter: '{value}'
      }
    },
    series: [
      { name: t('large.totalAreaOut'), type: 'bar', data: totalAreaOut },
      { name: t('large.countOut'), type: 'bar', data: countOut },
      { name: t('large.hollowTotalAreaOutOne'), type: 'bar', data: hollowTotalAreaOutOne },
      { name: t('large.hollowCountOutOne'), type: 'bar', data: hollowCountOutOne },
      { name: t('large.hollowCountOutTwo'), type: 'bar', data: hollowCountOutTwo },
      { name: t('large.hollowTotalAreaOutTwo'), type: 'bar', data: hollowTotalAreaOutTwo }
      // { name: t('large.totalAreaOut'), type: 'bar', data: tempData },
      { name: t('large.countOut'), type: 'bar', data: tempData },
      // { name: t('large.hollowTotalAreaOutOne'), type: 'bar', data: hollowOneData },
      { name: t('large.hollowCountOutOne'), type: 'bar', data: hollowOneData },
      // { name: t('large.hollowTotalAreaOutTwo'), type: 'bar', data: hollowTwoData },
      { name: t('large.hollowCountOutTwo'), type: 'bar', data: hollowTwoData }
    ]
  };
  myChart2.setOption(option2,true);
  myChart2.setOption(option2, true);
}
const handleMessage5 = (data) => {
  productionVO.value = data.productionVO[0];
  createchart(productionVO);
};
// 将原始数据转换为 ECharts 图表所需格式
let categories = ref([]); // 获取日期作为 x 轴
@@ -441,14 +502,7 @@
const exportToExcel = async () => {
  try {
    window.open('http://' + { WebSocketHost } + ':10011/largenScreen/exportDailyProduction', '_blank');
    // const response = await request.get('/cacheGlass/largenScreen/exportDailyProduction');
    // if (response.code == 200) {
    //   ElMessage.success(response.message);
    //   tableDatad.value = response.data;
    // } else {
    //   ElMessage.error(response.message);
    // }
    window.open(`http://${WebSocketHost}:10011/largenScreen/exportDailyProduction`, '_blank');
  }
  catch (error) {
    console.error(error);
@@ -923,8 +977,8 @@
        frameborder="0"></iframe>
    </el-dialog>
    <el-dialog v-model="iframe10" top="5vh" width="95%" @close="iframeUrl10 = ''">
      <iframe :src="iframeUrl10" marginwidth="2000px" marginheight="2000px" width="100%"
        height="700px" frameborder="0"></iframe>
      <iframe :src="iframeUrl10" marginwidth="2000px" marginheight="2000px" width="100%" height="700px"
        frameborder="0"></iframe>
    </el-dialog>
    <el-dialog v-model="iframe11" top="5vh" width="95%" @close="iframeUrl11 = ''">
      <iframe :src="iframeUrl11" marginwidth="2000px" marginheight="2000px" width="100%" height="750px"
@@ -938,7 +992,8 @@
      <!-- 生产统计 -->
      <div style="height: 100px;width: 25%;float: right;">
        <div id="ss" style="width: 100%; display: flex; justify-content: center;">
          <div ref="chartRef" style="width: 600px; height: 400px;" @dblclick="handlehistorical10()"></div>
          <div ref="chartRef" style="width: 600px; height: 400px;" @dblclick="handlehistorical10()">
          </div>
        </div>
        <div style="width: 100%;height: 245px;display: flex;">
          <div ref="chartLoad" style="width: 100%;" @dblclick="handlehistorical12(1)"></div>
@@ -1117,7 +1172,6 @@
          </el-table>
        </div>
      </div>
      <div style="height: 100px;width: 25%;float: right;">
        <div id="ss" style="width: 100%; display: flex; justify-content: center;">
          <div ref="chartRef2" style="width: 600px; height: 400px;" @dblclick="handlehistorical10()"></div>
UI-Project/src/views/largescreendisplay/statistics.vue
@@ -297,6 +297,8 @@
const chartRef = ref(null)
const chartRef2 = ref(null)
const showchart = ref(false)
const switchNoorAreaLeft = ref(true)
const switchNoorAreaRight = ref(true)
const createchart = (productionVO) => {
  categories = productionVO.value.map(item => item.date); // 获取日期作为 x 轴
  totalAreaOutOne = productionVO.value.map(item => item.totalAreaOutOne);
@@ -312,7 +314,7 @@
  totalAreaIn = productionVO.value.map(item => item.totalAreaIn);
  countOutOne = productionVO.value.map(item => item.countOutOne);
  //图表
  nextTick() // 确保 DOM 加载完成
    nextTick() // 确保 DOM 加载完成
  const chartDom = chartRef.value;
  if (!chartDom) {
    console.error('图表容器未找到');
@@ -321,6 +323,21 @@
  if (!myChart) {
    myChart = echarts.init(chartDom);
  }
  let loadOneData;
  let loadTwoData;
  let tempfontData;
  if (switchNoorAreaLeft.value) {
    loadOneData = countOutOne;
    loadTwoData = countOutTwo;
    tempfontData = countIn;
  } else {
    loadOneData = totalAreaOutOne;
    loadTwoData = totalAreaOutTwo;
    tempfontData = totalAreaIn;
  }
  const option = {
    title: { text: '' },
@@ -328,32 +345,46 @@
    legend: {
      data: [
        t('large.countOutOne'),
        t('large.totalAreaOutOne'),
        // t('large.totalAreaOutOne'),
        t('large.countOutTwo'),
        t('large.totalAreaOutTwo'),
        // t('large.totalAreaOutTwo'),
        t('large.countIn'),
        t('large.totalAreaIn')
        // t('large.totalAreaIn')
      ]
    },
    grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true },
    toolbox: { feature: { saveAsImage: {} } },
    grid: { top: '20%', left: '3%', right: '4%', bottom: '3%', containLabel: true },
    toolbox: {
      feature: {
        saveAsImage: {},
        myTool1: {
          show: true,
          title: t('large.switch'),
          icon: 'path://M512 0C229.234 0 0 229.234 0 512s229.234 512 512 512 512-229.234 512-512S794.766 0 512 0z m0 960C264.602 960 64 759.398 64 512S264.602 64 512 64s448 200.602 448 448-200.602 448-448 448z m0-768c-176.448 0-320 143.552-320 320s143.552 320 320 320 320-143.552 320-320-143.552-320-320-320z', // 圆形按钮图标(可换)
          onclick: function () {
            switchNoorAreaLeft.value = !switchNoorAreaLeft.value;
            createchart(productionVO);
            // customButtonClick(); // 调用你自定义的方法
          }
        }
      }
    },
    xAxis: {
      type: 'category',
      boundaryGap: false,
      boundaryGap: true,
      data: categories // 这是日期数据
    },
    yAxis: { type: 'value' },
    series: [
      { name: t('large.countOutOne'), type: 'bar', data: countOutOne },
      { name: t('large.totalAreaOutOne'), type: 'bar', data: totalAreaOutOne },
      { name: t('large.countOutTwo'), type: 'bar', data: countOutTwo },
      { name: t('large.totalAreaOutTwo'), type: 'bar', data: totalAreaOutTwo },
      { name: t('large.countIn'), type: 'bar', data: countIn },
      { name: t('large.totalAreaIn'), type: 'bar', data: totalAreaIn }
      { name: t('large.countOutOne'), type: 'bar', data: loadOneData },
      // { name: t('large.totalAreaOutOne'), type: 'bar', data: totalAreaOutOne },
      { name: t('large.countOutTwo'), type: 'bar', data: loadTwoData },
      // { name: t('large.totalAreaOutTwo'), type: 'bar', data: totalAreaOutTwo },
      { name: t('large.countIn'), type: 'bar', data: tempfontData },
      // { name: t('large.totalAreaIn'), type: 'bar', data: totalAreaIn }
    ]
  };
  myChart.setOption(option);
  myChart.setOption(option, true);
  const chartDom2 = chartRef2.value;
@@ -368,38 +399,64 @@
  // else {
  //     myChart2.clear();
  //   }
  let tempData;
  let hollowOneData;
  let hollowTwoData;
  if (switchNoorAreaRight.value) {
    tempData = countOut;
    hollowOneData = hollowCountOutOne;
    hollowTwoData = hollowCountOutTwo;
  } else {
    tempData = totalAreaOut;
    hollowOneData = hollowTotalAreaOutOne;
    hollowTwoData = hollowTotalAreaOutTwo;
  }
  const option2 = {
    title: { text: '' },
    tooltip: { trigger: 'axis' },
    legend: {
      data: [
        t('large.totalAreaOut'),
        t('large.countOut'),
        t('large.hollowTotalAreaOutOne'),
        // t('large.totalAreaOut'),
        t('large.hollowCountOutOne'),
        // t('large.hollowTotalAreaOutOne'),
        t('large.hollowCountOutTwo'),
        t('large.hollowTotalAreaOutTwo')
        // t('large.hollowTotalAreaOutTwo')
      ]
    },
    grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true },
    toolbox: { feature: { saveAsImage: {} } },
    toolbox: {
      feature: {
        saveAsImage: {},
        myTool1: {
          show: true,
          title: t('large.switch'),
          icon: 'path://M512 0C229.234 0 0 229.234 0 512s229.234 512 512 512 512-229.234 512-512S794.766 0 512 0z m0 960C264.602 960 64 759.398 64 512S264.602 64 512 64s448 200.602 448 448-200.602 448-448 448z m0-768c-176.448 0-320 143.552-320 320s143.552 320 320 320 320-143.552 320-320-143.552-320-320-320z', // 圆形按钮图标(可换)
          onclick: function () {
            switchNoorAreaRight.value = !switchNoorAreaRight.value;
            createchart(productionVO);
            // customButtonClick(); // 调用你自定义的方法
          }
        }
      }
    },
    xAxis: {
      type: 'category',
      boundaryGap: false,
      boundaryGap: true,
      data: categories // 这是日期数据
    },
    yAxis: { type: 'value' },
    series: [
      { name: t('large.totalAreaOut'), type: 'bar', data: totalAreaOut },
      { name: t('large.countOut'), type: 'bar', data: countOut },
      { name: t('large.hollowTotalAreaOutOne'), type: 'bar', data: hollowTotalAreaOutOne },
      { name: t('large.hollowCountOutOne'), type: 'bar', data: hollowCountOutOne },
      { name: t('large.hollowCountOutTwo'), type: 'bar', data: hollowCountOutTwo },
      { name: t('large.hollowTotalAreaOutTwo'), type: 'bar', data: hollowTotalAreaOutTwo }
      // { name: t('large.totalAreaOut'), type: 'bar', data: tempData },
      { name: t('large.countOut'), type: 'bar', data: tempData },
      // { name: t('large.hollowTotalAreaOutOne'), type: 'bar', data: hollowOneData },
      { name: t('large.hollowCountOutOne'), type: 'bar', data: hollowOneData },
      // { name: t('large.hollowTotalAreaOutTwo'), type: 'bar', data: hollowTwoData },
      { name: t('large.hollowCountOutTwo'), type: 'bar', data: hollowTwoData }
    ]
  };
  myChart2.setOption(option2);
  myChart2.setOption(option2, true);
}
UI-Project/src/views/largescreendisplay/timeaxis.vue
@@ -61,7 +61,7 @@
  try {
    let startTime = window.localStorage.getItem('startTime')
    let response;
    if (key == "1" || key == "2") {
    if (key == "1"||key == "2") {
      response = await request.get("/cacheGlass/edgStorageDeviceTaskHistory/queryRunTimes?days=" + timeRange.value[1])
    } else if (key == "3") {
      response = await request.get("/cacheVerticalGlass/bigStorageCageHistoryTask/queryRunTimes?days=" + timeRange.value[1])
@@ -97,24 +97,14 @@
  const tableData = [];
  if (tableDatax.value.length > 0) {
    tableDatax.value.forEach((item, index) => {
      const time1 = new Date(index == 0 ? item.startTimestamp : tableDatax.value[index - 1].secondTimestamp);
      const time2 = new Date(index == tableDatax.length - 1 ? item.endTimestamp : item.firstTimestamp);
      const diffInSeconds = Math.abs(time2 - time1) / 1000;
      if (diffInSeconds > 60) {
        tableData.push({
          firstTimestamp: index == 0 ? item.startTimestamp : tableDatax.value[index - 1].secondTimestamp,
          secondTimestamp: index == tableDatax.length - 1 ? item.endTimestamp : item.firstTimestamp,
          diffMinutes: item.diffMinutes,
          startTimestamp: item.startTimestamp,
          endTimestamp: item.endTimestamp,
          state: 1
        });
        console.log("间隔超过60秒", diffInSeconds, time1, time2);
      } else {
        console.log("间隔不超过60秒", diffInSeconds, time1, time2);
      }
      tableData.push({
        firstTimestamp: index == 0 ? item.startTimestamp : tableDatax.value[index - 1].secondTimestamp,
        secondTimestamp: index == tableDatax.length - 1 ? item.endTimestamp : item.firstTimestamp,
        diffMinutes: item.diffMinutes,
        startTimestamp: item.startTimestamp,
        endTimestamp: item.endTimestamp,
        state: 1
      });
      if (result) {
        tableData.push({
          firstTimestamp: item.firstTimestamp,
@@ -148,7 +138,7 @@
    let page = window.localStorage.getItem('pagenumber')
    let startTime = window.localStorage.getItem('startTime')
    let response;
    if (key == "1" || key == "2") {
    if (key == "1"||key == "2") {
      response = await request.get("/cacheGlass/edgStorageDeviceTaskHistory/queryRunTimes?days=" + timeRange.value[1])
    } else if (key == "3") {
      response = await request.get("/cacheVerticalGlass/bigStorageCageHistoryTask/queryRunTimes?days=" + timeRange.value[1])
@@ -192,7 +182,7 @@
    let startTime = window.localStorage.getItem('startTime')
    let page = window.localStorage.getItem('pagenumber')
    let response;
    if (key == "1" || key == "2") {
    if (key == "1"||key == "2") {
      response = await request.get("/cacheGlass/edgStorageDeviceTaskHistory/queryRunTimes?days=" + timeRange.value[1])
    } else if (key == "3") {
      response = await request.get("/cacheVerticalGlass/bigStorageCageHistoryTask/queryRunTimes?days=" + timeRange.value[1])
@@ -388,7 +378,14 @@
      backgroundColor: 'rgba(50,50,50,0.7)',
      textStyle: { color: '#fff' },
      formatter: (params) => {
        const seen = new Set();
        const items = params
        .filter(p => {
            const key = p.data?.extra?.start + '|' + p.data?.extra?.end;
            if (seen.has(key)) return false;
            seen.add(key);
            return true;
          })
          .map(p => {
            const start = p.data?.extra?.start;
            const end = p.data?.extra?.end;
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java
@@ -155,7 +155,7 @@
        }
    }
    @Scheduled(fixedDelay = 1000)
    @Scheduled(fixedDelay = 5000)
    public void querySameDayProductionTask() {
        JSONObject jsonObject = new JSONObject();
        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("largenScreenProduction");
@@ -177,7 +177,7 @@
        }
    }
    @Scheduled(fixedDelay = 500)
    @Scheduled(fixedDelay = 5000)
    public void largenScreen() {
        JSONObject jsonObject = new JSONObject();
        //磨边信息
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
@@ -87,7 +87,7 @@
    @Resource
    private RedisUtil redisUtil;
//    @Scheduled(fixedDelay = 1000)
    @Scheduled(fixedDelay = 1000)
    public void inBigStorageTask() throws Exception {
        ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP1A.DLP1A.mesControl");
        if (true != Boolean.parseBoolean(inkageEntity.getValue() + "")) {
@@ -268,7 +268,7 @@
        miloService.writeToOpcWord(list);
    }
//    @Scheduled(fixedDelay = 1000)
    @Scheduled(fixedDelay = 1000)
    public void outBigStorageTask() throws Exception {
        Date startDate = new Date();
        ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP1B.DLP1B.mesControl");
@@ -395,7 +395,7 @@
        return;
    }
//    @Scheduled(fixedDelay = 1000)
    @Scheduled(fixedDelay = 1000)
    public void finishInBigStorageTask() throws Exception {
        ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP1A.DLP1A.mesControl");
        if (true != Boolean.parseBoolean(inkageEntity.getValue() + "")) {
@@ -484,7 +484,7 @@
        miloService.writeToOpcWord(list);
    }
//    @Scheduled(fixedDelay = 1000)
    @Scheduled(fixedDelay = 1000)
    public void finishOutBigStorageTask() throws Exception {
        ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP1B.DLP1B.mesControl");
        if (true != Boolean.parseBoolean(inkageEntity.getValue() + "")) {
hangzhoumesParent/moduleService/pom.xml
@@ -80,87 +80,6 @@
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.3.0.RELEASE</version> <!-- 根据你的Spring Boot版本调整 -->
                <configuration>
                    <layout>ZIP</layout>
                    <includes>
                        <include>
                            <groupId>nothing</groupId>
                            <artifactId>nothing</artifactId>
                        </include>
                    </includes>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>3.1.2</version>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
                            <overWriteReleases>false</overWriteReleases>
                            <overWriteSnapshots>false</overWriteSnapshots>
                            <overWriteIfNewer>true</overWriteIfNewer>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.2.0</version>
                <executions>
                    <execution>
                        <id>copy-resources</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/config</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>src/main/resources</directory>
                                    <filtering>true</filtering>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.2.0</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib/</classpathPrefix>
                            <mainClass>${java.run.main.class}</mainClass>
                        </manifest>
                        <manifestEntries>
                            <Class-Path>resources/</Class-Path>
                        </manifestEntries>
                    </archive>
                    <outputDirectory>${project.build.directory}</outputDirectory>
                </configuration>
            </plugin>
        </plugins>
    </build>