yangfeng
2023-12-11 da4d9e70d2c37f59a365b0fb88ad70e8c1ba79b4
src/views/cockpitPage/index.vue
@@ -75,7 +75,7 @@
        { value: 0, label: "总产量" },
        { value: 0, label: "生产工单数" },
        { value: 0, label: "延期交付" },
        { value: 0, label: "物料不足" },
        { value: 0, label: "物料不足/待排程" },
        { value: 0, label: "计划达成率" },
      ],
      // 机器开机率
@@ -165,10 +165,11 @@
          item.value = data?.WorkOrderAmount ?? 0;
        } else if (item.label === "延期交付") {
          item.value = data?.DelayWorkOrderAmount ?? 0;
        } else if (item.label === "物料不足") {
        } else if (item.label === "物料不足/待排程") {
          item.value = data?.MaterialMissWorkOrderAmount ?? 0;
          item.value1 = data?.WaitSchedulingWorkOrderAmount ?? 0;
        } else if (item.label === "计划达成率") {
          item.value =
          let value =
            typeof data?.PlanOrderFinishRate === "string"
              ? parseFloat(
                  data?.PlanOrderFinishRate.length > 0
@@ -176,6 +177,7 @@
                    : "0"
                )
              : data?.PlanOrderFinishRate ?? 0;
          item.value = value.toString() + "%";
        }
      });
    },
@@ -203,88 +205,107 @@
    },
    // 左中数据统计值
    setLeftBlock3(data) {
      console.log(this.setNumbers(data?.OutPlanProductionAmount ?? 0));
      this.totalObject = {
        InternalDeviceRunningAmount: data?.InternalDeviceRunningAmount ?? 0,
        InternalDeviceRunningAmount: (
          data?.InternalDeviceRunningAmount ?? 0
        ).toString(),
        ExternalDeviceRunningAmount: data?.ExternalDeviceRunningAmount ?? 0,
        OutPlanProductionAmount: data?.OutPlanProductionAmount ?? 0,
        PlanProductionAmount: data?.PlanProductionAmount ?? 0,
        RealExternalProductionAmount: data?.RealExternalProductionAmount ?? 0,
        RealProductionAmount: data?.RealProductionAmount ?? 0,
        OutPlanProductionAmount: this.setNumbers(
          data?.OutPlanProductionAmount ?? 0
        ),
        PlanProductionAmount: this.setNumbers(data?.PlanProductionAmount ?? 0),
        RealExternalProductionAmount: this.setNumbers(
          data?.RealExternalProductionAmount ?? 0
        ),
        RealProductionAmount: this.setNumbers(data?.RealProductionAmount ?? 0),
      };
    },
    // 订单完成比率
    setLeftBlock4(data) {
      this.orderCompleteObject.startIndex = 0;
      this.orderCompleteObject.orderCompleteList = [];
      let list = data.OrderFinishRate.map((item) => {
        return {
          title: item.Name,
          radio: parseFloat(item.Value),
        };
      });
      this.orderCompleteObject.orderCompleteList = list;
      if (data.OrderFinishRate && data.OrderFinishRate.length > 0) {
        let list = data?.OrderFinishRate.map((item) => {
          return {
            title: item.Name,
            radio: parseFloat(item.Value),
          };
        });
        this.orderCompleteObject.orderCompleteList = list;
      }
    },
    // 工单进度统计
    setLeftBlock5(data) {
      this.workOrderFinishRate = data?.WorkOrderFinishRate.toString() ?? "0";
      let list = data.WorkOrderStats.map((item) => {
        let completeProgerss = [];
        for (let i = 0; i < item.ProcedureNum; i++) {
          let status = 0;
          if (i < item.FinishProcedureNum) {
            status = 1;
          } else if (
            i >= item.FinishProcedureNum &&
            i < item.FinishProcedureNum + item.ProcessingProcedureNum
          ) {
            status = 2;
          } else {
            status = 0;
      if (data.WorkOrderStats && data.WorkOrderStats.length > 0) {
        let list = data.WorkOrderStats.map((item) => {
          let completeProgerss = [];
          for (let i = 0; i < item.ProcedureNum; i++) {
            let status = 0;
            if (i < item.FinishProcedureNum) {
              status = 1;
            } else if (
              i >= item.FinishProcedureNum &&
              i < item.FinishProcedureNum + item.ProcessingProcedureNum
            ) {
              status = 2;
            } else {
              status = 0;
            }
            completeProgerss.push({ status: status });
          }
          completeProgerss.push({ status: status });
        }
        return {
          ...item,
          completeProgerss: completeProgerss,
        };
      });
      this.workOrderData = list;
          return {
            ...item,
            completeProgerss: completeProgerss,
          };
        });
        this.workOrderData = list;
      }
    },
    // 人员生效效率比 人员技能
    setLeftBlock6(data) {
      this.perSonnelChartData.datax = [];
      this.perSonnelChartData.datay = [];
      data.PersonnelProductivity.map((item) => {
        this.perSonnelChartData.datax.push(item.Name);
        this.perSonnelChartData.datay.push(parseFloat(item.Value));
      });
      if (data.PersonnelProductivity && data.PersonnelProductivity.length > 0) {
        data.PersonnelProductivity.map((item) => {
          this.perSonnelChartData.datax.push(item.Name);
          this.perSonnelChartData.datay.push(parseFloat(item.Value));
        });
      }
      // 人员技能饼图
      let chartData2 = [];
      chartData2 = data.WorkerTypeStats.map((item) => {
        return {
          name: item.Name,
          value: parseFloat(item.Value),
        };
      });
      this.$refs.leftBlock6.getChartRight("chart2", chartData2);
      if (data.WorkerTypeStats && data.WorkerTypeStats.length > 0) {
        chartData2 = data.WorkerTypeStats.map((item) => {
          return {
            name: item.Name,
            value: parseFloat(item.Value),
          };
        });
        this.$refs.leftBlock6.getChartRight("chart2", chartData2);
      }
    },
    // 设备负荷对比
    setRightBlock1(data) {
      this.deviceChartData.datax = [];
      this.deviceChartData.datay = [];
      data.DeviceLoad.map((item) => {
        this.deviceChartData.datax.push(item.Name);
        this.deviceChartData.datay.push(parseFloat(item.Value));
      });
      if (data.DeviceLoad && data.DeviceLoad.length > 0) {
        data.DeviceLoad.map((item) => {
          this.deviceChartData.datax.push(item.Name);
          this.deviceChartData.datay.push(parseFloat(item.Value));
        });
      }
    },
    // 物料需求统计
    setRightBlock2(data) {
      this.materialChartData.datax = [];
      this.materialChartData.datay = [];
      data.MaterialRequirement.map((item) => {
        this.materialChartData.datax.push(item.Name);
        this.materialChartData.datay.push(parseFloat(item.Value));
      });
      if (data.MaterialRequirement && data.MaterialRequirement.length > 0) {
        data.MaterialRequirement.map((item) => {
          this.materialChartData.datax.push(item.Name);
          this.materialChartData.datay.push(parseFloat(item.Value));
        });
      }
    },
    // 车间正品率
    setRightBlock3(data) {
@@ -293,11 +314,50 @@
      this.barChartData.datax = [];
      this.barChartData.datay = [];
      this.barChartData.datay2 = [];
      data.WorkshopStats.map((item) => {
        this.barChartData.datax.push(item.Name);
        this.barChartData.datay.push(parseFloat(item.Qualified));
        this.barChartData.datay2.push(parseFloat(item.Defective));
      });
      if (data.WorkshopStats && data.WorkshopStats.length > 0) {
        data.WorkshopStats.map((item) => {
          this.barChartData.datax.push(item.Name);
          this.barChartData.datay.push(parseFloat(item.Qualified));
          this.barChartData.datay2.push(parseFloat(item.Defective));
        });
      }
    },
    // 计算加工数 生产数
    setNumbers(val) {
      if (val > 1000 && val < 10000) {
        let count = (val / 1000).toFixed(2);
        return count.toString() + "千";
      } else if (val >= 10000 && val < 100000) {
        let count1 = (val / 10000).toFixed(2);
        return count1.toString() + "万";
      } else if (val >= 100000 && val < 1000000) {
        let count1 = (val / 100000).toFixed(0);
        return count1.toString() + "十万";
      } else if (val >= 1000000 && val < 10000000) {
        let count1 = (val / 1000000).toFixed(0);
        return count1.toString() + "百万";
      } else if (val >= 10000000 && val < 100000000) {
        let count1 = (val / 10000000).toFixed(0);
        return count1.toString() + "千万";
      } else if (val >= 100000000 && val < 1000000000) {
        let count1 = (val / 100000000).toFixed(2);
        return count1 + "亿";
      } else if (val >= 1000000000 && val < 10000000000) {
        let count1 = (val / 1000000000).toFixed(0);
        return count1.toString() + "十亿";
      } else if (val >= 10000000000 && val < 100000000000) {
        let count1 = (val / 10000000000).toFixed(0);
        return count1.toString() + "百亿";
      } else if (val >= 100000000000 && val < 1000000000000) {
        let count1 = (val / 100000000000).toFixed(0);
        return count1.toString() + "千亿";
      } else if (val >= 1000000000000) {
        let count1 = (val / 1000000000000).toFixed(0);
        return count1.toString() + "万亿";
      } else {
        return val.toString();
      }
    },
  },
};