From 2780cb79b2239d64f4578e30c255fbd751e12c62 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期二, 12 三月 2024 08:17:01 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override

---
 north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue |  206 +++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 149 insertions(+), 57 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 f4fbfe0..2a58df2 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
@@ -1,6 +1,6 @@
 <script setup>
 import {computed, nextTick, onMounted, reactive, ref, toRefs} from "vue";
-import {useRouter} from 'vue-router'
+import {useRouter,useRoute} from 'vue-router'
 import request from "@/utils/request";
 import {ElMessage} from "element-plus";
 import {changeFilterEvent, filterChanged} from "@/hook"
@@ -10,15 +10,16 @@
 let brokenVisible = ref(false)
 const xGrid = ref()
 const brokenGrid =ref()
-let router = useRouter()
+const router = useRouter()
+const route = useRoute()
 const user=userInfo()
-
 //瀹氫箟琛ㄥご鏁版嵁
 const titleUploadData = ref({
   //娴佺▼鍗″彿
-  processId: 'NG24030701B01/1',
+  processId: 'NG24030804A02/1',
   //閿�鍞崟鍙�
   orderId: '',
+  reviewedState:0,
   //鐢熶骇鍗曞彿
   productionId: '',
   //璁惧绫诲瀷
@@ -75,6 +76,24 @@
 
 })
 
+
+onMounted(() =>{
+  if(route.query.processId !== undefined && route.query.processId!=='' && route.query.processId!=null ){
+    titleUploadData.value.processId = route.query.processId
+  }
+  //鍒ゆ柇鏄惁浼犲叆鎶ュ伐缂栧彿
+  if(route.query.reportingWorkId!== undefined && route.query.reportingWorkId!=='' && route.query.reportingWorkId!=null){
+    request.post(`reportingWork/selectUpdateReportingWork/${route.query.reportingWorkId}`).then(res=>{
+      if(res.code === '200'){
+        titleUploadData.value = res.data.reportingWork
+        console.log(res.data)
+        xGrid.value.reloadData(res.data.reportingWorkDetails)
+      }
+    })
+  }
+})
+
+
 //琛ㄥ熬姹傚拰
 const sumNum = (list, field) => {
   let count = 0
@@ -87,20 +106,6 @@
 
 
 const optionVal = ref('')
-const options = [
-  {
-    value: '鍒囧壊',
-    label: '鍒囧壊',
-  },
-  {
-    value: '纾ㄨ竟',
-    label: '纾ㄨ竟',
-  },
-  {
-    value: '閽㈠寲',
-    label: '閽㈠寲',
-  },
-]
 
 //鐝
 const classesVal = ref('鏃╃彮')
@@ -205,12 +210,12 @@
       showOverflow: "ellipsis",
       filterMethod: filterChanged
     },
-    {field: 'quantity', title: '涓婂伐瀹屽伐鏁伴噺',},
+    {field: 'quantity', title: '鍙姤鏁伴噺',},
     {
-      field: 'completedQuantity', title: '瀹屽伐鏁伴噺',
+      field: 'completedQuantity', title: '瀹屽伐鏁伴噺',width: 120,
       editRender: {
         name: 'input',
-        attrs: {placeholder: ''},
+        attrs: {placeholder: ''}
       },
 
     },
@@ -246,8 +251,8 @@
       // {code: 'sameDamage', name: '娆$牬鐩稿悓'},
       // {code: 'sameOneCompletion', name: '瀹屽伐涓�鍒楃浉鍚�'},
       // {code: 'sameOneDamage', name: '娆$牬涓�鍒楃浉鍚�'},
-      {code: 'saveReportingWork', name: '淇濆瓨', status: 'primary', icon: 'vxe-icon-save'},
-      {code: 'print_lck', name: '淇濆瓨骞跺鏍�', status: 'primary', icon: 'vxe-icon-save'},
+      {code: 'saveReportingWork', name: '淇濆瓨', status: 'primary', icon: 'vxe-icon-save',disabled:true},
+      {code: 'saveReportingWorkReview', name: '淇濆瓨骞跺鏍�', status: 'primary', icon: 'vxe-icon-save',disabled:true},
     ],
     // import: false,
     // export: true,
@@ -277,26 +282,21 @@
     if ($grid) {
       switch (code) {
         case 'saveReportingWork':  {
-          if($grid.getTableData().fullData.length===0){
-            ElMessage.warning(`璇烽�夋嫨娴佺▼鍗℃暟鎹甡)
-            return false
-          }
-          const device = titleUploadData.value.deviceName
-          if(device === null || device === undefined || device === ''){
-            ElMessage.error('璇烽�夋嫨鎶ュ伐璁惧锛�')
-            return
-          }
-          const teamsGroupsName = titleUploadData.value.teamsGroupsName
-          if(teamsGroupsName === null || teamsGroupsName === undefined || teamsGroupsName === ''){
-            ElMessage.error('璇烽�夋嫨鎶ュ伐璁惧锛�')
-            return
-          }
           const errMap = await $grid.validate(true)
           if (errMap) {
             ElMessage.error(`鏍¢獙涓嶉�氳繃锛乣)
             return
           }
-          saveReportingWork()
+          saveReportingWork(0)
+          break
+        }
+        case 'saveReportingWorkReview':  {
+          const errMap = await $grid.validate(true)
+          if (errMap) {
+            ElMessage.error(`鏍¢獙涓嶉�氳繃锛乣)
+            return
+          }
+          saveReportingWork(1)
           break
         }
       }
@@ -481,6 +481,10 @@
 
 
 const checkClose = async (done) => {
+  if(brokenGrid.value.getTableData().fullData.length===0){
+    done()
+    return true
+  }
   const errMap = await brokenGrid.value.validate(true)
   if (errMap) {
     ElMessage.error(`鏍¢獙涓嶉�氳繃锛乣)
@@ -493,7 +497,7 @@
   })
 
   let reportingWorkNum = isNaN(brokenRow.value.completedQuantity*1)?0:brokenRow.value.completedQuantity*1
-  if(breakageQuantityCount+reportingWorkNum>brokenRow.value.quantity*1){
+  if((breakageQuantityCount+reportingWorkNum>brokenRow.value.quantity*1) ){
     ElMessage.warning(`鎹熻�楁暟:'${breakageQuantityCount}'
                                瀹屽伐鏁�:'${reportingWorkNum}'涔嬪拰${breakageQuantityCount+reportingWorkNum}
                                涓嶈兘澶т簬${brokenRow.value.quantity*1}`)
@@ -507,7 +511,6 @@
 }
 
 
-
 //绗竴娆″姞杞芥暟鎹�
 
 request.post(`/reportingWork/selectProcess`).then((res) => {
@@ -518,7 +521,22 @@
   }
 })
 
-const saveReportingWork = () => {
+const saveReportingWork = (type) => {
+
+  if(xGrid.value.getTableData().fullData.length===0){
+    ElMessage.warning(`璇烽�夋嫨娴佺▼鍗℃暟鎹甡)
+    return false
+  }
+  const device = titleUploadData.value.deviceName
+  if(device === null || device === undefined || device === ''){
+    ElMessage.error('璇烽�夋嫨鎶ュ伐璁惧锛�')
+    return
+  }
+  const teamsGroupsName = titleUploadData.value.teamsGroupsName
+  if(teamsGroupsName === null || teamsGroupsName === undefined || teamsGroupsName === ''){
+    ElMessage.error('璇烽�夋嫨鎶ュ伐璁惧锛�')
+    return
+  }
 
   titleUploadData.value.creator = user.user.userName
   titleUploadData.value.creatorId = user.user.userId
@@ -534,17 +552,30 @@
 
   const requestData = {
     title:titleUploadData.value,
-    detail:xGrid.value.getTableData().fullData
+    detail:xGrid.value.getTableData().fullData,
+    type:type//瀹℃牳鐘舵��
   }
+  gridOptions.toolbarConfig.buttons[0].disabled=true
+  gridOptions.toolbarConfig.buttons[1].disabled=true
   request.post(`/reportingWork/saveReportingWork`,requestData).then(res =>{
     if (res.code == 200){
       ElMessage.success("鎶ュ伐鎴愬姛")
-      router.push({path:'/main/reportingWorks/AddReportingWork',query:{random:Math.random()}})
+      router.push({path:'/main/reportingWorks/AddReportingWork',query:{processId:titleUploadData.value.processId,random:Math.random()}})
     }else{
-      ElMessage.error(res.msg)
+      const errorObj = JSON.parse(res.msg)
+      const msg = "搴忓彿锛�"+errorObj.orderNumber+'\n'
+                +'灏忕墖椤哄簭锛�'+errorObj.technologyNumber+'\n'
+                +"瀹為檯鍙姤宸ユ暟閲忥細"+errorObj.processNum+'<'+
+                "鎶ュ伐鏁伴噺锛�"+errorObj.sumNum+'\n'
+                +"璇峰埛鏂扮晫闈㈤噸鏂版姤宸�"
+
+      ElMessage.error(msg)
     }
   }).catch(err =>{
     ElMessage.error(err.message)
+  }).finally(()=>{
+    gridOptions.toolbarConfig.buttons[0].disabled=false
+    gridOptions.toolbarConfig.buttons[1].disabled=false
   })
 }
 
@@ -575,6 +606,51 @@
   }
 })
 
+let loadingFlag = ref(false)
+let disabledFlag = ref(true)
+const reviewReportingWork = () => {
+  const processId = titleUploadData.value.processId
+  if (processId.indexOf("/") < 0) {
+    ElMessage.warning("璇疯緭鍏ユ纭牸寮忔祦绋嬪崱")
+    return
+  }
+  let indexOfChar = processId.indexOf("/")
+  let leftString = processId.slice(0, indexOfChar)
+  if (leftString.length !== 13) {
+    ElMessage.warning("璇疯緭鍏ユ纭綅鏁扮殑娴佺▼鍗�")
+    return
+  }
+//宸ュ簭
+  let process = titleUploadData.value.thisProcess
+  if (process === "" || process == null) {
+    ElMessage.warning("璇烽�夋嫨宸ュ簭")
+    return
+  }
+  if(titleUploadData.value.previousProcess===''){
+    ElMessage.warning("绗竴閬撳伐搴忎笉闇�瑕佸鏍�")
+    return
+  }
+  const reportWork = {
+    process: titleUploadData.value.previousProcess,
+    processId:processId
+  }
+  loadingFlag.value= true
+  request.post("/reportingWork/reviewReportingWork",reportWork).then((res) =>{
+    if(res.code === '200'){
+      ElMessage.success("瀹℃牳鎴愬姛")
+      router.push({path:'/main/reportingWorks/AddReportingWork',
+        query:{
+          processId:titleUploadData.value.processId,
+          random:Math.random()
+        }
+      })
+    }
+  }).finally(
+      loadingFlag.value= false
+  )
+
+}
+
 
 //涓嬫媺娆鹃�夋嫨宸ュ簭鏃舵煡璇�
 const getWork = () => {
@@ -594,7 +670,6 @@
 //宸ュ簭
   let process = titleUploadData.value.thisProcess
   if (process == "" || process == null) {
-
     ElMessage.warning("璇烽�夋嫨宸ュ簭")
     return
   }
@@ -610,6 +685,10 @@
 
   request.post(`/reportingWork/addSelectLastWork/${processIdStr}/${technologyStr}/${process}`).then((res) => {
     if (res.code == 200) {
+      if(res.data.data===null){
+        ElMessage.error("鏈煡璇㈠埌姝ゆ祦绋嬪崱鏁版嵁")
+        return
+      }
       //琛ㄥご璧嬪��
       titleUploadData.value = res.data.data
       titleUploadData.value.processId = processId
@@ -629,10 +708,18 @@
       titleSelectJson.value.breakageType =  res.data.breakageType
       //娆$牬鍘熷洜
       titleSelectJson.value.breakageReason =  res.data.breakageReason
-      //console.log(res.data)
+      if(titleUploadData.value.reviewedState==1){
+        gridOptions.toolbarConfig.buttons[0].disabled=false
+        gridOptions.toolbarConfig.buttons[1].disabled=false
+        disabledFlag.value=true
+      }else {
+        gridOptions.toolbarConfig.buttons[0].disabled=true
+        gridOptions.toolbarConfig.buttons[1].disabled=true
+        disabledFlag.value=false
+      }
+
+      //鍒ゆ柇鏃╂櫄鐝�
       titleUploadData.value.classes='鏃╃彮'
-
-
       titleUploadData.value.reportingWorkTime = formatCurrentTime()
       //缁戝畾涓嬫柟琛ㄦ牸
       detail.value = res.data.Detail
@@ -683,16 +770,20 @@
   let hours = dateObj.getHours().toString().padStart(2, '0'); // 灏忔椂
   let minutes = dateObj.getMinutes().toString().padStart(2, '0'); // 鍒嗛挓
   let seconds = dateObj.getSeconds().toString().padStart(2, '0'); // 绉掓暟
-  if(parseInt(hours)>=17)titleUploadData.value.classes='鏅氱彮'
+  if(parseInt(hours)>=17 && parseInt(hours)<8)titleUploadData.value.classes='鏅氱彮'
   return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; // 杩斿洖鏍煎紡鍖栧悗鐨勬椂闂村瓧绗︿覆
 }
 
-const ptypeChangeEvent = (row) => {
-  // for (let i = 0; i < row.length; i++){
-  //
-  //  let process=row[i].responsibleProcess
-  // }
+const editClosedEvent = ({ row, column }) => {
+  if (column.property==='completedQuantity') {
+    xGrid.value.getTableData().fullData.forEach((item, index) =>{
+      if(item.order_number===row.order_number){
+        item.completedQuantity=row.completedQuantity
+      }
+    })
+  }
 }
+
 </script>
 
 <template>
@@ -710,8 +801,8 @@
         />
       </el-select>
       &nbsp;
-      <el-button type="primary">瀹℃牳閫氳繃</el-button>
-      <el-button type="primary">瀹℃牳涓嶉�氳繃</el-button>
+      <el-button :disabled="disabledFlag" :loading="loadingFlag" @click="reviewReportingWork" type="primary">瀹℃牳閫氳繃</el-button>
+<!--      <el-button type="primary">瀹℃牳涓嶉�氳繃</el-button>-->
       &nbsp;
       <label>娴佺▼鍗¢潰绉細xxx骞虫柟绫�</label>
     </div>
@@ -774,7 +865,7 @@
           <el-text>鍙姤宸ユ暟閲忥細</el-text>
         </el-col>
         <el-col :span="2">
-          <el-text>{{ titleUploadData.flowCard.quantity }}</el-text>
+          <el-text>{{ titleUploadData.previousProcessQuantity }}</el-text>
 
         </el-col>
         <el-col :span="2">
@@ -856,6 +947,7 @@
           v-bind="gridOptions"
           v-on="gridEvents"
           @filter-change="filterChanged"
+          @edit-closed="editClosedEvent"
 
       >
 

--
Gitblit v1.8.0