From 7104751e2f26872d4891d01d42ee88cf19715d01 Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期二, 08 七月 2025 17:46:01 +0800
Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/ERP_override

---
 north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue |  193 +++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 189 insertions(+), 4 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 562ef90..8258712 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
@@ -55,6 +55,8 @@
   classes: '',
   //璐d换宸ュ簭
   responsibleProcess: '',
+  //鍖呰鏂瑰紡
+  packagingMethod:'',
   order: {
     //瀹㈡埛缂栧彿
     customerId: '',
@@ -90,6 +92,39 @@
 
 })
 
+let btnValue=company.storageBtn
+let teamsTypeValue=company.teamsType
+//鏄惁鐐瑰嚮鎶ュ伐鍏ュ簱
+let storageBtn = ref(false)
+//绠卞彿 搴撲綅 澶囨敞
+const storageRegion = ref(null);
+const container = ref(null);
+const remark = ref(null);
+
+//鍖呰鏂瑰紡
+const mannerPacking = ref(null)
+const mannerPackingOp = [
+  // {
+  //   value: t('reportingWorks.early'),
+  //   label: t('reportingWorks.early'),
+  // },
+  // {
+  //   value: t('reportingWorks.nightShift'),
+  //   label: t('reportingWorks.nightShift'),
+  // },
+   {
+    value: '鏈ㄧ',
+    label: '鏈ㄧ',
+  },
+  {
+    value: '閾佹灦',
+    label: '閾佹灦',
+  },
+  {
+    value: '鍊掓灦',
+    label: '鍊掓灦',
+  },
+]
 
 
 let inputDisabled = ref(false)
@@ -104,6 +139,7 @@
           && titleUploadData.value.thisProcess!=null){
         getWork()
         getQuantity()
+
       }
     }
   }
@@ -397,6 +433,7 @@
       // {code: 'sameOneDamage', name: '娆$牬涓�鍒楃浉鍚�'},
       {code: 'saveReportingWork', name: t('basicData.save'), status: 'primary', icon: 'vxe-icon-save',disabled:true},
       {code: 'saveReportingWorkReview', name: t('reportingWorks.saveAndReview'), status: 'primary', icon: 'vxe-icon-save',disabled:true},
+      {code: 'saveWorkStorage', name: t('reportingWorks.saveWorkStorage'), status: 'primary', icon: 'vxe-icon-save'},
     ],
     // import: false,
     // export: true,
@@ -473,6 +510,46 @@
           // })
 
           break
+        }
+        case 'saveWorkStorage':{
+          if(xGrid.value.getTableData().fullData.length===0){
+            ElMessage.warning(t('reportingWorks.selectProcessCardData'))
+            return
+          }
+          const device = titleUploadData.value.deviceName
+          if(device === null || device === undefined || device === ''){
+            ElMessage.error(t('reportingWorks.selectWorkReportingEquipment'))
+            return
+          }
+          const teamsGroupsName = titleUploadData.value.teamsGroupsName
+          if(teamsGroupsName === null || teamsGroupsName === undefined || teamsGroupsName === ''){
+            ElMessage.error(t('reportingWorks.selectWorkReportingTeam'))
+            return
+          }
+
+          if (mannerPacking.value === null || mannerPacking.value === undefined || mannerPacking.value === ''){
+            ElMessage.error(t('reportingWorks.msgMannerPacking'))
+            return
+          }
+          const parts = technologicalProcess.split('->');
+          const last = parts[parts.length - 1];
+          let processId = titleUploadData.value.processId
+          //鍖归厤鈥�/鈥濆墠鍚庡瓧绗︿覆
+          const regex =  /([^\/]+)\/([^\/]+)/;
+          //鏌ユ壘鍖归厤鐨勫瓧绗︿覆
+          const resultProcessId = processId.match(regex);
+          //娴佺▼鍗″彿
+          let processIdStr = resultProcessId[1];
+          //灞傚彿
+          let technologyStr = resultProcessId[2];
+          if (last != titleUploadData.value.thisProcess){
+            ElMessage.error('璇烽�夋嫨鏈�鍚庡伐搴忔姤宸ュ叆搴�')
+            return
+          }
+          storageBtn.value = true
+          //鎶ュ伐鏂板
+          saveReportingWork(0,'save')
+
         }
       }
     }
@@ -816,6 +893,7 @@
 //绗竴娆″姞杞芥暟鎹�
 let groupChangeProcess = ref(false)//鐢ㄤ簬鏈彮缁勬樉绀洪棶棰�
 const initTiltle = async () => {
+  hideButton()
   await request.post(`/reportingWork/selectProcess/${user.user.userId}`).then((res) => {
     if (res.code == 200) {
       titleSelectJson.value.processType = res.data.process
@@ -907,7 +985,8 @@
       return false
     }
   }
-
+//鍖呰鏂瑰紡
+  titleUploadData.value.packagingMethod = mannerPacking.value
   titleUploadData.value.creator = user.user.userName
   titleUploadData.value.creatorId = user.user.userId
   const requestDetailData = xGrid.value.getTableData().fullData.filter((row) => {
@@ -943,6 +1022,10 @@
   request.post(`/reportingWork/saveReportingWork`,requestData).then(res =>{
     if (res.code == 200){
       ElMessage.success(t('reportingWorks.successfulJobApplication'))
+      //鎶ュ伐鍏ュ簱
+      if(storageBtn.value == true){
+        getStorageWork();
+      }
       router.push({path:'/main/reportingWorks/AddReportingWork',query:{processId:titleUploadData.value.processId,random:Math.random()}})
     }else{
       const errorObj = JSON.parse(res.msg)
@@ -1127,7 +1210,10 @@
       //璁惧涓嬫媺妗�
       titleSelectJson.value.deviceType = res.data.device
       //鐝粍涓嬫媺妗�
-      //titleSelectJson.value.teamsType = res.data.teams
+      if (teamsTypeValue==true){
+        titleSelectJson.value.teamsType = res.data.teams
+      }
+
       //褰撳墠娴佺▼鍗″伐搴�
       titleSelectJson.value.thisProcessType = res.data.thisProcess
       //鍘嗗彶鐝粍
@@ -1360,6 +1446,88 @@
   }
 })
 
+
+//鎶ュ伐鍏ュ簱鏂规硶
+const getStorageWork = () => {
+  let processId = titleUploadData.value.processId
+  //鍖归厤鈥�/鈥濆墠鍚庡瓧绗︿覆
+  const regex =  /([^\/]+)\/([^\/]+)/;
+  //鏌ユ壘鍖归厤鐨勫瓧绗︿覆
+  const resultProcessId = processId.match(regex);
+  //娴佺▼鍗″彿
+  let processIdStr = resultProcessId[1];
+  //灞傚彿
+  let technologyStr = resultProcessId[2];
+  //寮�濮嬪鐞嗗叆搴撻渶瑕佺殑鏁版嵁
+  let rawData  = xGrid.value.getTableData().fullData
+  const seen = new Set();
+  const result = rawData.filter(item => {
+    // 1. 鍏堟妸 completedQuantity 涓� 0 鐨勫墧闄�
+    if (item.completedQuantity === 0) {
+      return false;
+    }
+    // 2. 閬囧埌鐩稿悓 order_number锛屽彧淇濈暀绗竴娆★紝鍚庨潰閮戒涪寮�
+    if (seen.has(item.order_number)) {
+      return false;
+    }
+    seen.add(item.order_number);
+    return true;
+  });
+
+  // 缁欐瘡鏉¤褰曡拷鍔� order 瀛楁
+  const resultData = result.map(item => ({
+    ...item,
+    order: {
+      orderId: titleUploadData.value.orderId
+    },
+    processId:processIdStr,
+    orderNumber:item.order_number
+  }));
+  let flowData = ref({
+    decValue:company.decValue,
+    userId: user.user.userId,
+    userName: user.user.userName,
+    storageRegion: storageRegion.value,
+    remark: remark.value,
+    container: container.value,
+    flowCard: resultData,
+  })
+  //璋冪敤鍏ュ簱鎺ュ彛
+  request.post("/finishedGoodsInventory/addSelectWarehousing",flowData.value).then((res) => {
+    if(res.code==200 && res.data==="true"){
+      ElMessage.success(t('productStock.receivedSuccessfully'))
+     // router.push({path:'/maiggn/productStock/CreateProductStock',query:{random:Math.random()}})
+    }else if(res.data==="false1"){
+      ElMessage.warning(t('basicData.msg.quantityError'))
+    }else if(res.data==="false2"){
+      ElMessage.warning(t('basicData.msg.dataDoesNotExist'))
+    }else{
+      ElMessage.warning(t('productStock.entryFailure'))
+    }
+  }).catch((err)=>{
+    ElMessage.error(t('basicData.msg.ServerConnectionError'))
+    router.push("/login")
+  })
+}
+
+const hideButton = () => {
+  if (btnValue == false){
+    const els = document.querySelectorAll('.inventory_content');
+    els.forEach(el => {
+      el.style.display = 'none';
+    });
+  }
+  gridOptions.toolbarConfig.buttons = gridOptions.toolbarConfig.buttons.filter(button => {
+    // 濡傛灉 type 涓嶄负绌烘椂锛岄殣钘� print 鎸夐挳
+    if (btnValue == false && button.code === 'saveWorkStorage') {
+      return false;  // 闅愯棌 print 鎸夐挳
+    }
+
+
+    // 榛樿杩斿洖 true锛岃〃绀轰繚鐣欐寜閽�
+    return true;
+  });
+};
 </script>
 
 <template>
@@ -1384,6 +1552,23 @@
       &nbsp;
       <el-button :disabled="disabledFlag" :loading="loadingFlag" @click="reviewReportingWork" type="primary">{{$t('reportingWorks.passAudit')}}
       </el-button>
+      &nbsp;
+      <span class="inventory_content">
+        <el-select style="width: 100px" v-model="mannerPacking" class="processesSt" :placeholder="$t('reportingWorks.mannerPacking')">
+          <el-option
+              v-for="item in mannerPackingOp"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+          />
+        </el-select>&nbsp;
+        <el-input style="width: 100px" v-model="container" class="m-2" :placeholder="$t('productStock.pleaseEnterTheBoxNumber')">
+      </el-input>&nbsp;
+        <el-input style="width: 100px" v-model="storageRegion" class="m-2" :placeholder="$t('productStock.pleaseEnterTheStorageLocation')">
+      </el-input>&nbsp;
+        <el-input style="width: 200px" v-model="remark" class="m-2" :placeholder="$t('productStock.pleaseEnterANote')">
+        </el-input>
+      </span>
 <!--      <el-button type="primary">瀹℃牳涓嶉�氳繃</el-button>-->
       &nbsp;
       <label>{{technologicalProcess}}</label>
@@ -1477,8 +1662,8 @@
             <el-option
                 v-for="item in titleSelectJson['teamsType']"
                 :key="item.id"
-                :label="item.basicName"
-                :value="item.basicName"
+                :label="item.user_name"
+                :value="item.user_name"
             />
           </el-select>
         </el-col>

--
Gitblit v1.8.0