Parcourir la source

Merge remote-tracking branch 'origin/master'

wukai il y a 3 mois
Parent
commit
a8eb58a520

+ 19 - 0
src/api/calc/pingfangmi.js

@@ -0,0 +1,19 @@
+import request from '@/utils/request'
+
+//获取平方米克重导出数据
+export function Get07Data(data){
+    return request({
+        url: `/api/gram-mass/total`,
+        method: "get",
+        params: data
+    })
+}
+//获取平方米克重详细数据
+export function Get07DetailData(data){
+    return request({
+        url: `/api/gram-mass/detail/`+data,
+        method: "get",
+        params: null
+    })
+}
+

+ 39 - 26
src/views/calc/calcDay/index.vue

@@ -1,18 +1,18 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="时间" prop="time">
+      <el-form-item label="日期" prop="time">
         <el-date-picker clearable
           v-model="queryParams.time"
           type="date"
           value-format="YYYY-MM-DD"
-          placeholder="请选择时间">
+          placeholder="请选择日期">
         </el-date-picker>
       </el-form-item>
-      <el-form-item label="设备ID" prop="deviceId">
+      <el-form-item label="设备" prop="deviceId">
         <el-input
           v-model="queryParams.deviceId"
-          placeholder="请输入设备ID"
+          placeholder="请输入设备"
           clearable
           @keyup.enter="handleQuery"
         />
@@ -20,6 +20,13 @@
       <el-form-item>
         <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
         <el-button icon="Refresh" @click="resetQuery">重置</el-button>
+        <el-button
+          type="warning"
+          plain
+          icon="Download"
+          @click="handleExport"
+          v-hasPermi="['calc:calcDay:export']"
+        >导出</el-button>
       </el-form-item>
     </el-form>
 
@@ -66,9 +73,9 @@
 <!--    </el-row>-->
 
     <el-table v-loading="loading" :data="calcDayList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="ID" align="center" prop="id" />
-      <el-table-column label="时间" align="center" prop="time" width="180">
+      <!--<el-table-column type="selection" width="55" align="center" v-show="false" />
+      <el-table-column label="ID" align="center" prop="id" v-show="false"/>-->
+      <el-table-column label="日期" align="center" prop="time" width="120">
         <template #default="scope">
           <span>{{ parseTime(scope.row.time, '{y}-{m}-{d}') }}</span>
         </template>
@@ -79,30 +86,36 @@
       <el-table-column label="稼动率" align="center" prop="efficiency" />
       <el-table-column label="总电量" align="center" prop="kwh" />
       <el-table-column label="告警数量" align="center" prop="alarm" />
-      <el-table-column label="A班米长" align="center" prop="lengthA" />
-      <el-table-column label="A班重量" align="center" prop="weightA" />
-      <el-table-column label="A班稼动率" align="center" prop="efficiencyA" />
-      <el-table-column label="A班开机时间" align="center" prop="openTimeA" />
-      <el-table-column label="A班停机时间" align="center" prop="closeTimeA" />
-      <el-table-column label="A班电量" align="center" prop="kwhA" />
-      <el-table-column label="A班停经片停机" align="center" prop="stop1A" />
-      <el-table-column label="A班CCD停机" align="center" prop="stop2A" />
-      <el-table-column label="A班人工停机" align="center" prop="stop3A" />
-      <el-table-column label="B班米长" align="center" prop="lengthB" />
-      <el-table-column label="B班重量" align="center" prop="weightB" />
-      <el-table-column label="B班稼动率" align="center" prop="efficiencyB" />
-      <el-table-column label="B班开机时间" align="center" prop="openTimeB" />
-      <el-table-column label="B班停机时间" align="center" prop="closeTimeB" />
-      <el-table-column label="B班电量" align="center" prop="kwhB" />
-      <el-table-column label="B班停经片停机" align="center" prop="stop1B" />
-      <el-table-column label="B班CCD停机" align="center" prop="stop2B" />
-      <el-table-column label="B班人工停机" align="center" prop="stop3B" />
+      <el-table-column label="A班" align="center">
+        <el-table-column label="米长" align="center" prop="lengthA" />
+        <el-table-column label="重量" align="center" prop="weightA" />
+        <el-table-column label="稼动率" align="center" prop="efficiencyA" />
+        <el-table-column label="开机时间" align="center" prop="openTimeA" />
+        <el-table-column label="停机时间" align="center" prop="closeTimeA" />
+        <el-table-column label="电量" align="center" prop="kwhA" />
+        <el-table-column label="停经片停机" align="center" prop="stop1A" />
+        <el-table-column label="CCD停机" align="center" prop="stop2A" />
+        <el-table-column label="人工停机" align="center" prop="stop3A" />
+      </el-table-column>
+      <el-table-column label="B班" align="center">
+        <el-table-column label="米长" align="center" prop="lengthB" />
+        <el-table-column label="重量" align="center" prop="weightB" />
+        <el-table-column label="稼动率" align="center" prop="efficiencyB" />
+        <el-table-column label="开机时间" align="center" prop="openTimeB" />
+        <el-table-column label="停机时间" align="center" prop="closeTimeB" />
+        <el-table-column label="电量" align="center" prop="kwhB" />
+        <el-table-column label="停经片停机" align="center" prop="stop1B" />
+        <el-table-column label="CCD停机" align="center" prop="stop2B" />
+        <el-table-column label="人工停机" align="center" prop="stop3B" />
+      </el-table-column>
+      <!--
       <el-table-column label="创建人" align="center" prop="createdBy" />
       <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
         <template #default="scope">
           <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
+      -->
 <!--      <el-table-column label="更新人" align="center" prop="updatedBy" />-->
 <!--      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">-->
 <!--        <template #default="scope">-->
@@ -148,7 +161,7 @@ const data = reactive({
   queryParams: {
     pageNum: 1,
     pageSize: 10,
-    time: null,
+    time: new Date().Format('yyyy-MM-dd'),
     deviceId: null,
     orderByColumn: 'id',
     isAsc: 'descending'

+ 88 - 169
src/views/calc/calcStop/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="设备ID" prop="deviceId">
+      <el-form-item label="设备" prop="deviceId">
         <el-input
           v-model="queryParams.deviceId"
           placeholder="请输入设备ID"
@@ -9,6 +9,16 @@
           @keyup.enter="handleQuery"
         />
       </el-form-item>
+      <el-form-item label="停机类型" prop="stopType">
+        <el-select v-model="queryParams.stopType" placeholder="请选择" clearable style="width: 120px;">
+          <el-option
+            v-for="dict in stop_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
       <el-form-item label="日期" prop="dataDate">
         <el-date-picker clearable
           v-model="queryParams.dataDate"
@@ -17,107 +27,9 @@
           placeholder="请选择日期">
         </el-date-picker>
       </el-form-item>
-      <el-form-item label="小时;0-23" prop="hour">
-        <el-input
-          v-model="queryParams.hour"
-          placeholder="请输入小时;0-23"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="停机开始时间" prop="startTime">
-        <el-date-picker clearable
-          v-model="queryParams.startTime"
-          type="date"
-          value-format="YYYY-MM-DD"
-          placeholder="请选择停机开始时间">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item label="停机结束时间" prop="endTime">
-        <el-date-picker clearable
-          v-model="queryParams.endTime"
-          type="date"
-          value-format="YYYY-MM-DD"
-          placeholder="请选择停机结束时间">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item label="创建人" prop="createdBy">
-        <el-input
-          v-model="queryParams.createdBy"
-          placeholder="请输入创建人"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="创建时间" prop="createdTime">
-        <el-date-picker clearable
-          v-model="queryParams.createdTime"
-          type="date"
-          value-format="YYYY-MM-DD"
-          placeholder="请选择创建时间">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item label="更新人" prop="updatedBy">
-        <el-input
-          v-model="queryParams.updatedBy"
-          placeholder="请输入更新人"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="更新时间" prop="updatedTime">
-        <el-date-picker clearable
-          v-model="queryParams.updatedTime"
-          type="date"
-          value-format="YYYY-MM-DD"
-          placeholder="请选择更新时间">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item label="备注" prop="remark">
-        <el-input
-          v-model="queryParams.remark"
-          placeholder="请输入备注"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
         <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="Plus"
-          @click="handleAdd"
-          v-hasPermi="['calc:calcStop:add']"
-        >新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="Edit"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['calc:calcStop:edit']"
-        >修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="Delete"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['calc:calcStop:remove']"
-        >删除</el-button>
-      </el-col>
-      <el-col :span="1.5">
         <el-button
           type="warning"
           plain
@@ -125,61 +37,70 @@
           @click="handleExport"
           v-hasPermi="['calc:calcStop:export']"
         >导出</el-button>
-      </el-col>
-      <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table v-loading="loading" :data="calcStopList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="ID" align="center" prop="id" />
-      <el-table-column label="设备ID" align="center" prop="deviceId" />
-      <el-table-column label="日期" align="center" prop="dataDate" width="180">
-        <template #default="scope">
-          <span>{{ parseTime(scope.row.dataDate, '{y}-{m}-{d}') }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="小时;0-23" align="center" prop="hour" />
-      <el-table-column label="停机开始时间" align="center" prop="startTime" width="180">
-        <template #default="scope">
-          <span>{{ parseTime(scope.row.startTime, '{y}-{m}-{d}') }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="停机结束时间" align="center" prop="endTime" width="180">
-        <template #default="scope">
-          <span>{{ parseTime(scope.row.endTime, '{y}-{m}-{d}') }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="停机类型;1停经片停机,2-CCD停机(相机号+断纱/故障)" align="center" prop="stopType" />
-      <el-table-column label="统计状态;1.未完成的统计" align="center" prop="calcStatus" />
-      <el-table-column label="创建人" align="center" prop="createdBy" />
-      <el-table-column label="创建时间" align="center" prop="createdTime" width="180">
-        <template #default="scope">
-          <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="更新人" align="center" prop="updatedBy" />
-      <el-table-column label="更新时间" align="center" prop="updatedTime" width="180">
-        <template #default="scope">
-          <span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d}') }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="备注" align="center" prop="remark" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template #default="scope">
-          <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['calc:calcStop:edit']">修改</el-button>
-          <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['calc:calcStop:remove']">删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    
-    <pagination
-      v-show="total>0"
-      :total="total"
-      v-model:page="queryParams.pageNum"
-      v-model:limit="queryParams.pageSize"
-      @pagination="getList"
-    />
-
+      </el-form-item>
+    </el-form>
+    <div style="display: flex;flex-direction: row;width: 100%;">
+        <div style="width: 35%;">
+            <el-row :gutter="10" class="mb8">
+              <el-col :span="1.5">
+                停机原因分析
+              </el-col>
+            </el-row>
+            <el-table v-loading="loading" :data="calcStopStat">
+              <el-table-column label="停机原因" align="center" prop="stopType">
+                <template #default="scope">
+                  <span>{{  getStopTypeName(scope.row.stopType) }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column label="停机次数" align="center" prop="stopNum"></el-table-column>
+              <el-table-column label="停机时长" align="center" prop="stopTimeLong"></el-table-column>
+              <el-table-column label="次数占比" align="center" prop="stopNumRatio"></el-table-column>
+              <el-table-column label="时长占比" align="center" prop="stopTimeLongRatio"></el-table-column>
+            </el-table>
+        </div>
+        <div style="width: 60%;margin-left: 5%;">
+          <el-row :gutter="10" class="mb8">
+            <el-col :span="1.5">
+              数据明细
+            </el-col>
+          </el-row>
+          <el-table v-loading="loading" :data="calcStopList">
+            <el-table-column label="设备号" align="center" prop="deviceId">
+              <template #default="scope">
+                <span>{{ scope.row.deviceId+'号' }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="日期" align="center" prop="dataDate">
+              <template #default="scope">
+                <span>{{ parseTime(scope.row.dataDate, '{y}-{m}-{d}') }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="停机开始时间" align="center" prop="startTime">
+              <template #default="scope">
+                <span>{{ scope.row.startTime }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="停机结束时间" align="center" prop="endTime">
+              <template #default="scope">
+                <span>{{ scope.row.endTime }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="停机类型" title="1停经片停机,2-CCD停机(相机号+断纱/故障)" align="center" prop="stopType">
+              <template #default="scope">
+                <span>{{  getStopTypeName(scope.row.stopType) }}</span>
+              </template>
+            </el-table-column>
+          </el-table>
+          
+          <pagination
+            v-show="total>0"
+            :total="total"
+            v-model:page="queryParams.pageNum"
+            v-model:limit="queryParams.pageSize"
+            @pagination="getList"
+          />
+        </div>
+     </div>
     <!-- 添加或修改停机数据统计对话框 -->
     <el-dialog :title="title" v-model="open" width="500px" append-to-body>
       <el-form ref="calcStopRef" :model="form" :rules="rules" label-width="80px">
@@ -251,7 +172,6 @@
 
 <script setup name="CalcStop">
 import { listCalcStop, getCalcStop, delCalcStop, addCalcStop, updateCalcStop } from "@/api/calc/calcStop";
-
 const { proxy } = getCurrentInstance();
 
 const calcStopList = ref([]);
@@ -263,29 +183,33 @@ const single = ref(true);
 const multiple = ref(true);
 const total = ref(0);
 const title = ref("");
+const calcStopStat = ref([]);
 
 const data = reactive({
   form: {},
   queryParams: {
     pageNum: 1,
-    pageSize: 10,
+    pageSize: 15,
     deviceId: null,
     dataDate: null,
     hour: null,
     startTime: null,
     endTime: null,
-    stopType: null,
     calcStatus: null,
-    createdBy: null,
-    createdTime: null,
-    updatedBy: null,
-    updatedTime: null,
-    remark: null
+    stopType: '',    
   },
   rules: {
   }
 });
-
+const { stop_type } = proxy.useDict('stop_type');
+function getStopTypeName(v){
+  for (let index = 0; index < stop_type.value.length; index++) {
+    const element = stop_type.value[index];
+    if(element.value==v) return element.label;
+    
+  }
+  return '';
+}
 const { queryParams, form, rules } = toRefs(data);
 
 /** 查询停机数据统计列表 */
@@ -313,13 +237,8 @@ function reset() {
     hour: null,
     startTime: null,
     endTime: null,
-    stopType: null,
     calcStatus: null,
-    createdBy: null,
-    createdTime: null,
-    updatedBy: null,
-    updatedTime: null,
-    remark: null
+    stopType: '',
   };
   proxy.resetForm("calcStopRef");
 }

+ 147 - 0
src/views/calc/pingfangmi/index.vue

@@ -0,0 +1,147 @@
+<template>
+  <div style="padding:10px" @click.stop="void(0)">
+      <div class="" style="text-align: center;top:2%;width: 100%;letter-spacing: 5px;color: #cdd2fb;font-size: 18px;">
+          <span style="position: relative;">
+              <el-button style="margin-left:10px" @click="impquery">刷新</el-button>
+              <el-button style="margin-left:10px" @click="impdata">导出</el-button>
+          </span>                
+      </div>
+      <div style="height: 700px;width: 100%;background-color: rgb(237 237 237 / 23%);margin-top: 10px;display: flex;">          
+          <div style="height: 700px;width: 30%;margin-left: 1%;">
+            <div class="table_caption" style="height: 30px;line-height: 30px;">汇总统计</div>
+            <el-scrollbar id="scrollar0" tag="div" :horizontal="false" style="height: 680px;width:100%;margin-left: 1%;overflow-y: hidden">
+                <el-table v-loading="loading" :data="datalist">
+                  <el-table-column label="平方米克重" align="center" prop="gramMass"></el-table-column>
+                  <el-table-column label="设备数量" align="center" prop="num"></el-table-column>
+                  <el-table-column label="占比" align="center" prop="percent"></el-table-column>
+                  <el-table-column label="明细" align="center">
+                    <template #default="scope">
+                      <el-button @click="getDetail(scope.row)">查看明细</el-button>
+                    </template>
+                  </el-table-column>
+                </el-table>
+             </el-scrollbar>
+          </div>
+          <el-scrollbar id="scrollar1" tag="div" :horizontal="false" style="height: 700px;width: 65%;margin-left: 1%;overflow-y: hidden">
+              <div class="table_caption" style="height: 30px;line-height: 30px;">{{detailValue}}明细数据</div>
+              <el-table class="titletable" cellspacing="0" cellpadding="0" style="width: 130%;" :data="detailDataList">
+                <el-table-column label="设备名" align="center" prop="device"></el-table-column>
+                <el-table-column label="送经量" align="center">
+                  <el-table-column label="GB1" align="center" prop="formula_data_19"></el-table-column>
+                  <el-table-column label="GB2" align="center" prop="formula_data_20"></el-table-column>
+                  <el-table-column label="GB3" align="center" prop="formula_data_21"></el-table-column>
+                  <el-table-column label="GB4" align="center" prop="formula_data_22"></el-table-column>
+                  <el-table-column label="GB5" align="center" prop="formula_data_23"></el-table-column>
+                </el-table-column>
+                <el-table-column label="纱线规格D" align="center">
+                  <el-table-column label="L1\L5" align="center" prop="formula_data_4"></el-table-column>
+                  <el-table-column label="L2\L4" align="center" prop="formula_data_5"></el-table-column>
+                  <el-table-column label="L3" align="center" prop="formula_data_6"></el-table-column>
+                </el-table-column>
+                <el-table-column label="纱线规格F" align="center">
+                  <el-table-column label="L1\L5" align="center" prop="formula_data_7"></el-table-column>
+                  <el-table-column label="L2\L4" align="center" prop="formula_data_8"></el-table-column>
+                  <el-table-column label="L3" align="center" prop="formula_data_9"></el-table-column>
+                </el-table-column>
+                <el-table-column label="盘头根数" align="center">
+                  <el-table-column label="L1\L5" align="center" prop="formula_data_10"></el-table-column>
+                  <el-table-column label="L2\L4" align="center" prop="formula_data_11"></el-table-column>
+                  <el-table-column label="L3" align="center" prop="formula_data_12"></el-table-column>
+                </el-table-column>
+                <el-table-column label="卷曲幅宽" align="center" prop="formula_data_13"></el-table-column>
+                <el-table-column label="下布长度" align="center" prop="formula_data_14"></el-table-column>
+                <el-table-column label="成品" align="center" >
+                  <el-table-column label="宽" align="center" prop="formula_data_16"></el-table-column>
+                  <el-table-column label="长" align="center" prop="formula_data_17"></el-table-column>
+                  <el-table-column label="重" align="center" prop="formula_data_18"></el-table-column>
+                </el-table-column>
+                <el-table-column label="牵拉密度" align="center" prop="formula_data_24"></el-table-column>
+                <el-table-column label="卷曲张力" align="center" prop="formula_data_25"></el-table-column>
+              </el-table>
+          </el-scrollbar>
+      </div>
+  </div>
+</template>
+<script>
+  import { ref,onMounted,watch } from 'vue';
+  import {Get07DetailData,Get07Data} from "@/api/calc/pingfangmi";
+  import { ElDatePicker,ElMessage } from 'element-plus';
+  import 'element-plus/dist/index.css'; // 确保导入样式文件
+  import * as echarts from 'echarts';
+  export default {
+      props:{
+      },
+      components:{
+          
+      },
+      setup(props,{emit}){
+          let datalist=ref([]);
+          let detailDataList=ref([]);
+          let detailValue=ref('')
+          function impquery(){
+              detailDataList.value=[];
+              datalist.value=[];
+              const msg = ElMessage({
+                      message:"正在加载数据",
+                      type:"info",
+                      duration:0, //一直显示
+              });
+              Get07Data().then((res)=>{
+                  console.log(res)
+                  msg.close();
+                  if(res.code!=0){
+                      return;
+                  }
+                  datalist.value = res.data;
+              }).catch(res=>{
+                  ElMessage({
+                      message:"数据获取失败!",
+                      type:"error",
+                  });
+              });
+          }
+
+          function getDetail(v){
+              detailValue.value = v.gramMass+'克';
+              detailDataList.value=[];
+              const msg = ElMessage({
+                      message:"正在加载数据",
+                      type:"info",
+                      duration:0, //一直显示
+              });
+              Get07DetailData(v.gramMass).then((res)=>{
+                  console.log(res)
+                  msg.close();
+                  if(res.code!=0){
+                      return;
+                  }
+                  detailDataList.value = res.data;
+              }).catch(res=>{
+                  ElMessage({
+                      message:"数据获取失败!",
+                      type:"error",
+                  });
+              });
+          }
+
+          function impdata(){
+              proxy.download('api/export/gram-mass', {
+                ...queryParams.value
+              }, `pingfangmi_${new Date().getTime()}.xlsx`)
+          }
+
+          onMounted(()=>{
+              impquery();
+          })
+
+          return{
+              datalist,
+              detailDataList,
+              detailValue,
+              impdata,
+              getDetail,
+              impquery,
+          }
+      }
+  }
+</script>