From 547294b0c7a7de8cc84a8a8df297548c7b2f9846 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期三, 06 八月 2025 10:07:48 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override

---
 north-glass-erp/northglass-erp/src/utils/requestOptimize.js                         |    2 
 north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue                   |    1 
 north-glass-erp/northglass-erp/src/lang/en.js                                       |    4 
 north-glass-erp/northglass-erp/src/views/pp/processCard/AddProcessCard.vue          |   97 ---------
 north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml                      |   12 
 north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue             |   34 ++
 north-glass-erp/northglass-erp/src/stores/userInfo.js                               |    3 
 north-glass-erp/northglass-erp/src/lang/zh.js                                       |    6 
 north-glass-erp/northglass-erp/src/utils/request.js                                 |    2 
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeControl.vue       |    2 
 north-glass-erp/northglass-erp/src/utils/requestTemp.js                             |    2 
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue |    2 
 north-glass-erp/northglass-erp/src/lang/ar.js                                       |    4 
 north-glass-erp/northglass-erp/src/lang/ru.js                                       |    4 
 north-glass-erp/northglass-erp/src/views/LoginView.vue                              |    1 
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue    |  195 +++++++++---------
 north-glass-erp/northglass-erp/src/views/sd/basicData/CreateBasicData.vue           |    5 
 north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java  |   36 ++-
 north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue          |   70 ++++--
 north-glass-erp/northglass-erp/src/lang/kr.js                                       |    4 
 north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue     |   64 +++++-
 north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml                      |    3 
 north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizationRectPrint.vue |    4 
 23 files changed, 289 insertions(+), 268 deletions(-)

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 fc8c7e7..98d9178 100644
--- a/north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue
+++ b/north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue
@@ -176,7 +176,11 @@
            flowCardCount=produceList.value.length
 
           handleSummary()
-          handleGetQRCode()
+          if (name=='澶╂触鍖楃幓鐜荤拑宸ヤ笟鎶�鏈湁闄愬叕鍙革紙TJBB-QR7.1-01锛�'){
+            handleGetQRCodeTj()//澶╂触鎵爜鏋姤宸ラ渶瑕佸悎骞跺眰鍙蜂簩缁寸爜
+          }else{
+            handleGetQRCode()//鎷嗗垎灞傚彿浜岀淮鐮�
+          }
         } else {
           ElMessage.warning(res.msg)
           router.push("/login")
@@ -185,44 +189,54 @@
 
     }
 )
+
 const handleGetQRCode = async () => {
   for (let i = 0; i < produceList.value.length; i++) {
-    const detail = produceList.value[i].detail[0];
-    const processId = detail.process_id;
-    const mergeStr = detail.mergeTechnologyNumber?.toString() || '';
+    const detailItem = produceList.value[i].detail[0];
+    const detailList = produceList.value[i].detailList;
 
-    detail.qrcodeList = []; // 鍒濆鍖�
+    const mergeTechNumber = detailItem.mergeTechnologyNumber.toString();
+    const processId = detailItem.process_id;
+    const url = `${processId}/${mergeTechNumber}`;
 
-    for (let j = 0; j < mergeStr.length; j++) {
-      const singleTech = mergeStr[j]; // 鍙栧嚭姣忎竴浣嶅瓧绗�
-      const url = `${processId}/${singleTech}`;
-      const qrcodeData = await QRCode.toDataURL(url);
-      detail.qrcodeList.push({
+    const qrcodeData = await QRCode.toDataURL(url);
+    detailItem.qrcodeList = [];
+
+    //鍌ㄥ瓨灞傚彿
+    const seenTechNumbers = new Set();
+
+    for (let j = 0; j < detailList.length; j++) {
+      const techNum = detailList[j].technology_number;
+      //鏈夊垯璺宠繃
+      if (seenTechNumbers.has(techNum)) continue;
+      detailItem.qrcodeList.push({
         qrcode: qrcodeData,
-        technologyNumber: singleTech
+        technologyNumber: techNum
       });
+
+      seenTechNumbers.add(techNum);
     }
   }
 };
 
 
-// const handleGetQRCode = async () => {
-//   let technologyNumber=''
-//   for (let i = 0; i < produceList.value.length; i++) {
-//
-//     const technologyNumber = produceList.value[i].detail[0].technologyNumber.toString(); // 杞崲涓哄瓧绗︿覆浠ヤ究澶勭悊姣忎釜瀛楃
-//     produceList.value[i].detail[0]["qrcodeList"] = []; // 鍒濆鍖栦竴涓┖鏁扮粍鐢ㄦ潵瀛樺偍 QR Code
-//     const merge = produceList.value[i].detail[0].mergeTechnologyNumber.toString();
-//     const processId = produceList.value[i].detail[0].process_id;
-//     const url = `${processId}/${technologyNumber}`;
-//     // 鐢熸垚 QR Code 骞跺瓨鍌ㄥ埌鏁扮粍涓�
-//     const qrcodeData = await QRCode.toDataURL(url);
-//     produceList.value[i].detail[0]["qrcodeList"].push({
-//       qrcode: qrcodeData,
-//       technologyNumber: technologyNumber
-//     });
-//   }
-// };
+
+const handleGetQRCodeTj = async () => {
+  let technologyNumber=''
+  for (let i = 0; i < produceList.value.length; i++) {
+    const technologyNumber = produceList.value[i].detail[0].mergeTechnologyNumber.toString(); // 杞崲涓哄瓧绗︿覆浠ヤ究澶勭悊姣忎釜瀛楃
+    produceList.value[i].detail[0]["qrcodeList"] = []; // 鍒濆鍖栦竴涓┖鏁扮粍鐢ㄦ潵瀛樺偍 QR Code
+
+    const processId = produceList.value[i].detail[0].process_id;
+    const url = `${processId}/${technologyNumber}`;
+    // 鐢熸垚 QR Code 骞跺瓨鍌ㄥ埌鏁扮粍涓�
+    const qrcodeData = await QRCode.toDataURL(url);
+    produceList.value[i].detail[0]["qrcodeList"].push({
+      qrcode: qrcodeData,
+      technologyNumber: technologyNumber
+    });
+  }
+};
 
 
 //鏍规嵁杈撳叆鐨勬暟閲忛噸鏂版眹鎬�
diff --git a/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue b/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue
index f404a8d..038987f 100644
--- a/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue
+++ b/north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue
@@ -35,13 +35,13 @@
   },
 
 
-  columns:[
-
-  ],
   mergeCells:[],
   toolbarConfig: {
+    slots:{
+      buttons: "title"
+    },
     zoom: true,
-    /*custom: true*/
+    // custom: true
   },
   cellClassName ({ row, column,columnIndex})  {
     if (columnIndex>10 && row.thisQuantity*1 === row.reportWorkQuantity[column.title]*1){
@@ -66,7 +66,8 @@
 const list = ref([])
 
 let props = defineProps({
-  orderId:null
+  orderId:null,
+  row: {}
 })
 const columns = [
   {field: 'order_number',fixed:"left", width: 90,title: t('order.OrderNum'),showOverflow:"ellipsis"},
@@ -75,9 +76,9 @@
   {field: 'glass_child',width: 130, title: t('reportingWorks.glassChild') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
   {field: 'order_type', width: 120,title: t('order.orderType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
   {field: 'process_id',width: 110, title: t('processCard.processId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-  {field: 'technology_number', width: 90,title:  t('processCard.technologyNumber'),showOverflow:"ellipsis"},
-  {field: 'child_width', width: 90,title:  t('order.width'),showOverflow:"ellipsis"},
-  {field: 'child_height', width: 90,title:  t('order.height'),showOverflow:"ellipsis"},
+  {field: 'technology_number', width: 90,title:  t('processCard.technologyNumber'),showOverflow:"ellipsis",filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+  {field: 'child_width', width: 90,title:  t('order.width'),showOverflow:"ellipsis",filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+  {field: 'child_height', width: 90,title:  t('order.height'),showOverflow:"ellipsis",filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
   {field: 'quantity', width: 90,title: t('order.quantity')},
   {field: 'glassQuantity', width: 90,title: t('order.glassQuantity')},
   {field: 'gross_area', width: 90,title: t('order.area')},
@@ -86,7 +87,7 @@
   {field: 'inventoryArea',width: 120, title: t('report.inventoryArea')},
   {field: 'broken_num',width: 90, title: t('reportingWorks.quantityBroken')},
 ]
-let column = [0,1,3,6,7,8,10,11,12,13]
+let column = [0,1,3,8,10,11,12,13]
 
 
 onMounted(()=>{
@@ -126,6 +127,7 @@
       await xGrid.value.setMergeCells(res.data.mergeCells)
       mergeCells.value = res.data.mergeCells
       gridOptions.loading = false
+      xGrid.value.commitProxy('reset_custom')
 
     } else {
       ElMessage.warning(res.msg)
@@ -173,12 +175,17 @@
       +')' )
   //return
 }
+let showTitle = ref(false)
+const changeZoom = ()=> {
+  showTitle.value = !showTitle.value
+}
 </script>
 
 <template>
   <div style="width: 100%;height: 100%">
     <vxe-grid
         @filter-change ='filterChange'
+        @zoom="changeZoom"
         height="100%"
         size="mini"
         class="mytable-scrollbar"
@@ -201,6 +208,15 @@
         <span>{{ quantitySum(row,column) }} </span>
       </template>
 
+      <template #title>
+        <span style="font-weight: bold" v-show="showTitle">
+          {{ row.orderId }}
+          {{ row.project?'--':'' }}
+          {{row.project}}
+          {{ row.batch?'--':'' }}
+          {{row.batch}}
+        </span>
+      </template>
     </vxe-grid>
   </div>
 </template>
diff --git a/north-glass-erp/northglass-erp/src/lang/ar.js b/north-glass-erp/northglass-erp/src/lang/ar.js
index 75d55de..5a28319 100644
--- a/north-glass-erp/northglass-erp/src/lang/ar.js
+++ b/north-glass-erp/northglass-erp/src/lang/ar.js
@@ -639,6 +639,10 @@
         pleaseNumber8:'丕賱乇噩丕亍 廿丿禺丕賱 丕賱乇賯賲 丕賱鬲爻賱爻賱賷',
         pleaseNumber9:'鬲氐丨賷丨 丕賱賰賲賷丞 丕賱賳賴丕卅賷丞 兀賵 丕賱賲毓賱賯丞',
         pleaseNumber10:'瀹屽伐鏁颁笉鑳藉ぇ浜庢祦绋嬪崱鏁伴噺',
+        pleaseNumber11:'瀹屽伐+娆$牬鏁伴噺涓嶈兘澶т簬鍙畬宸ユ暟閲�',
+        pleaseNumber12:'鏈伐搴忔姤宸ユ暟:',
+        pleaseNumber13:'涓嬪伐搴忔姤宸ユ暟:',
+        pleaseNumber14:'鏈伐搴忎慨鏀规暟涓嶈兘灏忎簬涓嬪伐搴忔姤宸ユ暟',
     },
     productStock:{
         page:{
diff --git a/north-glass-erp/northglass-erp/src/lang/en.js b/north-glass-erp/northglass-erp/src/lang/en.js
index 1850c44..c263cc5 100644
--- a/north-glass-erp/northglass-erp/src/lang/en.js
+++ b/north-glass-erp/northglass-erp/src/lang/en.js
@@ -640,6 +640,10 @@
         pleaseNumber8:'Please enter serial number',
         pleaseNumber9:'Correct number of completions or breakdowns',
         pleaseNumber10:'The number of completions cannot be greater than the number of process cards',
+        pleaseNumber11:'瀹屽伐+娆$牬鏁伴噺涓嶈兘澶т簬鍙畬宸ユ暟閲�',
+        pleaseNumber12:'鏈伐搴忔姤宸ユ暟:',
+        pleaseNumber13:'涓嬪伐搴忔姤宸ユ暟:',
+        pleaseNumber14:'鏈伐搴忎慨鏀规暟涓嶈兘灏忎簬涓嬪伐搴忔姤宸ユ暟',
 
     },
     productStock:{
diff --git a/north-glass-erp/northglass-erp/src/lang/kr.js b/north-glass-erp/northglass-erp/src/lang/kr.js
index b25a8b4..eeb55ed 100644
--- a/north-glass-erp/northglass-erp/src/lang/kr.js
+++ b/north-glass-erp/northglass-erp/src/lang/kr.js
@@ -648,6 +648,10 @@
         pleaseNumber8:'鞚茧牗氩堩樃毳� 鞛呺牓頃� 欤检劯鞖�',
         pleaseNumber9:'鞝曧檿頃� 鞏戫拡 順轨潃 攵堧焿 靾橂焿',
         pleaseNumber10:'鞏戫拡 靾橂焿鞚� 頂勲靹胳姢 旃措摐 齑濍焿鞚� 齑堦臣頃� 靾� 鞐嗢姷雼堧嫟.',
+        pleaseNumber11:'瀹屽伐+娆$牬鏁伴噺涓嶈兘澶т簬鍙畬宸ユ暟閲�',
+        pleaseNumber12:'鏈伐搴忔姤宸ユ暟:',
+        pleaseNumber13:'涓嬪伐搴忔姤宸ユ暟:',
+        pleaseNumber14:'鏈伐搴忎慨鏀规暟涓嶈兘灏忎簬涓嬪伐搴忔姤宸ユ暟',
     },
     productStock:{
         page:{
diff --git a/north-glass-erp/northglass-erp/src/lang/ru.js b/north-glass-erp/northglass-erp/src/lang/ru.js
index e48a76b..b5fd8ca 100644
--- a/north-glass-erp/northglass-erp/src/lang/ru.js
+++ b/north-glass-erp/northglass-erp/src/lang/ru.js
@@ -637,6 +637,10 @@
         pleaseNumber8:'袙胁械写懈褌械 褋械褉懈泄薪褘泄 薪芯屑械褉.',
         pleaseNumber9:'袩褉邪胁懈谢褜薪芯械 蟹邪胁械褉褕械薪懈械 懈 泻芯谢懈褔械褋褌胁芯 锌芯胁褉械卸写械薪薪褘褏',
         pleaseNumber10:'瀹屽伐鏁颁笉鑳藉ぇ浜庢祦绋嬪崱鏁伴噺',
+        pleaseNumber11:'瀹屽伐+娆$牬鏁伴噺涓嶈兘澶т簬鍙畬宸ユ暟閲�',
+        pleaseNumber12:'鏈伐搴忔姤宸ユ暟:',
+        pleaseNumber13:'涓嬪伐搴忔姤宸ユ暟:',
+        pleaseNumber14:'鏈伐搴忎慨鏀规暟涓嶈兘灏忎簬涓嬪伐搴忔姤宸ユ暟',
     },
     productStock:{
         page:{
diff --git a/north-glass-erp/northglass-erp/src/lang/zh.js b/north-glass-erp/northglass-erp/src/lang/zh.js
index ee1a514..5fc85d9 100644
--- a/north-glass-erp/northglass-erp/src/lang/zh.js
+++ b/north-glass-erp/northglass-erp/src/lang/zh.js
@@ -627,6 +627,7 @@
         passAudit:'瀹℃牳閫氳繃',
         patchCondition:'琛ョ墖鐘舵��',
         changeFailed:'淇敼澶辫触锛岃妫�鏌ユ槸鍚︿负鎶ュ伐杞Щ璁㈠崟',
+        hiddenVal:'闅愯棌',
 
 
         selectResponsibleTeam:'璇烽�夋嫨璐d换鐝粍',
@@ -655,7 +656,10 @@
         pleaseNumber8:'璇疯緭鍏ュ簭鍙�',
         pleaseNumber9:'姝g‘鐨勫畬宸ユ垨娆$牬鏁伴噺',
         pleaseNumber10:'瀹屽伐鏁颁笉鑳藉ぇ浜庢祦绋嬪崱鏁伴噺',
-        pleaseNumber11:'鍙慨鏀规暟閲忎笉瓒�',
+        pleaseNumber11:'瀹屽伐+娆$牬鏁伴噺涓嶈兘澶т簬鍙畬宸ユ暟閲�',
+        pleaseNumber12:'鏈伐搴忔姤宸ユ暟:',
+        pleaseNumber13:'涓嬪伐搴忔姤宸ユ暟:',
+        pleaseNumber14:'鏈伐搴忎慨鏀规暟涓嶈兘灏忎簬涓嬪伐搴忔姤宸ユ暟',
     },
     productStock:{
         page:{
diff --git a/north-glass-erp/northglass-erp/src/stores/userInfo.js b/north-glass-erp/northglass-erp/src/stores/userInfo.js
index 75d935d..27f20a6 100644
--- a/north-glass-erp/northglass-erp/src/stores/userInfo.js
+++ b/north-glass-erp/northglass-erp/src/stores/userInfo.js
@@ -8,7 +8,8 @@
                 userName:null,
                 userId:null,
                 address:null,
-                permissions:[]
+                permissions:[],
+                token:null
             }),
             responseCode:null,
             msg:null
diff --git a/north-glass-erp/northglass-erp/src/utils/request.js b/north-glass-erp/northglass-erp/src/utils/request.js
index 67052be..8497a63 100644
--- a/north-glass-erp/northglass-erp/src/utils/request.js
+++ b/north-glass-erp/northglass-erp/src/utils/request.js
@@ -15,7 +15,7 @@
 request.interceptors.request.use(config => {
     config.headers['Content-Type'] = 'application/json;charset=utf-8';
     if(userStore.user){
-        config.headers['satoken'] = userStore.user.token;
+        config.headers['satoken'] = localStorage.getItem('saToken');
     }
       // 璁剧疆璇锋眰澶�
     return config
diff --git a/north-glass-erp/northglass-erp/src/utils/requestOptimize.js b/north-glass-erp/northglass-erp/src/utils/requestOptimize.js
index 7064a4e..37a7e60 100644
--- a/north-glass-erp/northglass-erp/src/utils/requestOptimize.js
+++ b/north-glass-erp/northglass-erp/src/utils/requestOptimize.js
@@ -17,7 +17,7 @@
 request.interceptors.request.use(config => {
     config.headers['Content-Type'] = 'application/json;charset=utf-8';
     if(userStore.user){
-        config.headers['satoken'] = userStore.user.token;
+        config.headers['satoken'] = localStorage.getItem('saToken');
     }
       // 璁剧疆璇锋眰澶�
     return config
diff --git a/north-glass-erp/northglass-erp/src/utils/requestTemp.js b/north-glass-erp/northglass-erp/src/utils/requestTemp.js
index 9bd1e6a..4538a31 100644
--- a/north-glass-erp/northglass-erp/src/utils/requestTemp.js
+++ b/north-glass-erp/northglass-erp/src/utils/requestTemp.js
@@ -17,7 +17,7 @@
 request.interceptors.request.use(config => {
     config.headers['Content-Type'] = 'application/json;charset=utf-8';
     if(userStore.user){
-        config.headers['satoken'] = userStore.user.token;
+        config.headers['satoken'] = localStorage.getItem('saToken');
     }
       // 璁剧疆璇锋眰澶�
     return config
diff --git a/north-glass-erp/northglass-erp/src/views/LoginView.vue b/north-glass-erp/northglass-erp/src/views/LoginView.vue
index 08917cc..231e561 100644
--- a/north-glass-erp/northglass-erp/src/views/LoginView.vue
+++ b/north-glass-erp/northglass-erp/src/views/LoginView.vue
@@ -64,6 +64,7 @@
           userForm).then((res) => {
         if(res['code']==200 && res['data']){
           store.$patch({user:res.data})
+          localStorage.setItem('saToken', store.user.token)
           orderInfo.clearSelectDate()
           router.push('/main')
           ElMessage.success(t('login.loginSuccessful'))
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizationRectPrint.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizationRectPrint.vue
index 2ba7e74..f308151 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizationRectPrint.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizationRectPrint.vue
@@ -1,6 +1,8 @@
 <template>
   <div>
-    <el-button id="button" type="primary" @click="handlePrint">鎵撳嵃</el-button>
+    <el-button id="button" type="primary" @click="handlePrint" style="position: fixed; top: 90px; right: 20px; padding: 20px; background: #4CAF50; color: white; border: none; border-radius: 5px; cursor: pointer;">
+      鎵撳嵃
+    </el-button>
     
     <div ref="printContainer" style="position: relative;">
       <RectRenderer 
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeControl.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeControl.vue
index 5f8b1b5..259c0af 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeControl.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/OptimizeControl.vue
@@ -11,7 +11,7 @@
   
   
     </div>
-    <button @click="submitLayouts" style="position: fixed; bottom: 20px; right: 20px; padding: 10px; background: #4CAF50; color: white; border: none; border-radius: 5px; cursor: pointer;">
+    <button @click="submitLayouts" style="position: fixed; top: 90px; right: 20px; padding: 10px; background: #4CAF50; color: white; border: none; border-radius: 5px; cursor: pointer;">
       淇濆瓨OPT
     </button>
   </template>
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue
index 58820da..c0ba000 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue
@@ -72,7 +72,7 @@
     </div>
 
     <!-- 鎻愪氦鎸夐挳 -->
-    <button @click="submitLayouts" style="position: fixed; bottom: 20px; right: 20px; padding: 10px; background: #4CAF50; color: white; border: none; border-radius: 5px; cursor: pointer;">
+    <button @click="submitLayouts" style="position: fixed; top: 90px; right: 20px; padding: 10px; background: #4CAF50; color: white; border: none; border-radius: 5px; cursor: pointer;">
       淇濆瓨璋冩暣
     </button>
   </div>
diff --git a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue
index 6dce01a..65982c4 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/ProjectDetail.vue
@@ -458,6 +458,7 @@
       return;
     }
     emit('getSmallPieceData', 1);
+    optimizeData.value.glassDetails = [];
     xGrid.value.getTableData().fullData.forEach(items=>{
       let rackNoValue = 0;
       if (items.rackNo !== undefined && items.rackNo !== null && items.rackNo !== '') {
@@ -524,6 +525,7 @@
         dialogVisible.value[3] = newValue;
       }
       if (props.CheckboxChangeData!=null && props.CheckboxChangeData.length>0){
+        optimizeData.value.materialDetails = [];
         props.CheckboxChangeData.forEach(items=>{
           const detail={
             width :null,
@@ -601,99 +603,81 @@
       const grindingTrimming = res.data.grindingTrimming;
       optimizeState.value=res.data.optimizeState;
 
-      // 鍔犺浇纾ㄩ噺閰嶇疆
-      loadGrindingConfiguration().then((grindConfig) => {
-        console.log("鍔犺浇鐨勭(閲忛厤缃�:", grindConfig);
-
-        data = data.map(item => {
-          // 淇濈暀浠庡悗绔繑鍥炵殑鍘熷纾ㄩ噺鍊硷紝濡傛灉瀛樺湪鐨勮瘽
-          const originalLongGrind1 = item.longGrind1;
-          const originalLongGrind2 = item.longGrind2;
-          const originalShortGrind1 = item.shortGrind1;
-          const originalShortGrind2 = item.shortGrind2;
-
-          // 濡傛灉娌℃湁鍘熷纾ㄩ噺鍊硷紝鍒欏垵濮嬪寲涓�0
-          item.longGrind1 = originalLongGrind1 !== undefined && originalLongGrind1 !== null ?
-              parseFloat(originalLongGrind1) : 0;
-          item.longGrind2 = originalLongGrind2 !== undefined && originalLongGrind2 !== null ?
-              parseFloat(originalLongGrind2) : 0;
-          item.shortGrind1 = originalShortGrind1 !== undefined && originalShortGrind1 !== null ?
-              parseFloat(originalShortGrind1) : 0;
-          item.shortGrind2 = originalShortGrind2 !== undefined && originalShortGrind2 !== null ?
-              parseFloat(originalShortGrind2) : 0;
-
-          // 澶勭悊 grindingTrimming 鏁版嵁锛堝鏋滃瓨鍦級
-          if(grindingTrimming!==null && grindingTrimming.length > 0){
-            const formattedData = grindingTrimming.map(item => {
-              const formattedItem = {};
-              for (const key in item) {
-                if (typeof item[key] === 'string') {
-                  //鍘婚櫎瀛楃涓插睘鎬у�煎紑澶村拰缁撳熬鐨勫弻寮曞彿
-                  formattedItem[key] = item[key].replace(/^\"|\"$/g, '');
-                } else {
-                  formattedItem[key] = item[key];
-                }
-              }
-              return formattedItem;
-            });
-
-            // 濡傛灉鏈夎嚜鍔ㄥ~鍏呴厤缃紝浣跨敤瀹冩潵璁剧疆纾ㄩ噺
-            if(formattedData[0].autoFillEdge==="true"){
-              const minAutoLenght = parseFloat(formattedData[0].minAutoLenght) || 0;
-              const leftEdge = parseFloat(formattedData[0].leftEdge) || 0;
-              const rightEdge = parseFloat(formattedData[0].rightEdge) || 0;
-              const upEdge = parseFloat(formattedData[0].upEdge) || 0;
-              const downEdge = parseFloat(formattedData[0].downEdge) || 0;
-
-              if(item.width >= minAutoLenght){
-                item.longGrind1 = leftEdge;
-                item.longGrind2 = rightEdge;
-              }
-              if(item.height >= minAutoLenght){
-                item.shortGrind1 = upEdge;
-                item.shortGrind2 = downEdge;
-              }
-            }
-          } else if(grindConfig) {
-            // 浣跨敤浠� getConfiguration 鎺ュ彛鍔犺浇鐨勯厤缃�
-            if(grindConfig.autoFillEdge==="true"){
-              const minAutoLenght = parseFloat(grindConfig.minAutoLenght) || 0;
-              const leftEdge = parseFloat(grindConfig.leftEdge) || 0;
-              const rightEdge = parseFloat(grindConfig.rightEdge) || 0;
-              const upEdge = parseFloat(grindConfig.upEdge) || 0;
-              const downEdge = parseFloat(grindConfig.downEdge) || 0;
-
-              if(item.width >= minAutoLenght){
-                item.longGrind1 = leftEdge;
-                item.longGrind2 = rightEdge;
-              }
-              if(item.height >= minAutoLenght){
-                item.shortGrind1 = upEdge;
-                item.shortGrind2 = downEdge;
-              }
-            }else {
-              // 鍗充娇娌℃湁鍚敤鑷姩濉厖锛屼篃搴旇搴旂敤榛樿鐨勭(閲忓��
-              item.longGrind1 = parseFloat(grindConfig.leftEdge) || 0;
-              item.longGrind2 = parseFloat(grindConfig.rightEdge) || 0;
-              item.shortGrind1 = parseFloat(grindConfig.upEdge) || 0;
-              item.shortGrind2 = parseFloat(grindConfig.downEdge) || 0;
+      // 澶勭悊 grindingTrimming 鏁版嵁锛堝鏋滃瓨鍦級
+      let processedGrindConfig = null;
+      if(grindingTrimming!==null && grindingTrimming.length > 0){
+        // 澶勭悊 grindingTrimming 鏁版嵁锛屽幓闄ゅ弻寮曞彿
+        const formattedData = grindingTrimming.map(item => {
+          const formattedItem = {};
+          for (const key in item) {
+            if (typeof item[key] === 'string') {
+              //鍘婚櫎瀛楃涓插睘鎬у�煎紑澶村拰缁撳熬鐨勫弻寮曞彿
+              formattedItem[key] = item[key].replace(/^\"|\"$/g, '');
+            } else {
+              formattedItem[key] = item[key];
             }
           }
-
-          item.height=parseFloat(item.height.toFixed(2))
-          item.width=parseFloat(item.width.toFixed(2))
-
-          return item;
+          return formattedItem;
         });
+        processedGrindConfig = formattedData[0];
+      }
 
-        console.log("澶勭悊鍚庣殑鏁版嵁:", data);
+      data = data.map(item => {
+        // 鐩存帴灏� grindingTrimming 涓殑纾ㄩ噺淇℃伅鍐欏埌琛ㄤ腑
+        if (processedGrindConfig) {
+          // 浣跨敤 grindingTrimming 涓殑閰嶇疆璁剧疆纾ㄩ噺
+          const leftEdge = parseFloat(processedGrindConfig.leftEdge) || 0;
+          const rightEdge = parseFloat(processedGrindConfig.rightEdge) || 0;
+          const upEdge = parseFloat(processedGrindConfig.upEdge) || 0;
+          const downEdge = parseFloat(processedGrindConfig.downEdge) || 0;
 
-        xGrid.value.loadData(data);
-        gridOptions.data = data;
-        projectName.value = data[0].project_name;
-        quantitys.value=res.data.project.glass_total
-        areas.value=res.data.project.glass_total_area
+          item.longGrind1 = leftEdge;   // 闀跨(1
+          item.longGrind2 = rightEdge;  // 闀跨(2
+          item.shortGrind1 = upEdge;    // 鐭(1
+          item.shortGrind2 = downEdge;  // 鐭(2
+
+          // 濡傛灉鍚敤浜嗚嚜鍔ㄥ~鍏呭姛鑳斤紝鏍规嵁灏哄鍒ゆ柇鏄惁搴旂敤纾ㄩ噺
+          if(processedGrindConfig.autoFillEdge === "true"){
+            const minAutoLength = parseFloat(processedGrindConfig.minAutoLenght) || 0;
+
+            // 濡傛灉瀹藉害灏忎簬鏈�灏忚嚜鍔ㄩ暱搴︼紝涓嶅簲鐢ㄥ乏鍙崇(閲�
+            if(item.width < minAutoLength){
+              item.longGrind1 = 0;
+              item.longGrind2 = 0;
+            }
+
+            // 濡傛灉楂樺害灏忎簬鏈�灏忚嚜鍔ㄩ暱搴︼紝涓嶅簲鐢ㄤ笂涓嬬(閲�
+            if(item.height < minAutoLength){
+              item.shortGrind1 = 0;
+              item.shortGrind2 = 0;
+            }
+          }
+        } else {
+          // 濡傛灉娌℃湁 grindingTrimming 鏁版嵁锛屽垵濮嬪寲涓�0
+          item.longGrind1 = item.longGrind1 !== undefined && item.longGrind1 !== null ?
+              parseFloat(item.longGrind1) : 0;
+          item.longGrind2 = item.longGrind2 !== undefined && item.longGrind2 !== null ?
+              parseFloat(item.longGrind2) : 0;
+          item.shortGrind1 = item.shortGrind1 !== undefined && item.shortGrind1 !== null ?
+              parseFloat(item.shortGrind1) : 0;
+          item.shortGrind2 = item.shortGrind2 !== undefined && item.shortGrind2 !== null ?
+              parseFloat(item.shortGrind2) : 0;
+        }
+
+        item.height=parseFloat(item.height.toFixed(2))
+        item.width=parseFloat(item.width.toFixed(2))
+
+        return item;
       });
+
+      xGrid.value.loadData(data);
+      gridOptions.data = data;
+      projectName.value = data[0].project_name;
+      quantitys.value=res.data.project.glass_total
+      areas.value=res.data.project.glass_total_area
+
+      // 鏇存柊 optimizeData 涓殑纾ㄩ噺閰嶇疆
+      updateOptimizeDataWithGrindingConfig(processedGrindConfig);
     } else {
       ElMessage.warning(res.msg);
     }
@@ -702,6 +686,19 @@
   });
 };
 
+const updateOptimizeDataWithGrindingConfig = (grindConfig) => {
+  if (grindConfig) {
+    // 鏇存柊 optimizeData 涓殑纾ㄩ噺閰嶇疆
+    optimizeData.value.grindingConfig = {
+      leftEdge: parseFloat(grindConfig.leftEdge) || 0,
+      upEdge: parseFloat(grindConfig.upEdge) || 0,
+      rightEdge: parseFloat(grindConfig.rightEdge) || 0,
+      downEdge: parseFloat(grindConfig.downEdge) || 0,
+      autoFillEdge: grindConfig.autoFillEdge === "true",
+      minAutoLength: parseFloat(grindConfig.minAutoLenght) || 0
+    };
+  }
+};
 
 const firstLoading = async() => {
   request.post(`/glassOptimize/selectOptimizeParms/${username}`).then((res) => {
@@ -798,6 +795,7 @@
   });*/
 };
 
+const grindingConfig = ref(null);
 
 const loadGrindingConfiguration = async () => {
   return new Promise((resolve) => {
@@ -817,10 +815,11 @@
             }
             return formattedItem;
           });
+          // 淇濆瓨纾ㄩ噺閰嶇疆
+          grindingConfig.value = formattedData[0];
           resolve(formattedData[0]);
         } else {
-          // 鎻愪緵榛樿閰嶇疆
-          resolve({
+          const defaultConfig = {
             leftEdge: '0',
             upEdge: '0',
             rightEdge: '0',
@@ -828,12 +827,13 @@
             quickEdge: '1',
             autoFillEdge: 'false',
             minAutoLenght: '0'
-          });
+          };
+          grindingConfig.value = defaultConfig;
+          resolve(defaultConfig);
         }
       } else {
         ElMessage.warning(res.msg);
-        // 鎻愪緵榛樿閰嶇疆
-        resolve({
+        const defaultConfig = {
           leftEdge: '0',
           upEdge: '0',
           rightEdge: '0',
@@ -841,11 +841,12 @@
           quickEdge: '1',
           autoFillEdge: 'false',
           minAutoLenght: '0'
-        });
+        };
+        grindingConfig.value = defaultConfig;
+        resolve(defaultConfig);
       }
     }).catch(() => {
-      // 鎻愪緵榛樿閰嶇疆
-      resolve({
+      const defaultConfig = {
         leftEdge: '0',
         upEdge: '0',
         rightEdge: '0',
@@ -853,7 +854,9 @@
         quickEdge: '1',
         autoFillEdge: 'false',
         minAutoLenght: '0'
-      });
+      };
+      grindingConfig.value = defaultConfig;
+      resolve(defaultConfig);
     });
   });
 };
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/AddProcessCard.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/AddProcessCard.vue
index d32e8dd..ff56d97 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/AddProcessCard.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/AddProcessCard.vue
@@ -218,7 +218,8 @@
     storage: true
   },
   sortConfig: {
-    multiple: true
+    multiple: true,
+    chronological: true
   },
   editConfig: {
     trigger: 'click',
@@ -283,12 +284,6 @@
   ],//琛ㄥご鎸夐挳
 
   toolbarConfig: {
-    slots:{
-      buttons: "toolbar_buttons"
-    },
-    buttons: [{
-
-    }],
     // import: false,
     // export: true,
     // print: true,
@@ -323,54 +318,6 @@
 
 })
 const gridEventsRight = {
-  toolbarButtonClick({code}) {
-    const $grid = xGridLeft.value
-    if ($grid) {
-      switch (code) {
-        case 'sorting': {
-          request.post(`/processCard/selectSortingCard/${orderId}/${productionId}/${flashback.value}/${optionVal.value}`, filterData.value).then((res) => {
-            if (res.code == 200) {
-              pageTotal.value = res.data.total
-              maxProcseeId = res.data.maxFlowCard[0].process_id
-              orderOtherMoney.value = res.data.orderOtherMoney
-
-              //宸叉湁鐨勪笉娣诲姞
-              const dynamicFields = orderOtherMoney.value.map(item => item.column)
-              gridOptions.columns = gridOptions.columns.filter(col => !dynamicFields.includes(col.field))
-
-              // 娣诲姞鏂扮殑鍔ㄦ�佸垪
-              orderOtherMoney.value.forEach(item => {
-                let column = {
-                  field: `${item.column}`,
-                  width: 100,
-                  title: item.alias,
-                  filters: [{data: ''}],
-                  slots: {filter: 'num1_filter'},
-                  filterMethod: filterChanged,
-                  sortable: true
-                }
-
-                gridOptions.columns.push(column)
-
-              })
-              produceList = res.data.data
-              produceList.forEach(item => {
-
-                item.shape = (item.shape == 2) ? t('order.alien') : t('order.universalShape');
-              })
-              xGrid.value.reloadData(produceList)
-              gridOptions.loading = false
-            } else {
-              ElMessage.warning(res.msg)
-            }
-          })
-          return;
-
-        }
-
-      }
-    }
-  },
   formSubmit () {
     let form = gridOptions.formConfig.data
     form.orderId =orderId
@@ -1138,46 +1085,6 @@
                 @checkbox-all="handleCheckboxChange"
                 @checkbox-range-end="handleCheckboxChange"
             >
-
-              <!-- 鑷畾涔� toolbar_buttons 鎻掓Ы -->
-              <template #toolbar_buttons="{ $grid }">
-
-
-                <!-- 鎵嬪姩鍐欏嚭鎵�鏈夋寜閽� -->
-                &nbsp;
-                <el-select
-                    :default-first-option="true"
-                    ref="getSelect" style="width: 80px"
-                    v-model="optionVal"
-                    class="m-2"
-                >
-                  <el-option
-                      v-for="item in options"
-                      :key="item.value"
-                      :label="item.label"
-                      :value="item.value"
-                  />
-                </el-select>
-                &nbsp;
-                <el-button
-                    type="primary"
-                    style="margin-right:8px;width: 50px"
-                    @click="$grid.dispatchEvent('toolbar-button-click', { code: 'sorting' })"
-                >
-                  {{ t('processCard.sorting') }}
-                </el-button>
-
-                <el-checkbox
-                    :model-value="flashback === 0"
-                    @change="onFlashbackChange"
-                >
-                  {{ t('processCard.flashback') }}
-                </el-checkbox>
-
-
-              </template>
-
-
 
               <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
               <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
diff --git a/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue b/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
index f26755b..76c6ea9 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
@@ -2,7 +2,7 @@
 import {computed, nextTick, onMounted, onUnmounted, reactive, ref, toRefs} from "vue";
 import {useRouter,useRoute} from 'vue-router'
 import request from "@/utils/request";
-import {ElMessage} from "element-plus";
+import {ElCheckbox, ElMessage} from "element-plus";
 import {changeFilterEvent, filterChanged} from "@/hook"
 import domZIndex from 'dom-zindex'
 import {indexOf} from "xe-utils";
@@ -21,6 +21,9 @@
 const router = useRouter()
 const route = useRoute()
 const user=userInfo()
+//鏄惁澶嶅悎宸ュ簭
+const laminating = ref(null)
+
 //瀹氫箟琛ㄥご鏁版嵁
 const titleUploadData = ref({
   //鏄惁鍚堢墖宸ュ簭
@@ -76,6 +79,9 @@
 let layer=''
 let technologicalProcess=''
 let processName = ref([])
+
+//闅愯棌鍏ㄩ儴瀹屽伐搴忓彿
+let  hiddenVal = ref(1)
 
 //瀹氫箟鎺ユ敹鍔犺浇琛ㄥご涓嬫媺鏁版嵁
 const titleSelectJson = ref({
@@ -420,7 +426,7 @@
             return new Error(t('reportingWorks.enterIntegerGreaterThanEqualTo'))
             //瀹屽伐+娆$牬鏁伴噺涓嶈兘澶т簬鍙畬宸ユ暟閲�
           }else if((row.completedQuantity*1+brokenNum*1)>row.quantity*1){
-            return new Error((`瀹屽伐+娆$牬鏁伴噺涓嶈兘澶т簬鍙畬宸ユ暟閲廯))
+            return new Error(t('reportingWorks.pleaseNumber11'))
             //鏈瀹屽伐鏁伴噺涓嶈兘澶т簬瀹屽伐鏁伴噺
           }else  if(row.quantity_card<row.completedQuantity){
             return new Error(t('reportingWorks.pleaseNumber10'))
@@ -438,9 +444,9 @@
 
           //褰撳彲鎿嶄綔鏁伴噺涓�0锛屽苟涓斿畬宸ユ暟閲忎笉绛変簬鍙畬宸ユ暟閲忔椂
           if(row.minQuantity===0 && val!==totalQuantity ){
-            return new Error(`鏈伐搴忔姤宸ユ暟锛�${okVal}+${val}=${okVal+val}\n
-                              涓嬪伐搴忔姤宸ユ暟锛�${nextQuantitySum}\n
-                              鏈伐搴忎慨鏀规暟涓嶈兘灏忎簬涓嬪伐搴忔姤宸ユ暟
+            return new Error(`${t('reportingWorks.pleaseNumber12')} ${okVal}+${val}=${okVal+val}\n
+                              ${t('reportingWorks.pleaseNumber13')} ${nextQuantitySum}\n
+                              ${t('reportingWorks.pleaseNumber14')}
             `)
           }
           if(titleUploadData.value.reportingWorkId!=null  && (val>totalQuantity ||  val<(row.quantity-row.minQuantity) )){
@@ -458,6 +464,9 @@
       {code: 'saveReportingWorkReview', name: t('reportingWorks.saveAndReview'), status: 'primary', icon: 'vxe-icon-save',disabled:true},
       {code: 'saveWorkStorage', name: t('reportingWorks.saveWorkStorage'), status: 'primary', icon: 'vxe-icon-save'},
     ],
+    // slots: {
+    //   tools: 'toolbar_buttons'
+    // },
     zoom: true,
     custom: true
   },
@@ -1282,9 +1291,9 @@
 
 
       //缁戝畾涓嬫柟琛ㄦ牸
-      detail.value = res.data.Detail
+
       // 浣跨敤map鏂规硶鏉ュ鐞嗘瘡涓璞�
-      let modifiedCollection = detail.value.map(item => {
+      let modifiedCollection = res.data.Detail.map(item => {
         if (item.reviewed_state === 1) {
           return { ...item, reviewed_state: "宸插鏍�" };
         }
@@ -1296,8 +1305,12 @@
           return item;
         }
       });
-      xGrid.value.reloadData(modifiedCollection)
+      detail.value = modifiedCollection
+      xGrid.value.reloadData(detail.value)
       hideButton()
+      // nextTick(() => {
+      //   hiddenCompletedOk()
+      // })
     } else {
       ElMessage.warning(res.msg)
     }
@@ -1483,7 +1496,7 @@
   const seen = new Set();
   const result = rawData.filter(item => {
     // 1. 鍏堟妸 completedQuantity 涓� 0 鐨勫墧闄�
-    if (item.completedQuantity === 0) {
+    if (item.completedQuantity === 0 || item.completedQuantity =="0" || item.completedQuantity =="") {
       return false;
     }
     // 2. 閬囧埌鐩稿悓 order_number锛屽彧淇濈暀绗竴娆★紝鍚庨潰閮戒涪寮�
@@ -1585,6 +1598,29 @@
   }
 
 
+}
+
+const onHiddenChange = (checked) => {
+  hiddenVal.value = checked ? 1 : 0
+  hiddenCompletedOk()
+}
+
+const hiddenCompletedOk = () => {
+  const $grid = xGrid.value
+  const data = $grid.getTableData().fullData
+  const laminating = titleUploadData.value.laminating
+  const filteredData = data.filter(row => {
+    return row.completedQuantity>0 //杩囨护鍙畬宸ユ暟閲忎负0鐨�
+  })
+  if (laminating == ''){
+    if (hiddenVal.value == 1){
+      // 閲嶆柊鍔犺浇杩囨护鍚庣殑鏁版嵁
+      $grid.loadData(filteredData)
+    }else {
+      //鍘熷鏁版嵁
+      $grid.loadData(detail.value);
+    }
+  }
 }
 </script>
 
@@ -1793,7 +1829,15 @@
             </div>
           </div>
         </template>
-
+        <template #toolbar_buttons>
+          <el-checkbox
+              :model-value="hiddenVal === 1"
+              @change="onHiddenChange"
+          >
+            {{ t('reportingWorks.hiddenVal') }}
+          </el-checkbox>
+          &nbsp;&nbsp;
+        </template>
 
       </vxe-grid>
     </div>
diff --git a/north-glass-erp/northglass-erp/src/views/sd/basicData/CreateBasicData.vue b/north-glass-erp/northglass-erp/src/views/sd/basicData/CreateBasicData.vue
index 12a7e8a..1e8c904 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/basicData/CreateBasicData.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/basicData/CreateBasicData.vue
@@ -229,6 +229,11 @@
           <el-option  :label="$t('orderBasicData.laminatingProcessB')" value="stepB" />
           <el-option  :label="$t('orderBasicData.laminatingProcessC')" value="stepC" />
           <el-option  :label="$t('orderBasicData.laminatingProcessD')" value="stepD" />
+
+<!--          <el-option  :label="$t('orderBasicData.laminatingProcessC')" value="stepA" />澶硅兌宸ュ簭-->
+<!--          <el-option  :label="$t('orderBasicData.laminatingProcessA')" value="stepB" />-->
+<!--          <el-option  :label="$t('orderBasicData.laminatingProcessD')" value="stepC" />-->
+<!--          <el-option  :label="$t('orderBasicData.laminatingProcessB')" value="stepD" />-->
         </el-select>
       </el-col>
     </el-row>
diff --git a/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue b/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue
index 7926fdc..93c0818 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue
@@ -750,6 +750,7 @@
           <order-process
               v-if="tabsValue==='3'"
               :orderId="rowClickIndex===null?null:rowClickIndex.orderId"
+              :row="rowClickIndex===null?{}:rowClickIndex"
           />
         </el-tab-pane>
       </el-tabs>
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java
index b514fe3..bc937be 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java
@@ -312,22 +312,26 @@
     public Map<String, Object> projectInfoSv(String projectNo,String username) {
         Map<String, Object> stringObjectMap = glassOptimizeMapper.selectProjectCount(projectNo);
         Map<String, Object> map = new HashMap<>();
-        if(Integer.parseInt(stringObjectMap.get("optimize_state").toString())==1){
-            map.put("optimizeState", Integer.parseInt(stringObjectMap.get("optimize_state").toString()));
-            map.put("data", glassOptimizeMapper.getOptimizeDetail(projectNo));
-            map.put("project", glassOptimizeMapper.selectProjectCount(projectNo));
-            map.put("grindingTrimming", null);
-        } else if (Integer.parseInt(stringObjectMap.get("tempering_state").toString())==1) {
-            map.put("optimizeState", Integer.parseInt(stringObjectMap.get("optimize_state").toString()));
-            map.put("data", glassOptimizeMapper.analogComputationOptimization(projectNo));
-            map.put("project", glassOptimizeMapper.selectProjectCount(projectNo));
-            map.put("grindingTrimming", glassOptimizeMapper.getGrindingTrimming(username));
-        } else{
-            map.put("optimizeState", Integer.parseInt(stringObjectMap.get("optimize_state").toString()));
-            map.put("data", glassOptimizeMapper.firstOptimization(projectNo));
-            map.put("project", glassOptimizeMapper.selectProjectCount(projectNo));
-            map.put("grindingTrimming", glassOptimizeMapper.getGrindingTrimming(username));
-        }
+//        if(Integer.parseInt(stringObjectMap.get("optimize_state").toString())==1){
+//            map.put("optimizeState", Integer.parseInt(stringObjectMap.get("optimize_state").toString()));
+//            map.put("data", glassOptimizeMapper.getOptimizeDetail(projectNo));
+//            map.put("project", glassOptimizeMapper.selectProjectCount(projectNo));
+//            map.put("grindingTrimming", null);
+//        } else if (Integer.parseInt(stringObjectMap.get("tempering_state").toString())==1) {
+//            map.put("optimizeState", Integer.parseInt(stringObjectMap.get("optimize_state").toString()));
+//            map.put("data", glassOptimizeMapper.analogComputationOptimization(projectNo));
+//            map.put("project", glassOptimizeMapper.selectProjectCount(projectNo));
+//            map.put("grindingTrimming", glassOptimizeMapper.getGrindingTrimming(username));
+//        } else{
+//            map.put("optimizeState", Integer.parseInt(stringObjectMap.get("optimize_state").toString()));
+//            map.put("data", glassOptimizeMapper.firstOptimization(projectNo));
+//            map.put("project", glassOptimizeMapper.selectProjectCount(projectNo));
+//            map.put("grindingTrimming", glassOptimizeMapper.getGrindingTrimming(username));
+//        }
+        map.put("optimizeState", Integer.parseInt(stringObjectMap.get("optimize_state").toString()));
+        map.put("data", glassOptimizeMapper.firstOptimization(projectNo));
+        map.put("project", glassOptimizeMapper.selectProjectCount(projectNo));
+        map.put("grindingTrimming", glassOptimizeMapper.getGrindingTrimming(username));
         return map;
     }
 
diff --git a/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml b/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
index 70f2b4a..87b1cd4 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
@@ -243,7 +243,7 @@
     <select id="getOptimizeDetail">
         SELECT
             h.project_no,
-            h.heat_layout_id as rackNo,
+            h.rack_no as rackNo,
             h.o_width AS width,
             h.o_height AS height,
             (h.height-h.o_height)/2 as shortGrind1,
@@ -280,14 +280,14 @@
             h.project_no =#{projectNo}
         GROUP BY
             h.project_no,
-            h.heat_layout_id,
+            h.rack_no,
             h.width,
             h.height,
             h.process_id,
             h.layer,
             c.order_number
         ORDER BY
-            h.heat_layout_id;
+            h.rack_no;
     </select>
 
     <!--宸ョ▼淇℃伅娴佺▼鍗�-->
@@ -1118,7 +1118,8 @@
             x_axis,
             y_axis,
             patch_state,
-            mark_icon
+            mark_icon,
+            rack_no
             ) VALUES (
             #{projectId},
             #{glass.processId},
@@ -1134,7 +1135,8 @@
             #{glass.x},
             #{glass.y},
             #{glass.patchState},
-            #{glass.markIcon}
+            #{glass.markIcon},
+            #{glass.rackNo}
             );
         </foreach>
     </insert>
diff --git a/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml b/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
index 45be964..4512108 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
@@ -512,7 +512,8 @@
                   and g.technology_number = a.technology_number
         </if>
         where b.reporting_work_id = #{reportingWorkId}
-        GROUP BY c.order_number,c.technology_number) as result
+        GROUP BY c.order_number,c.technology_number
+        order BY c.order_number,c.technology_number) as result
     </select>
 <select id="selectReportingWorkMp" resultMap="reportingWorkMap">
     select rw.reporting_work_id,

--
Gitblit v1.8.0