修改打印样式
修改报工界面查询条件
修改磨边获取出片线路条件
大理片非钢化出片添加宽度与数量限制
29个文件已修改
510 ■■■■■ 已修改文件
UI-Project/config.js 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/lang/en.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/lang/zh.js 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/router/index.js 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/utils/constants.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/PurchaseReturn/purchaseReturn.vue 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/ReportWork/reportWork.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/Slicecage/slicecage.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/UnLoadGlass/PrintFlow.vue 84 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/UnLoadGlass/loadmachinerack.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/FlowCardMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/FlowCardService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/FlowCardServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/resources/mapper/FlowCardMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-prod.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageFeedTaskController.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageFeedTask.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/config.js
@@ -1,11 +1,11 @@
export default {
    serverUrl: "10.153.19.150:88/api",
    // serverUrl: "10.153.19.150:88/api",
    // serverUrl: "10.153.19.44:88/api",
//  serverUrl: "192.168.1.199:88/api",
 serverUrl: "192.168.1.199:88/api",
    // serverUrl: "127.0.0.1:88/api",
    serverUrl2: "10.153.19.150:88"
    // serverUrl2: "10.153.19.150:88"
    // serverUrl2: "10.153.19.44:88"
    // serverUrl2: "192.168.1.199:88"
    serverUrl2: "192.168.1.199:88"
    // serverUrl2: "127.0.0.1:88"
    //serverUrl:"res.abeim.cn"
UI-Project/src/lang/en.js
@@ -128,6 +128,7 @@
          number:'Serial Number',
          taskstatus:'Task state',
          filmenter:'Waiting for input glass',
          filmwait:'Waiting for start',
          infilm:'In progress',
          endtask:'End task',
          completetask:'Complete the task',
UI-Project/src/lang/zh.js
@@ -131,7 +131,8 @@
          number:'序号',
          taskstatus:'任务状态',
          filmenter:'等待进片',
          infilm:'进行中',
          filmwait:'等待启动',
          infilm:'进片中',
          endtask:'结束任务',
          completetask:'完成任务',
          intoglassid:'进片玻璃ID',
@@ -506,6 +507,24 @@
          loading :'正在上片:',
      },
      reportmanage:{
          scan:'扫码',
          feeding:'正在进卧转立',
          in:'在卧转立',
          car:'在车上',
          cage:'在笼子里',
          oneline:'一线',
          twoline:'二线',
          id:'编号',
          targetSlot:'目标格子',
          state:'任务状态',
          width:'宽',
          height:'高',
          createTime:'创建时间',
          totalCounts:'总片数',
          totalAreas:'总面积',
          totalDamages:'总破损',
          totalTakes:'总拿走',
          productiontime :'生产时间',
          starttime :'开始时间',
          endtime :'结束时间',
UI-Project/src/router/index.js
@@ -311,6 +311,19 @@
      },
    ]
  },
  /*----------- 报表管理 ----------------*/
  {
    path: 'reportManage',
    name: 'reportManage',
    component: () => import('../views/Reportmanage/reportmanage.vue'),
    children: [
      {
        path: '/Reportmanage/reportmanage',
        name: 'reportManage',
        component: () => import('../views/Reportmanage/reportmanage.vue')
      },
    ]
  },
        /*----------- 中空 ----------------*/
        {
UI-Project/src/utils/constants.js
@@ -1,5 +1,5 @@
//  export const WebSocketHost = "192.168.1.199";
export const WebSocketHost = "10.153.19.150";
 export const WebSocketHost = "192.168.1.199";
// export const WebSocketHost = "10.153.19.150";
// export const WebSocketHost = "10.153.19.44";
// export const WebSocketHost = "127.0.0.1";
export const host = "88";
export const host = "88";
UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -85,8 +85,8 @@
    const existingRects = adjustedRects2.value.filter(rect => newGlassIds.has(rect.glassId));  
    // 计算新的矩形  
    const newRects = data.intoGlass2[0].map(rect => {  
      const scaleFactor =  845/5000;
      const scaleFactorY =  430/2750;
      const scaleFactor =  800/5000;
      const scaleFactorY =  407/2750;
        let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;
        let newX = rect.yCoordinate; 
      if (rect.width < rect.height) {
@@ -137,8 +137,8 @@
    const newGlassIds = new Set(data.intoGlass1[0].map(rect => rect.glassId));
    const existingRects = adjustedRects1.value.filter(rect => newGlassIds.has(rect.glassId));
    const newRects = data.intoGlass1[0].map(rect => {
      const scaleFactor =  845/5000;
      const scaleFactorY =  430/2750;
      const scaleFactor =  800/5000;
      const scaleFactorY =  407/2750;
      // const scaleFactor =  600/5087;
      // const scaleFactorY =  200/2800;
      let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;
@@ -191,8 +191,8 @@
    const newGlassIds = new Set(data.intoGlass3[0].map(rect => rect.glassId));
    const existingRects = adjustedRects3.value.filter(rect => newGlassIds.has(rect.glassId));
    const newRects = data.intoGlass3[0].map(rect => {
      const scaleFactor =  845/5000;
      const scaleFactorY =  430/2750;
      const scaleFactor =  800/5000;
      const scaleFactorY =  407/2750;
      let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;
      let newX = rect.yCoordinate; 
      if (rect.width < rect.height) {
@@ -245,8 +245,8 @@
    const existingRects = adjustedRects4.value.filter(rect => newGlassIds.has(rect.glassId));  
    // 计算新的矩形  
    const newRects = data.intoGlass4[0].map(rect => { 
      const scaleFactor =  845/5000;
      const scaleFactorY =  430/2750;
      const scaleFactor =  800/5000;
      const scaleFactorY =  407/2750;
        let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;
        let newX = rect.yCoordinate; 
      if (rect.width < rect.height) {
@@ -1279,11 +1279,11 @@
        <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 1000px;"
                 v-loading="loading">
                 
   <div style="width: 845px;float: right;background-color: #f4f4f5;height: 430px;margin-top: 20px;">
   <div style="width: 800px;float: right;background-color: #f4f4f5;height: 430px;margin-top: 20px;">
     <div v-if="adjustedRects3.length > 0">
       <!-- <div style="text-align: center;">炉号3:{{ engineerIdDisplay }}-{{ adjustedRects[0].temperingLayoutId }}</div>   -->
       <div style="text-align: center;"> {{ $t('processCard.temperinglayout') }}:{{ adjustedRects3[0].engineerId }}-{{ adjustedRects3[0].temperingLayoutId }} </div>
    <el-scrollbar height="430px" style="background-color: #e9e9eb;">
    <el-scrollbar height="417px" style="background-color: #e9e9eb;">
    <div  style="position: relative;max-width: 1400px;">  
      <div  
      v-for="(rect, index) in adjustedRects3"
@@ -1306,11 +1306,11 @@
   </el-scrollbar>
   </div>
          </div>
        <div style="width: 845px;float: left;background-color: #f4f4f5;height: 430px;margin-top: 20px;">
        <div style="width: 800px;float: left;background-color: #f4f4f5;height: 430px;margin-top: 20px;">
    <div v-if="adjustedRects4.length > 0">
    <div style="text-align: center;"> {{ $t('processCard.temperinglayout') }}:{{ adjustedRects4[0].engineerId }}-{{ adjustedRects4[0].temperingLayoutId }} </div>
    <!-- <div style="text-align: center;">炉号4:{{ engineerIdDisplay2 }}-{{ adjustedRects[0].temperingLayoutId }}</div>   -->
    <el-scrollbar height="430px" style="background-color: #e9e9eb;">
    <el-scrollbar height="417px" style="background-color: #e9e9eb;">
    <div  style="position: relative;max-width: 1400px;">  
      <div  
      v-for="(rect, index) in adjustedRects4"
@@ -1333,11 +1333,11 @@
   </el-scrollbar>
   </div>
        </div>
 <div style="width: 845px;float: right;background-color: #f4f4f5;height: 430px;margin-top: 20px;">
 <div style="width: 800px;float: right;background-color: #f4f4f5;height: 430px;margin-top: 20px;">
   <div v-if="adjustedRects1.length > 0">
              <!-- <div style="text-align: center;">炉号1:{{ engineerIdDisplay }}-{{ adjustedRects[0].temperingLayoutId }}</div>   -->
     <div style="text-align: center;"> {{ $t('processCard.temperinglayout') }}:{{ adjustedRects1[0].engineerId }}-{{ adjustedRects1[0].temperingLayoutId }} </div>
    <el-scrollbar height="430px" style="background-color: #e9e9eb;">
    <el-scrollbar height="417px" style="background-color: #e9e9eb;">
    <div  style="position: relative;">  
      <div  
      v-for="(rect, index) in adjustedRects1"
@@ -1360,11 +1360,11 @@
   </el-scrollbar>
   </div>
    </div>
     <div style="width: 845px;float: left;background-color: #f4f4f5;height: 430px;margin-top: 20px;">
     <div style="width: 800px;float: left;background-color: #f4f4f5;height: 430px;margin-top: 20px;">
    <div v-if="adjustedRects2.length > 0">
    <div style="text-align: center;"> {{ $t('processCard.temperinglayout') }}:{{ adjustedRects2[0].engineerId }}-{{ adjustedRects2[0].temperingLayoutId }} </div>
    <!-- <div style="text-align: center;">炉号2:{{ engineerIdDisplay2 }}-{{ adjustedRects[0].temperingLayoutId }}</div>   -->
    <el-scrollbar height="430px" style="background-color: #e9e9eb;">
    <el-scrollbar height="417px" style="background-color: #e9e9eb;">
    <div  style="position: relative;max-width: 1400px;">  
      <div  
      v-for="(rect, index) in adjustedRects2"
UI-Project/src/views/ReportWork/reportWork.vue
@@ -6,13 +6,13 @@
        value-format="YYYY-MM-DD" :start-placeholder="$t('reportmanage.starttime')"
        :end-placeholder="$t('reportmanage.endtime')" :default-time="defaultTime" />
      <el-select v-model="report.type" :placeholder="$t('reportmanage.ctype')" style="margin-left: 10px;">
        <el-option :label="$t('reportmanage.all')" value="0"></el-option>
        <el-option :label="$t('reportmanage.completed')" value="1"></el-option>
        <!-- <el-option :label="$t('reportmanage.all')" value="0"></el-option> -->
        <!-- <el-option :label="$t('reportmanage.completed')" value="1"></el-option> -->
        <el-option :label="$t('reportmanage.broke')" value="8"></el-option>
        <el-option :label="$t('reportmanage.takeout')" value="9"></el-option>
      </el-select>
      <el-select v-model="report.status" :placeholder="$t('reportmanage.cstate')" style="margin-left: 10px;">
        <el-option :label="$t('reportmanage.all')" value="0"></el-option>
        <!-- <el-option :label="$t('reportmanage.all')" value="0"></el-option> -->
        <el-option :label="$t('reportmanage.dreportwork')" value="1"></el-option>
        <!-- <el-option :label="$t('reportmanage.pendingwork')" value="2"></el-option> -->
        <el-option :label="$t('reportmanage.reportwork')" value="3"></el-option>
@@ -128,14 +128,14 @@
import { useI18n } from 'vue-i18n'
const { t } = useI18n()
const report = ref({
  type: '0',
  status: '0',
  type: '8',
  status: '1',
  workingProcedure: '0',
});
const reportData = ref([])
const endDate = new Date();
const startDate = new Date();
startDate.setDate(endDate.getDate() - 20);  // 获取一个星期前的时间
startDate.setDate(endDate.getDate() - 7);  // 获取一个星期前的时间
// 格式化为 "YYYY-MM-DD" 格式
const formatDate = (date) => {
  const year = date.getFullYear();
@@ -165,7 +165,7 @@
const selectReportData = async () => {
  const response = await request.post("/cacheVerticalGlass/damage/selectDamage", {
    startTime: timeRange.value[0],
    endTime: timeRange.value[1],
    endTime: timeRange.value[1]+" 23:59:59",
    type: report.value.type,
    status: report.value.status,
    workingProcedure: report.value.workingProcedure
UI-Project/src/views/Slicecage/slicecage.vue
@@ -1087,9 +1087,9 @@
            <el-table-column prop="bigStorageCageFeedTask.taskState" align="center"
              :label="$t('searchOrder.taskstatus')" min-width="120">
              <template #default="scope">
                <el-tag type="success">{{ scope.row.bigStorageCageFeedTask.taskState == 0 ? $t('searchOrder.filmenter')
                  :
                  $t('searchOrder.infilm') }}</el-tag>
                <el-tag type="success">{{ scope.row.bigStorageCageFeedTask.taskState == 1 ? $t('searchOrder.filmenter')
                  :scope.row.bigStorageCageFeedTask.taskState == 2?$t('searchOrder.filmwait')
                  :$t('searchOrder.infilm') }}</el-tag>
              </template>
            </el-table-column>
            <el-table-column prop="bigStorageCageFeedTask.line" align="center" :label="$t('searchOrder.line')"
UI-Project/src/views/UnLoadGlass/PrintFlow.vue
@@ -13,7 +13,11 @@
import companyInfo from "@/lang/companyInfo";
import QRCode from "qrcode";
const currentTime = new Date();
const formattedTime = currentTime.getFullYear()
    + '-' + (currentTime.getMonth() + 1) + '-'
    + currentTime.getDate() + ' ' + currentTime.getHours() + ':'
    + currentTime.getMinutes();formattedTime
const company = companyInfo()
const printMerge = null
let props = defineProps({
@@ -140,56 +144,53 @@
        <tr v-for="(itemFlow, index) in item.detail" :key="index">
          <td colspan="29">
            <div style="float: left;"><input style="border: none;font-size: 28px;width: 70px;margin: 5px  " /></div>
            <div id="bj" style="float: right;font-size: 28px">{{ id + 1 }}</div>
            <div id="bj" style="float: right;font-size: 28px">{{ props.printLayer }}</div>
            <div>{{ company.companyName }}</div>
            <div>生产流程卡</div>
            <div v-if="itemFlow.technologyNumberMerge != ''" style="text-align: right;font-weight: bolder">
              {{ itemFlow.otherRemarks }}&nbsp;&nbsp;
            <div  style="font-weight: bolder;display: flex;justify-content:space-between">
            <div>
              时间:{{formattedTime}}
              &nbsp;&nbsp;
            </div>
            <div>{{itemFlow.rack}}
              流程卡号: {{
                itemFlow.process_id
              }}/{{ itemFlow.technologyNumberMerge }} 共 {{ flowCardCount }} 架
              }}/{{ props.printLayer }}
            </div>
            <div v-else style="text-align: right;font-weight: bolder">
              {{ itemFlow.otherRemarks }}&nbsp;&nbsp;
              流程卡号: {{
                itemFlow.process_id
              }}/{{ itemFlow.technologyNumber }} 共 {{ flowCardCount }} 架
            </div>
          </div>
          </td>
        </tr>
        <tr v-for="(items, index) in item.detail" :key="index">
          <td class="tdNowrap">客户名称:</td>
          <td colspan="2">{{ items.customer_name }}</td>
          <td class="tdNowrap">项目名称:</td>
          <td colspan="2">{{ items.project }}</td>
          <td class="tdNowrap">工艺流程:</td>
          <td colspan="22" style="width: 500px">{{ items.process }}</td>
        </tr>
        <tr v-for="(itemTr, index) in item.detail" :key="index">
          <td class="tdNowrap">磨边类型:</td>
          <td colspan="2">{{ itemTr.edging_type }}</td>
          <td class="tdNowrap">单片名称:</td>
          <td colspan="2">{{ itemTr.glass_child }}</td>
          <td class="tdNowrap">产品名称:</td>
          <td colspan="22">{{ itemTr.product_name }}</td>
        </tr>
        <tr v-for="(items,index) in item.detail" :key="index">
        <td class="tdNowrap" style="width: 75px">客户名称:</td>
        <td colspan="1" style="width: 150px;font-size: 17px">{{ items.customer_name }}</td>
        <td class="tdNowrap" style="min-width: 75px">磨边类型:</td>
        <td colspan="1" style="min-width: 50px">{{ items.edging_type }}</td>
        <td colspan="2" style="min-width: 150px" class="tdNowrap">工艺流程:</td>
        <td :colspan="item.processList.length*2"  style="width: 500px">{{ items.process }}</td>
      </tr>
      <tr v-for="(itemTr,index) in item.detail" :key="index">
        <td class="tdNowrap">项目名称:</td>
        <td colspan="1" style="font-size: 17px">{{ itemTr.project }}</td>
        <td class="tdNowrap">单片名称:</td>
        <td colspan="1">{{ itemTr.glass_child }}</td>
        <td colspan="2" class="tdNowrap">产品名称:</td>
        <td :colspan="item.processList.length*2">{{ itemTr.product_name }}</td>
      </tr>
        <tr>
          <td rowspan='2'>序号</td>
          <!-- <td rowspan='2'>编号</td> -->
          <td rowspan="2">小片顺序</td>
          <td rowspan='2' style="width: 90px">宽*高</td>
          <td rowspan='4' style="width: 90px">宽*高</td>
          <td rowspan='2'>数量</td>
          <td rowspan='2'>落架</td>
          <td rowspan='2'>面积</td>
          <td rowspan='2'>周长</td>
          <td rowspan='2'>半径</td>
          <!-- <td rowspan='2'>周长</td>
          <td rowspan='2'>半径</td> -->
          <td rowspan='2'>备注</td>
          <td v-for="(itemPr, index) in item.processList" :key="index" colspan="2">{{ itemPr.process }}</td>
        </tr>
        <tr>
          <template v-for=" n in item.processList.length">
            <td>正品</td>
            <td>次品</td>
            <td colspan='2'>正品</td>
          </template>
        </tr>
      </thead>
@@ -198,7 +199,7 @@
        <tr v-for="(itemDatile, index) in item.detailList" :key="index">
          <td>{{ itemDatile.order_number }}</td>
          <!-- <td>{{ itemDatile.s01Value }}</td> -->
          <td>{{ itemDatile.technology_number }}</td>
          <!-- <td>{{ itemDatile.technology_number }}</td> -->
          <td>{{ itemDatile.child_width }}</td>
          <td class="item" style="width: 5%;height: 100%;">
            {{ itemDatile.quantity }}
@@ -206,12 +207,11 @@
          </td>
          <td>{{ itemDatile.quantity1 }}</td>
          <td>{{ itemDatile.total_area }}</td>
          <td>{{ itemDatile.perimeter }}</td>
          <td>{{ itemDatile.bend_radius }}</td>
          <!-- <td>{{ itemDatile.perimeter }}</td>
          <td>{{ itemDatile.bend_radius }}</td> -->
          <td>{{ itemDatile.remarks }}</td>
          <template v-for=" n in item.processList.length">
            <td></td>
            <td></td>
            <td colspan='2'></td>
          </template>
        </tr>
@@ -234,7 +234,7 @@
        </tr>
        <tr>
          <td>完工签名</td>
          <td colspan="2"></td>
          <td colspan="1"></td>
          <td colspan="2"></td>
          <td colspan="2"></td>
          <td colspan="2"></td>
@@ -244,16 +244,12 @@
        </tr>
        <tr>
          <td>质检签名</td>
          <td colspan="1"></td>
          <td colspan="2"></td>
          <td colspan="2">生产签名</td>
          <td colspan="2"></td>
          <template v-for=" n in item.processList.length">
            <td colspan="2"></td>
          </template>
        </tr>
        <tr>
          <td>原片箱号</td>
          <td colspan="28"></td>
        </tr>
        <tr v-for="(qrCodeItem, index) in item.detail" :key="index">
UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -504,7 +504,7 @@
                <el-button @click="open(scope.row)" v-if="scope.row.workstationId!=7" :disabled="scope.row.flowCardId == null">{{ $t('reportWork.processcard') }}</el-button>
                <el-button @click="open1(scope.row)" v-if="scope.row.workstationId!=7" :disabled="(scope.row.flowCardId == null&&scope.row.workstationId!=7)">{{ $t('reportWork.printlabels') }}</el-button>
                <el-button @click="handleBindRack3()" :disabled="(scope.row.totalQuantity ==0)" v-if="scope.row.workstationId==7">{{ $t('reportWork.clear') }}</el-button>
                <el-button @click="open1(scope.row)"  :disabled="(scope.row.totalQuantity ==0)">{{ $t('reportWork.printlabels') }}</el-button>
                <el-button @click="open1(scope.row)" v-if="scope.row.workstationId==7" :disabled="(scope.row.totalQuantity ==0&&scope.row.workstationId==7)">{{ $t('reportWork.printlabels') }}</el-button>
              </template>
 
            </el-table-column>
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
@@ -60,6 +60,9 @@
    @Override
    public List<Damage> selectDamage(String startTime, String endTime, int type, int status, String workingProcedure) {
        LambdaQueryWrapper<Damage> damageSelectWrapper = new LambdaQueryWrapper<>();
        if (endTime != null && !endTime.isEmpty()) {
            endTime = endTime + " 23:59:59";
        }
        damageSelectWrapper.between(Damage::getDamageTime, startTime, endTime);
        damageSelectWrapper.ne(Damage::getStatus, 7);
        if (type != 0) {
@@ -70,10 +73,6 @@
        }
        if (!"0".equals(workingProcedure)) {
            damageSelectWrapper.eq(Damage::getWorkingProcedure, workingProcedure);
        }
        List<Damage> damageList = baseMapper.selectList(damageSelectWrapper);
        for (Damage damage : damageList) {
            damage.setStatus(3);
        }
        return baseMapper.selectList(damageSelectWrapper);
    }
hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/FlowCardMapper.java
@@ -23,5 +23,5 @@
    List<Map<String, Object>> selectFlowCard(@Param("processId") String processId, @Param("technologyNumber") Integer technologyNumber);
    List<Map<String, Object>> selectLabel(@Param(value = "list") List<String> processId, @Param("technologyNumber") Integer technologyNumber);
    List<Map<String, Object>> selectLabel(@Param(value = "list") List<String> processId, @Param("technologyNumber") List<Integer> technologyNumber);
}
hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/FlowCardService.java
@@ -20,5 +20,5 @@
    List<Map<String, Object>> selectFlowCard(String processId, Integer technologyNumber);
    List<Map<String, Object>> selectLabel(List<String> processId, Integer technologyNumber);
    List<Map<String, Object>> selectLabel(List<String> processId, List<Integer> technologyNumber);
}
hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/FlowCardServiceImpl.java
@@ -32,7 +32,7 @@
    }
    @Override
    public List<Map<String, Object>> selectLabel(List<String> processId, Integer technologyNumber){
    public List<Map<String, Object>> selectLabel(List<String> processId, List<Integer> technologyNumber){
        return baseMapper.selectLabel(processId, technologyNumber);
    }
}
hangzhoumesParent/common/servicebase/src/main/resources/mapper/FlowCardMapper.xml
@@ -78,7 +78,7 @@
                            from sd.order_glass_detail as ogd
                            where ogd.order_id = left (#{processId}
                                , 10)
                              and position (ogd.technology_number in #{technologyNumber})
                              and position(ogd.technology_number in #{technologyNumber})
                            GROUP BY order_id, order_number) as ogdc
                           on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
                              ogdc.technology_number = ogd.technology_number
@@ -117,11 +117,15 @@
        left join sd.basic_glass_type bgt on bgt.type_id = pt.type_id
        where fc.process_id in (
        <foreach collection="processId" item="item" separator=",">
            #{item}
        #{item}
    </foreach>
        )
        and fc.technology_number in (
        <foreach collection="technologyNumber" item="items" separator=",">
            #{items}
        </foreach>
        )
        and fc.technology_number = #{technologyNumber}
        group by od.order_number, od.width, od.height
        group by fc.process_id, fc.technology_number, od.order_number, od.width, od.height
    </select>
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
@@ -120,12 +120,12 @@
            out08Glassstate = "1";
        }
//        taskRequestTypeValue = "3";
//        taskRequestTypeValue = "2";
//        out08Glassstate = "1";
//        out10Glassstate = "1";
//        currentSlot = "1";
//        confirmationWrodValue = "0";
//        glassIdeValue = "P25010108|44|1";
//        glassIdeValue = "P25021704|75|12";
        log.info("1、获取到的请求字为:{},获取到的扫描ID为:{},获取到的确认字为:{},获取到的出片状态分别为:A09:{}、A10:{},当前格子号为:{}",
                taskRequestTypeValue, glassIdeValue, confirmationWrodValue, out08Glassstate, out10Glassstate, currentSlot);
@@ -395,8 +395,19 @@
            endcell = queryLineByGlassInfo(a09EdgGlass, a10EdgGlass, glassInfo, out08Glassstate, out10Glassstate);
        } else {
            //按照状态判断两条线走那条线
            endcell = computerLineByState(out08Glassstate, out10Glassstate);
            GlassInfo glassInfos = glassInfoService.getOne(
                    new LambdaQueryWrapper<GlassInfo>()
                            .eq(GlassInfo::getGlassId, glassId)
            );
            if(glassInfos!=null){
                if (Math.max(glassInfos.getWidth(), glassInfos.getHeight()) > Integer.parseInt(firstLength) && out08Glassstate == 1) {
                    endcell = Const.A09_OUT_TARGET_POSITION;
                } else {
                    endcell = computerLineByState(out08Glassstate, out10Glassstate);
                }
            }else{
                endcell = computerLineByState(out08Glassstate, out10Glassstate);
            }
            if (out08Glassstate == 1 && out10Glassstate == 1) {
                EdgStorageCageDetails a09EdgGlass = queryGlassByTaskCache(Const.A09_OUT_TARGET_POSITION, Const.GLASS_CACHE_TYPE_OUT_ALL);
                EdgStorageCageDetails a10EdgGlass = queryGlassByTaskCache(Const.A10_OUT_TARGET_POSITION, Const.GLASS_CACHE_TYPE_OUT_ALL);
@@ -419,19 +430,21 @@
                    wrapper.last("order by count(t.glass_id) desc  limit 2");
                    List<EdgStorageCageDetails> list = edgStorageCageDetailsService.list(wrapper);
                    if (CollectionUtil.isEmpty(list)) {
                        log.info("笼子内没有找到合适的玻璃");
                        MPJQueryWrapper<GlassInfo> queryWrapper = new MPJQueryWrapper<GlassInfo>()
                                .selectAll(GlassInfo.class).eq("t.glass_id", glassId);
                        if (endcell == Const.A10_OUT_TARGET_POSITION) {
                            queryWrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
                            queryWrapper.leftJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
                                    "case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " +
                                    "on t.glass_id = t1.glass_id and (t1.first_length between " + minTwoFirstLength + " and " + firstLength
                                    + " and t1.second_length between " + minTwoSecondLength + " and " + secondLength + ") ");
                        } else {
                            queryWrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
                            queryWrapper.leftJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
                                    "case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " +
                                    "on t.glass_id = t1.glass_id and (t1.first_length >=" + minOneFirstLength + " and t1.second_length>=" + minOneSecondLength + ") ");
                        }
                        GlassInfo one = glassInfoService.getOne(queryWrapper);
                        log.info("找到合适的玻璃" + one);
                        if (one != null) {
                            EdgStorageCageDetails resultDetails = new EdgStorageCageDetails();
                            BeanUtils.copyProperties(one, resultDetails);
@@ -480,6 +493,10 @@
                }
            }
        }
        if (endcell == Const.A09_OUT_TARGET_POSITION && Math.min(glassInfo.getWidth(), glassInfo.getHeight()) < Integer.parseInt(minOneFirstLength)) {
            log.info("尺寸不符合最大线最小尺寸{}", glassInfo);
            return Boolean.FALSE;
        }
        return saveOutGlassMessageBySlot(glassInfo, endcell, confirmationWrodAddress, glassId, currentSlot);
    }
hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application-prod.yml
@@ -22,7 +22,7 @@
  cloud:
    nacos:
      discovery:
        server-addr: 10.153.19.150:8848
        server-addr: 10.153.19.150:8840
  application:
    name: cacheGlass
  redis:
hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
@@ -29,7 +29,7 @@
  min:
    one: #第一条磨边线的最小尺寸信息
      firstLength: 500
      secondLength: 400
      secondLength: 500
    two: #第二条磨边线的最小尺寸信息
      firstLength: 400
      secondLength: 400
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
@@ -108,6 +108,13 @@
                .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT)
                .isNotNull(BigStorageCageFeedTask::getTargetSlot);
        List<BigStorageCageFeedTask> bigStorageCageFeedTaskList = bigStorageCageFeedTaskMapper.selectList(feedTaskWrapper);
        List<String> glassIds = bigStorageCageDetailsList.stream().map(BigStorageCageDetails::getGlassId).collect(Collectors.toList());
        List<BigStorageCageFeedTask> feedTasks = bigStorageCageFeedTaskList.stream()
                .filter(task -> !glassIds.contains(task.getGlassId()))
                .collect(Collectors.toList());
        Map<String, BigStorageCageFeedTask> listMap = bigStorageCageFeedTaskList.stream()
                .collect(Collectors.toMap(BigStorageCageFeedTask::getGlassId, task -> task));
        Iterator<BigStorageCageDetails> iterator = bigStorageCageDetailsList.iterator();
@@ -116,6 +123,14 @@
            BigStorageCageFeedTask bigStorageCageFeedTask = listMap.get(bigStorageCageDetails.getGlassId());
            bigStorageCageDetails.setBigStorageCageFeedTask(bigStorageCageFeedTask);
        }
        for (BigStorageCageFeedTask bigStorageCageFeedTask : feedTasks
        ) {
            BigStorageCageDetails bigStorageCageDetails = new BigStorageCageDetails();
            bigStorageCageDetails.setBigStorageCageFeedTask(bigStorageCageFeedTask);
            bigStorageCageDetailsList.add(bigStorageCageDetails);
        }
        bigStorageCageDetailsList.sort(Comparator
                .comparing((BigStorageCageDetails detail) -> detail.getBigStorageCageFeedTask().getId()));
        return bigStorageCageDetailsList;
    }
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageFeedTaskController.java
@@ -1,13 +1,16 @@
package com.mes.bigstoragetask.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.mes.bigstorage.entity.BigStorageCageDetails;
import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
import com.mes.bigstoragetask.service.BigStorageCageFeedTaskService;
import com.mes.damage.entity.Damage;
import com.mes.utils.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import liquibase.util.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -29,13 +32,53 @@
    @Autowired
    private BigStorageCageFeedTaskService bigStorageCageFeedTaskService;
    @ApiOperation("理片笼详情删除")
    @ApiOperation("进片任务删除")
    @PostMapping("/updateBigStorageCageFeedTask")
    public Result deleteBigStorageCageDetails(@RequestBody BigStorageCageFeedTask bigStorageCageFeedTask) {
        bigStorageCageFeedTaskService.updateById(bigStorageCageFeedTask);
        return Result.build(200, "修改成功", 1);
    }
    @ApiOperation("进片任务报表")
    @PostMapping("/selectBigStorageCageFeedTask")
    public Result selectBigStorageCageFeedTask(@RequestBody BigStorageCageFeedTask bigStorageCageFeedTask,
                                               @RequestParam(required = false) String startTime,
                                               @RequestParam(required = false) String endTime) {
        if (endTime != null && !endTime.isEmpty()) {
            endTime = endTime + " 23:59:59";
        }
        LambdaQueryWrapper<BigStorageCageFeedTask> wrapper = new LambdaQueryWrapper<>();
        if (bigStorageCageFeedTask.getTargetSlot() != null) {
            wrapper.eq(BigStorageCageFeedTask::getTargetSlot, bigStorageCageFeedTask.getTargetSlot());
        }
        if (bigStorageCageFeedTask.getWidth() != null) {
            wrapper.eq(BigStorageCageFeedTask::getWidth, bigStorageCageFeedTask.getWidth());
        }
        if (bigStorageCageFeedTask.getHeight() != null) {
            wrapper.eq(BigStorageCageFeedTask::getHeight, bigStorageCageFeedTask.getHeight());
        }
        if (bigStorageCageFeedTask.getLine() != 0) {
            wrapper.eq(BigStorageCageFeedTask::getLine, bigStorageCageFeedTask.getLine());
        }
        if (bigStorageCageFeedTask.getTaskState() != -1) {
            wrapper.eq(BigStorageCageFeedTask::getTaskState, bigStorageCageFeedTask.getTaskState());
        }
        if (bigStorageCageFeedTask.getTaskType() != 0) {
            wrapper.eq(BigStorageCageFeedTask::getTaskType, bigStorageCageFeedTask.getTaskType());
        }
        if (startTime != null && !startTime.isEmpty()) {
            wrapper.ge(BigStorageCageFeedTask::getCreateTime, startTime);
        }
        if (endTime != null && !endTime.isEmpty()) {
            wrapper.le(BigStorageCageFeedTask::getCreateTime, endTime);
        }
        wrapper.orderByDesc(BigStorageCageFeedTask::getId);
        wrapper.and(item -> item.eq(BigStorageCageFeedTask::getDeleted, 0)
                .or()
                .eq(BigStorageCageFeedTask::getDeleted, 1));
        wrapper.between(BigStorageCageFeedTask::getCreateTime, startTime, endTime);
        return Result.build(200, "查询成功", bigStorageCageFeedTaskService.list(wrapper));
    }
}
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageFeedTask.java
@@ -43,7 +43,7 @@
     * 目标位置
     */
    @ApiModelProperty(value = "目标位置", position = 4)
    private int targetSlot;
    private Integer targetSlot;
    /**
     * 玻璃类型
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -1295,11 +1295,21 @@
                    maxX = e.getXCoordinate();
                    slot = e.getSlot();
                    bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.TEMPERING_OUT_TARGET_POSITION,
                            e.getWidth() * 10, e.getHeight(), trainNumber, serialNumber++, 1, new Date()));
                            e.getWidth() * 10, e.getHeight() * 10, trainNumber, serialNumber++, 1, new Date()));
                }
            } else {
                bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.ARTIFICIAL_OUT_TARGET_POSITION,
                        e.getWidth() * 10, e.getHeight(), trainNumber, serialNumber++, 1, new Date()));
                if(serialNumber <= outCarMaxSize && remainWidth > maxLength){
                    remainWidth = remainWidth - maxLength - glassGap;
                    bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.ARTIFICIAL_OUT_TARGET_POSITION,
                            e.getWidth() * 10, e.getHeight() * 10, trainNumber, serialNumber++, 1, new Date()));
                }else{
                    remainWidth = carWidth - maxLength - glassGap;
                    trainNumber = trainNumber + 1;
                    serialNumber = 1;
                    bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.ARTIFICIAL_OUT_TARGET_POSITION,
                            e.getWidth() * 10, e.getHeight() * 10, trainNumber, serialNumber++, 1, new Date()));
                }
            }
        }
        if (isTask == 2) {
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml
@@ -18,7 +18,7 @@
                   and deleted = 0
                   and (target_slot = 0 or target_slot is null)
                 group by line
                 HAVING  DATEDIFF(SECOND, max(create_time), GETDATE()) + 45 > 40 or SUM(case task_state when 2 then 1 else 0 end)>1
                 HAVING  DATEDIFF(SECOND, max(create_time), GETDATE()) > 40 or SUM(case task_state when 2 then 1 else 0 end)>1
             ) t
        where t.total_count = t.real_count
        order by real_count desc,line desc
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java
@@ -263,7 +263,8 @@
    @Test
    public void ca11() {
        plcStorageCageTask.queryAndChangeGlass("P24110503|17|4");
        bigStorageCageDetailsService.selectFeedTask();
//        plcStorageCageTask.queryAndChangeGlass("P24110503|17|4");
    }
    @Resource
@@ -271,13 +272,18 @@
    @Test
    public void computeOutMoreGlassInfo() {
        List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoService.selectJoinList(TemperingGlassInfo.class, new MPJLambdaWrapper<TemperingGlassInfo>()
                .selectAll(TemperingGlassInfo.class)
                .leftJoin(BigStorageCageOutTask.class, BigStorageCageOutTask::getGlassId, TemperingGlassInfo::getGlassId)
                .eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW)
                .isNull(BigStorageCageOutTask::getGlassId)
                .orderByAsc(TemperingGlassInfo::getTemperingFeedSequence));
        plcStorageCageTask.computeOutMoreGlassInfo(temperingGlassInfoList, true, 1);
//        List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoService.selectJoinList(TemperingGlassInfo.class, new MPJLambdaWrapper<TemperingGlassInfo>()
//                .selectAll(TemperingGlassInfo.class)
//                .leftJoin(BigStorageCageOutTask.class, BigStorageCageOutTask::getGlassId, TemperingGlassInfo::getGlassId)
//                .eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW)
//                .isNull(BigStorageCageOutTask::getGlassId)
//                .orderByAsc(TemperingGlassInfo::getTemperingFeedSequence));
//        plcStorageCageTask.computeOutMoreGlassInfo(temperingGlassInfoList, true, 1);
        List<BigStorageCageDetails> artificialList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
                .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_ARTIFICIAL)
                .orderByAsc(BigStorageCageDetails::getSlot)
                .orderByDesc(BigStorageCageDetails::getId));
        plcStorageCageTask.computeOutMoreGlassInfo(artificialList, Boolean.FALSE, 1);
    }
    @Test
hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml
@@ -2,7 +2,7 @@
  port: 8083
spring:
  profiles:
    active: cz
    active: dev
  application:
    name: loadGlass
  liquibase:
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java
@@ -52,4 +52,12 @@
     */
    List<Map<String, Object>> downGlassLabelPrint(@Param("processId") String processId, @Param("technologyNumber") Integer technologyNumber, @Param(value = "glassIds") List<String> glassIds);
    /**
     * 获取打印信息
     *
     * @param processId,technologyNumber
     * @return
     */
    List<Map<String, Object>> downGlassLabelPrintScan(@Param("processId") String processId, @Param("technologyNumber") Integer technologyNumber, @Param(value = "glassIds") List<String> glassIds);
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
@@ -241,11 +241,25 @@
            List<String> glassIds = downGlassTasks.stream().map(DownGlassTask::getGlassId).collect(Collectors.toList());
            resultList = baseMapper.downGlassLabelPrint(null, null, glassIds);
        } else {
            resultList = baseMapper.downGlassLabelPrint(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer(), null);
            if (downGlassInfo.getGlassId() != null) {
                List<String> glassIds = new ArrayList<>();
                glassIds.add(downGlassInfo.getGlassId());
//                resultList = baseMapper.downGlassLabelPrint(null, null, glassIds);
                resultList = baseMapper.downGlassLabelPrintScan(null, null, glassIds);
            } else {
                if (downGlassInfo.getLayer() == 0) {
                    downGlassInfo.setLayer(null);
                }
                resultList = baseMapper.downGlassLabelPrint(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer(), null);
            }
        }
        if (CollectionUtils.isNotEmpty(resultList)) {
            List<String> flowCardIds = resultList.stream()
                    .map(map -> (String) map.get("flow_card_id"))
                    .distinct()
                    .collect(Collectors.toList());
            List<Integer> layers = resultList.stream()
                    .map(map -> (Integer) map.get("layer"))
                    .distinct()
                    .collect(Collectors.toList());
            log.info("MES落架数据:{}", resultList);
@@ -253,9 +267,9 @@
            List<Map<String, Object>> labelInfo;
            if (downGlassInfo.getFlowCardId() != null) {
                flowCardIds.add(downGlassInfo.getFlowCardId());
                labelInfo = flowCardService.selectLabel(flowCardIds, 1);
                labelInfo = flowCardService.selectLabel(flowCardIds, layers);
            } else {
                labelInfo = flowCardService.selectLabel(flowCardIds, 1);
                labelInfo = flowCardService.selectLabel(flowCardIds, layers);
            }
            log.info("标签数据:{}", labelInfo);
@@ -267,73 +281,37 @@
                    int orderNumber = (int) row1.get("orderNumber");
                    int technologyNumber = (int) row1.get("technologyNumber");
                    String processId = (String) row1.get("process_id");
//                    if (downGlassInfo.getLayer() != 0) {
                        if (orderNumber == glass_type  && processId.equals(flowCardId)) {
                    if (orderNumber == glass_type && processId.equals(flowCardId) && technologyNumber == layer) {
                        String order_id = (String) row1.get("order_id");
                        String project = (String) row1.get("project");
                        Long customer_id = (Long) row1.get("customer_id");
                        BigDecimal width = (BigDecimal) row1.get("width");
                        BigDecimal height = (BigDecimal) row1.get("height");
                        Long quantity = (Long) row1.get("quantity");
                        String glass_child = (String) row1.get("glass_child");
                        String process = (String) row1.get("process");
                        String customer_name = (String) row1.get("customer_name");
                        String processing_note = (String) row1.get("processing_note");
                        String other_colunmns = (String) row1.get("other_colunmns");
                        String building_number = (String) row1.get("building_number");
                        String bend_radius = (String) row1.get("bend_radius");
                            String order_id = (String) row1.get("order_id");
                            String project = (String) row1.get("project");
                            Long customer_id = (Long) row1.get("customer_id");
                            BigDecimal width = (BigDecimal) row1.get("width");
                            BigDecimal height = (BigDecimal) row1.get("height");
                            Long quantity = (Long) row1.get("quantity");
                            String glass_child = (String) row1.get("glass_child");
                            String process = (String) row1.get("process");
                            String customer_name = (String) row1.get("customer_name");
                            String processing_note = (String) row1.get("processing_note");
                            String other_colunmns = (String) row1.get("other_colunmns");
                            String building_number = (String) row1.get("building_number");
                            String bend_radius = (String) row1.get("bend_radius");
                            row.put("orderNumber", orderNumber);
                            row.put("technology_number", technologyNumber);
                            row.put("order_id", order_id);
                            row.put("project", project);
                            row.put("customer_id", customer_id);
                            row.put("width", width);
                            row.put("height", height);
                            row.put("quantity", quantity);
                            row.put("glass_child", glass_child);
                            row.put("process", process);
                            row.put("customer_name", customer_name);
                            row.put("processing_note", processing_note);
                            row.put("other_colunmns", other_colunmns);
                            row.put("building_number", building_number);
                            row.put("bend_radius", bend_radius);
                        }
//                    } else {
//                        if (orderNumber == glass_type) {
//
//                            String order_id = (String) row1.get("order_id");
//                            String project = (String) row1.get("project");
//                            Long customer_id = (Long) row1.get("customer_id");
//                            BigDecimal width = (BigDecimal) row1.get("width");
//                            BigDecimal height = (BigDecimal) row1.get("height");
//                            Long quantity = (Long) row1.get("quantity");
//                            String glass_child = (String) row1.get("glass_child");
//                            String process = (String) row1.get("process");
//                            String customer_name = (String) row1.get("customer_name");
//                            String processing_note = (String) row1.get("processing_note");
//                            String other_colunmns = (String) row1.get("other_colunmns");
//                            String building_number = (String) row1.get("building_number");
//                            String bend_radius = (String) row1.get("bend_radius");
//
//                            row.put("orderNumber", orderNumber);
//                            row.put("technology_number", technologyNumber);
//                            row.put("order_id", order_id);
//                            row.put("project", project);
//                            row.put("customer_id", customer_id);
//                            row.put("width", width);
//                            row.put("height", height);
//                            row.put("quantity", quantity);
//                            row.put("glass_child", glass_child);
//                            row.put("process", process);
//                            row.put("customer_name", customer_name);
//                            row.put("processing_note", processing_note);
//                            row.put("other_colunmns", other_colunmns);
//                            row.put("building_number", building_number);
//                            row.put("bend_radius", bend_radius);
//                        }
//                    }
                        row.put("orderNumber", orderNumber);
                        row.put("technology_number", technologyNumber);
                        row.put("order_id", order_id);
                        row.put("project", project);
                        row.put("customer_id", customer_id);
                        row.put("width", width);
                        row.put("height", height);
                        row.put("quantity", quantity);
                        row.put("glass_child", glass_child);
                        row.put("process", process);
                        row.put("customer_name", customer_name);
                        row.put("processing_note", processing_note);
                        row.put("other_colunmns", other_colunmns);
                        row.put("building_number", building_number);
                        row.put("bend_radius", bend_radius);
                    }
                }
            }
        }
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
@@ -692,6 +692,10 @@
        GlassInfo glassInfo = new GlassInfo();
        BeanUtils.copyProperties(downStorageCageDetails, glassInfo);
        //删除理片笼表拿走/破损数据数据
        GlassInfo glassInfo1 = glassInfoService.getOne(
                new LambdaUpdateWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassInfo.getGlassId())
        );
        glassInfo.setLayer(glassInfo1.getLayer());
        damageService.deleteByGlassId(glassInfo.getGlassId());
        return initDownGlassTask(glassInfo, downStorageCageDetails.getSlot(), endCell, taskType);
    }
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml
@@ -193,7 +193,38 @@
            </foreach>
        </if>
        group by a.flow_card_id, a.layer, a.width, a.height, a.filmsid, a.thickness, a.glass_type, a.id
        group by a.glass_id, a.flow_card_id, a.layer, a.width, a.height, a.filmsid, a.thickness, a.glass_type
        order by a.id
    </select>
    <select id="downGlassLabelPrintScan" resultType="java.util.Map">
        select a.flow_card_id,
        a.layer,
        a.width,
        a.height,
        a.filmsid,
        a.thickness,
        a.glass_type,
        COUNT(*) AS quantity,
        a.tempering_layout_id,
        a.tempering_feed_sequence
        from  glass_info a
        where
        1=1
        <if test="processId != null">
            and a.flow_card_id = #{processId}
        </if>
        <if test="technologyNumber != null">
            and a.layer = #{technologyNumber}
        </if>
        <if test="glassIds != null and !glassIds.isEmpty()">
            and a.glass_id in
            <foreach collection="glassIds" item="item" open="(" close=")" separator=",">
                #{item}  <!-- 这里 MyBatis 会自动处理字符串 -->
            </foreach>
        </if>
        group by a.glass_id, a.flow_card_id, a.layer, a.width, a.height, a.filmsid, a.thickness, a.glass_type
        order by a.id
    </select>