zhoushihao
2025-04-17 81c432dc393520e3ed2e408035455837c56840af
Merge remote-tracking branch 'origin/master'
8个文件已修改
387 ■■■■ 已修改文件
UI-Project/src/utils/evicePixelRatio.js 92 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/hollow/hollowaluminum.vue 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/hollow/hollowequipment.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/hollow/hollowequipmenthree.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/hollow/hollowequipmenttwo.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/hollow/hollowslicecage.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/largescreendisplay/screendisplay.vue 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/resources/mapper/OrderMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/utils/evicePixelRatio.js
@@ -1,57 +1,53 @@
/**
 * @description 校正windows页面在系统进行缩放后导致页面被放大的问题,通常放大比例是125%、150%
 * **/
class DevicePixelRatio {
    constructor() {
      this.bodyElement = document.getElementsByTagName('body')[0]; // 缓存 body 元素
    }
    //获取系统类型
    _getSystem() {
        let flag = false;
        var agent = navigator.userAgent.toLowerCase();
        if (agent.indexOf("windows") >= 0) {
            return true;
        }
    // 判断是否为 Windows 系统
    isWindowsSystem() {
      const agent = navigator.userAgent.toLowerCase();
      return agent.indexOf("windows") >= 0;
    }
    //获取页面缩放比例
    _addHandler(element, type, handler) {
        if (element.addEventListener) {
            element.addEventListener(type, handler, false);
        } else if (element.attachEvent) {
            element.attachEvent("on" + type, handler);
        } else {
            element["on" + type] = handler;
        }
    // 通用事件绑定工具
    addHandler(element, type, handler) {
      if (element.addEventListener) {
        element.addEventListener(type, handler, false);
      } else if (element.attachEvent) {
        element.attachEvent("on" + type, handler);
      } else {
        element["on" + type] = handler;
      }
    }
    //校正浏览器缩放比例
    _correct() {
        let t = this;
        //页面devicePixelRatio(设备像素比例)变化后,计算页面body标签zoom修改其大小,来抵消devicePixelRatio带来的变化。
        document.getElementsByTagName('body')[0].style.zoom = 1 / window.devicePixelRatio;
    // 校正浏览器缩放比例
    correctZoom() {
      if (this.bodyElement) {
        // 使用 1 / window.devicePixelRatio 来调整 zoom
        this.bodyElement.style.zoom = 1 / window.devicePixelRatio;
      }
    }
    //监听页面缩放
    _watch() {
        let t = this;
        t._addHandler(window, 'resize', function () { //注意这个方法是解决全局有两个window.resize
            //重新校正
            t._correct()
        })
    // 监听页面缩放(使用防抖优化)
    watchResize() {
      let timer = null;
      this.addHandler(window, 'resize', () => {
        if (timer) clearTimeout(timer);
        timer = setTimeout(() => {
          this.correctZoom();
        }, 200); // 延迟 200ms 执行,避免频繁触发
      });
    }
    //初始化页面比例
    // 初始化页面比例校正
    init() {
        let t = this;
        if (t._getSystem()) { //判断设备,目前只在windows系统下校正浏览器缩放比例
            //初始化页面校正浏览器缩放比例
            t._correct();
            //开启监听页面缩放
            t._watch();
        }
      if (this.isWindowsSystem()) {
        // 初始化校正
        this.correctZoom();
        // 开启监听
        this.watchResize();
      }
    }
}
export default DevicePixelRatio;
  }
  export default DevicePixelRatio;
UI-Project/src/views/hollow/hollowaluminum.vue
@@ -7,83 +7,61 @@
import {ElMessage, ElMessageBox} from 'element-plus'
import {useI18n} from 'vue-i18n'
const router = useRouter()
const adda = ref(false)
const {t} = useI18n()
let language = ref(localStorage.getItem('lang') || 'zh')
const tableData = ref([])
const slot = ref('')
const requestData = {
  line: 2001
};
const timeRange = ref([])
const selectValuesa = reactive([]);
let socket = null;
const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/edgTasks`;
const handleMessage = (data) => {
  tableData.value = data.edgTasks[0]
};
onMounted(() => {
  socket = initializeWebSocket(socketUrl, handleMessage);
});
  onUnmounted(() => {
    if (socket) {
      closeWebSocket(socket);
    }
  });
onBeforeUnmount(() => {
  closeWebSocket();
});
// let socket = null;
// const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/edgTasks`;
// const handleMessage = (data) => {
//   tableData.value = data.edgTasks[0]
// };
// onMounted(() => {
//   socket = initializeWebSocket(socketUrl, handleMessage);
// });
//   onUnmounted(() => {
//     if (socket) {
//       closeWebSocket(socket);
//     }
//   });
// onBeforeUnmount(() => {
//   closeWebSocket();
// });
</script>
<template>
  <div style="height: 500px;">
    <div>
      <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" >
      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
        <el-table height="750" ref="table"
        @selection-change="handleSelectionChange"
        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
        <el-table-column prop="glassId" align="center" :label="$t('workOrder.glassID')" min-width="180" />
          <el-table-column prop="width" align="center" :label="$t('workOrder.width')" min-width="120" />
          <el-table-column prop="height" align="center" :label="$t('workOrder.height')" min-width="80" />
          <el-table-column prop="thickness" align="center" :label="$t('workOrder.thickness')" min-width="120" />
          <el-table-column prop="glassType" align="center" :label="$t('workOrder.glasstype')" min-width="120" />
          <el-table-column prop="line" align="center" :label="$t('workOrder.line')" min-width="120" />
          <el-table-column fixed="right" :label="$t('workOrder.operate')" align="center" width="200">
            <template #default="scope">
              <el-button type="text" plain @click="open(scope.row)">{{
                  $t('workOrder.breakage')
                }}
              </el-button>
              <el-button type="text" plain @click="opena(scope.row)">{{
                  $t('workOrder.takeout')
                }}
              </el-button>
            </template>
          </el-table-column>
        </el-table>
        <div class="block text-center" m="t-4">
    <el-carousel height="550px">
      <!-- <el-carousel trigger="click" height="550px">//鼠标移入时页面不切换,鼠标移走时界面自动滚动 -->
      <el-carousel-item v-for="item in 3" :key="item">
        <h3 class="small justify-center" text="2xl">{{ item }}</h3>
      </el-carousel-item>
    </el-carousel>
  </div>
      </div>
      </el-card>
    </div>
  </div>
</template>
<style scoped>
#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
#dialog-footer{
  text-align: center;
  margin-top: -15px;
.demonstration {
  color: var(--el-text-color-secondary);
}
#message{
.el-carousel__item h3 {
  color: #475669;
  opacity: 0.75;
  line-height: 550px;
  margin: 0;
  text-align: center;
  align-items: center;
  color: black;
   width: 200px;
   height: 100px;
   background-color: #337ecc;
   margin-left: 28%;
}
#awatch{
  height: 460px;
  /* margin-top: -60px; */
.el-carousel__item:nth-child(2n) {
  background-color: #99a9bf;
}
.el-carousel__item:nth-child(2n + 1) {
  background-color: #d3dce6;
}
</style>
UI-Project/src/views/hollow/hollowequipment.vue
@@ -758,7 +758,7 @@
  <el-dialog v-model="dialogFormVisibleb" top="7vh" width="70%" height="500">
    <div style="margin-top: -20px;text-align: center;margin-left: 400px;">
      <el-form-item :label="$t('hellow.cardnumbera')" style="width: 14vw">
        {{ currentRow.projectNumber }}
        {{ currentRow.flowCardId }}
      </el-form-item>
    </div>
    <el-table ref="table" style="margin-top: 20px;height: 400px;"
@@ -1056,7 +1056,7 @@
};
const handlePageChange2 = (newPage) => {
  currentPage2.value = newPage;
  fetchFlowBind(currentRow.projectNumber, currentRow.layer, currentPage2.value);
  fetchFlowBind(currentRow.flowCardId, currentPage2.value);
};
const handleMessage = (data) => {
  try {
@@ -1347,20 +1347,20 @@
// 缺片详情
const handleBindRack = (row) => {
  currentPage2.value = 1;
  const { projectNumber, layer } = row;
  currentRow.projectNumber  = row.projectNumber;
  const { flowCardId } = row;
  currentRow.flowCardId  = row.flowCardId;
  dialogFormVisibleb.value = true;
  fetchFlowBind(projectNumber, layer,currentPage2.value);
  fetchFlowBind(flowCardId,currentPage2.value);
};
// 领取任务
const handletake = (row) => {
  window.localStorage.setItem('flowCardId', row.projectNumber)
  window.localStorage.setItem('flowCardId', row.flowCardId)
  dialogFormVisiblec.value = true;
  fetchmulan()
};
// 强制出片
const handleout = (row) => {
  window.localStorage.setItem('flowCardId', row.projectNumber)
  window.localStorage.setItem('flowCardId', row.flowCardId)
  dialogFormVisibled.value = true;
  fetchmulan()
};
@@ -1662,9 +1662,9 @@
    };
  });
};
const fetchFlowBind = async (flowCardId, layer, page) => {
const fetchFlowBind = async (flowCardId, page) => {
  try {
    var url="/hollowGlass/hollowGlassRelationInfo/queryLackByFlowCard?flowCardId="+flowCardId + "&layer=" + layer;
    var url="/hollowGlass/hollowGlassRelationInfo/queryLackByFlowCard?flowCardId="+flowCardId + "&layer=" + 1;
    const response = await request.post(url)
    if (response.code == 200) {
      tableDatac.value = response.data[page];
UI-Project/src/views/hollow/hollowequipmenthree.vue
@@ -360,7 +360,7 @@
  <el-dialog v-model="dialogFormVisibleb" top="7vh" width="70%" height="500">
    <div style="margin-top: -20px;text-align: center;margin-left: 400px;">
      <el-form-item :label="$t('hellow.cardnumbera')" style="width: 14vw">
        {{ currentRow.projectNumber }}
        {{ currentRow.flowCardId }}
      </el-form-item>
    </div>
    <el-table ref="table" style="margin-top: 20px;height: 400px;"
@@ -570,7 +570,7 @@
};
const handlePageChange2 = (newPage) => {
  currentPage2.value = newPage;
  fetchFlowBind(currentRow.projectNumber, currentRow.layer, currentPage2.value);
  fetchFlowBind(currentRow.flowCardId, currentPage2.value);
};
const handleMessage = (data) => {
  try {
@@ -664,20 +664,20 @@
// 缺片详情
const handleBindRack = (row) => {
  currentPage2.value = 1;
  const { projectNumber, layer } = row;
  currentRow.projectNumber  = row.projectNumber;
  const { flowCardId} = row;
  currentRow.flowCardId  = row.flowCardId;
  dialogFormVisibleb.value = true;
  fetchFlowBind(projectNumber, layer,currentPage2.value);
  fetchFlowBind(flowCardId, currentPage2.value);
};
// 领取任务
const handletake = (row) => {
  window.localStorage.setItem('flowCardId', row.projectNumber)
  window.localStorage.setItem('flowCardId', row.flowCardId)
  dialogFormVisiblec.value = true;
  fetchmulan()
};
// 强制出片
const handleout = (row) => {
  window.localStorage.setItem('flowCardId', row.projectNumber)
  window.localStorage.setItem('flowCardId', row.flowCardId)
  dialogFormVisibled.value = true;
  fetchmulan()
};
@@ -883,9 +883,9 @@
    };
  });
};
const fetchFlowBind = async (flowCardId, layer, page) => {
const fetchFlowBind = async (flowCardId, page) => {
  try {
    var url="/hollowGlass/hollowGlassRelationInfo/queryLackByFlowCard?flowCardId="+flowCardId + "&layer=" + layer;
    var url="/hollowGlass/hollowGlassRelationInfo/queryLackByFlowCard?flowCardId="+flowCardId + "&layer=" + 1;
    const response = await request.post(url)
    if (response.code == 200) {
      tableDatac.value = response.data[page];
UI-Project/src/views/hollow/hollowequipmenttwo.vue
@@ -360,7 +360,7 @@
  <el-dialog v-model="dialogFormVisibleb" top="7vh" width="70%" height="500">
    <div style="margin-top: -20px;text-align: center;margin-left: 400px;">
      <el-form-item :label="$t('hellow.cardnumbera')" style="width: 14vw">
        {{ currentRow.projectNumber }}
        {{ currentRow.flowCardId }}
      </el-form-item>
    </div>
    <el-table ref="table" style="margin-top: 20px;height: 400px;"
@@ -567,7 +567,7 @@
};
const handlePageChange2 = (newPage) => {
  currentPage2.value = newPage;
  fetchFlowBind(currentRow.projectNumber, currentRow.layer, currentPage2.value);
  fetchFlowBind(currentRow.flowCardId, currentPage2.value);
};
const handleMessage = (data) => {
  try {
@@ -666,20 +666,20 @@
// 缺片详情
const handleBindRack = (row) => {
  currentPage2.value = 1;
  const { projectNumber, layer } = row;
  currentRow.projectNumber  = row.projectNumber;
  const { flowCardId } = row;
  currentRow.flowCardId  = row.flowCardId;
  dialogFormVisibleb.value = true;
  fetchFlowBind(projectNumber, layer,currentPage2.value);
  fetchFlowBind(flowCardId,currentPage2.value);
};
// 领取任务
const handletake = (row) => {
  window.localStorage.setItem('flowCardId', row.projectNumber)
  window.localStorage.setItem('flowCardId', row.flowCardId)
  dialogFormVisiblec.value = true;
  fetchmulan()
};
// 强制出片
const handleout = (row) => {
  window.localStorage.setItem('flowCardId', row.projectNumber)
  window.localStorage.setItem('flowCardId', row.flowCardId)
  dialogFormVisibled.value = true;
  fetchmulan()
};
@@ -885,9 +885,9 @@
    };
  });
};
const fetchFlowBind = async (flowCardId, layer, page) => {
const fetchFlowBind = async (flowCardId, page) => {
  try {
    var url="/hollowGlass/hollowGlassRelationInfo/queryLackByFlowCard?flowCardId="+flowCardId + "&layer=" + layer;
    var url="/hollowGlass/hollowGlassRelationInfo/queryLackByFlowCard?flowCardId="+flowCardId + "&layer=" + 1;
    const response = await request.post(url)
    if (response.code == 200) {
      tableDatac.value = response.data[page];
UI-Project/src/views/hollow/hollowslicecage.vue
@@ -954,7 +954,7 @@
          <template #default="scope">  
          <el-tag  
            :type="scope.row.enableState === 1 ? 'success' : 'danger'"  
            @click="toggleEnableState(scope.row)"
            @click="toggleEnableState(scope.row)"
          >  
            {{ scope.row.enableState === 1 ? $t('searchOrder.enable') : $t('searchOrder.disable')}}  
          </el-tag>  
UI-Project/src/views/largescreendisplay/screendisplay.vue
@@ -54,17 +54,25 @@
  let twoFinish = ref();
  let oneunFinish = ref();
  let twounFinish = ref();
  if (load.value) {
    oneFinish = pieChartVOS.value[0].oneCompletedQuantity;
    twoFinish = pieChartVOS.value[0].twoCompletedQuantity;
    oneunFinish = pieChartVOS.value[0].oneUncompletedQuantity;
    twounFinish = pieChartVOS.value[0].twoUncompletedQuantity;
  if (pieChartVOS.length > 0) {
    if (load.value) {
      oneFinish = pieChartVOS.value[0].oneCompletedQuantity;
      twoFinish = pieChartVOS.value[0].twoCompletedQuantity;
      oneunFinish = pieChartVOS.value[0].oneUncompletedQuantity;
      twounFinish = pieChartVOS.value[0].twoUncompletedQuantity;
    } else {
      oneFinish = pieChartVOS.value[0].oneCompletedArea;
      twoFinish = pieChartVOS.value[0].twoCompletedArea;
      oneunFinish = pieChartVOS.value[0].oneUncompletedArea;
      twounFinish = pieChartVOS.value[0].twoUncompletedArea;
    }
  } else {
    oneFinish = pieChartVOS.value[0].oneCompletedArea;
    twoFinish = pieChartVOS.value[0].twoCompletedArea;
    oneunFinish = pieChartVOS.value[0].oneUncompletedArea;
    twounFinish = pieChartVOS.value[0].twoUncompletedArea;
    oneFinish = 0;
    twoFinish = 0;
    oneunFinish = 0;
    twounFinish = 0;
  }
  const chartDomOne = chartOne.value;
  if (!chartDomOne) {
@@ -152,15 +160,22 @@
  let oneFinish = ref();
  let ondDamage = ref();
  let oneunFinish = ref();
  if (temp.value) {
    oneFinish = pieChartVOS.value[0].oneCompletedQuantity;
    ondDamage = pieChartVOS.value[0].oneDamageQuantity;
    oneunFinish = pieChartVOS.value[0].oneUncompletedQuantity;
  if (pieChartVOS.length > 0) {
    if (temp.value) {
      oneFinish = pieChartVOS.value[0].oneCompletedQuantity;
      ondDamage = pieChartVOS.value[0].oneDamageQuantity;
      oneunFinish = pieChartVOS.value[0].oneUncompletedQuantity;
    } else {
      oneFinish = pieChartVOS.value[0].oneCompletedArea;
      ondDamage = pieChartVOS.value[0].oneDamageArea;
      oneunFinish = pieChartVOS.value[0].oneUncompletedArea;
    }
  } else {
    oneFinish = pieChartVOS.value[0].oneCompletedArea;
    ondDamage = pieChartVOS.value[0].oneDamageArea;
    oneunFinish = pieChartVOS.value[0].oneUncompletedArea;
    oneFinish = 0;
    ondDamage = 0;
    oneunFinish = 0;
  }
  const chartDomOne = chartThree.value;
  if (!chartDomOne) {
@@ -235,17 +250,25 @@
  let twoFinish = ref();
  let oneunFinish = ref();
  let twounFinish = ref();
  if (edg.value) {
    oneFinish = pieChartVOS.value[0].oneCompletedQuantity;
    twoFinish = pieChartVOS.value[0].twoCompletedQuantity;
    oneunFinish = pieChartVOS.value[0].oneUncompletedQuantity;
    twounFinish = pieChartVOS.value[0].twoUncompletedQuantity;
  if (pieChartVOS.length > 0) {
    if (edg.value) {
      oneFinish = pieChartVOS.value[0].oneCompletedQuantity;
      twoFinish = pieChartVOS.value[0].twoCompletedQuantity;
      oneunFinish = pieChartVOS.value[0].oneUncompletedQuantity;
      twounFinish = pieChartVOS.value[0].twoUncompletedQuantity;
    } else {
      oneFinish = pieChartVOS.value[0].oneCompletedArea;
      twoFinish = pieChartVOS.value[0].twoCompletedArea;
      oneunFinish = pieChartVOS.value[0].oneUncompletedArea;
      twounFinish = pieChartVOS.value[0].twoUncompletedArea;
    }
  } else {
    oneFinish = pieChartVOS.value[0].oneCompletedArea;
    twoFinish = pieChartVOS.value[0].twoCompletedArea;
    oneunFinish = pieChartVOS.value[0].oneUncompletedArea;
    twounFinish = pieChartVOS.value[0].twoUncompletedArea;
    oneFinish = 0;
    twoFinish = 0;
    oneunFinish = 0;
    twounFinish = 0;
  }
  const chartDomOne = chartTwo.value;
  if (!chartDomOne) {
@@ -321,17 +344,25 @@
  let twoFinish = ref();
  let oneunFinish = ref();
  let twounFinish = ref();
  if (hollow.value) {
    oneFinish = pieChartVOS.value[0].oneCompletedQuantity;
    twoFinish = pieChartVOS.value[0].twoCompletedQuantity;
    oneunFinish = pieChartVOS.value[0].oneUncompletedQuantity;
    twounFinish = pieChartVOS.value[0].twoUncompletedQuantity;
  if (pieChartVOS.length > 0) {
    if (hollow.value) {
      oneFinish = pieChartVOS.value[0].oneCompletedQuantity;
      twoFinish = pieChartVOS.value[0].twoCompletedQuantity;
      oneunFinish = pieChartVOS.value[0].oneUncompletedQuantity;
      twounFinish = pieChartVOS.value[0].twoUncompletedQuantity;
    } else {
      oneFinish = pieChartVOS.value[0].oneCompletedArea;
      twoFinish = pieChartVOS.value[0].twoCompletedArea;
      oneunFinish = pieChartVOS.value[0].oneUncompletedArea;
      twounFinish = pieChartVOS.value[0].twoUncompletedArea;
    }
  } else {
    oneFinish = pieChartVOS.value[0].oneCompletedArea;
    twoFinish = pieChartVOS.value[0].twoCompletedArea;
    oneunFinish = pieChartVOS.value[0].oneUncompletedArea;
    twounFinish = pieChartVOS.value[0].twoUncompletedArea;
    oneFinish = 0;
    twoFinish = 0;
    oneunFinish = 0;
    twounFinish = 0;
  }
  const chartDomOne = chartFour.value;
  if (!chartDomOne) {
@@ -943,7 +974,7 @@
      <!-- 生产统计 -->
      <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;"></div>
          <div ref="chartRef" style="width: 600px; height: 400px;" @dblclick="handlehistorical10()"></div>
        </div>
        <div style="width: 100%;height: 245px;display: flex;">
          <div ref="chartOne" style="width: 100%;"></div>
@@ -955,46 +986,54 @@
      <div style="width: 50%;">
        <div class="img-screen" alt="Screen">
          <!-- 钢化半透明色块 -->
          <div style="width: 80px;height: 40px;top: 130px;left: 130px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;">
          <div
            style="width: 80px;height: 40px;top: 130px;left: 130px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;">
            <div>{{ $t('large.quantity') }}:{{ productionVO.length > 0 ? productionVO[6].countOut : 0 }}片</div>
            <div>{{ $t('large.are') }}:{{ productionVO.length > 0 ? productionVO[6].totalAreaOut : 0 }}m²</div>
          </div>
          <!-- 中空一线半透明色块 -->
          <div style="width: 80px;height: 40px;top: 315px;left: 450px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;">
          <div
            style="width: 80px;height: 40px;top: 315px;left: 450px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;">
            <div>{{ $t('large.quantity') }}:{{ productionVO.length > 0 ? productionVO[6].hollowCountOutOne : 0 }}片</div>
            <div>{{ $t('large.are') }}:{{ productionVO.length > 0 ? productionVO[6].hollowTotalAreaOutOne : 0 }}m²</div>
          </div>
          <!-- 中空二线半透明色块 -->
          <div style="width: 80px;height: 40px;top: 230px;left: 450px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;">
          <div
            style="width: 80px;height: 40px;top: 230px;left: 450px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;">
            <div>{{ $t('large.quantity') }}:{{ productionVO.length > 0 ? productionVO[6].hollowCountOutTwo : 0 }}片</div>
            <div>{{ $t('large.are') }}:{{ productionVO.length > 0 ? productionVO[6].hollowTotalAreaOutTwo : 0 }}m²</div>
          </div>
          <!-- 切割二线半透明色块 -->
          <div style="width: 80px;height: 40px;top: 542px;left: 410px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;">
          <div
            style="width: 80px;height: 40px;top: 542px;left: 410px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;">
            <div>{{ $t('large.quantity') }}:{{ productionVO.length > 0 ? productionVO[6].countOutOne : 0 }}片</div>
            <div>{{ $t('large.are') }}:{{ productionVO.length > 0 ? productionVO[6].totalAreaOutOne : 0 }}m²</div>
          </div>
          <!-- 切割一线半透明色块 -->
          <div style="width: 80px;height: 40px;top: 490px;left: 410px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;">
          <div
            style="width: 80px;height: 40px;top: 490px;left: 410px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;">
            <div>{{ $t('large.quantity') }}:{{ productionVO.length > 0 ? productionVO[6].countOutTwo : 0 }}片</div>
            <div>{{ $t('large.are') }}:{{ productionVO.length > 0 ? productionVO[6].totalAreaOutTwo : 0 }}m²</div>
          </div>
          <!-- 磨边一线半透明色块 -->
          <div style="width: 80px;height: 40px;top: 410px;left: 450px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;">
          <div
            style="width: 80px;height: 40px;top: 369px;left: 450px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;">
            <div>{{ $t('large.quantity') }}:{{ productionVO.length > 0 ? productionVO[6].countOutOne : 0 }}片</div>
            <div>{{ $t('large.are') }}:{{ productionVO.length > 0 ? productionVO[6].totalAreaOutOne : 0 }}m²</div>
          </div>
          <!-- 磨边二线半透明色块 -->
          <div style="width: 80px;height: 40px;top: 369px;left: 450px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;">
          <div
            style="width: 80px;height: 40px;top: 410px;left: 450px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;">
            <div>{{ $t('large.quantity') }}:{{ productionVO.length > 0 ? productionVO[6].countOutTwo : 0 }}片</div>
            <div>{{ $t('large.are') }}:{{ productionVO.length > 0 ? productionVO[6].totalAreaOutTwo : 0 }}m²</div>
          </div>
          <!-- 钢化前大理片半透明色块 -->
          <div style="width: 80px;height: 40px;top: 380px;left: 290px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;">
          <div
            style="width: 80px;height: 40px;top: 380px;left: 290px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;">
            <div>{{ $t('large.quantity') }}:{{ productionVO.length > 0 ? productionVO[6].countIn : 0 }}片</div>
            <div>{{ $t('large.are') }}:{{ productionVO.length > 0 ? productionVO[6].totalAreaIn : 0 }}m²</div>
          </div>
          <!-- 钢化色块 -->
          <div v-if="temperingGlassInfoInList > 0" class="tempering"
            style="width: 44px;height: 19px;top: 284px;left: 178px;position: absolute;background-color: #911005;"></div>
@@ -1004,9 +1043,9 @@
            style="width: 53px;height: 22px;top: 282px;left: 282px;position: absolute;background-color: #911005;"></div>
          <!-- 切割台色块 -->
          <div v-if="engineeringOne.length > 1" class="slicing"
            style="width: 45px;height: 20px;top: 500px;left: 496px;position: absolute;background-color: #911005;"></div>
          <div v-if="engineeringTwo.length > 1" class="slicing"
            style="width: 45px;height: 20px;top: 550px;left: 496px;position: absolute;background-color: #911005;"></div>
          <div v-if="engineeringTwo.length > 1" class="slicing"
            style="width: 45px;height: 20px;top: 500px;left: 496px;position: absolute;background-color: #911005;"></div>
          <!-- 原片仓储色块 -->
          <div class="raw" style="width: 27px;height: 30px;top: 497px;left: 296px;position: absolute;">
            <div v-for="(item, index) in rawGlassStorageDetailList.slice(0, 7)" :key="index"
@@ -1035,11 +1074,11 @@
          <!-- 磨边色块 -->
          <div class="container"
            style="position: relative;width: 15px;height: 15px;top: 500px;left: 638px;position: absolute;">
            <div v-for="(box, index) in boxes" :key="index" class="box" :style="box.style"></div>
            <div v-for="(box, index) in boxes2" :key="index" class="box" :style="box.style"></div>
          </div>
          <div class="container"
            style="position: relative;width: 15px;height: 15px;top: 548px;left: 690px;position: absolute;">
            <div v-for="(box, index) in boxes2" :key="index" class="box" :style="box.style"></div>
            <div v-for="(box, index) in boxes" :key="index" class="box" :style="box.style"></div>
          </div>
          <!-- 钢化运动色块 -->
          <div class="container"
@@ -1104,7 +1143,7 @@
      <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;"></div>
          <div ref="chartRef2" style="width: 600px; height: 400px;" @dblclick="handlehistorical10()"></div>
        </div>
        <div style="width: 100%;height: 245px;display: flex;">
          <div ref="chartThree" style="width: 100%;"></div>
hangzhoumesParent/common/servicebase/src/main/resources/mapper/OrderMapper.xml
@@ -28,6 +28,6 @@
            GROUP BY c.order_id
        ) as d
                           on a.order_id = d.order_id
        where a.warehousing != 2
        where a.warehousing != 2 and a.warehousing > 0
    </select>
</mapper>