From 99d0bb96043ba5d6db66bbfb00f67ca4e09f3ffb Mon Sep 17 00:00:00 2001
From: guoyuji <guoyujie@ng.com>
Date: 星期五, 07 三月 2025 09:08:33 +0800
Subject: [PATCH] 小片尺寸和成品尺寸不相同时,打印显示小片信息

---
 north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue |  154 ++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 115 insertions(+), 39 deletions(-)

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 3901f9b..816f8fc 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: t('reportingWorks.patchCondition')}
+        gridOptions.columns.push(column)
+
         const s01Values = [];
         for (let i = 0; i < res.data.reportingWorkDetails.length; i++) {
           const s01Values = [];
@@ -134,8 +138,6 @@
           button.name=t('basicData.review')
           titleUploadData.value.qualityInspector=user.user.userName
         }
-
-
         gridOptions.toolbarConfig.buttons.push(button)
       }
      // getQuantity()
@@ -145,7 +147,6 @@
 })
 
 const data = [{id:1,num:2},{id:1,num:3},{id:2,num:2},{id:1,num:2}];
-
 
 //琛ㄥ熬姹傚拰
 const sumNum = (list, field) => {
@@ -239,7 +240,14 @@
           },
           {
             code: 'SecondaryBreakage',
-            name: "娆$牬鐩稿悓",
+            name: "搴忓彿娆$牬鐩稿悓",
+            prefixIcon: 'vxe-icon-indicator',
+            visible: true,
+            disabled: false
+          },
+          {
+            code: 'checkedBreakage',
+            name: "閫変腑娆$牬鐩稿悓",
             prefixIcon: 'vxe-icon-indicator',
             visible: true,
             disabled: false
@@ -345,8 +353,12 @@
             return new Error(t('reportingWorks.enterIntegerGreaterThanEqualTo'))
           }else if((row.completedQuantity*1+brokenNum*1)>row.quantity*1){
             return new Error((`${row.completedQuantity}+${brokenNum}>${row.quantity}`))
+          }else  if(row.quantity_card<row.completedQuantity){
+            return new Error(t('reportingWorks.pleaseNumber10'))
           }
-          if(titleUploadData.value.reportingWorkId!=null  && row.completedQuantity<row.minQuantity){
+          const completedNum =
+              (row.completedQuantity === undefined || row.completedQuantity===null || row.completedQuantity==='') ? 0 : row.completedQuantity
+          if(titleUploadData.value.reportingWorkId!=null  && completedNum>row.minQuantity){
             return new Error(`${t('reportingWorks.pleaseGreaterThanOrEqual1')}
             ${row.minQuantity}
             ${t('reportingWorks.pleaseGreaterThanOrEqual2')}`)
@@ -401,7 +413,7 @@
     const $grid = xGrid.value
     if ($grid) {
       switch (code) {
-        case 'saveReportingWork':  {
+        case 'saveReportingWork':  {//淇濆瓨
           const errMap = await $grid.validate(true)
           if (errMap) {
             ElMessage.error(t('basicData.msg.checkoutLose'))
@@ -419,14 +431,14 @@
           saveReportingWork(1,'save')
           break
         }
-        case 'update':  {
+        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) {
@@ -434,11 +446,11 @@
                   return
                 }
                 saveReportingWork(0, 'update')
-              }
-            } else {
-              ElMessage.warning(res.msg)
-            }
-          })
+           //   }
+          //   } else {
+          //     ElMessage.warning(res.msg)
+          //   }
+          // })
 
           break
         }
@@ -456,10 +468,12 @@
     const { rows, column, cell } = params; // 瑙f瀯鑾峰彇琛屻�佸垪鍜屽崟鍏冩牸淇℃伅
     //鐐瑰嚮娆$牬鏁伴噺鏃舵墦寮�鏄庣粏鐣岄潰
     if(column.field=="breakageQuantity"){
-      brokenVisible.value = true
+      if (row.patchStatusOther!="宸茶ˉ鐗�"){
+        brokenVisible.value = true
+      }
     }
   },
-  menuClick({menu, row, column}) {
+  menuClick({menu, row, column}) {//鍙抽敭鑿滃崟
     const $grid = xGrid.value
     if ($grid) {
       switch (menu.code) {
@@ -510,7 +524,7 @@
         }
         case 'SecondaryBreakage' : {
           let result = toolbarButtonClickEvent()
-          if (result.cell === "breakageQuantity"){
+          if (result.cell === "breakageQuantity" || result.cell === "completedQuantity"){
             if (result) {
               const dataList = xGrid.value.getTableData().visibleData
               const seenOrders = {}
@@ -532,6 +546,27 @@
                   }
                 }
 
+              })
+            }
+          }
+          break
+        }
+        case 'checkedBreakage' : {
+          let result = toolbarButtonClickEvent()
+          if (result.cell === "breakageQuantity" || result.cell === "completedQuantity"){
+            if (result) {
+              const dataList = xGrid.value.getTableData().visibleData
+              const val = dataList[result.start].damageDetails
+              const quantity = dataList[result.start].breakageQuantity
+              dataList.forEach((item, index) => {
+                if (index >= result.start && index <= result.end) {
+                  item.damageDetails = val
+                  item.breakageQuantity =  quantity
+                  if (index!=result.start){
+                    item.completedQuantity = item.completedQuantity - quantity
+                  }
+
+                }
               })
             }
           }
@@ -743,8 +778,12 @@
     return row.order_number === brokenRow.value.order_number
   })
   const maxQuantity =  Math.max(...equalByOrderNum.map(item =>item.breakageQuantity || 0))
+  let process = titleUploadData.value.thisProcess
   equalByOrderNum.forEach((row) =>{
-    row.completedQuantity= brokenRow.value.quantity*1-maxQuantity
+    if (process=='澶硅兌' || process=='涓┖' || process=='鍖呰' ||process=='鎵撹兌鍜岀矘妗�'){
+      row.completedQuantity= brokenRow.value.quantity*1-maxQuantity
+    }
+
   })
 
 
@@ -756,14 +795,15 @@
 
 //绗竴娆″姞杞芥暟鎹�
 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
-      if (user.user.address!=='鎶�鏈儴澶氭洸'){
-        groupChangeProcess.value = true
+      groupChangeProcess.value = true
+      if (user.user.address==='鎶�鏈儴澶氭洸' || user.user.address==='澶硅兌'){
+        groupChangeProcess.value = false
       }
       gridOptions.toolbarConfig.buttons[1].visible=false
     }
@@ -831,9 +871,10 @@
   const notFinishList = xGrid.value.getTableData().fullData.filter(item =>{
     return item.saveFlag === 0
   })
-
+  let process = titleUploadData.value.thisProcess
+  //鏆傛椂鍙栨秷
   for(let item of uniqueByOrderNum){
-    if(!checkSameNumForId(notFinishList,item.order_number )){
+    if(!checkSameNumForId(notFinishList,item.order_number ) && (process=='澶硅兌' || process=='涓┖' || process=='鍖呰' ||process=='鎵撹兌鍜岀矘妗�')){
       ElMessage.error(`${t('reportingWorks.pleaseCheckTheOrderNumber1')}':'
       ${item.order_number}
        ${t('reportingWorks.pleaseCheckTheOrderNumber1')}`)
@@ -861,7 +902,6 @@
     userName:user.user.userName,
     qualityInsStatus:status
   }
-  console.log('requestData',requestData)
   gridOptions.toolbarConfig.buttons[0].disabled=true
   gridOptions.toolbarConfig.buttons[1].disabled=true
   //鍒ゆ柇淇濆瓨杩樻槸淇敼
@@ -889,7 +929,7 @@
       ElMessage.error(msg)
     }
   }).catch(err =>{
-    ElMessage.error(err.message)
+    ElMessage.error('鎻愪氦澶辫触锛岃鍒锋柊鍚庨噸璇�')
   }).finally(()=>{
 
     gridOptions.toolbarConfig.buttons[0].disabled=false
@@ -967,10 +1007,20 @@
     ElMessage.warning(t('reportingWorks.firstProcessNotReview'))
     return
   }
+  //鍖归厤鈥�/鈥濆墠鍚庡瓧绗︿覆
+  const regex =  /([^\/]+)\/([^\/]+)/;
+  //鏌ユ壘鍖归厤鐨勫瓧绗︿覆
+  const result = processId.match(regex);
+  //娴佺▼鍗″彿
+  let processIdStr = result[1];
+  //灞傚彿
+  let technologyStr = result[2];
   const reportWork = {
     process: titleUploadData.value.previousProcess,
     processId:processId,
-    thisProcess:titleUploadData.value.thisProcess
+    thisProcess:titleUploadData.value.thisProcess,
+    technologyStr:technologyStr,
+    userName:user.user.userName
   }
   loadingFlag.value= true
   request.post("/reportingWork/reviewReportingWork",reportWork).then((res) =>{
@@ -1047,7 +1097,7 @@
       //璁惧涓嬫媺妗�
       titleSelectJson.value.deviceType = res.data.device
       //鐝粍涓嬫媺妗�
-      titleSelectJson.value.teamsType = res.data.teams
+      //titleSelectJson.value.teamsType = res.data.teams
       //褰撳墠娴佺▼鍗″伐搴�
       titleSelectJson.value.thisProcessType = res.data.thisProcess
       //鍘嗗彶鐝粍
@@ -1150,9 +1200,10 @@
 }
 
 const editClosedEvent = ({ row, column }) => {
+  let process = titleUploadData.value.thisProcess
   if (column.property==='completedQuantity') {
     xGrid.value.getTableData().fullData.forEach((item, index) =>{
-      if(item.order_number===row.order_number){
+      if(item.order_number===row.order_number && (process=='澶硅兌' || process=='涓┖' || process=='鍖呰' ||process=='鎵撹兌鍜岀矘妗�')){
         item.completedQuantity=row.completedQuantity
       }
     })
@@ -1251,12 +1302,22 @@
     return row?.rowClass
 
 }
+const editConfigDisable = reactive({
+  trigger: 'click',
+  mode: 'cell',
+  beforeEditMethod ({ row }) {
+    if (row.patchStatusOther === '宸茶ˉ鐗�') {
+      return false
+    }
+    return true
+  }
+})
 
 </script>
 
 <template>
-  <div style="height: 100%;width: 100%">
-    <div id="head" style="height: 5%;width: 100%;margin-bottom: 5px">
+  <div  style="width: 100%;height: 100%">
+    <div class="head">
       <el-input :disabled="inputDisabled" v-if="titleUploadData.reportingWorkId" v-model="titleUploadData.reportingWorkId" :placeholder="$t('reportingWorks.reportingWorkId')" style="width: 200px" />
       <el-input :disabled="inputDisabled" v-model="titleUploadData.processId" :placeholder="$t('processCard.processId')" style="width: 200px" @keyup.enter.native="getWork();getQuantity()"/>
       &nbsp;
@@ -1280,7 +1341,7 @@
       &nbsp;
       <label>{{technologicalProcess}}</label>
     </div>
-    <div style="background-color: white;margin-bottom: 5px;height: 17%;width: 100%">
+    <div class="head1">
       <el-row>
         <el-col :span="2">
           <el-text>{{$t('order.orderId')}}锛�</el-text>
@@ -1416,18 +1477,18 @@
 
       </el-row>
     </div>
-    <div class="main-div-customer" style="width: 100%;height: 70%">
+    <div class="main-table">
       <vxe-grid
           ref="xGrid"
           class="mytable-scrollbar"
           :row-class-name="changeRowClass"
-          max-height="100%"
           height="100%"
           size="small"
           v-bind="gridOptions"
           v-on="gridEvents"
           @edit-closed="editClosedEvent"
           :cell-class-name="cellClassName"
+          :edit-config="editConfigDisable"
 
       >
 
@@ -1435,13 +1496,16 @@
         <template #num1_filter="{ column, $panel }">
           <div>
             <div v-for="(option, index) in column.filters" :key="index">
-              <input v-model="option.data" type="type" @input="changeFilterEvent($event, option, $panel)"/>
+              <input v-model="option.data" type="type"
+                     @keyup.enter.native="$panel.confirmFilter()"
+                     @input="changeFilterEvent($event, option, $panel)"/>
             </div>
           </div>
         </template>
 
 
       </vxe-grid>
+    </div>
       <el-dialog
           @opened="openedBrokenTable"
           :before-close="checkClose"
@@ -1545,12 +1609,24 @@
 
         </vxe-grid>
       </el-dialog>
-    </div>
   </div>
 </template>
 
 <style scoped>
+.head{
+  width: 100%;
+  height: 35px;
+}
+.head1{
+  width: 100%;
+  height: 105px;
+  background-color: white;
+}
 
+.main-table{
+  width: 100%;
+  height: calc(100% - 135px);
+}
 
 .processCard {
   width: 140px;

--
Gitblit v1.8.0