From 8c29a327707574f1e04cd25218e05ba9b4c8e4a8 Mon Sep 17 00:00:00 2001
From: guoyuji <guoyujie@ng.com>
Date: 星期四, 26 九月 2024 09:59:20 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override

---
 north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue                            |   25 +
 north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi2.vue            |   54 ++-
 north-glass-erp/src/main/java/com/example/erp/controller/mm/MaterialInventoryController.java |    7 
 north-glass-erp/src/main/java/com/example/erp/entity/pp/ReportingWorkDetail.java             |    4 
 north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel1.vue                      |   62 +++-
 north-glass-erp/northglass-erp/src/views/pp/report/CrossProcessBreaking.vue                  |    2 
 north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi1.vue            |   64 +++-
 north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java                  |    2 
 north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabel1.vue                |   63 +++-
 north-glass-erp/src/main/resources/mapper/sd/CustomerMapper.xml                              |    4 
 north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml                                    |   38 ++
 north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java     |    6 
 north-glass-erp/src/main/resources/mapper/pp/Report.xml                                      |    3 
 north-glass-erp/src/main/java/com/example/erp/mapper/mm/MaterialInventoryMapper.java         |    2 
 north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue                   |   19 
 north-glass-erp/northglass-erp/src/components/pp/PrintReworkProcess.vue                      |   24 +
 north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue              |   45 ++-
 north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue                       |   59 +++-
 north-glass-erp/northglass-erp/src/views/pp/processCard/AddProcessCard.vue                   |    1 
 north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue                    |   16 
 north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue          |    6 
 north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java       |    6 
 north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java    |    6 
 north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java           |   19 +
 north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/CreateOutBound.vue           |   10 
 north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue             |   46 ++
 north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java  |  115 ++++---
 north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java       |   27 +
 north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml                           |    7 
 north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkMapper.java             |    6 
 north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml                      |   10 
 north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml                               |   36 ++
 north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductOut.vue          |    8 
 north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java                |   21 +
 34 files changed, 590 insertions(+), 233 deletions(-)

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 bae9cda..aec6100 100644
--- a/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
+++ b/north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
@@ -307,8 +307,6 @@
         <td></td>
         <td></td>
       </tr>
-      </tbody>
-      <tfoot>
       <tr style="height: 14px">
         <td v-for="(itemsum,index) in item.detail" :key="index" colspan="29">
           鏁伴噺锛�
@@ -376,19 +374,22 @@
       </tr>
       <tr v-if="company.remarkSwitch=='1'">
         <td colspan="29">
-         <div style="display: flex;flex-wrap: wrap;">
-           <div  v-for="(itemremark,index) in item.remarkList" :key="index">
+          <div style="display: flex;flex-wrap: wrap;">
+            <div class="nuber_xx" v-for="(itemremark,index) in item.remarkList" :key="index">
              <span v-if="!(itemremark.S02==null&&itemremark.S03==null&&itemremark.S04==null&&itemremark.S05==null)">
                缂栧彿锛歿{itemremark.S01}}
              </span>&nbsp;&nbsp;
-             <span v-if="itemremark.S02!=null">澶囨敞1锛歿{itemremark.S02}}</span>&nbsp;&nbsp;
-             <span v-if="itemremark.S03!=null">澶囨敞2锛歿{itemremark.S03}}</span>&nbsp;&nbsp;
-             <span v-if="itemremark.S04!=null">澶囨敞3锛歿{itemremark.S04}}</span>&nbsp;&nbsp;
-             <span v-if="itemremark.S05!=null">澶囨敞4锛歿{itemremark.S05}}</span>
-           </div>
-         </div>
+              <span v-if="itemremark.S02!=null">澶囨敞1锛歿{itemremark.S02}}</span>&nbsp;&nbsp;
+              <span v-if="itemremark.S03!=null">澶囨敞2锛歿{itemremark.S03}}</span>&nbsp;&nbsp;
+              <span v-if="itemremark.S04!=null">澶囨敞3锛歿{itemremark.S04}}</span>&nbsp;&nbsp;
+              <span v-if="itemremark.S05!=null">澶囨敞4锛歿{itemremark.S05}}</span>
+            </div>
+          </div>
         </td>
       </tr>
+      </tbody>
+      <tfoot>
+
       <tr v-for="(itemtextareas,index) in item.detail" :key="index">
         <td  colspan="29"  style="width: 480px;height: 150px ">
           <div style="width: 100%;height: 100%;text-align: left"><textarea style="height: 99%;width: 99%;border: none;;font-size: 12px;overflow: hidden;text-align: left;vertical-align: middle">{{itemtextareas.processing_note}}</textarea>
@@ -465,7 +466,9 @@
   background: none;
 }
 
-
+.nuber_xx span{
+  font-size: 12px;
+}
 
 
 @media print {
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 e13f741..8c7c700 100644
--- a/north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue
+++ b/north-glass-erp/northglass-erp/src/components/pp/PrintProcessReplenish.vue
@@ -230,7 +230,7 @@
     <table v-for="(item,id) in produceList" id="contentTable" :key="id">
       <thead>
       <tr v-for="(itemFlow,index) in item.detail" :key="index">
-        <td    colspan="33">
+        <td    colspan="34">
           <div style="float: left;">琛ョ墖鍗曞彿锛歿{itemFlow.patch_id}}</div>
           <div id="bj" style="float: right;font-size: 28px">琛� {{ id + 1 }}</div>
           <div>{{ company.companyName }}</div>
@@ -252,7 +252,7 @@
         <td class="tdNowrap">椤圭洰鍚嶇О锛�</td>
         <td colspan="8">{{ items.project }}</td>
         <td class="tdNowrap">宸ヨ壓娴佺▼锛�</td>
-        <td colspan="20"  style="width: 500px">{{ items.process }}</td>
+        <td colspan="21"  style="width: 500px">{{ items.process }}</td>
       </tr>
       <tr v-for="(itemTr,index) in item.detail" :key="index">
         <td class="tdNowrap">纾ㄨ竟绫诲瀷锛�</td>
@@ -260,7 +260,7 @@
         <td class="tdNowrap">鍗曠墖鍚嶇О锛�</td>
         <td colspan="8">{{ itemTr.glass_child }}</td>
         <td class="tdNowrap">浜у搧鍚嶇О锛�</td>
-        <td colspan="20">{{ itemTr.product_name }}</td>
+        <td colspan="21">{{ itemTr.product_name }}</td>
       </tr>
       <tr>
         <td rowspan='2'>搴忓彿</td>
@@ -275,6 +275,7 @@
         <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>
@@ -319,6 +320,7 @@
         <td>{{ itemDatile.patch_reason }}</td>
         <td>{{ itemDatile.patch_processes }}</td>
         <td>{{ itemDatile.responsible_team }}</td>
+        <td>{{ itemDatile.responsible_personnel }}</td>
         <td>{{ itemDatile.remarks }}</td>
         <td></td>
         <td></td>
@@ -344,7 +346,7 @@
       </tbody>
       <tfoot>
       <tr style="height: 14px">
-        <td v-for="(itemsum,index) in item.detail" :key="index" colspan="33">
+        <td v-for="(itemsum,index) in item.detail" :key="index" colspan="34">
           鏁伴噺锛�
           <label>{{ itemsum.quantity }}</label>
           闈㈢Н锛�
@@ -361,6 +363,7 @@
         </td>
 
         <td>瀹屽伐绛惧悕</td>
+        <td colspan="2"></td>
         <td colspan="2"></td>
         <td colspan="2"></td>
         <td colspan="2"></td>
@@ -392,6 +395,7 @@
         <td colspan="2"></td>
         <td colspan="2"></td>
         <td colspan="2"></td>
+        <td colspan="2"></td>
       </tr>
       <tr>
         <td>璐ㄦ绛惧悕</td>
@@ -409,13 +413,14 @@
         <td colspan="2"></td>
         <td colspan="2"></td>
         <td colspan="2"></td>
+        <td colspan="2"></td>
       </tr>
       <tr>
         <td>鍘熺墖绠卞彿</td>
-        <td colspan="28"></td>
+        <td colspan="29"></td>
       </tr>
       <tr v-for="(qrCodeItem,index) in item.detail" :key="index">
-        <td colspan="29">
+        <td colspan="30">
           <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;">
@@ -429,7 +434,7 @@
         </td>
       </tr>
       <tr v-for="(itemtextareas,index) in item.detail" :key="index">
-        <td  colspan="33" rowspan="6" style="width: 99%;height: 150px ">
+        <td  colspan="34" rowspan="6" style="width: 99%;height: 150px ">
           <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 12px;text-align: left">{{itemtextareas.processing_note}}</textarea>
           </div>
         </td>
diff --git a/north-glass-erp/northglass-erp/src/components/pp/PrintReworkProcess.vue b/north-glass-erp/northglass-erp/src/components/pp/PrintReworkProcess.vue
index 05dcd79..44c12f2 100644
--- a/north-glass-erp/northglass-erp/src/components/pp/PrintReworkProcess.vue
+++ b/north-glass-erp/northglass-erp/src/components/pp/PrintReworkProcess.vue
@@ -193,7 +193,7 @@
     <table v-for="(item,id) in produceList" id="contentTable" :key="id">
       <thead>
       <tr v-for="(itemFlow,index) in item.detail" :key="index">
-        <td    colspan="33">
+        <td    colspan="34">
           <div style="float: left;">杩旂墖鍗曞彿锛歿{itemFlow.patch_id}}</div>
           <div id="bj" style="float: right;font-size: 28px">杩� {{ id + 1 }}</div>
           <div>{{ company.companyName }}</div>
@@ -215,7 +215,7 @@
         <td class="tdNowrap">椤圭洰鍚嶇О锛�</td>
         <td colspan="8">{{ items.project }}</td>
         <td class="tdNowrap">宸ヨ壓娴佺▼锛�</td>
-        <td colspan="20"  style="width: 500px">{{ items.process }}</td>
+        <td colspan="21"  style="width: 500px">{{ items.process }}</td>
       </tr>
       <tr v-for="(itemTr,index) in item.detail" :key="index">
         <td class="tdNowrap">纾ㄨ竟绫诲瀷锛�</td>
@@ -223,7 +223,7 @@
         <td class="tdNowrap">鍗曠墖鍚嶇О锛�</td>
         <td colspan="8">{{ itemTr.glass_child }}</td>
         <td class="tdNowrap">浜у搧鍚嶇О锛�</td>
-        <td colspan="20">{{ itemTr.product_name }}</td>
+        <td colspan="21">{{ itemTr.product_name }}</td>
       </tr>
       <tr>
         <td rowspan='2'>搴忓彿</td>
@@ -238,6 +238,7 @@
         <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>
@@ -282,7 +283,9 @@
         <td>{{ itemDatile.patch_reason }}</td>
         <td>{{ itemDatile.patch_processes }}</td>
         <td>{{ itemDatile.responsible_team }}</td>
+        <td>{{ itemDatile.responsible_personnel }}</td>
         <td>{{ itemDatile.remarks }}</td>
+        <td></td>
         <td></td>
         <td></td>
         <td></td>
@@ -307,7 +310,7 @@
       </tbody>
       <tfoot>
       <tr style="height: 14px">
-        <td v-for="(itemsum,index) in item.detail" :key="index" colspan="33">
+        <td v-for="(itemsum,index) in item.detail" :key="index" colspan="34">
           鏁伴噺锛�
           <label>{{ itemsum.quantity }}</label>
           闈㈢Н锛�
@@ -324,6 +327,7 @@
         </td>
 
         <td>瀹屽伐绛惧悕</td>
+        <td colspan="2"></td>
         <td colspan="2"></td>
         <td colspan="2"></td>
         <td colspan="2"></td>
@@ -355,6 +359,7 @@
         <td colspan="2"></td>
         <td colspan="2"></td>
         <td colspan="2"></td>
+        <td colspan="2"></td>
       </tr>
       <tr>
         <td>璐ㄦ绛惧悕</td>
@@ -372,13 +377,14 @@
         <td colspan="2"></td>
         <td colspan="2"></td>
         <td colspan="2"></td>
+        <td colspan="2"></td>
       </tr>
       <tr>
         <td>鍘熺墖绠卞彿</td>
-        <td colspan="28"></td>
+        <td colspan="29"></td>
       </tr>
       <tr v-for="(qrCodeItem,index) in item.detail" :key="index">
-        <td colspan="29">
+        <td colspan="30">
           <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;">
@@ -392,7 +398,7 @@
         </td>
       </tr>
       <tr v-for="(itemtextareas,index) in item.detail" :key="index">
-        <td  colspan="33" rowspan="6" style="width: 99%;height: 150px ">
+        <td  colspan="34" rowspan="6" style="width: 99%;height: 150px ">
           <div style="width: 100%;height: 100%;"><textarea style="height: 99%;width: 99%;border: none;;font-size: 12px;text-align: left">{{itemtextareas.processing_note}}</textarea>
           </div>
         </td>
@@ -457,6 +463,10 @@
   font-size: 12px;
   font-weight: bolder;
 }
+input{
+  border: none;
+  background: none;
+}
 
 @page {
   size: auto;  /* auto is the initial value */
diff --git a/north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/CreateOutBound.vue b/north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/CreateOutBound.vue
index 1f79f6a..3877f4c 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/CreateOutBound.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/mainIngredientStock/CreateOutBound.vue
@@ -317,13 +317,17 @@
 
           })
           request.post("/MaterialInventory/saveMaterialOutbound", flowData.value).then((res) => {
-            if(res.code==200){
+            if(res.code==200 && res.data==="true"){
               ElMessage.success(t('basicData.msg.saveSuccess'))
               router.push({path: '/main/ingredientsStock/MaterialOutbound', query:{random:Math.random()}})
+            }else if(res.data==="false1"){
+              ElMessage.warning("鏁伴噺閿欒锛岃鍒锋柊鍐嶄繚瀛�")
             }else{
-              ElMessage.warning(res.msg)
-              router.push("/login")
+              ElMessage.warning(t('basicData.msg.saveFail'))
             }
+          }).catch((err)=>{
+            ElMessage.error(t('basicData.msg.ServerConnectionError'))
+            router.push("/login")
           })
           break
         }
diff --git a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue
index 0415032..a67f57f 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue
@@ -280,9 +280,13 @@
             })
 
             request.post("/FinishedGoodsInventory/addSelectWarehousing",flowData.value).then((res) => {
-              if(res.code==200 && res.data===true){
+              if(res.code==200 && res.data==="true"){
                 ElMessage.success(t('productStock.receivedSuccessfully'))
                 router.push({path:'/main/productStock/CreateProductStock',query:{random:Math.random()}})
+              }else if(res.data==="false1"){
+                ElMessage.warning("搴撳瓨鏁伴噺涓嶅璇峰埛鏂扮晫闈�")
+              }else if(res.data==="false2"){
+                ElMessage.warning("鏁版嵁涓嶅瓨鍦�")
               }else{
                 ElMessage.warning(t('productStock.entryFailure'))
               }
diff --git a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductOut.vue b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductOut.vue
index 29772a8..fe0477e 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductOut.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductOut.vue
@@ -286,10 +286,14 @@
               orderDetail: selectRecords
             })
             request.post("/FinishedGoodsInventory/addDeliveryDetail", orderDetailData.value).then((res) => {
-              if (res.code == 200 && res.data===true) {
+              if (res.code == 200 && res.data==="true") {
                 ElMessage.success(t('productStock.deliverySuccessful'))
                 router.push({path: '/main/productStock/FinishedProductOut', query: {random: Math.random()}})
-              } else {
+              }else if (res.data==="false1") {
+                ElMessage.warning("鍙戣揣鍗曞凡鍑哄簱璇峰埛鏂扮晫闈�")
+              }else if (res.data==="false2") {
+                ElMessage.warning("鍙戣揣鍗曞簱瀛樻暟涓嶅瓨鍦�")
+              }else {
                 ElMessage.warning(t('productStock.deliveryFailed'))
               }
             }).catch((err)=>{
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 f6c6756..ea77f67 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
@@ -740,6 +740,7 @@
     if ($grid) {
       switch (code) {
         case 'saveFlowCard': {
+          gridLeftOptions.toolbarConfig.buttons[0].disabled=true
           const $table = xGridLeft.value
           const $tableRight = xGrid.value
           if ($table) {
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabel1.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabel1.vue
index 5bbb871..ecf98b0 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabel1.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabel1.vue
@@ -33,32 +33,57 @@
 const type = route.query.type
 const faceOrientation = route.query.faceOrientation
 const lableType = route.query.lableType
+const printType=route.query.printType
 
 onMounted(() => {
-      request.post(`/processCard/getSelectPrintCustomLabel/${type}/1`, data.value).then((res) => {
-        if (res.code == 200) {
-          produceList.value = deepClone(res.data.title)
-          list.value = deepClone(res.data.data)
-          const data = produceList.value[0].value
-          dataList = JSON.parse(`[${data}]`);
-          labelList = dataList[0]
-          for (let i = 0; i < list.value.length; i++) {
-            let count= list.value[i].data.length
-            for (let j = 0; j < count; j++) {
-              for (let k = 0; k < list.value[i].data[j].quantity; k++){
-                lastList.value.push(list.value[i].data[j])
-              }
+  console.log(printType)
+  if(printType==1){
+    request.post(`/processCard/getSelectPrintCustomLabel/${type}/1`, data.value).then((res) => {
+      if (res.code == 200) {
+        produceList.value = deepClone(res.data.title)
+        list.value = deepClone(res.data.data)
+        const data = produceList.value[0].value
+        dataList = JSON.parse(`[${data}]`);
+        labelList = dataList[0]
+        for (let i = 0; i < list.value.length; i++) {
+          let count= list.value[i].data.length
+          for (let j = 0; j < count; j++) {
+            for (let k = 0; k < list.value[i].data[j].quantity; k++){
+              lastList.value.push(list.value[i].data[j])
             }
           }
-        } else {
-          ElMessage.warning(res.msg)
-          router.push("/login")
         }
-      })
+      } else {
+        ElMessage.warning(res.msg)
+        router.push("/login")
+      }
+    })
+  }else if(printType==2){
+    request.post(`/processCard/getSelectPrintCustomLabelDetails/${type}/1`, data.value).then((res) => {
+      if (res.code == 200) {
+        produceList.value = deepClone(res.data.title)
+        list.value = deepClone(res.data.data)
+        const data = produceList.value[0].value
+        dataList = JSON.parse(`[${data}]`);
 
-    }
+        labelList = dataList[0]
 
-)
+        for (let i = 0; i < list.value.length; i++) {
+          let count = list.value[i].data.length
+          for (let j = 0; j < count; j++) {
+            for (let k = 0; k < list.value[i].data[j].quantity; k++) {
+              lastList.value.push(list.value[i].data[j])
+            }
+          }
+        }
+      } else {
+        ElMessage.warning(res.msg)
+      }
+    })
+  }
+
+
+})
 
 
 // 鎵撳嵃鏂规硶
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi1.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi1.vue
index 6e9bde8..edecc51 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi1.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi1.vue
@@ -33,32 +33,56 @@
 const type = route.query.type
 const faceOrientation = route.query.faceOrientation
 const lableType = route.query.lableType
+const printType=route.query.printType
 
 onMounted(() => {
-      request.post(`/processCard/getSelectPrintCustomLabel/${type}/1`, data.value).then((res) => {
-        if (res.code == 200) {
-          produceList.value = deepClone(res.data.title)
-          list.value = deepClone(res.data.data)
-          const data = produceList.value[0].value
-          dataList = JSON.parse(`[${data}]`);
-          labelList = dataList[0]
-          for (let i = 0; i < list.value.length; i++) {
-            let count= list.value[i].data.length
-            for (let j = 0; j < count; j++) {
-              for (let k = 0; k < list.value[i].data[j].quantity; k++){
-                lastList.value.push(list.value[i].data[j])
-              }
+  if (printType == 1) {
+    request.post(`/processCard/getSelectPrintCustomLabel/${type}/1`, data.value).then((res) => {
+      if (res.code == 200) {
+        produceList.value = deepClone(res.data.title)
+        list.value = deepClone(res.data.data)
+        const data = produceList.value[0].value
+        dataList = JSON.parse(`[${data}]`);
+        labelList = dataList[0]
+        for (let i = 0; i < list.value.length; i++) {
+          let count = list.value[i].data.length
+          for (let j = 0; j < count; j++) {
+            for (let k = 0; k < list.value[i].data[j].quantity; k++) {
+              lastList.value.push(list.value[i].data[j])
             }
           }
-        } else {
-          ElMessage.warning(res.msg)
-          router.push("/login")
         }
-      })
+      } else {
+        ElMessage.warning(res.msg)
+        router.push("/login")
+      }
+    })
 
-    }
+  }else if(printType==2){
+    request.post(`/processCard/getSelectPrintCustomLabelDetails/${type}/1`, data.value).then((res) => {
+      if (res.code == 200) {
+        produceList.value = deepClone(res.data.title)
+        list.value = deepClone(res.data.data)
+        const data = produceList.value[0].value
+        dataList = JSON.parse(`[${data}]`);
 
-)
+        labelList = dataList[0]
+
+        for (let i = 0; i < list.value.length; i++) {
+          let count = list.value[i].data.length
+          for (let j = 0; j < count; j++) {
+            for (let k = 0; k < list.value[i].data[j].quantity; k++) {
+              lastList.value.push(list.value[i].data[j])
+            }
+          }
+        }
+      } else {
+        ElMessage.warning(res.msg)
+      }
+    })
+  }
+
+})
 
 
 // 鎵撳嵃鏂规硶
@@ -161,7 +185,7 @@
   height: 35px;
 }
 .row1 span {
-  font-size: 14pt;
+  font-size: 15pt;
 }
 
 .row2 {
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi2.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi2.vue
index af129c0..265260d 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi2.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi2.vue
@@ -33,29 +33,49 @@
 const type = route.query.type
 const faceOrientation = route.query.faceOrientation
 const lableType = route.query.lableType
+const printType=route.query.printType
 
 onMounted(() => {
-  request.post(`/processCard/getSelectPrintLabel1`,data.value).then((res) => {
-    if (res.code == 200) {
-      produceList.value = deepClone(res.data.data)
-      for (let i = 0; i < produceList.value.length; i++) {
-        let count= produceList.value[i].data.length
-        for (let j = 0; j < count; j++) {
-          for (let k = 0; k < produceList.value[i].data[j].quantity; k++){
-            labelList.value.push(produceList.value[i].data[j])
+  if (printType == 1) {
+    request.post(`/processCard/getSelectPrintLabel1`, data.value).then((res) => {
+      if (res.code == 200) {
+        produceList.value = deepClone(res.data.data)
+        for (let i = 0; i < produceList.value.length; i++) {
+          let count = produceList.value[i].data.length
+          for (let j = 0; j < count; j++) {
+            for (let k = 0; k < produceList.value[i].data[j].quantity; k++) {
+              labelList.value.push(produceList.value[i].data[j])
+            }
+
           }
-
         }
+      } else {
+        ElMessage.warning(res.msg)
+        router.push("/login")
       }
-    } else {
-      ElMessage.warning(res.msg)
-      router.push("/login")
-    }
-  })
+    })
 
-    }
+  }else if(printType==2){
+    request.post(`/processCard/getSelectPrintLabelDetails`, data.value).then((res) => {
+      if (res.code == 200) {
+        produceList.value = deepClone(res.data.data)
+        for (let i = 0; i < produceList.value.length; i++) {
+          let count = produceList.value[i].data.length
+          for (let j = 0; j < count; j++) {
+            for (let k = 0; k < produceList.value[i].data[j].quantity; k++) {
+              labelList.value.push(produceList.value[i].data[j])
+            }
 
-)
+          }
+        }
+      } else {
+        ElMessage.warning(res.msg)
+        router.push("/login")
+      }
+    })
+  }
+
+})
 
 
 // 鎵撳嵃鏂规硶
@@ -163,7 +183,7 @@
   height: 35px;
 }
 .row1 span {
-  font-size: 14pt;
+  font-size: 15pt;
 }
 .row2 {
   font-size: 12pt;
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
index 3ef2eaa..ebb6d10 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
@@ -414,7 +414,10 @@
               id += selectRecords[i].id + "|"
             }
           }
-          router.push({path: '/main/processCard/PrintLabel', query: {printList: JSON.stringify(selectRecords)}})
+          router.push({
+            path: '/main/processCard/PrintLabel',
+            query: {printList: JSON.stringify(selectRecords),printType:1}
+          })
 
           break
         }
@@ -434,7 +437,7 @@
           }
           router.push({
             path: '/main/processCard/PrintCustomLabelSemi2',
-            query: {printList: JSON.stringify(selectRecords)}
+            query: {printList: JSON.stringify(selectRecords),printType:1}
           })
 
           break
@@ -506,7 +509,8 @@
                   type: type,
                   faceOrientation: faceOrientation,
                   lableType: lableTypes,
-                  printList: JSON.stringify(selectRecords)
+                  printList: JSON.stringify(selectRecords),
+                  printType:1
                 }
               })
             }
@@ -525,7 +529,8 @@
                   type: type,
                   faceOrientation: faceOrientation,
                   lableType: lableTypes,
-                  printList: JSON.stringify(selectRecords)
+                  printList: JSON.stringify(selectRecords),
+                  printType:1
                 }
               })
             }
@@ -536,7 +541,8 @@
                 type: type,
                 faceOrientation: faceOrientation,
                 lableType: lableTypes,
-                printList: JSON.stringify(selectRecords)
+                printList: JSON.stringify(selectRecords),
+                printType:1
               }
             })
 
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue
index 0794b79..96147ee 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCardDetails.vue
@@ -35,7 +35,7 @@
 const printVisible = ref(false)
 let selectRecords = ref(null)
 let titleStyleVisible = ref(false)
-
+let lastList = ref([])
 const selectRecordsData = ref({
   printList: []
 })
@@ -125,7 +125,18 @@
     value: '1',
     label: t('processCard.finishedProductLabel'),
   },
-
+  /*  {
+      value: '2',
+      label: t('processCard.halfProductLabel'),
+    },*/
+  {
+    value: `${company.printLabel.labelValue}`,
+    label: `${company.printLabel.labelType}`,
+  },
+  {
+    value: `${company.printLabel.labelValue3}`,
+    label: `${company.printLabel.labelType3}`,
+  },
 ]
 let hidePrintLabels = company.printLabel.hideButton;
 
@@ -321,8 +332,8 @@
       {code: 'customLabel', name: t('processCard.customLabelPrinting'), status: 'primary'},
       {code: 'printLabel', name: t('processCard.labelPrinting'), status: 'primary'},
       {code: 'printLabel2', name: t('processCard.labelPrinting2'), status: 'primary'},
-      {code: 'printLabel3', name: '鏍囩鎵撳嵃2', status: 'primary'},
-      {code: 'printTest', name: "娴嬭瘯鎵撳嵃", status: 'primary'},
+      {code: 'printLabel3', name: '鎴愬搧鎵撳嵃2', status: 'primary'},
+      {code: 'printTest', name: "鍙紪杈戞墦鍗�", status: 'primary'},
       // {code: 'printLike', name: "鍚岄厤缃墦鍗�", status: 'primary'},
     ],
     // import: false,
@@ -400,7 +411,10 @@
               id += selectRecords[i].id + "|"
             }
           }
-          router.push({path: '/main/processCard/PrintLabel', query: {printList: JSON.stringify(selectRecords)}})
+          router.push({
+            path: '/main/processCard/PrintLabel',
+            query: {printList: JSON.stringify(selectRecords),printType:2}
+          })
 
           break
         }
@@ -420,7 +434,7 @@
           }
           router.push({
             path: '/main/processCard/PrintCustomLabelSemi2',
-            query: {printList: JSON.stringify(selectRecords)}
+            query: {printList: JSON.stringify(selectRecords),printType:2}
           })
 
           break
@@ -472,21 +486,23 @@
             }
           }
           if (lableTypes == 1) {
-
+            console.log(company.label)
             labelRow.value.list = JSON.stringify(selectRecords)
             labelRow.value.faceOrientation = faceOrientation
             labelRow.value.type = type
             labelRow.value.lableType = lableTypes
+            lastList.value = []
             if (company.label === 1) {
               dialogTableVisibleLabel.value = true
             } else if (company.label === 2) {
               router.push({
-                path: '/main/processCard/PrintCustomLabel',
+                path: '/main/processCard/PrintCustomLabelCZ',
                 query: {
                   type: type,
                   faceOrientation: faceOrientation,
                   lableType: lableTypes,
-                  printList: JSON.stringify(selectRecords)
+                  printList: JSON.stringify(selectRecords),
+                  printType:2
                 }
               })
             }
@@ -496,16 +512,18 @@
             labelRow.value.faceOrientation = faceOrientation
             labelRow.value.type = type
             labelRow.value.lableType = lableTypes
+            lastList.value = []
             if (company.label === 1) {
               dialogTableVisibleCustomLabel.value = true
             } else if (company.label === 2) {
               router.push({
-                path: '/main/processCard/PrintCustomLabelSemi',
+                path: '/main/processCard/PrintCustomLabelSemiCZ',
                 query: {
                   type: type,
                   faceOrientation: faceOrientation,
                   lableType: lableTypes,
-                  printList: JSON.stringify(selectRecords)
+                  printList: JSON.stringify(selectRecords),
+                  printType:2
                 }
               })
             }
@@ -516,7 +534,8 @@
                 type: type,
                 faceOrientation: faceOrientation,
                 lableType: lableTypes,
-                printList: JSON.stringify(selectRecords)
+                printList: JSON.stringify(selectRecords),
+                printType:2
               }
             })
 
@@ -627,7 +646,7 @@
     if (hidePrintLabels == 'true') {
       return button.code !== 'printLabel' && button.code !== 'printLabel2';
     } else {
-      return true && button.code !== 'printLike'; // 鏄剧ず璇ユ寜閽�
+      return true && button.code !== 'printLike' && button.code !== 'printLabel3'&& button.code !== 'printTest'; // 鏄剧ず璇ユ寜閽�
     }
   })
 }
@@ -759,6 +778,7 @@
         <el-button v-print="printContentLabel" :icon="Printer" circle/>
       </template>
       <print-custom-label id="childLabel"
+                          :lastList = 'lastList'
                           :faceOrientation="labelRow.faceOrientation"
                           :lableType="labelRow.lableType"
                           :list="labelRow.list"
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue
index 628e4d1..d406e7e 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue
@@ -24,8 +24,10 @@
 
 const {currentRoute} = useRouter()
 const route = currentRoute.value
+const printType=route.query.printType
 projectNo.value = route.query.projectNo
 type.value = route.query.type
+
 onMounted(() => {
   if(projectNo.value!=null){
     request.post(`/processCard/getSelectPrintLabel/${projectNo.value}/${type.value}`).then((res) => {
@@ -37,25 +39,48 @@
       }
     })
   }else{
-    data.value.printList = JSON.parse(route.query.printList)
-    request.post(`/processCard/getSelectPrintLabel1`,data.value).then((res) => {
-      if (res.code == 200) {
-        produceList.value = deepClone(res.data.data)
-        for (let i = 0; i < produceList.value.length; i++) {
-         let count= produceList.value[i].data.length
-          for (let j = 0; j < count; j++) {
-            for (let k = 0; k < produceList.value[i].data[j].quantity; k++){
-              labelList.value.push(produceList.value[i].data[j])
+    console.log(printType)
+    if (printType == 1) {
+      data.value.printList = JSON.parse(route.query.printList)
+      request.post(`/processCard/getSelectPrintLabel1`,data.value).then((res) => {
+        if (res.code == 200) {
+          produceList.value = deepClone(res.data.data)
+          for (let i = 0; i < produceList.value.length; i++) {
+            let count= produceList.value[i].data.length
+            for (let j = 0; j < count; j++) {
+              for (let k = 0; k < produceList.value[i].data[j].quantity; k++){
+                labelList.value.push(produceList.value[i].data[j])
+              }
+
+
             }
-
-
           }
+        } else {
+          ElMessage.warning(res.msg)
+          router.push("/login")
         }
-      } else {
-        ElMessage.warning(res.msg)
-        router.push("/login")
-      }
-    })
+      })
+    }else if(printType==2){
+      data.value.printList = JSON.parse(route.query.printList)
+      request.post(`/processCard/getSelectPrintLabelDetails`, data.value).then((res) => {
+        if (res.code == 200) {
+          produceList.value = deepClone(res.data.data)
+          for (let i = 0; i < produceList.value.length; i++) {
+            let count = produceList.value[i].data.length
+            for (let j = 0; j < count; j++) {
+              for (let k = 0; k < produceList.value[i].data[j].quantity; k++) {
+                labelList.value.push(produceList.value[i].data[j])
+              }
+
+            }
+          }
+        } else {
+          ElMessage.warning(res.msg)
+          router.push("/login")
+        }
+      })
+    }
+
   }
 
 
@@ -193,7 +218,7 @@
   height: 20px;
 }
 .row1 span {
-  font-size: 8pt;
+  font-size: 10pt;
   font-weight: bold;
 }
 
diff --git a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel1.vue b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel1.vue
index 52683af..a4ba061 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel1.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel1.vue
@@ -32,32 +32,56 @@
 const type = route.query.type
 const faceOrientation = route.query.faceOrientation
 const lableType = route.query.lableType
+const printType=route.query.printType
 
 onMounted(() => {
-      request.post(`/processCard/getSelectPrintCustomLabel/${type}/1`, data.value).then((res) => {
-        if (res.code == 200) {
-          produceList.value = deepClone(res.data.title)
-          list.value = deepClone(res.data.data)
-          const data = produceList.value[0].value
-          dataList = JSON.parse(`[${data}]`);
-          labelList = dataList[0]
-          for (let i = 0; i < list.value.length; i++) {
-            let count= list.value[i].data.length
-            for (let j = 0; j < count; j++) {
-              for (let k = 0; k < list.value[i].data[j].quantity; k++){
-                lastList.value.push(list.value[i].data[j])
-              }
+  if (printType == 1) {
+    request.post(`/processCard/getSelectPrintCustomLabel/${type}/1`, data.value).then((res) => {
+      if (res.code == 200) {
+        produceList.value = deepClone(res.data.title)
+        list.value = deepClone(res.data.data)
+        const data = produceList.value[0].value
+        dataList = JSON.parse(`[${data}]`);
+        labelList = dataList[0]
+        for (let i = 0; i < list.value.length; i++) {
+          let count = list.value[i].data.length
+          for (let j = 0; j < count; j++) {
+            for (let k = 0; k < list.value[i].data[j].quantity; k++) {
+              lastList.value.push(list.value[i].data[j])
             }
           }
-        } else {
-          ElMessage.warning(res.msg)
-          router.push("/login")
         }
-      })
+      } else {
+        ElMessage.warning(res.msg)
+        router.push("/login")
+      }
+    })
 
-    }
+  }else if(printType==2){
+    request.post(`/processCard/getSelectPrintCustomLabelDetails/${type}/1`, data.value).then((res) => {
+      if (res.code == 200) {
+        produceList.value = deepClone(res.data.title)
+        list.value = deepClone(res.data.data)
+        const data = produceList.value[0].value
+        dataList = JSON.parse(`[${data}]`);
 
-)
+        labelList = dataList[0]
+
+        for (let i = 0; i < list.value.length; i++) {
+          let count = list.value[i].data.length
+          for (let j = 0; j < count; j++) {
+            for (let k = 0; k < list.value[i].data[j].quantity; k++) {
+              lastList.value.push(list.value[i].data[j])
+            }
+          }
+        }
+      } else {
+        ElMessage.warning(res.msg)
+      }
+    })
+  }
+
+})
 
 
 // 鎵撳嵃鏂规硶
diff --git a/north-glass-erp/northglass-erp/src/views/pp/report/CrossProcessBreaking.vue b/north-glass-erp/northglass-erp/src/views/pp/report/CrossProcessBreaking.vue
index e39998a..2f27376 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/report/CrossProcessBreaking.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/report/CrossProcessBreaking.vue
@@ -14,7 +14,7 @@
     {field: 'thisProcess',width: 120, title: t('reportingWorks.reportingProcess'), sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
     {field: 'responsibleProcess',width: 120, title: t('reportingWorks.responsibleProcess'), sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
     {field: 'responsibleTeam', width: 130,title: t('reportingWorks.responsibleTeam'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'breakageType', width: 100,title: t('reportingWorks.breakageType'), sortable: true,showOverflow:"ellipsis"},
+    {field: 'breakageType', width: 120,title: t('reportingWorks.breakageType'), sortable: true,showOverflow:"ellipsis",filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
     {field: 'breakageReason', width: 100,title: t('reportingWorks.breakageReason'), sortable: true,showOverflow:"ellipsis"},
     {field: 'breakageQuantity', width: 100,title: t('reportingWorks.quantityBroken'), sortable: true},
     {field: 'area',width: 100, title: t('reportingWorks.wornArea'), sortable: true},
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 0a3edbe..595cdeb 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
@@ -103,6 +103,10 @@
         titleSelectJson.value = res.data.basic
         layer= res.data.layer
 
+        //娣诲姞琛ョ墖鐘舵�佸垪
+        let column = {field: 'patchStatusOther', width: 90,title: res.data.title}
+        gridOptions.columns.push(column)
+
         const s01Values = [];
         for (let i = 0; i < res.data.reportingWorkDetails.length; i++) {
           const s01Values = [];
@@ -145,7 +149,6 @@
 })
 
 const data = [{id:1,num:2},{id:1,num:3},{id:2,num:2},{id:1,num:2}];
-
 
 //琛ㄥ熬姹傚拰
 const sumNum = (list, field) => {
@@ -428,12 +431,12 @@
         }
         case 'update':  {
           //鏍规嵁琛ョ墖鐘舵�佸垽鏂槸鍚﹁兘淇敼
-          request.post(`/reportingWork/getPatchCondition/${route.query.reportingWorkId}`).then(async (res) => {
-            if (res.code == 200) {
-              if (res.data > 0) {
-                ElMessage.error("璇ユ姤宸ュ寘鍚凡琛ョ墖鏁版嵁锛屼笉鍙慨鏀�!")
-                return
-              } else {
+          // request.post(`/reportingWork/getPatchCondition/${route.query.reportingWorkId}`).then(async (res) => {
+          //   if (res.code == 200) {
+          //     if (res.data > 0) {
+          //       ElMessage.error("璇ユ姤宸ュ寘鍚凡琛ョ墖鏁版嵁锛屼笉鍙慨鏀�!")
+          //       return
+          //     } else {
                 getQuantity()
                 const errMap = await $grid.validate(true)
                 if (errMap) {
@@ -441,11 +444,11 @@
                   return
                 }
                 saveReportingWork(0, 'update')
-              }
-            } else {
-              ElMessage.warning(res.msg)
-            }
-          })
+           //   }
+          //   } else {
+          //     ElMessage.warning(res.msg)
+          //   }
+          // })
 
           break
         }
@@ -463,7 +466,9 @@
     const { rows, column, cell } = params; // 瑙f瀯鑾峰彇琛屻�佸垪鍜屽崟鍏冩牸淇℃伅
     //鐐瑰嚮娆$牬鏁伴噺鏃舵墦寮�鏄庣粏鐣岄潰
     if(column.field=="breakageQuantity"){
-      brokenVisible.value = true
+      if (row.patchStatusOther!="宸茶ˉ鐗�"){
+        brokenVisible.value = true
+      }
     }
   },
   menuClick({menu, row, column}) {
@@ -788,13 +793,12 @@
 
 //绗竴娆″姞杞芥暟鎹�
 let groupChangeProcess = ref(false)//鐢ㄤ簬鏈彮缁勬樉绀洪棶棰�
-request.post(`/reportingWork/selectProcess`).then((res) => {
+request.post(`/reportingWork/selectProcess/${user.user.userId}`).then((res) => {
   if (res.code == 200) {
     titleSelectJson.value.processType = res.data.process
     if(user.user.address!==null && user.user.address!==''){
       titleUploadData.value.thisProcess = user.user.address
       titleUploadData.value.teamsGroupsName = user.user.userName
-      console.log(user.user.address)
       groupChangeProcess.value = true
       if (user.user.address==='鎶�鏈儴澶氭洸' || user.user.address==='澶硅兌'){
         groupChangeProcess.value = false
@@ -1295,6 +1299,16 @@
     return row?.rowClass
 
 }
+const editConfigDisable = reactive({
+  trigger: 'click',
+  mode: 'cell',
+  beforeEditMethod ({ row }) {
+    if (row.patchStatusOther === '宸茶ˉ鐗�') {
+      return false
+    }
+    return true
+  }
+})
 
 </script>
 
@@ -1472,6 +1486,7 @@
           v-on="gridEvents"
           @edit-closed="editClosedEvent"
           :cell-class-name="cellClassName"
+          :edit-config="editConfigDisable"
 
       >
 
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/mm/MaterialInventoryController.java b/north-glass-erp/src/main/java/com/example/erp/controller/mm/MaterialInventoryController.java
index 9a8fece..fbd62e5 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/mm/MaterialInventoryController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/mm/MaterialInventoryController.java
@@ -28,12 +28,9 @@
     @SaCheckPermission("CreateOutbound.add")
     @PostMapping("/saveMaterialOutbound")
     public Result saveMaterialOutbound( @RequestBody Map<String,Object>  object){
-        if(materialInventoryService.saveMaterialOutbound(object)){
-            return Result.seccess();
-        }else {
-            throw new ServiceException(Constants.Code_500,"淇濆瓨澶辫触");
 
-        }
+        return Result.seccess(materialInventoryService.saveMaterialOutbound(object));
+
     }
 
     @ApiOperation("鐗╂枡鏂板鎺ュ彛")
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java
index cd54af1..8d9e052 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ProcessCardController.java
@@ -201,6 +201,12 @@
         return Result.seccess(flowCardService.getSelectPrintLabelSv1(object));
     }
 
+    @ApiOperation("鎵撳嵃鏍囩鏄庣粏鏌ヨ鎺ュ彛")
+    @PostMapping("/getSelectPrintLabelDetails")
+    public Result getSelectPrintLabelDetails(@RequestBody Map<String, Object> object) {
+        return Result.seccess(flowCardService.getSelectPrintLabelDetails(object));
+    }
+
     @ApiOperation("鎵撳嵃鑷畾涔夋爣绛炬暟鎹煡璇㈡帴鍙�")
     @PostMapping("/getSelectPrintCustomLabel/{type}/{lableType}")
     public Result getSelectPrintCustomLabel( @PathVariable String type,
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java
index 8cf2442..67448c5 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java
@@ -40,9 +40,9 @@
         return  Result.seccess(reportingWorkService.AddSelectLastWorkSv(processIdStr,technologyStr,process,reportType));
     }
     @ApiOperation("鏌ヨ宸ュ簭")
-    @PostMapping  ("/selectProcess")
-    public Result SelectProcess()  {
-        return  Result.seccess(reportingWorkService.SelectProcessSv());
+    @PostMapping  ("/selectProcess/{userId}")
+    public Result SelectProcess(@PathVariable String userId)  {
+        return  Result.seccess(reportingWorkService.SelectProcessSv(userId));
     }
 
     @ApiOperation("鎶ュ伐鏂板")
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/pp/ReportingWorkDetail.java b/north-glass-erp/src/main/java/com/example/erp/entity/pp/ReportingWorkDetail.java
index 4268c23..1a207ad 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/pp/ReportingWorkDetail.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/pp/ReportingWorkDetail.java
@@ -69,6 +69,10 @@
     //杩斿伐闈㈢Н
    // private double reworkArea;
 
+    //鎶ュ伐淇敼鐢ㄨˉ鐗囩姸鎬�
+    @TableField(select = false,exist= false)
+    private String patchStatusOther;
+
     //娆$牬鍒楄〃
     @TableField(select = false,exist= false)
     private List<DamageDetails>
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java
index a6a5b81..b146a3d 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java
@@ -3,6 +3,7 @@
 import com.example.erp.entity.mm.FinishedGoodsInventory;
 import com.example.erp.entity.mm.FinishedOperateLog;
 import com.example.erp.entity.pp.FlowCard;
+import com.example.erp.entity.sd.DeliveryDetail;
 import com.example.erp.entity.sd.Order;
 import com.example.erp.entity.sd.OrderDetail;
 import com.example.erp.entity.sd.Product;
@@ -128,6 +129,11 @@
 
     Boolean updateOrderInventory(@Param("orderDetail") OrderDetail orderDetail);
 
+    FlowCard findFlowCard(FlowCard flowCard);
+
+    DeliveryDetail findDeliverydetail(@Param("orderId") String orderId,
+                                      @Param("orderNumber") Integer orderNumber,@Param("deliveryId") String deliveryId);
+
 
 }
 
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/mm/MaterialInventoryMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/mm/MaterialInventoryMapper.java
index 1772c5c..80324c9 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/mm/MaterialInventoryMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/mm/MaterialInventoryMapper.java
@@ -208,4 +208,6 @@
 
     List<Map<String,Object>> getPrintCreateOutboundDetail(String materialOutboundId);
 
+    MaterialInventory getMaterialInventoryById(@Param("id") Long id);
+
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
index d938427..8d786ea 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/FlowCardMapper.java
@@ -88,6 +88,8 @@
 
     List<Map<String, String>> getPrintLabel1(String processId,Integer technologyNumber);
 
+    List<Map<String, String>> getPrintLabelDetail(String processId,Integer orderNumber);
+
     List<Map<String, String>> printFlowCardDetailsMp(String processId, String technologyNumber, String process, FlowCard flowCard);
 
     Boolean printSortMp(String processId, Integer orderNumber, Integer technologyNumber, Integer sort);
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkMapper.java
index 813289a..5b8ff8f 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkMapper.java
@@ -88,4 +88,10 @@
     Boolean updateRWPatchNum(String reportingWorkId, Integer patchNum);
 
     Boolean updateRWDPatchNum(String reportingWorkId, String orderSort, Integer technologyNumber, Integer patchNum);
+
+    String selectUserProcess(String userId);
+
+    List<Map<String,String>> getSelectProcessJiajiao();
+
+    List<Map<String,String>> getSelectProcessDuoqu();
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
index 6d200f6..e415ab2 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
@@ -8,6 +8,7 @@
 import com.example.erp.entity.mm.FinishedGoodsInventory;
 import com.example.erp.entity.mm.FinishedOperateLog;
 import com.example.erp.entity.pp.FlowCard;
+import com.example.erp.entity.sd.DeliveryDetail;
 import com.example.erp.entity.sd.Order;
 import com.example.erp.entity.sd.OrderDetail;
 import com.example.erp.entity.userInfo.Log;
@@ -66,8 +67,8 @@
         return map;
     }
 
-    public Boolean addSelectWarehousing(Map<String,Object> object) {
-        boolean saveState = true;
+    public String addSelectWarehousing(Map<String,Object> object) {
+        String saveState = "true";
         Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
         try {
             //瀹氫箟鍓嶇浼犺緭鐨勬暟鎹�
@@ -110,42 +111,51 @@
                     Integer finishedGoodsInventorycount = finishedGoodsInventoryMapper.findOrderNumberdcount(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber());
                     Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(flowCard.getOrder().getOrderId());
                     Integer ordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(flowCard.getOrder().getOrderId());
-
-                    /*System.out.println("璁㈠崟鎬绘暟:" + ordersum + "宸插叆搴撴暟閲忥細" + ordernumbersum + "鍑嗗鍏ュ簱鏁伴噺" + flowCard.getInventoryQuantity());*/
-                    if (finishedGoodsInventorycount > 0) {
-                        //淇敼搴撳瓨琛ㄥ叆搴撴暟閲�
-                        finishedGoodsInventoryMapper.updateInventory(flowCard,storageRegion, remark);
-                        //淇敼娴佺▼鍗¤〃鍏ュ簱鏁伴噺
-                        finishedGoodsInventoryMapper.updateflowcard(flowCard);
-                        //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
-                        finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),1);
-                        //淇敼璁㈠崟鏄庣粏琛ㄥ叆搴撴暟閲�
-                        finishedGoodsInventoryMapper.updateIntOrderNumberConut(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber(), Long.valueOf(flowCard.getInventoryQuantity()));
-                        //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍏ュ簱
-                        if (ordersum == (ordernumbersum + flowCard.getInventoryQuantity())) {
-                            //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
-                            finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),2);
-                        }
-                    } else {
-                        if (finishedGoodsInventoryMapper.insertFinishedGoodsInventory(flowCard, storageRegion, remark)) {
+                    FlowCard flowCard1=finishedGoodsInventoryMapper.findFlowCard(flowCard);
+                    //鍒ゆ柇搴撳瓨鏁版槸鍚﹀ぇ浜庢湭鍏ュ簱鏁�
+                    if(flowCard1.getReceivedQuantity()+flowCard.getInventoryQuantity()<=flowCard1.getInventoryQuantity()){
+                        /*System.out.println("璁㈠崟鎬绘暟:" + ordersum + "宸插叆搴撴暟閲忥細" + ordernumbersum + "鍑嗗鍏ュ簱鏁伴噺" + flowCard.getInventoryQuantity());*/
+                        if (finishedGoodsInventorycount > 0) {
+                            //淇敼搴撳瓨琛ㄥ叆搴撴暟閲�
+                            finishedGoodsInventoryMapper.updateInventory(flowCard,storageRegion, remark);
                             //淇敼娴佺▼鍗¤〃鍏ュ簱鏁伴噺
                             finishedGoodsInventoryMapper.updateflowcard(flowCard);
+                            //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
+                            finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),1);
                             //淇敼璁㈠崟鏄庣粏琛ㄥ叆搴撴暟閲�
                             finishedGoodsInventoryMapper.updateIntOrderNumberConut(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber(), Long.valueOf(flowCard.getInventoryQuantity()));
+                            //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍏ュ簱
                             if (ordersum == (ordernumbersum + flowCard.getInventoryQuantity())) {
                                 //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
                                 finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),2);
-                            }else{
-                                //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
-                                finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),1);
                             }
+                        } else {
+                            if (finishedGoodsInventoryMapper.insertFinishedGoodsInventory(flowCard, storageRegion, remark)) {
+                                //淇敼娴佺▼鍗¤〃鍏ュ簱鏁伴噺
+                                finishedGoodsInventoryMapper.updateflowcard(flowCard);
+                                //淇敼璁㈠崟鏄庣粏琛ㄥ叆搴撴暟閲�
+                                finishedGoodsInventoryMapper.updateIntOrderNumberConut(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber(), Long.valueOf(flowCard.getInventoryQuantity()));
+                                if (ordersum == (ordernumbersum + flowCard.getInventoryQuantity())) {
+                                    //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
+                                    finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),2);
+                                }else{
+                                    //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
+                                    finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),1);
+                                }
 
 
+                            }
                         }
+                    }else{
+                        TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+                        return "false1";
                     }
+
+
                 }
             }else{
-                return false;
+                TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+                return "false2";
             }
 
         } catch (Exception e) {
@@ -155,7 +165,7 @@
             sysError.setError(e+Arrays.toString(e.getStackTrace()));
             sysError.setFunc("addSelectWarehousing");
             sysErrorService.insert(sysError);
-            saveState = false;
+            saveState = "false";
 
         }
 
@@ -173,8 +183,8 @@
     }
 
 
-    public Boolean addDeliveryDetail(Map<String,Object> object) {
-        boolean saveState = true;
+    public String addDeliveryDetail(Map<String,Object> object) {
+        String saveState = "true";
         //璁剧疆鍥炴粴鐐�
         Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
         try {
@@ -212,36 +222,45 @@
                         deliverydetailsum=0;
                     }
 
+                    DeliveryDetail deliveryDetail=finishedGoodsInventoryMapper.findDeliverydetail(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId());
                     /*System.out.println("璁㈠崟鎬绘暟:" + ordersum + "璁㈠崟搴撳瓨鏁帮細" + orderNumberdsum + "鍑嗗鍑哄簱鏁伴噺" +
                             orderDetail.getWarehouseNum()+ "鍙戣揣鏁伴噺" + orderDetail.getDeliveryDetail().getQuantity()+ "鍙戣揣鎬绘暟" +
                             deliverysum+ "宸插彂鏁伴噺" + deliverydetailsum);*/
+                    //鍒ゆ柇鍙戣揣鍗曠殑搴撳瓨鏄惁瀛樺湪
                     if (finishedGoodsInventorycount > 0) {
-                        if(orderDetail.getWarehouseNum()>=orderDetail.getDeliveryDetail().getQuantity()){
-                            //淇敼搴撳瓨琛ㄥ簱瀛樻暟閲�
-                            finishedGoodsInventoryMapper.updateInventoryInventoryOut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity());
-                            //淇敼鍙戣揣鏄庣粏琛ㄧ姸鎬�
-                            finishedGoodsInventoryMapper.updateDeliveryDetailState(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId(),0);
-                            //淇敼鍙戣揣琛ㄧ姸鎬�
-                            finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),1);
-                            //淇敼璁㈠崟鏄庣粏琛ㄥ彂璐ф暟閲�
-                            finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity());
-                            //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
-                            finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),1);
-                            //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍙戣揣
-                            if (orderNumberdsum == orderDetail.getWarehouseNum()) {
-                                //if (ordersum == (orderDeliveryQuantitySum + orderDetail.getWarehouseNum())) {
-                                //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
-                                finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),2);
-                            }
-                            if (deliverysum==deliverydetailsum+orderDetail.getDeliveryDetail().getQuantity()) {
+                        //鍒ゆ柇鍙戣揣鍗曟槸鍚﹀凡鍑哄簱
+                        if(deliveryDetail==null){
+                            if(orderDetail.getWarehouseNum()>=orderDetail.getDeliveryDetail().getQuantity()){
+                                //淇敼搴撳瓨琛ㄥ簱瀛樻暟閲�
+                                finishedGoodsInventoryMapper.updateInventoryInventoryOut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity());
+                                //淇敼鍙戣揣鏄庣粏琛ㄧ姸鎬�
+                                finishedGoodsInventoryMapper.updateDeliveryDetailState(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId(),0);
                                 //淇敼鍙戣揣琛ㄧ姸鎬�
-                                finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),2);
+                                finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),1);
+                                //淇敼璁㈠崟鏄庣粏琛ㄥ彂璐ф暟閲�
+                                finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity());
+                                //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
+                                finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),1);
+                                //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍙戣揣
+                                if (orderNumberdsum == orderDetail.getWarehouseNum()) {
+                                    //if (ordersum == (orderDeliveryQuantitySum + orderDetail.getWarehouseNum())) {
+                                    //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
+                                    finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),2);
+                                }
+                                if (deliverysum==deliverydetailsum+orderDetail.getDeliveryDetail().getQuantity()) {
+                                    //淇敼鍙戣揣琛ㄧ姸鎬�
+                                    finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),2);
+                                }
                             }
+                        }else{
+                            TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+                            return "false1";
                         }
+
 
                     }else{
                         TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
-                        saveState = false;
+                        return "false2";
                     }
                 }
             }
@@ -253,7 +272,7 @@
             sysError.setError(e+Arrays.toString(e.getStackTrace()));
             sysError.setFunc("addDeliveryDetail");
             sysErrorService.insert(sysError);
-            saveState = false;
+            saveState = "false";
 
         }
         return saveState;
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java b/north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java
index bb9e466..8b06901 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java
@@ -45,8 +45,8 @@
     @Autowired
     LogService logService;
 
-    public Boolean saveMaterialOutbound(Map<String,Object> object) {
-        boolean saveState = true;
+    public String saveMaterialOutbound(Map<String,Object> object) {
+        String saveState = "true";
         //璁剧疆鍥炴粴鐐�
         Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
         String materialOutboundId = "";
@@ -67,7 +67,7 @@
                 if (!materialOutboundDetailLists.isEmpty()) {
                     for (MaterialOutboundDetail materialOutboundDetail : materialOutboundDetailLists) {
                         //杩樺師鐗╂枡搴撳瓨鏁�
-                        materialInventoryMapper.updateMaterialInventoryAvailableInt(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity());
+                        materialInventoryMapper.updateMaterialInventoryAvailableInt(materialOutboundDetail.getInventoryId(), materialOutboundDetail.getOutboundQuantity());
                         /*if(materialOutboundDetail.getUseId()!=null){
                             //杩樺師浼樺寲宸ョ▼搴撳瓨鏁�
                             materialInventoryMapper.updateMaterialInventoryAvailableOptInt(materialOutboundDetail.getUseId(), materialOutboundDetail.getOutboundQuantity());
@@ -95,12 +95,13 @@
 
             if (!materialOutboundDetailList.isEmpty()) {
                 for (MaterialOutboundDetail materialOutboundDetail : materialOutboundDetailList) {
-
-                    Integer materialOutboundDetailMaximum = materialInventoryMapper.getMaterialOutboundDetailMaximum(oddNumber);
-                    //鏂板鏉愭枡鍑哄簱鏄庣粏鏁版嵁
-                    materialInventoryMapper.insertMaterialOutboundDetail(materialOutboundDetail, oddNumber, materialOutboundDetailMaximum + 1);
-                    //淇敼鐗╂枡搴撳瓨琛ㄥ嚭搴撴暟閲�
-                    materialInventoryMapper.updateMaterialInventoryAvailableOut(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity());
+                    MaterialInventory materialInventory = materialInventoryMapper.getMaterialInventoryById(materialOutboundDetail.getId());
+                    if(materialInventory.getAvailableQuantity()>=materialOutboundDetail.getOutboundQuantity()){
+                        Integer materialOutboundDetailMaximum = materialInventoryMapper.getMaterialOutboundDetailMaximum(oddNumber);
+                        //鏂板鏉愭枡鍑哄簱鏄庣粏鏁版嵁
+                        materialInventoryMapper.insertMaterialOutboundDetail(materialOutboundDetail, oddNumber, materialOutboundDetailMaximum + 1);
+                        //淇敼鐗╂枡搴撳瓨琛ㄥ嚭搴撴暟閲�
+                        materialInventoryMapper.updateMaterialInventoryAvailableOut(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity());
                     /*if(materialOutboundDetail.getUseId()!=null){
                         //淇敼浼樺寲宸ョ▼琛ㄥ嚭搴撴暟閲�
                         materialInventoryMapper.updateMaterialInventoryAvailableOptOut(materialOutboundDetail.getUseId(), materialOutboundDetail.getOutboundQuantity());
@@ -108,6 +109,12 @@
                         //淇敼鐗╂枡搴撳瓨琛ㄥ嚭搴撴暟閲�
                         materialInventoryMapper.updateMaterialInventoryAvailableOut(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity());
                     }*/
+                    }else{
+                        TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+                        return "false1";
+                    }
+
+
 
 
                 }
@@ -122,7 +129,7 @@
             sysError.setError(e+Arrays.toString(e.getStackTrace()));
             sysError.setFunc("saveMaterialOutbound");
             sysErrorService.insert(sysError);
-            saveState = false;
+            saveState = "false1";
 
         }
         return saveState;
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
index bbb6624..5d36e8c 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -407,6 +407,27 @@
         return map;
     }
 
+    public Map<String, Object> getSelectPrintLabelDetails(Map<String, Object> object) {
+        Map<String, Object> map = new HashMap<>();
+
+        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//鏈�缁堢粨鏋�
+        List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class);
+        if (!flowCardList.isEmpty()) {
+            for (FlowCard flowCard : flowCardList) {
+                // Integer count=flowCardMapper.getPrintLabelCount(flowCard.getProcessId(), flowCard.getTechnologyNumber());
+                Map<String, Object> itemmap = new HashMap<>();
+                // for (int i = 0; i < count; i++) {
+                itemmap.put("data", flowCardMapper.getPrintLabelDetail(flowCard.getProcessId(), flowCard.getOrderNumber()));
+                list.add(itemmap);
+                //}
+
+            }
+        }
+        map.put("data", list);
+
+        return map;
+    }
+
     public Map<String, Object> printFlowCardDetailsSv(String processId, String technologyNumber, String process, FlowCard flowCard) {
         Map<String, Object> map = new HashMap<>();
         map.put("data", flowCardMapper.printFlowCardDetailsMp(processId, technologyNumber,process, flowCard));
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
index f7f1e84..924c8ed 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -25,7 +25,6 @@
 import com.example.erp.service.userInfo.LogService;
 import com.example.erp.service.userInfo.SysErrorService;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -178,9 +177,21 @@
     }
 
     //鏌ヨ宸ュ簭
-    public Map<String, Object> SelectProcessSv() {
+    public Map<String, Object> SelectProcessSv(String userId) {
         Map<String, Object> map = new HashMap<>();
-        map.put("process", reportingWorkMapper.SelectProcessMp());
+        String process = reportingWorkMapper.selectUserProcess(userId);
+        if (process==null) {
+            map.put("process", reportingWorkMapper.SelectProcessMp());
+        }
+        else {
+            if (process.equals("澶硅兌")){
+                map.put("process",reportingWorkMapper.getSelectProcessJiajiao() );
+            }
+            if (process.equals("鎶�鏈儴澶氭洸")){
+                map.put("process",reportingWorkMapper.getSelectProcessDuoqu() );
+            }
+        }
+
         return map;
     }
 
@@ -392,7 +403,7 @@
         //鏍规嵁鎶ュ伐缂栧彿鑾峰彇灞�
         map.put("layer", reportingWorkMapper.selectLayerByReportingWorkId(reportingWorkId));
         map.put("numberList", flowCardMapper.getGlassNumber(reportingWorkMapper.selectLayerByReportingWorkId(reportingWorkId),reportingWork.getProcessId()));
-
+        map.put("title", "琛ョ墖鐘舵��");
         return map;
 
     }
diff --git a/north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml b/north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml
index b16d288..eff0aa6 100644
--- a/north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml
+++ b/north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml
@@ -885,6 +885,16 @@
         where order_number=#{orderDetail.orderNumber}  and order_id=#{orderDetail.orderId}
     </update>
 
+    <select id="findFlowCard">
+        select * from pp.flow_card
+        where order_number=#{orderNumber} and process_id=#{processId} and order_id=#{order.orderId} group by process_id
+    </select>
+
+    <select id="findDeliverydetail">
+        select * from sd.delivery_detail
+        where order_number=#{orderNumber}  and order_id=#{orderId} and delivery_id=#{deliveryId} and delivery_detail_state=0
+    </select>
+
 
 
 
diff --git a/north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml b/north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml
index 6c7950d..2e46ada 100644
--- a/north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml
+++ b/north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml
@@ -906,5 +906,12 @@
         where modd.material_outbound_id = #{materialOutboundId}
     </select>
 
+    <select id="getMaterialInventoryById" >
+        select
+            *
+        from mm.material_inventory mi
+        where mi.id = #{id}
+    </select>
+
 
 </mapper>
\ No newline at end of file
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 9692ee3..9e35918 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -796,6 +796,38 @@
         group by od.order_number, od.width, od.height
     </select>
 
+    <select id="getPrintLabelDetail">
+        select o.order_id,
+               o.project,
+               o.customer_id,
+               ogd.child_width                as width,
+               ogd.child_height               as height,
+               fc.quantity,
+               od.order_number                as orderNumber,
+               fc.technology_number           as technologyNumber,
+               ogd.glass_child,
+               ogd.process,
+               c.customer_abbreviation        as customer_name,
+               ifnull(od.processing_note, '') as processing_note,
+               bgt.type_name,
+               od.other_columns,
+               od.building_number,
+               od.bend_radius
+        from sd.order as o
+                 left join sd.order_detail as od on o.order_id = od.order_id
+                 left join sd.order_glass_detail as ogd
+                           on ogd.order_id = od.order_id and ogd.order_number = od.order_number
+                 left join pp.flow_card as fc on o.order_id = fc.order_id and
+                                                 od.order_number = fc.order_number and
+                                                 fc.technology_number = ogd.technology_number
+                 left join sd.product pt on pt.id = od.product_id
+                 left join sd.customer c on c.id = o.customer_id
+                 left join sd.basic_glass_type bgt on bgt.type_id = pt.type_id
+        where fc.process_id = #{processId}
+          and fc.order_number = #{orderNumber}
+        group by od.order_number, od.width, od.height
+    </select>
+
     <select id="printFlowCardDetailsMp">
         SELECT fc.process_id,
                fc.order_number,
@@ -1246,7 +1278,8 @@
                pl.patch_type,
                pl.patch_reason,
                pl.patch_processes,
-               pl.responsible_team
+               pl.responsible_team,
+               pl.responsible_personnel
         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
@@ -1420,7 +1453,8 @@
                pl.rework_reason as patch_reason,
                pl.rework_processes as patch_processes,
                pl.responsible_team,
-               pl.rework_team
+               pl.rework_team,
+               pl.responsible_personnel
         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
diff --git a/north-glass-erp/src/main/resources/mapper/pp/Report.xml b/north-glass-erp/src/main/resources/mapper/pp/Report.xml
index a8a2087..afc8321 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/Report.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -254,6 +254,9 @@
         <if test="crossProcessBreakingDTO.glassChild != null and crossProcessBreakingDTO.glassChild != ''">
             and ogd.glass_child regexp #{crossProcessBreakingDTO.glassChild}
         </if>
+        <if test="crossProcessBreakingDTO.breakageType != null and crossProcessBreakingDTO.breakageType != ''">
+            and dd.breakage_type regexp #{crossProcessBreakingDTO.breakageType}
+        </if>
         GROUP BY dd.id
         order by dd.id desc
         limit #{offset},#{pageSize}
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 62ef38f..7f8fbb5 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
@@ -424,6 +424,8 @@
             ifnull(f.completed_quantity,0) as thisQuantitySum ,-- 鏈伐搴忓畬宸ュ拰
             if(c.quantity-f.completed_quantity = 0 ,true,false) as saveFlag,
             e.other_columns,
+        IF(count(pl.id)>0,'宸茶ˉ鐗�','') as patchStatusOther,
+
             <if test="nextProcess != null and nextProcess != ''">  -- 闈炴渶鍚庝竴閬撳伐搴�
                 ifnull(g.completed_quantity,0) as nextQuantitySum,  -- 鍚庡伐搴忓凡瀹屾垚
                 if((f.completed_quantity
@@ -463,6 +465,8 @@
                 and d.technology_number = c.technology_number
             left join sd.order_detail as e
                 on e.order_id = d.order_id and e.order_number = d.order_number
+              left join patch_log as pl on pl.reporting_work_id=b.reporting_work_id
+              and pl.order_sort=a.order_number and pl.technology_number=a.technology_number
 
             left join (select sum(completed_quantity) as completed_quantity ,
                               rw.process_id,
@@ -513,9 +517,9 @@
                o.batch,
                rw.this_process,
                rw.this_completed_quantity,
-               round(ogd.area * rw.this_completed_quantity,2) as completedArea,
+               round(ogd.child_width*ogd.child_height * rw.this_completed_quantity/1000000,2) as completedArea,
                rw.this_worn_quantity,
-               round(ogd.area * rw.this_worn_quantity,2)      as wornArea,
+               round(ogd.child_width*ogd.child_height * rw.this_worn_quantity/1000000,2)      as wornArea,
                rw.device_name,
                rw.teams_groups_name,
                rw.reviewed_state,
@@ -882,4 +886,32 @@
         where reporting_work_id=#{reportingWorkId} and order_number = #{orderSort}
           and technology_number = #{technologyNumber}
     </update>
+
+    <select id="selectUserProcess">
+        select address from erp_user_info.user where login_name=#{userId}
+    </select>
+
+    <select id="getSelectProcessJiajiao">
+        SELECT * FROM (
+                          SELECT * FROM sd.basic_data
+                          WHERE basic_type='product' AND basic_category='process' AND basic_name='澶硅兌'
+
+                          UNION
+
+                          SELECT * FROM sd.basic_data
+                          WHERE basic_type='product' AND basic_category='process' AND basic_name='鍧囪川'
+                      ) AS combined_results;
+    </select>
+
+    <select id="getSelectProcessDuoqu">
+        SELECT * FROM (
+                          SELECT * FROM sd.basic_data
+                          WHERE basic_type='product' AND basic_category='process' AND basic_name='鎶�鏈儴澶氭洸'
+
+                          UNION
+
+                          SELECT * FROM sd.basic_data
+                          WHERE basic_type='product' AND basic_category='process' AND basic_name='閽㈠寲'
+                      ) AS combined_results;
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/north-glass-erp/src/main/resources/mapper/sd/CustomerMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/CustomerMapper.xml
index 2be8943..d4d1026 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/CustomerMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/CustomerMapper.xml
@@ -77,7 +77,7 @@
         o.customer_id,
         o.customer_name,
         sum(od.quantity) as quantity,
-        sum(od.area) as area,
+        sum(od.compute_gross_area) as area,
         od.shape,
         od.width,
         od.height,
@@ -276,7 +276,7 @@
                od.product_name,
                o.customer_name,
                sum(od.quantity)     as quantity,
-               sum(od.area)         as area,
+               sum(od.compute_gross_area)         as area,
                od.price,
                sum(od.gross_amount) as money,
                date(o.create_time)  as create_time

--
Gitblit v1.8.0