liuyi il y a 1 an
Parent
commit
528d13cdcb

+ 7 - 0
src/api/saleOrder/index.js

@@ -274,4 +274,11 @@ export async function orderHomogeneityInspect(data) {
   }
   }
   return Promise.reject(new Error(res.data.message));
   return Promise.reject(new Error(res.data.message));
 }
 }
+export async function getFactoryList(params) {
+  const res = await request.get(`/main/factoryarea/getFactoryList`,  { params });
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
 
 

+ 119 - 0
src/components/statistics/PlanStatistics.vue

@@ -0,0 +1,119 @@
+<template>
+  <div class="statistics">
+    <el-row :gutter="15">
+      <el-col :span="cardSpan">
+        <el-card shadow="hover" class="cardItem">
+          <div>
+            <div class="cardText">待排产计划数量</div>
+            <div class="cardNum">{{planStatistics.waitPlanNum}}</div>
+          </div>
+        </el-card>
+      </el-col>
+      <el-col :span="cardSpan">
+        <el-card shadow="hover" class="cardItem">
+          <div>
+            <div class="cardText">计划生产数量</div>
+            <div class="cardNum">{{planStatistics.planNum}}</div>
+          </div>
+        </el-card>
+      </el-col>
+      <el-col :span="cardSpan">
+        <el-card shadow="hover" class="cardItem">
+          <div>
+            <div class="cardText">已下发生产数量</div>
+            <div class="cardNum">{{planStatistics.issueNum}}</div>
+          </div>
+        </el-card>
+      </el-col>
+      <el-col :span="cardSpan">
+        <el-card shadow="hover" class="cardItem">
+          <div>
+            <div class="cardText">待派工数量</div>
+            <div class="cardNum">0</div>
+          </div>
+        </el-card>
+      </el-col>
+      <el-col :span="cardSpan">
+        <el-card shadow="hover" class="cardItem">
+          <div>
+            <div class="cardText">待完工生产数量</div>
+            <div class="cardNum">{{planStatistics.waitFinishNum}}</div>
+          </div>
+        </el-card>
+      </el-col>
+      <el-col :span="cardSpan">
+        <el-card shadow="hover" class="cardItem">
+          <div>
+            <div class="cardText">待领料数量</div>
+            <div class="cardNum">0</div>
+          </div>
+        </el-card>
+      </el-col>
+      <el-col :span="cardSpan">
+        <el-card shadow="hover" class="cardItem">
+          <div>
+            <div class="cardText">已完工数量</div>
+            <div class="cardNum">{{planStatistics.finishNum}}</div>
+          </div>
+        </el-card>
+      </el-col>
+      <el-col :span="cardSpan">
+        <el-card shadow="hover" class="cardItem">
+          <div>
+            <div class="cardText">已入库数量</div>
+            <div class="cardNum">{{planStatistics.stockNum}}</div>
+          </div>
+        </el-card>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+  import { getPlanStatistics } from "@/api/productionPlan";
+
+  export default {
+    props: [],
+    data() {
+      return {
+        planStatistics: {
+          waitPlanNum: 0,
+          planNum: 0,
+          issueNum: 0,
+          waitFinishNum: 0,
+          finishNum: 0,
+          stockNum: 0,
+        },
+        cardSpan: 3,
+      }
+    },
+    created() {
+      this.getPlanStatistics();
+    },
+    methods: {
+      async getPlanStatistics(){
+        let res = await getPlanStatistics();
+        this.planStatistics = res;
+      },
+    }
+  }
+</script>
+
+<style scoped lang="scss">
+.statistics {
+  padding: 10px 10px 20px;
+}
+.cardItem {
+  border: 1px solid rgb(225, 225, 225);
+  text-align: center;
+  color: white;
+  background-color: rgba(24, 144, 255, 0.8);
+}
+.cardText {
+  font-size: 16px;
+}
+.cardNum {
+  font-size: 32px;
+  font-style: italic;
+}
+</style>

+ 1 - 0
src/views/productionPlan/components/homogeneityInspectInstallDialog.vue

@@ -285,6 +285,7 @@
       },
       },
       async open(data) {
       async open(data) {
         this.visible = true;
         this.visible = true;
+        this.planIds = [];
         data.map(ele => {
         data.map(ele => {
           this.planIds.push(ele.id);
           this.planIds.push(ele.id);
         });
         });

+ 5 - 0
src/views/saleOrder/index.vue

@@ -9,6 +9,9 @@
         @check="check"
         @check="check"
       >
       >
       </order-search>
       </order-search>
+
+      <plan-statistics></plan-statistics>
+
       <el-tabs v-model="activeName" type="card" @tab-click="changeTab">
       <el-tabs v-model="activeName" type="card" @tab-click="changeTab">
         <el-tab-pane label="待排产" name="first"></el-tab-pane>
         <el-tab-pane label="待排产" name="first"></el-tab-pane>
         <el-tab-pane label="未排完" name="three"></el-tab-pane>
         <el-tab-pane label="未排完" name="three"></el-tab-pane>
@@ -108,6 +111,7 @@
   import OrderDetail from './components/order-detail.vue';
   import OrderDetail from './components/order-detail.vue';
   import CreateOrder from './components/create-order.vue';
   import CreateOrder from './components/create-order.vue';
   import orderHomogeneityInspectDialog from './components/orderHomogeneityInspectDialog';
   import orderHomogeneityInspectDialog from './components/orderHomogeneityInspectDialog';
+  import PlanStatistics from '@/components/statistics/PlanStatistics.vue'
 
 
   import {
   import {
     getPageList,
     getPageList,
@@ -127,6 +131,7 @@
       OrderDetail,
       OrderDetail,
       CreateOrder,
       CreateOrder,
       orderHomogeneityInspectDialog,
       orderHomogeneityInspectDialog,
+      PlanStatistics
     },
     },
     data() {
     data() {
       return {
       return {

+ 31 - 31
src/views/saleOrder/salesToProduction.vue

@@ -1160,37 +1160,37 @@ export default {
                 data.workOrder.productionPlanId = params.id;
                 data.workOrder.productionPlanId = params.id;
               }
               }
               console.log(data);
               console.log(data);
-              // await releaseSave(data)
-              //   .then((res) => {
-              //     if (res === 1) {
-              //       this.$message.success('工单已发布!');
-              //       this.$router.push({
-              //         path: '/productionPlan'
-              //       });
-              //     } else {
-              //       this.$confirm(
-              //         '生产计划创建成功,但工单发布失败。请前往【生产计划】列表【重新发布】工单',
-              //         '提示',
-              //         {
-              //           confirmButtonText: '返回',
-              //           cancelButtonText: '立即前往',
-              //           type: 'warning'
-              //         }
-              //       )
-              //         .then(() => {
-              //           this.$router.push({
-              //             path: '/productionPlan'
-              //           });
-              //         })
-              //         .catch(() => {
-              //           this.$router.go(-1);
-              //         });
-              //     }
-              //     removePageTab({ key });
-              //   })
-              //   .catch(() => {
-              //     this.$message.error('发布失败,请重新发布!');
-              //   });
+              await releaseSave(data)
+                .then((res) => {
+                  if (res === 1) {
+                    this.$message.success('工单已发布!');
+                    this.$router.push({
+                      path: '/productionPlan'
+                    });
+                  } else {
+                    this.$confirm(
+                      '生产计划创建成功,但工单发布失败。请前往【生产计划】列表【重新发布】工单',
+                      '提示',
+                      {
+                        confirmButtonText: '返回',
+                        cancelButtonText: '立即前往',
+                        type: 'warning'
+                      }
+                    )
+                      .then(() => {
+                        this.$router.push({
+                          path: '/productionPlan'
+                        });
+                      })
+                      .catch(() => {
+                        this.$router.go(-1);
+                      });
+                  }
+                  removePageTab({ key });
+                })
+                .catch(() => {
+                  this.$message.error('发布失败,请重新发布!');
+                });
             } catch (error) {}
             } catch (error) {}
 
 
             loading.close();
             loading.close();

+ 6 - 1
src/views/workOrder/index.vue

@@ -7,6 +7,9 @@
         <el-tab-pane label="已完成工单" name="second"></el-tab-pane>
         <el-tab-pane label="已完成工单" name="second"></el-tab-pane>
       </el-tabs> -->
       </el-tabs> -->
       <!-- 数据表格 -->
       <!-- 数据表格 -->
+
+      <plan-statistics></plan-statistics>
+
       <ele-pro-table
       <ele-pro-table
         ref="table"
         ref="table"
         :columns="newColumns"
         :columns="newColumns"
@@ -82,7 +85,7 @@
               (clientEnvironmentId != '4' && row.status == 8) ||
               (clientEnvironmentId != '4' && row.status == 8) ||
               (clientEnvironmentId == '4' &&
               (clientEnvironmentId == '4' &&
                 !row.productName.includes('板材') &&
                 !row.productName.includes('板材') &&
-                row.status == 8) 
+                row.status == 8)
             "
             "
           >
           >
             派单
             派单
@@ -203,8 +206,10 @@
   import { fieldModel } from '@/api/saleOrder';
   import { fieldModel } from '@/api/saleOrder';
 
 
   import { debounce } from 'lodash';
   import { debounce } from 'lodash';
+  import PlanStatistics from "@/components/statistics/PlanStatistics.vue";
   export default {
   export default {
     components: {
     components: {
+      PlanStatistics,
       OrderSearch,
       OrderSearch,
       unpackDialog
       unpackDialog
     },
     },