From f9625961d0678f81b9ce8e1d4a933c73b7fd4209 Mon Sep 17 00:00:00 2001
From: songshankun <songshankun@foxmail.com>
Date: 星期四, 19 十月 2023 17:43:35 +0800
Subject: [PATCH] feat: 生产目标数首次是来源于下发的任务,然后需要显示从PLC获取的目标数

---
 src/views/visualization.vue |   92 +++++++++++++++++++++++++++-------------------
 1 files changed, 54 insertions(+), 38 deletions(-)

diff --git a/src/views/visualization.vue b/src/views/visualization.vue
index 2f73034..2523cc2 100644
--- a/src/views/visualization.vue
+++ b/src/views/visualization.vue
@@ -104,7 +104,7 @@
                       style="font-size: 35px; font-weight: 600"
                       class="color_green"
                     >
-                      {{ taskData.finishNumber || 0 }}{{ taskData.Order.unit }}
+                      {{ processingStatistics(taskData).finishNumber }}{{ taskData.Order.unit }}
                     </dd>
                   </dl>
                 </div>
@@ -117,7 +117,7 @@
                       style="font-size: 35px; font-weight: 600"
                       class="color_green"
                     >
-                      {{ taskData.Order.amount || 0 }}{{ taskData.Order.unit }}
+                      {{ processingStatistics(taskData).totalNumber }}{{ taskData.Order.unit }}
                     </dd>
                   </dl>
                 </div>
@@ -166,16 +166,7 @@
                     text-color="#fff"
                     :text-inside="true"
                     :stroke-width="30"
-                    :percentage="
-                      (taskData.Order && taskData.finishNumber != 0 && taskData.Order.amount)
-                        ? parseInt(
-                            (taskData.finishNumber / taskData.Order.amount) *
-                              100
-                        )>100?100:parseInt(
-                            (taskData.finishNumber / taskData.Order.amount) *
-                              100
-                        ): 0
-                    "
+                    :percentage="calculateProgress(processingStatistics(taskData))"
                   ></el-progress>
                 </el-descriptions-item>
                 <!-- <el-descriptions-item label="鍚堟牸鐜�" style="width: 100%">
@@ -297,15 +288,7 @@
                       </div>
                       <div class="card_top-3">
                         <span class="card-top-r-t"
-                          >瀹屾垚杩涘害锛歿{
-                            (taskData.Order && taskData.finishNumber != 0 && taskData.Order.amount)
-                              ? parseInt(
-                                  (taskData.finishNumber /
-                                    taskData.Order.amount) *
-                                    100
-                                )
-                              : 0
-                          }}</span
+                          >瀹屾垚杩涘害锛歿{calculateProgress(processingStatistics(taskData))}}</span
                         >
                         <span class="card-top-r-b">
                           <el-progress
@@ -314,19 +297,7 @@
                             text-color="#fff"
                             :text-inside="true"
                             :stroke-width="10"
-                            :percentage="
-                             (taskData.Order && taskData.finishNumber != 0)
-                                ? parseInt(
-                                    (taskData.finishNumber /
-                                      taskData.Order.amount) *
-                                      100
-                                )>100?100:parseInt(
-                                    (taskData.finishNumber /
-                                      taskData.Order.amount) *
-                                      100
-                                )
-                                : 0
-                            "
+                            :percentage="calculateProgress(processingStatistics(taskData))"
                             :show-text="false"
                           ></el-progress>
                         </span>
@@ -811,6 +782,51 @@
     // }
   },
   methods: {
+    processingStatistics(taskData){
+      const status = taskData?.Procedure?.Status;
+    //   濡傛灉status = 2 鍔犲伐涓�, 鍒欏姞宸ユ暟鍜岀洰鏍囨暟搴斿彇杞鎺ュ彛涓殑 finishNumber 鍜� totalNumber
+      // 濡傛灉status = 1 鏈紑濮�, 鐩爣鏁� 鍙� taskData.Order.amount  鍔犲伐鏁板彇 0
+      // 濡傛灉status = 3 宸插畬鎴�, 鐩爣鏁板拰鍔犲伐鏁伴兘鍙� amount
+      let finishNumber = 0;
+      let totalNumber = 0;
+      if (status === 1){
+        totalNumber = taskData?.Order?.amount ?? 0
+        finishNumber = 0
+      }else if (status === 2){
+        totalNumber = taskData?.totalNumber ?? 0
+        finishNumber = taskData?.finishNumber ?? 0
+      }else if (status === 3){
+        totalNumber = taskData?.Order?.amount  ?? 0
+        finishNumber = taskData?.Order?.amount ?? 0
+      }
+
+      console.log({
+        /** 鐩爣鏁� */
+        totalNumber: +totalNumber,
+        /** 鍔犲伐鏁� */
+        finishNumber: +finishNumber,
+      })
+
+      return {
+        /** 鐩爣鏁� */
+        totalNumber: +totalNumber,
+        /** 鍔犲伐鏁� */
+        finishNumber: +finishNumber,
+      }
+    },
+    /**
+     * 璁$畻鐢熶骇杩涘害
+     * @param statistics
+     * @return {number}  杩涘害,0~100
+     */
+    calculateProgress(statistics){
+      if (statistics.finishNumber === statistics.totalNumber){
+        return 100
+      }
+
+      const result =  Math.floor(statistics.finishNumber / statistics.totalNumber * 100)
+      return result > 100 ? 100 : result
+    },
     deduplicateWorkers(workers){
       return _.uniqBy(workers,ele=>ele.workerName)
     },
@@ -1142,6 +1158,7 @@
             this.TasksCopy[i].inputMaterials = [];
             this.TasksCopy[i].outputMaterials = [];
             this.TasksCopy[i].finishNumber = 0;
+            this.TasksCopy[i].totalNumber = 0;
             this.TasksCopy[i].number=0;
             this.TasksCopy[i].isUpdateIcon=false;
             this.finishShow['finishShow&'+i]=false
@@ -1256,10 +1273,9 @@
             procedureId: this.TasksCopy[i].Procedure.ID,
           }).then((res) => {
             if (res.code == 200) {
-              this.TasksCopy[i].finishNumber = res.data.finishNumber
-                ? res.data.finishNumber
-                : 0;
-                this.plcStatus=res.data.plcStatus?res.data.plcStatus:0
+              this.TasksCopy[i].finishNumber = res.data?.finishNumber ?? 0;
+              this.TasksCopy[i].totalNumber = res.data?.totalNumber ?? 0;
+              this.plcStatus = res.data?.plcStatus ?? 0
             }
             this.resprocInfoTimer=res;
           });

--
Gitblit v1.8.0