CD配唱片
2025-04-26 0a09148f6aa65d402f211f6839404157c1c2227e
修改计划大表push多次问题和负载统计查询重置
已修改2个文件
已删除1个文件
757 ■■■■ 文件已修改
src/views/mainPlan/gasPlanning2/index.vue 209 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mainPlan/gasProduceStatics/index.vue 474 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mainPlan/platePlanList/index.vue 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mainPlan/gasPlanning2/index.vue
ÎļþÒÑɾ³ý
src/views/mainPlan/gasProduceStatics/index.vue
@@ -84,6 +84,29 @@
        ></vxe-grid>
      </div>
    </div>
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
          type="warning"
          plain
          icon="Download"
          @click="handleExport2"
          v-hasPermi="['apsPartRouteStat:export']"
          >导出</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="info"
          plain
          icon="Refresh"
          @click="handleRefresh2"
          v-hasPermi="['apsPartRouteStat:edit']"
          >更新</el-button
        >
      </el-col>
      <right-toolbar @queryTable="getList" :search="false"></right-toolbar>
    </el-row>
    <div class="box_container">
      <div class="title_text">气柜规划产能负载统计</div>
      <div class="tabel_container">
@@ -104,6 +127,7 @@
} from "@/api/mainPlan/gasProduceStatics.js";
import { ref } from "vue";
import * as XLSX from "xlsx";
import { ElMessage } from "element-plus";
const { proxy } = getCurrentInstance();
const loading = ref(false);
@@ -159,7 +183,7 @@
let tableData = [];
let merges = [];
function handleChangeSelectType(e) {
  searchTypeValue.value = e
  searchTypeValue.value = e;
  console.log(e,searchTypeValue.value, "sjcsuhcushc");
  if (e === "day") {
    dayCom.value = true;
@@ -175,29 +199,23 @@
  // æ ¼å¼åŒ–年份和月份为 "yyyy-mm" æ ¼å¼çš„字符串
  return`${year}-${month}`;
}
/** æŸ¥è¯¢é›¶ä»¶ç»Ÿè®¡è¡¨åˆ—表 */
function getPipeList() {
  let sYearMonth = "";
  let eYearMonth = "";
  // let type = "";
  // options.map((item) => {
  //   if (queryParams.value.searchType === item.label) {
  //     type = item.value;
  //   }
  // });
function dateRangeStr(monthRange) {
  // åˆ›å»ºä¸€ä¸ªDate对象
  let sDate = new Date(queryParams.value.monthRange[0]);
  let eDate = new Date(queryParams.value.monthRange[1]);
  let sDate = new Date(monthRange[0]);
  let eDate = new Date(monthRange[1]);
  // èŽ·å–å¹´ä»½å’Œæœˆä»½
  let sYear = sDate.getFullYear();
  let sMonth = sDate.getMonth() + 1; // æœˆä»½æ˜¯ä»Ž0开始的,所以要加1
  let eYear = eDate.getFullYear();
  let eMonth = eDate.getMonth() + 1; // æœˆä»½æ˜¯ä»Ž0开始的,所以要加1
  // æ ¼å¼åŒ–为"YYYY-MM"的形式
  sYearMonth = `${sYear}-${sMonth.toString().padStart(2, "0")}`;
  eYearMonth = `${eYear}-${eMonth.toString().padStart(2, "0")}`;
  console.log(sYearMonth, eYearMonth, "yearMonth");
  return {
    sYearMonth: `${sYear}-${sMonth.toString().padStart(2, "0")}`,
    eYearMonth: `${eYear}-${eMonth.toString().padStart(2, "0")}`,
  };
}
/** æŸ¥è¯¢é›¶ä»¶ç»Ÿè®¡è¡¨åˆ—表 */
function getPipeList() {
  let rowKey = 0;
  let colKey = 0;
  headers.value = [];
@@ -206,106 +224,118 @@
  tableData = [];
  loading.value = true;
  listGasProduceStatics({
    searchStartDate:
      queryParams.value.searchType === "按月统计"
        ? sYearMonth
    searchStartDate: !dayCom.value
      ? dateRangeStr(queryParams.value.monthRange).sYearMonth
        : dateStr(queryParams.value.monthDays),
    searchEndDate:
      queryParams.value.searchType === "按月统计"
        ? eYearMonth
    searchEndDate: !dayCom.value
      ? dateRangeStr(queryParams.value.monthRange).eYearMonth
        : dateStr(queryParams.value.monthDays),
    searchType: searchTypeValue.value,
    major:'piping'
    major: "piping",
  }).then((response) => {
    console.log(response.data.planTable,'responseresponseresponse')
    console.log(response.data.planTable, "responseresponseresponse");
    const colList = [];
    let headersOne = [];
    let headersTwo = [];
    if(response.code == '200'){
    if (response.code == "200") {
      if (!response.data.planTitle) {
        loading.value = false;
        return;
      }
      headersOne.push('日期');
      headersTwo.push('工序名称');
      headersOne.push("日期");
      headersTwo.push("工序名称");
      colList.push({
          field: 'dateCol',
          title: '日期',
          fixed: 'left',
        field: "dateCol",
        title: "日期",
        fixed: "left",
          children: [
            { field: `resourceName`, title: '工序名称', width: 250, type: 'html'},
          {
            field: `resourceName`,
            title: "工序名称",
            width: 250,
            type: "html",
          },
          ],
          width: 160
        })
      response.data.planTitle.forEach(item => {
        width: 160,
      });
      response.data.planTitle.forEach((item) => {
        headersOne.push(item);
        headersOne.push('');
        headersOne.push('');
        headersTwo.push('设计产能');
        headersTwo.push('需求产能');
        headersTwo.push('产能负载');
        colKey++
        headersOne.push("");
        headersOne.push("");
        headersTwo.push("设计产能");
        headersTwo.push("需求产能");
        headersTwo.push("产能负载");
        colKey++;
        colList.push({
          field: `dateColTime${colKey}`,
          title: item,
          children: [
          { field: `designTimes${colKey}`, title: '设计产能', width: 80},
          { field: `requireTimes${colKey}`, title: '需求产能', width: 80},
          { field: `capacityLoad${colKey}`, title: '产能负载', width: 80, type: 'html'},
            { field: `designTimes${colKey}`, title: "设计产能", width: 80 },
            { field: `requireTimes${colKey}`, title: "需求产能", width: 80 },
            {
              field: `capacityLoad${colKey}`,
              title: "产能负载",
              width: 80,
              type: "html",
            },
          ],
          width: 160
        })
          width: 160,
        });
      });
      headers.value.push(headersOne);
      headers.value.push(headersTwo);
      const columnList = [...tableColumn, ...colList]
      const dataList = []
      const columnList = [...tableColumn, ...colList];
      const dataList = [];
      let startCol = 1;
      //获取map
      response.data.planTable.map(mapItem => {
        rowKey++
      response.data.planTable.map((mapItem) => {
        rowKey++;
        let lastCol = startCol + 2;
        merges.push({ s: { r: 0, c: startCol }, e: { r: 0, c:  lastCol} });
        startCol = lastCol + 1;
        let data = [];
        const item = {
          id: `${rowKey}`
        }
          id: `${rowKey}`,
        };
        for (const [key, listValue] of Object.entries(mapItem)) {
          data.push(key);
          
          let tableKey = 0;
          let flag = false;
          listValue.forEach(listItem => {
            tableKey++
          listValue.forEach((listItem) => {
            tableKey++;
            item[`designTimes${tableKey}`] = listItem.designTimes;
            item[`requireTimes${tableKey}`] = listItem.requireTimes;
            item[`capacityLoad${tableKey}`] = listItem.capacityLoad > 100 ? `<font color="red">${listItem.capacityLoad}%</font>` :listItem.capacityLoad+'%';
            item[`capacityLoad${tableKey}`] =
              listItem.capacityLoad > 100
                ? `<font color="red">${listItem.capacityLoad}%</font>`
                : listItem.capacityLoad + "%";
            data.push(listItem.designTimes);
            data.push(listItem.requireTimes);
            data.push(listItem.capacityLoad+'%');
            data.push(listItem.capacityLoad + "%");
            if (listItem.capacityLoad > 100) {
              flag = true;
            }
          });
          item[`resourceName`] = flag ? `<div class='el-badge'><sup class="el-badge__content is-fixed is-dot"></sup>${key}</div>` : key;
          item[`resourceName`] = flag
            ? `<div class='el-badge'><sup class="el-badge__content is-fixed is-dot"></sup>${key}</div>`
            : key;
        }
        exportData.value.push(data);
        dataList.push(item);
      });
        
      const $grid = gridRef.value
      const $grid = gridRef.value;
      if ($grid) {
        tableColumn = columnList
        tableData = [...tableData, ...dataList]
        $grid.loadColumn(tableColumn)
        $grid.loadData(tableData)
        gridOptions.loading = false
        tableColumn = columnList;
        tableData = [...tableData, ...dataList];
        $grid.loadColumn(tableColumn);
        $grid.loadData(tableData);
        gridOptions.loading = false;
      }
      loading.value = false;
@@ -313,6 +343,133 @@
  });
}
function getGasList() {
  let rowKey = 0;
  let colKey = 0;
  headers.value = [];
  exportData.value = [];
  tableColumn = [];
  tableData = [];
  loading.value = true;
  listGasProduceStatics({
    searchStartDate: !dayCom.value
      ? dateRangeStr(queryParams.value.monthRange).sYearMonth
      : dateStr(queryParams.value.monthDays),
    searchEndDate: !dayCom.value
      ? dateRangeStr(queryParams.value.monthRange).eYearMonth
      : dateStr(queryParams.value.monthDays),
    searchType: searchTypeValue.value,
    major: "gas",
  }).then((response) => {
    console.log(response.data.planTable, "responseresponseresponse");
    const colList = [];
    let headersOne = [];
    let headersTwo = [];
    if (response.code == "200") {
      if (!response.data.planTitle) {
        loading.value = false;
        return;
      }
      headersOne.push("日期");
      headersTwo.push("工序名称");
      colList.push({
        field: "dateCol",
        title: "日期",
        fixed: "left",
        children: [
          {
            field: `resourceName`,
            title: "工序名称",
            width: 250,
            type: "html",
          },
        ],
        width: 160,
      });
      response.data.planTitle.forEach((item) => {
        headersOne.push(item);
        headersOne.push("");
        headersOne.push("");
        headersTwo.push("设计产能");
        headersTwo.push("需求产能");
        headersTwo.push("产能负载");
        colKey++;
        colList.push({
          field: `dateColTime${colKey}`,
          title: item,
          children: [
            { field: `designTimes${colKey}`, title: "设计产能", width: 80 },
            { field: `requireTimes${colKey}`, title: "需求产能", width: 80 },
            {
              field: `capacityLoad${colKey}`,
              title: "产能负载",
              width: 80,
              type: "html",
            },
          ],
          width: 160,
        });
      });
      headers.value.push(headersOne);
      headers.value.push(headersTwo);
      const columnList = [...tableColumn, ...colList];
      const dataList = [];
      let startCol = 1;
      //获取map
      response.data.planTable.map((mapItem) => {
        rowKey++;
        let lastCol = startCol + 2;
        merges.push({ s: { r: 0, c: startCol }, e: { r: 0, c: lastCol } });
        startCol = lastCol + 1;
        let data = [];
        const item = {
          id: `${rowKey}`,
        };
        for (const [key, listValue] of Object.entries(mapItem)) {
          data.push(key);
          let tableKey = 0;
          let flag = false;
          listValue.forEach((listItem) => {
            tableKey++;
            item[`designTimes${tableKey}`] = listItem.designTimes;
            item[`requireTimes${tableKey}`] = listItem.requireTimes;
            item[`capacityLoad${tableKey}`] =
              listItem.capacityLoad > 100
                ? `<font color="red">${listItem.capacityLoad}%</font>`
                : listItem.capacityLoad + "%";
            data.push(listItem.designTimes);
            data.push(listItem.requireTimes);
            data.push(listItem.capacityLoad + "%");
            if (listItem.capacityLoad > 100) {
              flag = true;
            }
          });
          item[`resourceName`] = flag
            ? `<div class='el-badge'><sup class="el-badge__content is-fixed is-dot"></sup>${key}</div>`
            : key;
        }
        exportData.value.push(data);
        dataList.push(item);
      });
      const $grid = gridRef2.value;
      if ($grid) {
        tableColumn = columnList;
        tableData = [...tableData, ...dataList];
        $grid.loadColumn(tableColumn);
        $grid.loadData(tableData);
        gridOptions.loading = false;
      }
      loading.value = false;
    }
  });
}
function formatDate() {
  let sYearMonth = "";
  let eYearMonth = "";
  // let type = "";
@@ -332,16 +489,31 @@
  // æ ¼å¼åŒ–为"YYYY-MM"的形式
  sYearMonth = `${sYear}-${sMonth.toString().padStart(2, "0")}`;
  eYearMonth = `${eYear}-${eMonth.toString().padStart(2, "0")}`;
  console.log(sYearMonth, eYearMonth, "yearMonth");
  let rowKey = 0;
  let colKey = 0;
  headers.value = [];
  exportData.value = [];
  tableColumn = [];
  tableData = [];
  loading.value = true;
  listGasProduceStatics({
}
/** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
function handleExport() {
  let sYearMonth = "";
  let eYearMonth = "";
  // let type = "";
  // options.map((item) => {
  //   if (queryParams.value.searchType === item.label) {
  //     type = item.value;
  //   }
  // });
  // åˆ›å»ºä¸€ä¸ªDate对象
  let sDate = new Date(queryParams.value.monthRange[0]);
  let eDate = new Date(queryParams.value.monthRange[1]);
  // èŽ·å–å¹´ä»½å’Œæœˆä»½
  let sYear = sDate.getFullYear();
  let sMonth = sDate.getMonth() + 1; // æœˆä»½æ˜¯ä»Ž0开始的,所以要加1
  let eYear = eDate.getFullYear();
  let eMonth = eDate.getMonth() + 1; // æœˆä»½æ˜¯ä»Ž0开始的,所以要加1
  // æ ¼å¼åŒ–为"YYYY-MM"的形式
  sYearMonth = `${sYear}-${sMonth.toString().padStart(2, "0")}`;
  eYearMonth = `${eYear}-${eMonth.toString().padStart(2, "0")}`;
  proxy.download(
    "/aps/apsGasPipingRouteStat/exportExcel",
    {
    searchStartDate:
      queryParams.value.searchType === "按月统计"
        ? sYearMonth
@@ -351,108 +523,46 @@
        ? eYearMonth
        : dateStr(queryParams.value.monthDays),
    searchType: searchTypeValue.value,
    major:'gas'
  }).then((response) => {
    console.log(response.data.planTable,'responseresponseresponse')
    const colList = [];
    let headersOne = [];
    let headersTwo = [];
    if(response.code == '200'){
      if (!response.data.planTitle) {
        loading.value = false;
        return;
      }
      headersOne.push('日期');
      headersTwo.push('工序名称');
      colList.push({
          field: 'dateCol',
          title: '日期',
          fixed: 'left',
          children: [
            { field: `resourceName`, title: '工序名称', width: 250, type: 'html'},
          ],
          width: 160
        })
      response.data.planTitle.forEach(item => {
        headersOne.push(item);
        headersOne.push('');
        headersOne.push('');
        headersTwo.push('设计产能');
        headersTwo.push('需求产能');
        headersTwo.push('产能负载');
        colKey++
        colList.push({
          field: `dateColTime${colKey}`,
          title: item,
          children: [
          { field: `designTimes${colKey}`, title: '设计产能', width: 80},
          { field: `requireTimes${colKey}`, title: '需求产能', width: 80},
          { field: `capacityLoad${colKey}`, title: '产能负载', width: 80, type: 'html'},
          ],
          width: 160
        })
      });
      headers.value.push(headersOne);
      headers.value.push(headersTwo);
      const columnList = [...tableColumn, ...colList]
      const dataList = []
      let startCol = 1;
      //获取map
      response.data.planTable.map(mapItem => {
        rowKey++
        let lastCol = startCol + 2;
        merges.push({ s: { r: 0, c: startCol }, e: { r: 0, c:  lastCol} });
        startCol = lastCol + 1;
        let data = [];
        const item = {
          id: `${rowKey}`
        }
        for (const [key, listValue] of Object.entries(mapItem)) {
          data.push(key);
          let tableKey = 0;
          let flag = false;
          listValue.forEach(listItem => {
            tableKey++
            item[`designTimes${tableKey}`] = listItem.designTimes;
            item[`requireTimes${tableKey}`] = listItem.requireTimes;
            item[`capacityLoad${tableKey}`] = listItem.capacityLoad > 100 ? `<font color="red">${listItem.capacityLoad}%</font>` :listItem.capacityLoad+'%';
            data.push(listItem.designTimes);
            data.push(listItem.requireTimes);
            data.push(listItem.capacityLoad+'%');
            if (listItem.capacityLoad > 100) {
              flag = true;
            }
          });
          item[`resourceName`] = flag ? `<div class='el-badge'><sup class="el-badge__content is-fixed is-dot"></sup>${key}</div>` : key;
        }
        exportData.value.push(data);
        dataList.push(item);
      });
      const $grid = gridRef2.value
      if ($grid) {
        tableColumn = columnList
        tableData = [...tableData, ...dataList]
        $grid.loadColumn(tableColumn)
        $grid.loadData(tableData)
        gridOptions.loading = false
      }
      loading.value = false;
    }
  });
      major: "piping",
    },
    `aps_gas_produce_statics_${new Date().getTime()}.xlsx`
  );
}
/** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
function handleExport() {
function handleExport2() {
  let sYearMonth = "";
  let eYearMonth = "";
  // let type = "";
  // options.map((item) => {
  //   if (queryParams.value.searchType === item.label) {
  //     type = item.value;
  //   }
  // });
  // åˆ›å»ºä¸€ä¸ªDate对象
  let sDate = new Date(queryParams.value.monthRange[0]);
  let eDate = new Date(queryParams.value.monthRange[1]);
  // èŽ·å–å¹´ä»½å’Œæœˆä»½
  let sYear = sDate.getFullYear();
  let sMonth = sDate.getMonth() + 1; // æœˆä»½æ˜¯ä»Ž0开始的,所以要加1
  let eYear = eDate.getFullYear();
  let eMonth = eDate.getMonth() + 1; // æœˆä»½æ˜¯ä»Ž0开始的,所以要加1
  // æ ¼å¼åŒ–为"YYYY-MM"的形式
  sYearMonth = `${sYear}-${sMonth.toString().padStart(2, "0")}`;
  eYearMonth = `${eYear}-${eMonth.toString().padStart(2, "0")}`;
  proxy.download(
    "/aps/apsGasPipingRouteStat/exportExcel",
    {},
    {
      searchStartDate:
        queryParams.value.searchType === "按月统计"
          ? sYearMonth
          : dateStr(queryParams.value.monthDays),
      searchEndDate:
        queryParams.value.searchType === "按月统计"
          ? eYearMonth
          : dateStr(queryParams.value.monthDays),
      searchType: searchTypeValue.value,
      major: "gas",
    },
    `aps_gas_produce_statics_${new Date().getTime()}.xlsx`
  );
}
@@ -475,8 +585,24 @@
/** é‡ç½®æŒ‰é’®æ“ä½œ */
function resetQuery() {
  proxy.resetForm("queryRef");
  handleQuery();
  queryParams.value.monthRange = "";
  queryParams.value.monthDays = "";
  dayCom.value = false;
  (queryParams.value.searchType = "按月统计"),
    (searchTypeValue.value = "month");
  tableData = [];
  const $grid = gridRef.value;
  const $grid2 = gridRef2.value;
  if ($grid) {
    $grid.loadColumn([]);
    $grid.loadData([]);
    gridOptions.loading = false;
  }
  if ($grid2) {
    $grid2.loadColumn([]);
    $grid2.loadData([]);
    gridOptions.loading = false;
  }
}
/** åˆ·æ–°æŒ‰é’®æ“ä½œ */
function handleRefresh() {
src/views/mainPlan/platePlanList/index.vue
@@ -54,10 +54,7 @@
        >
      </el-col>
      <right-toolbar
        :search="false"
        @queryTable="getList"
      ></right-toolbar>
      <right-toolbar :search="false" @queryTable="getList"></right-toolbar>
    </el-row>
    <HxlhTable
@@ -111,7 +108,10 @@
</template>
<script setup name="Aps_plate_process_stat">
import { listApsPlateProcessShopStat, listApsPlateProcessShopStatUpdate } from "@/api/mainPlan/apsPlatePlanList";
import {
  listApsPlateProcessShopStat,
  listApsPlateProcessShopStatUpdate,
} from "@/api/mainPlan/apsPlatePlanList";
import HxlhTable from "@/components/HxlhTable/index.vue";
import { getToken } from "@/utils/auth";
import { nextTick, onMounted, ref } from "vue";
@@ -160,36 +160,36 @@
    title: "主件料号",
    field: "mainPartNumber",
    width: 150,
    fixed:"left"
    fixed: "left",
  },
  {
    title: "业务类型",
    field: "businessType",
    width: 120,
    fixed:"left"
    fixed: "left",
  },
  {
    title: "单据号",
    field: "documentNumber",
    width: 160,
    fixed:"left"
    fixed: "left",
  },
  {
    title: "需求分类",
    field: "requirementType",
    width: 100,
    fixed:"left"
    fixed: "left",
  },
  {
    title: "单据状态",
    field: "documentStatus",
    width: 100,
    fixed:"left"
    fixed: "left",
  },
  {
    title: "审核时间",
    field: "updateBy",
    width: 100
    width: 100,
  },
  {
    title: "当前工序",
@@ -204,7 +204,7 @@
  {
    title: "下一工序",
    field: "updateBy",
    width: 100
    width: 100,
  },
  {
    title: "下一工序工序负责人",
@@ -232,7 +232,7 @@
  {
    title: "低阶码",
    field: "updateBy",
    width: 100
    width: 100,
  },
  {
    title: "生产数量",
@@ -243,7 +243,7 @@
  {
    title: "工单计划下发时间",
    field: "updateBy",
    width: 200
    width: 200,
  },
  {
    title: "系统完工时间",
@@ -257,23 +257,26 @@
async function getList() {
  loading.value = true;
  const response = await listApsPlateProcessShopStat();
  const listValue = response.data;
  const resData = listValue.map((item,index)=>{
    item.deptPlans.map((n, i) => {
        item[`${i}_startDate`] = n.planStartDate
        item[`${i}_endDate`] = n.planEndDate
    });
    return  {
      ...item
    }
  })
  console.log(resData,'resDataresDataresData')
  let listValue = response.data;
  dynamicList.value = response.shopNames;
  aps_plate_process_statList.value = listValue;
  total.value = response.total;
  loading.value = false;
  await nextTick();
  const newArray = dynamicList.value.flatMap((item, index) => [
  aps_plate_process_statList.value = aps_plate_process_statList.value.map(
    (item, index) => {
      item.deptPlans.map((n, i) => {
        item[`${i}_startDate`] = n.planStartDate;
        item[`${i}_endDate`] = n.planEndDate;
      });
      return {
        ...item,
      };
    }
  );
  console.log(aps_plate_process_statList.value, "resDataresDataresData");
  let newArray = [];
  newArray = dynamicList.value.flatMap((item, index) => [
    {
      title: `${item}开始时间`,
      field:`${index}_startDate`,
@@ -294,7 +297,7 @@
            }
          });
        }
        return dateStr
        return dateStr;
      },
    },
    {
@@ -317,7 +320,7 @@
            }
          });
        }
        return dateStr
        return dateStr;
      },
    },
  ]);
@@ -325,10 +328,14 @@
     title: "焊接件齐套开始时间",
     field:"hanjie_startDate",
     width: 140,
  })
  await nextTick();
  columns.value = [...columns.value, ...newArray];              // å¼ºåˆ¶ç»„件重新渲染
  });
  columns.value = [
    ...columns.value,
    ...newArray.filter(
      (item) => !columns.value.some((col) => col.field === item.field)
    ),
  ];
  // columns.value = columns.value
}
// // å–消按钮
@@ -400,7 +407,8 @@
/** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
function handleExport() {
  proxy.download(
    "/aps/plateProcessShopStat/export", {},
    "/aps/plateProcessShopStat/export",
    {},
    `aps_plate_process_stat_${new Date().getTime()}.xlsx`
  );
}