From 768498719683f85e5ed19c73eb3d14cdbf420df4 Mon Sep 17 00:00:00 2001
From: admin <15939171744@163.com>
Date: 星期一, 01 七月 2024 14:03:01 +0800
Subject: [PATCH] 绑定小车码,预装总成码,手动工位扫码,拧紧逻辑优化

---
 jcdm-ui/src/views/main/om/productionOrde/index.vue |  326 ++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 230 insertions(+), 96 deletions(-)

diff --git a/jcdm-ui/src/views/main/om/productionOrde/index.vue b/jcdm-ui/src/views/main/om/productionOrde/index.vue
index ddb4020..a8f7e88 100644
--- a/jcdm-ui/src/views/main/om/productionOrde/index.vue
+++ b/jcdm-ui/src/views/main/om/productionOrde/index.vue
@@ -10,24 +10,51 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="浜у搧鍚嶇О" prop="productName">
+      <el-form-item label="浜у搧缂栫爜" prop="productCode">
         <el-input
-          v-model="queryParams.productName"
-          placeholder="璇疯緭鍏ヤ骇鍝佸悕绉�"
+          v-model="queryParams.productCode"
+          placeholder="璇疯緭鍏ヤ骇鍝佺紪鐮�"
           clearable
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="宸ュ崟鐘舵��" prop="orderStatus">
-        <el-select v-model="queryParams.orderStatus" placeholder="璇烽�夋嫨宸ュ崟鐘舵��" clearable>
+      <el-form-item label-width="80" label="PACK鐮�" prop="productNum">
+        <el-input
+          v-model="queryParams.productNum"
+          placeholder="璇疯緭鍏ACK鐮�"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="灏忚溅鐮�" prop="trolleyYard">
+        <el-input
+          v-model="queryParams.trolleyYard"
+          placeholder="璇疯緭鍏ュ皬杞︾爜"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label-width="1" label="涓婄嚎鎶ュ伐鐘舵��" prop="onlineCompletionMark">
+        <el-select v-model="queryParams.onlineCompletionMark" placeholder="璇烽�夋嫨涓婄嚎鎶ュ伐鐘舵��" clearable>
           <el-option
-            v-for="dict in dict.type.order_state"
+            v-for="dict in dict.type.work_reporting_status"
             :key="dict.value"
             :label="dict.label"
             :value="dict.value"
           />
         </el-select>
       </el-form-item>
+      <el-form-item label-width="1" label="涓嬬嚎鎶ュ伐鐘舵��" prop="sfResult">
+        <el-select v-model="queryParams.sfResult" placeholder="璇烽�夋嫨涓嬬嚎鎶ュ伐鐘舵��" clearable>
+          <el-option
+            v-for="dict in dict.type.work_reporting_status"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+
       <div style="display: none">
         <div id="printMe" style="width: 500px;">
           <div ref="canvasWrapper" id="canvasWrapper" style="display: flex;justify-content: center;"></div>
@@ -80,54 +107,54 @@
 
     <el-card style="margin-top: 10px" class="box-card">
     <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['om:productionOrde:add']"
-        >鏂板</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['om:productionOrde:edit']"
-        >淇敼</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['om:productionOrde:remove']"
-        >鍒犻櫎</el-button>
-        <el-button
-          type="info"
-          icon="el-icon-upload2"
-          size="mini"
-          @click="handleImport"
-        >瀵煎叆</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['om:productionOrde:export']"
-        >瀵煎嚭</el-button>
-      </el-col>
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="primary"-->
+<!--          plain-->
+<!--          icon="el-icon-plus"-->
+<!--          size="mini"-->
+<!--          @click="handleAdd"-->
+<!--          v-hasPermi="['om:productionOrde:add']"-->
+<!--        >鏂板</el-button>-->
+<!--      </el-col>-->
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="success"-->
+<!--          plain-->
+<!--          icon="el-icon-edit"-->
+<!--          size="mini"-->
+<!--          :disabled="single"-->
+<!--          @click="handleUpdate"-->
+<!--          v-hasPermi="['om:productionOrde:edit']"-->
+<!--        >淇敼</el-button>-->
+<!--      </el-col>-->
+<!--      <el-col :span="1.5">-->
+<!--&lt;!&ndash;        <el-button&ndash;&gt;-->
+<!--&lt;!&ndash;          type="danger"&ndash;&gt;-->
+<!--&lt;!&ndash;          plain&ndash;&gt;-->
+<!--&lt;!&ndash;          icon="el-icon-delete"&ndash;&gt;-->
+<!--&lt;!&ndash;          size="mini"&ndash;&gt;-->
+<!--&lt;!&ndash;          :disabled="multiple"&ndash;&gt;-->
+<!--&lt;!&ndash;          @click="handleDelete"&ndash;&gt;-->
+<!--&lt;!&ndash;          v-hasPermi="['om:productionOrde:remove']"&ndash;&gt;-->
+<!--&lt;!&ndash;        >鍒犻櫎</el-button>&ndash;&gt;-->
+<!--        <el-button-->
+<!--          type="info"-->
+<!--          icon="el-icon-upload2"-->
+<!--          size="mini"-->
+<!--          @click="handleImport"-->
+<!--        >瀵煎叆</el-button>-->
+<!--      </el-col>-->
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="warning"-->
+<!--          plain-->
+<!--          icon="el-icon-download"-->
+<!--          size="mini"-->
+<!--          @click="handleExport"-->
+<!--          v-hasPermi="['om:productionOrde:export']"-->
+<!--        >瀵煎嚭</el-button>-->
+<!--      </el-col>-->
       <el-col :span="1.5">
         <el-button
           type="warning"
@@ -137,55 +164,102 @@
           @click="getWorkOrders"
         >鎺ユ敹</el-button>
       </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :disabled="single"
+          @click="patchwork"
+        >琛ユ墦</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :disabled="onlineSingle"
+          @click="onlineWorkReporting"
+        >涓婄嚎鎶ュ伐</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :disabled="offlineSingle"
+          @click="offlineWorkReporting"
+        >涓嬬嚎鎶ュ伐</el-button>
+      </el-col>
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="warning"-->
+<!--          plain-->
+<!--          icon="el-icon-download"-->
+<!--          size="mini"-->
+<!--          :disabled="single"-->
+<!--          @click="jieBang"-->
+<!--        >瑙g粦</el-button>-->
+<!--      </el-col>-->
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
       <el-table border v-loading="loading" :data="productionOrdeList" @selection-change="handleSelectionChange">
         <el-table-column type="selection" width="55" align="center" />
-        <el-table-column label="鐢熶骇宸ュ崟鍙�" width="160" align="center">
-          <template slot-scope="scope">
-            <router-link :to="{path: '/main/workReport-data/index/', query: {workOrderNo: scope.row.workOrderNo} }" class="link-type">
-              <span>{{ scope.row.workOrderNo }}</span>
-            </router-link>
-          </template>
+<!--        <el-table-column label="鐢熶骇宸ュ崟鍙�" width="160" align="center">-->
+<!--          <template slot-scope="scope">-->
+<!--            <router-link :to="{path: '/main/workReport-data/index/', query: {workOrderNo: scope.row.workOrderNo} }" class="link-type">-->
+<!--              <span>{{ scope.row.workOrderNo }}</span>-->
+<!--            </router-link>-->
+<!--          </template>-->
+<!--        </el-table-column>-->
+        <el-table-column label="鐢熶骇宸ュ崟鍙�" width="160" align="center" prop="workOrderNo">
         </el-table-column>
 <!--        <el-table-column label="璁㈠崟缂栧彿" width="140" align="center" prop="salesOrderCode">-->
 <!--        </el-table-column>-->
-        <el-table-column :show-overflow-tooltip='true' label="pack鐮�" width="160" align="center" prop="productNum">
+        <el-table-column :show-overflow-tooltip='true' label="pack鐮�" width="220" align="center" prop="productNum">
         </el-table-column>
         <el-table-column :show-overflow-tooltip='true' label="灏忚溅鐮�" width="160" align="center" prop="trolleyYard">
         </el-table-column>
-        <el-table-column label="浜у搧缂栧彿" width="110" align="center" prop="productCode">
+        <el-table-column label="浜у搧鍨嬪彿" width="110" align="center" prop="productCode">
         </el-table-column>
         <el-table-column label="浜у搧鍚嶇О" width="120" align="center" prop="productName">
         </el-table-column>
-        <el-table-column label="浜у搧搴忓垪鍙�" width="110" align="center" prop="productNum">
-        </el-table-column>
-        <el-table-column label="浜у搧鍨嬪彿" align="center" prop="productModel">
-        </el-table-column>
-        <el-table-column label="宸ュ崟鐘舵��" width="100" align="center" prop="orderStatus">
+        <el-table-column label="涓婄嚎鏄惁鎶ュ伐" align="center" width="120">
           <template slot-scope="scope">
-            <dict-tag :options="dict.type.order_state" :value="scope.row.orderStatus"/>
+           <dict-tag :options="dict.type.work_reporting_status" :value="scope.row.onlineCompletionMark"/>
           </template>
-        </el-table-column>
-<!--        <el-table-column label="宸ュ巶缂栧彿" align="center" prop="siteCode">-->
-<!--        </el-table-column>-->
-        <el-table-column label="宸ョ珯缂栧彿" align="center" prop="stationCode">
-        </el-table-column>
-        <el-table-column label="鎶ュ伐淇℃伅缁撴灉" width="110" align="center" prop="resultText">
-        </el-table-column>
-        <el-table-column label="鎶ュ伐缁撴灉浠g爜" width="110" align="center" prop="resultCode">
-        </el-table-column>
-        <el-table-column label="鏄惁鎶ュ伐" width="80" align="center" prop="sfResult">
         </el-table-column>
         <el-table-column label="瀹為檯寮�濮嬫椂闂�" width="160" align="center" prop="actualStartTime">
         </el-table-column>
-        <el-table-column label="褰撳墠绔欑偣鎶ュ伐鏃堕棿" width="160" align="center" prop="actualEndTime">
+        <el-table-column label="涓嬬嚎鏄惁鎶ュ伐" width="120" align="center">
+          <template slot-scope="scope">
+            <dict-tag :options="dict.type.work_reporting_status" :value="scope.row.sfResult"/>
+          </template>
         </el-table-column>
-        <el-table-column label="鍒涘缓浜�" width="80" align="center" prop="createUser">
-        </el-table-column>
-        <el-table-column label="澶囨敞" width="100" align="center" prop="remarks">
-        </el-table-column>
+<!--        <el-table-column width="240" fixed="right" label="鎿嶄綔" align="center" class-name="small-padding fixed-width">-->
+<!--          <template slot-scope="scope">-->
+<!--            <el-button-->
+<!--              size="mini"-->
+<!--              type="success"-->
+<!--              plain-->
+<!--              style="width: 72px"-->
+<!--              @click="onlineWorkReporting(scope.row)"-->
+<!--              :disabled="isEditDisabled(scope.row.onlineCompletionMark)"-->
+<!--            >涓婄嚎鎶ュ伐</el-button>-->
+<!--            <el-button-->
+<!--              size="mini"-->
+<!--              plain-->
+<!--              style="width: 72px"-->
+<!--              type="danger"-->
+<!--              @click="offlineWorkReporting(scope.row)"-->
+<!--              :disabled="isEditDisabled(scope.row.sfResult)"-->
+<!--            >涓嬬嚎鎶ュ伐</el-button>-->
+<!--          </template>-->
+<!--        </el-table-column>-->
       </el-table>
     </el-card>
 
@@ -278,7 +352,7 @@
 import { getToken } from "@/utils/auth";
 import { listLineInfo } from "@/api/main/bs/lineInfo/lineInfo";
 import { listWorkshop } from "@/api/main/bs/workshop/workshop";
-import { listProductBom } from "@/api/main/bs/ProductBom/ProductBom";
+import {getProductBom, listProductBom} from "@/api/main/bs/ProductBom/ProductBom";
 import { listTechnologyRoute} from "@/api/main/bs/technologyRoute/technologyRoute";
 import ItemSelect  from "@/components/itemSelect/single.vue";
 import {
@@ -289,13 +363,13 @@
   delProductionOrde,
   addProductionOrde,
   updateProductionOrde,
-  receivingWorkOrders
+  receivingWorkOrders, jieBang, workReportingByStation
 } from "@/api/main/om/productionOrde/productionOrde";
 import QRCode from "qrcodejs2";
 
 export default {
   name: "ProductionOrde",
-  dicts: ['order_state'],
+  dicts: ['order_state','work_reporting_status'],
   components: {
     ItemSelect ,
   },
@@ -317,6 +391,8 @@
       ids: [],
       // 闈炲崟涓鐢�
       single: true,
+      onlineSingle: true,
+      offlineSingle: true,
       // 闈炲涓鐢�
       multiple: true,
       move: true,
@@ -398,7 +474,40 @@
     this.test1()
   },
   methods: {
-     async getWorkOrders(){
+    onlineWorkReporting(row){
+      const id = row.id || this.ids
+      const stationCode = "OP230"
+      workReportingByStation(id,stationCode).then(response => {
+        this.getList()
+      });
+    },
+    offlineWorkReporting(row){
+      const id = row.id || this.ids
+      const stationCode = "OP500"
+      workReportingByStation(id,stationCode).then(response => {
+        this.getList()
+      });
+    },
+    jieBang(row){
+      const id = row.id || this.ids
+      jieBang(id).then(response => {
+        this.getList()
+        this.$modal.msgSuccess("瑙g粦鎴愬姛");
+      });
+    },
+    patchwork(row){
+      const id = row.id || this.ids
+      getProductionOrde(id).then(response => {
+        console.log(response.data)
+        this.packCode = response.data.productNum
+        console.log(this.packCode)
+        this.test1()
+        setTimeout(() => {
+          this.print()
+        },50)
+      });
+    },
+    async getWorkOrders(){
       await receivingWorkOrders().then(response => {
         this.getList()
         this.packCode = response.msg;
@@ -588,19 +697,44 @@
       this.handleQuery();
     },
     // 澶氶�夋閫変腑鏁版嵁
+    // handleSelectionChange(selection) {
+    //   this.ids = selection.map(item => item.id)
+    //   this.move = selection.length!==1
+    //   if(!selection.length){
+    //     this.single = true
+    //     this.multiple = true
+    //   }else {
+    //     if(selection[0].orderStatus === '1' && selection.length === 1){
+    //       this.single = false
+    //       this.multiple = false
+    //     }
+    //   }
+    //
+    // },
+    // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
       this.ids = selection.map(item => item.id)
-      this.move = selection.length!==1
-      if(!selection.length){
-        this.single = true
-        this.multiple = true
-      }else {
-        if(selection[0].orderStatus === '1' && selection.length === 1){
-          this.single = false
-          this.multiple = false
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+      this.onlineSingle = selection.length!==1
+      this.offlineSingle = selection.length!==1
+
+      if(selection.length === 0){
+        this.onlineSingle = true
+        this.offlineSingle = true
+      }
+      if(selection.length === 1){
+        if(selection[0].onlineCompletionMark === '2'){
+          this.onlineSingle = false
+        }else {
+          this.onlineSingle = true
+        }
+        if(selection[0].sfResult === '2'){
+          this.offlineSingle = false
+        }else {
+          this.offlineSingle = true
         }
       }
-
     },
     /** 鏂板鎸夐挳鎿嶄綔 */
     handleAdd() {

--
Gitblit v1.9.3