From c9834a08fe9cb6ed9daabfce3fd73936d997aee1 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期四, 25 十二月 2025 16:56:58 +0800
Subject: [PATCH] 补片流程打印自动缩放问题修改,调整图纸打印的间距

---
 north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue          |    2 
 north-glass-erp/northglass-erp/src/components/ImageSizeEditor.vue          |    5 
 north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue |  315 ++++++++++++++++++++++++++--------------------------
 north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml                  |    6 
 4 files changed, 167 insertions(+), 161 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/components/ImageSizeEditor.vue b/north-glass-erp/northglass-erp/src/components/ImageSizeEditor.vue
index 27486af..2c16c84 100644
--- a/north-glass-erp/northglass-erp/src/components/ImageSizeEditor.vue
+++ b/north-glass-erp/northglass-erp/src/components/ImageSizeEditor.vue
@@ -81,6 +81,7 @@
 
   fit: { type: String, default: 'contain' },
   marginX: { type: String, default: '30px' },
+  marginY: { type: String, default: '50px' },
   dialogTitle: { type: String, default: '璁剧疆鍥剧墖灏哄' },
   showHint: { type: Boolean, default: true }
 })
@@ -127,7 +128,9 @@
     width: `${w}px`,
     height: `${h}px`,
     marginLeft: props.marginX,
-    marginRight: props.marginX
+    marginRight: props.marginX,
+    marginTop: props.marginY,
+    marginBottom: props.marginY
   }
 }
 
diff --git a/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue b/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
index 876be06..e7048ca 100644
--- a/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
+++ b/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
@@ -608,7 +608,7 @@
 
   @page {
     size: auto;  /* auto is the initial value */
-    margin: 4mm 5mm 10mm 5mm;  /* this affects the margin in the printer settings */
+    margin: 4mm 5mm 0mm 5mm;  /* this affects the margin in the printer settings */
     @top-right {
       content: none !important;
     }
diff --git a/north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue b/north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue
index 68c2e67..454279d 100644
--- a/north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue
+++ b/north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue
@@ -248,155 +248,143 @@
 <template>
 <!--  <el-button id="printButton" @click="printFlowCard();">{{ $t('basicData.print') }}</el-button>-->
   <div id="printFlowCard">
-    <table v-for="(item,id) in produceList" id="contentTable" :key="id">
-      <thead>
-      <tr v-for="(itemFlow,index) in item.detail" :key="index">
-        <td    colspan="34">
-          <div style="float: left;"><img id="img-pic" style="width: 42px;height: 32px" src="@/assets/northGlass.ico" alt=""></div>
-          <div id="bj" style="float: right;font-size: 28px">琛� {{ id + 1 }}</div>
-          <div style="left: 150px">{{ company.companyName }}</div>
-          <div>({{itemFlow.order_type}})鐢熶骇娴佺▼鍗�</div>
-          <div  style="font-weight: bolder;display: flex;justify-content:space-between">
-            <div>
-              琛ョ墖鍗曞彿锛歿{itemFlow.patch_id}}&nbsp;&nbsp;&nbsp;
-              鎵撳嵃浜猴細{{user.user.userName}}&nbsp;&nbsp;
-              鏃堕棿锛歿{formattedTime}}
+    <div id="contentDiv" v-for="(item,id) in produceList" :key="id">
+      <table  id="contentTable"  style="border-bottom: none;margin-bottom: 20px">
+        <thead>
+        <tr v-for="(itemFlow,index) in item.detail" :key="index">
+          <td colspan="31">
+            <div style="float: left;"><img id="img-pic" style="width: 42px;height: 32px" src="@/assets/northGlass.ico" alt=""></div>
+            <div id="bj" style="float: right;font-size: 28px">琛� {{ id + 1 }}</div>
+            <div style="left: 150px">{{ company.companyName }}</div>
+            <div>({{itemFlow.order_type}})鐢熶骇娴佺▼鍗�</div>
+            <div  style="font-weight: bolder;display: flex;justify-content:space-between">
+              <div>
+                琛ョ墖鍗曞彿锛歿{itemFlow.patch_id}}&nbsp;&nbsp;&nbsp;
+                鎵撳嵃浜猴細{{user.user.userName}}&nbsp;&nbsp;
+                鏃堕棿锛歿{formattedTime}}
+              </div>
+              <div>
+                <span v-if="name=='澶╂触鍖楃幓鐜荤拑宸ヤ笟鎶�鏈湁闄愬叕鍙革紙TJBB-QR7.1-01锛�'" style="font-size: 10px">{{itemFlow.otherRemarks}}</span>
+                娴佺▼鍗″彿锛� {{
+                  itemFlow.process_id
+                }}/{{ itemFlow.technologyNumber }}
+              </div>
             </div>
-            <div>
-              <span v-if="name=='澶╂触鍖楃幓鐜荤拑宸ヤ笟鎶�鏈湁闄愬叕鍙革紙TJBB-QR7.1-01锛�'" style="font-size: 10px">{{itemFlow.otherRemarks}}</span>
-              娴佺▼鍗″彿锛� {{
-                itemFlow.process_id
-              }}/{{ itemFlow.technologyNumber }}
-            </div>
-          </div>
-        </td>
-      </tr>
-      <tr v-for="(items,index) in item.detail" :key="index">
-        <td class="tdNowrap">瀹㈡埛鍚嶇О锛�</td>
-        <td colspan="3">{{ items.customer_name }}</td>
-        <td class="tdNowrap">椤圭洰鍚嶇О锛�</td>
-        <td v-if="name=='娲涢槼鍖楁柟鐜荤拑鎶�鏈偂浠芥湁闄愬叕鍙�'" colspan="4" style="min-width: 250px;">{{ items.projectBatch }}</td>
-        <td v-else colspan="4" style="min-width: 250px;">{{ items.project }}</td>
-        <td class="tdNowrap">宸ヨ壓娴佺▼锛�</td>
-        <td :colspan="4+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="3">{{ itemTr.edging_type }}</td>
-        <td class="tdNowrap">鍗曠墖鍚嶇О锛�</td>
-        <td v-if="!company.processFontSize" colspan="3">{{ itemTr.glass_child }}</td>
-        <td v-else-if="itemTr.qrcodeList.length*1>1" colspan="8">澶氬眰鍚堝苟锛岃鎯呰浜у搧鍚嶇О</td>
-        <td v-else colspan="8" style="font-size: 18px;">{{ itemTr.glass_child }}</td>
-        <td class="tdNowrap">浜у搧鍚嶇О锛�</td>
-        <td v-if="!company.processFontSize" :colspan="2+item.processList.length*2">{{ itemTr.product_name }}</td>
-        <td v-else :colspan="2+item.processList.length*2" style="font-size: 18px;">{{ itemTr.product_name }}</td>
-      </tr>
-      <tr>
-        <td rowspan='2'>搴忓彿</td>
-        <td rowspan='2'>缂栧彿</td>
-        <td rowspan="2">灞傚彿</td>
-        <td rowspan='2' class="tdNowrap">瀹�(寮ч暱)*楂�</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 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>{{ company.printLabel.printFlowCard.patch }}</td>
-          <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
-        </template>
-      </tr>
-      </thead>
-      <tbody>
+          </td>
+        </tr>
+        <tr v-for="(items,index) in item.detail" :key="index">
+          <td class="tdNowrap">瀹㈡埛鍚嶇О锛�</td>
+          <td colspan="4">{{ items.customer_name }}</td>
+          <td class="tdNowrap">椤圭洰鍚嶇О锛�</td>
+          <td v-if="name=='娲涢槼鍖楁柟鐜荤拑鎶�鏈偂浠芥湁闄愬叕鍙�'" colspan="3" style="min-width: 250px;">{{ items.projectBatch }}</td>
+          <td v-else colspan="3" style="min-width: 250px;">{{ items.project }}</td>
+          <td class="tdNowrap">宸ヨ壓娴佺▼锛�</td>
+          <td :colspan="5+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="4">{{ itemTr.edging_type }}</td>
+          <td class="tdNowrap">鍗曠墖鍚嶇О锛�</td>
+          <td v-if="!company.processFontSize" colspan="3">{{ itemTr.glass_child }}</td>
+          <td v-else-if="itemTr.qrcodeList.length*1>1" colspan="3" >澶氬眰鍚堝苟锛岃鎯呰浜у搧鍚嶇О</td>
+          <td v-else colspan="3" style="font-size: 18px;">{{ itemTr.glass_child }}</td>
+          <td class="tdNowrap">浜у搧鍚嶇О锛�</td>
+          <td v-if="!company.processFontSize" :colspan="2+item.processList.length*2">{{ itemTr.product_name }}</td>
+          <td v-else :colspan="5+item.processList.length*2" style="font-size: 18px;">{{ itemTr.product_name }}</td>
+        </tr>
+        <tr>
+          <td rowspan='2'>搴忓彿</td>
+          <td rowspan='2'>鍥惧彿</td>
+          <td rowspan='2'>缂栧彿</td>
+          <td rowspan="2">灞傚彿</td>
+          <td rowspan='2' class="tdNowrap">瀹�(寮ч暱)*楂�</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 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>{{ company.printLabel.printFlowCard.patch }}</td>
+            <td>{{ company.printLabel.printFlowCard.lackOf }}</td>
+          </template>
+        </tr>
+        </thead>
+        <tbody>
 
-      <tr v-for="(itemDatile,index) in item.detailList" :key="index">
-        <td>{{ itemDatile.order_number }}</td>
-        <td class="tdNowrap" v-if="name=='閲戝崕绂忓枩澶╂垚鐜荤拑鏈夐檺鍏徃' || name=='娴欐睙宸ㄦ槦鍢夋嘲鏂版潗鏂欐湁闄愬叕鍙�' ">{{ itemDatile.building_number }}</td>
-        <td class="tdNowrap" v-else>{{ itemDatile.s01Value }}</td>
-        <td>{{ itemDatile.technology_number }}</td>
-        <td>{{ itemDatile.child_width }}</td>
-        <td class="item" style="width: 5%;height: 100%;">
-          <input v-model="itemDatile.quantity" style="width: 100%;height: 100%"  @keyup="handleSummary()"/>
-        </td>
-        <td>{{ itemDatile.total_area }}</td>
-        <td>{{ itemDatile.perimeter }}</td>
-        <td>{{ itemDatile.bend_radius }}</td>
-        <td class="tdNowrap">{{ itemDatile.patch_type }}</td>
-        <td class="tdNowrap">{{ itemDatile.patch_reason }}</td>
-        <td class="tdNowrap">{{ itemDatile.patch_processes }}</td>
-        <td class="tdNowrap">{{ itemDatile.responsible_team }}</td>
-        <td>{{ itemDatile.responsible_personnel }}</td>
-        <td class="tdNowrap">{{ itemDatile.remarks }}</td>
-        <template v-for=" n in item.processList.length">
-          <td></td>
-          <td></td>
-        </template>
-      </tr>
-      </tbody>
-      <tfoot>
-      <tr style="height: 14px">
-        <td v-for="(itemsum,index) in item.detail" :key="index" colspan="34">
-          鏁伴噺锛�
-          <label>{{ itemsum.quantity }}</label>
-          闈㈢Н锛�
-          <label>{{ parseFloat(itemsum.gross_area.toFixed(2)) }}</label>
-          閲嶉噺锛�
-          <label>{{ parseFloat(itemsum.weight.toFixed(2)) }}</label>
-        </td>
-      </tr>
-      <tr v-for="(itemtextarea,index) in item.detail" :key="index">
-        <td>瀹屽伐绛惧悕</td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="1"></td>
-        <template v-for=" n in item.processList.length">
+        <tr v-for="(itemDatile,index) in item.detailList" :key="index">
+          <td>{{ itemDatile.order_number }}</td>
+          <td>{{ itemDatile.mapNumber }}</td>
+          <td class="tdNowrap" v-if="name=='閲戝崕绂忓枩澶╂垚鐜荤拑鏈夐檺鍏徃' || name=='娴欐睙宸ㄦ槦鍢夋嘲鏂版潗鏂欐湁闄愬叕鍙�' ">{{ itemDatile.building_number }}</td>
+          <td class="tdNowrap" v-else>{{ itemDatile.s01Value }}</td>
+          <td>{{ itemDatile.technology_number }}</td>
+          <td>{{ itemDatile.child_width }}</td>
+          <td class="item" style="width: 5%;height: 100%;">
+            <input v-model="itemDatile.quantity" style="width: 100%;height: 100%"  @keyup="handleSummary()"/>
+          </td>
+          <td>{{ itemDatile.total_area }}</td>
+          <td>{{ itemDatile.perimeter }}</td>
+          <td>{{ itemDatile.bend_radius }}</td>
+          <td class="tdNowrap">{{ itemDatile.patch_type }}</td>
+          <td class="tdNowrap">{{ itemDatile.patch_reason }}</td>
+          <td class="tdNowrap">{{ itemDatile.patch_processes }}</td>
+          <td class="tdNowrap">{{ itemDatile.responsible_team }}</td>
+          <td>{{ itemDatile.responsible_personnel }}</td>
+          <td class="tdNowrap">{{ itemDatile.remarks }}</td>
+          <template v-for=" n in item.processList.length">
+            <td></td>
+            <td></td>
+          </template>
+        </tr>
+        <tr style="height: 14px">
+          <td v-for="(itemsum,index) in item.detail" :key="index" colspan="31">
+            鏁伴噺锛�
+            <label>{{ itemsum.quantity }}</label>
+            闈㈢Н锛�
+            <label>{{ parseFloat(itemsum.gross_area.toFixed(2)) }}</label>
+            閲嶉噺锛�
+            <label>{{ parseFloat(itemsum.weight.toFixed(2)) }}</label>
+          </td>
+        </tr>
+        <tr v-for="(itemtextarea,index) in item.detail" :key="index">
+          <td>瀹屽伐绛惧悕</td>
           <td colspan="2"></td>
-        </template>
-      </tr>
-      <tr>
-        <td>鐢熶骇鏃ユ湡</td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="1"></td>
-        <template v-for=" n in item.processList.length">
           <td colspan="2"></td>
-        </template>
-      </tr>
-      <tr>
-        <td>璐ㄦ绛惧悕</td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="2"></td>
-        <td colspan="1"></td>
-        <template v-for=" n in item.processList.length">
           <td colspan="2"></td>
-        </template>
-      </tr>
-      <tr>
-        <td>鍘熺墖绠卞彿</td>
-        <td colspan="29"></td>
-      </tr>
-      <tr v-for="(qrCodeItem,index) in item.detail" :key="index">
-        <td colspan="30">
+          <td colspan="2"></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="2"></td>
+          <td colspan="2"></td>
+          <td colspan="2"></td>
+          <td colspan="2"></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="31"></td>
+        </tr>
+        <tr v-for="(qrCodeItem,index) in item.detail" :key="index">
+          <td colspan="31">
           <span style="display: flex;">
             <span v-for="(qrCodeItems,index) in qrCodeItem.qrcodeList" :key="index" style="display: flex;width: 35%">
             <div class='qrCode' style="width: 80px;height: 80px;">
@@ -407,18 +395,31 @@
             }}</span>
           </span>
           </span>
-        </td>
-      </tr>
-      <tr v-for="(itemtextareas,index) in item.detail" :key="index">
-        <td  colspan="34" rowspan="6" style="width: 99%;height: 150px ">
-          <div style="width: 100%;height: 100%;text-align: left">
-            <textarea v-if="!company.processFontSize" style="height: 99%;width: 99%;border: none;;font-size: 14px;font-weight: bold;overflow: hidden;text-align: left;vertical-align: middle">{{itemtextareas.processing_note}}</textarea>
-            <textarea v-else style="height: 99%;width: 99%;border: none;;font-size: 36px;font-weight: bold;overflow: hidden;text-align: left;vertical-align: middle">{{itemtextareas.processing_note}}</textarea>
-          </div>
-        </td>
-      </tr>
-      </tfoot>
-    </table>
+          </td>
+        </tr>
+        </tbody>
+        <tfoot>
+
+        <tr v-for="(itemtextareas,index) in item.detail" :key="index">
+          <td  colspan="31"  style="width: 480px;height: 150px ">
+            <div style="width: 100%;height: 100%;text-align: left">
+              <textarea v-if="!company.processFontSize" style="height: 99%;width: 99%;border: none;;font-size: 14px;font-weight: bold;overflow: hidden;text-align: left;vertical-align: middle">{{itemtextareas.processing_note}}</textarea>
+              <textarea v-else style="height: 99%;width: 99%;border: none;;font-size: 36px;font-weight: bold;overflow: hidden;text-align: left;vertical-align: middle">{{itemtextareas.processing_note}}</textarea>
+            </div>
+          </td>
+        </tr>
+        <tr style="border-bottom: none">
+          <td colspan="31" style="text-align: left;border-bottom: none;">
+            <div>
+              <span>璐ㄦ绛惧悕锛�</span>
+              <span style="margin-left: 300px">鐢熶骇绛惧悕锛�</span>
+            </div>
+          </td>
+        </tr>
+        </tfoot>
+      </table>
+    </div>
+
   </div>
 
 </template>
@@ -504,7 +505,7 @@
 
   @page {
     size: auto;  /* auto is the initial value */
-    margin:  2mm 4mm 0mm 4mm;  /* this affects the margin in the printer settings */
+    margin: 4mm 5mm 0mm 5mm;  /* this affects the margin in the printer settings */
     @top-right {
       content: none !important;
     }
diff --git a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
index 92c10e2..73e0f1d 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -1824,7 +1824,8 @@
                pl.patch_processes,
                pl.responsible_team,
                pl.responsible_personnel,
-               od.building_number
+               od.building_number,
+               IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber
         from flow_card as fc
                  left join sd.order_glass_detail as ogd
                            on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
@@ -1912,7 +1913,8 @@
                round(ogd.child_width)                                         as width,
                round(ogd.child_height)                                        as height,
                pd.separation,
-               fc.technology_number
+               fc.technology_number,
+               IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber
         from flow_card as fc
                  left join sd.order_glass_detail as ogd
                            on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and

--
Gitblit v1.8.0