2 Commits ae39742235 ... 745113d954

Author SHA1 Message Date
  钱惠东 745113d954 Merge remote-tracking branch 'origin/dev_v2' into dev_v2 6 days ago
  钱惠东 7036215525 bug修改 6 days ago

+ 2 - 12
RuoYi-Vue-fast-master/src/main/java/com/ruoyi/common/utils/DateUtils.java

@@ -352,21 +352,11 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
         return calendar.get(Calendar.YEAR);
     }
 
-    public static String getMonthStart(String date){
+    public static Integer getMonth(String date){
         Date current = parseDate(date);
         if (current == null) return null;
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(current);
-        calendar.set(Calendar.DAY_OF_MONTH, 1);
-        return DateFormatUtils.format(calendar.getTime(), "yyyy-MM-dd");
-    }
-
-    public static String getMonthEnd(String date){
-        Date current = parseDate(date);
-        if (current == null) return null;
-        Calendar calendar = Calendar.getInstance();
-        calendar.setTime(current);
-        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
-        return DateFormatUtils.format(calendar.getTime(), "yyyy-MM-dd");
+        return calendar.get(Calendar.MONTH) + 1;
     }
 }

+ 6 - 20
RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/dto/ContractSigningStatistic.java

@@ -2,7 +2,6 @@ package com.ruoyi.project.business.dto;
 
 import lombok.Data;
 
-import java.math.BigDecimal;
 import java.util.List;
 
 @Data
@@ -12,26 +11,14 @@ public class ContractSigningStatistic {
     private Integer week;
 
     // 1. 各区域本周、月电梯(签单、排产、发货)数量统计
-    private List<LiftCount> weekCountList;
-    private BigDecimal weekSignCountTotal;
-    private BigDecimal weekProductionCountTotal;
-    private BigDecimal weekDeliveryCountTotal;
-    private BigDecimal monthSignCountTotal;
-    private BigDecimal monthProductionCountTotal;
-    private BigDecimal monthDeliveryCountTotal;
-
+    private String areaCountStatisticsTitle;
+    private List<List<String>> areaCountStatistics;
     // 2. 全年月度(签单、排产、发货)数量统计
-    private List<LiftCount> monthCountListAll;
-    private BigDecimal monthSignCountTotalAll;
-    private BigDecimal monthProductionCountTotalAll;
-    private BigDecimal monthDeliveryCountTotalAll;
-
+    private String monthCountStatisticsTitle;
+    private List<List<String>> monthCountStatistics;
     // 3. 全年周(签单、排产、发货)数量统计
-    private List<LiftCount> weekCountListAll;
-    private BigDecimal weekSignCountTotalAll;
-    private BigDecimal weekProductionCountTotalAll;
-    private BigDecimal weekDeliveryCountTotalAll;
-
+    private String weekCountStatisticsTitle;
+    private List<List<String>> weekCountStatistics;
     // 4. 全年各区域签约金额统计
     private String signingAreaColStatisticsTitle;
     private List<List<String>> signingAreaColStatistics;
@@ -45,5 +32,4 @@ public class ContractSigningStatistic {
     private String productionMonthColStatisticsTitle;
     private List<List<String>> productionMonthColStatistics;
 
-
 }

+ 2 - 0
RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/dto/LiftCount.java

@@ -1,10 +1,12 @@
 package com.ruoyi.project.business.dto;
 
+import lombok.AllArgsConstructor;
 import lombok.Data;
 
 import java.math.BigDecimal;
 
 @Data
+@AllArgsConstructor
 public class LiftCount {
 
     private String key;

+ 47 - 38
RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/service/impl/TqContractServiceImpl.java

@@ -9,13 +9,9 @@ import java.util.stream.Collectors;
 
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.ExcelWriter;
-import com.alibaba.excel.write.metadata.WriteSheet;
-import com.alibaba.excel.write.metadata.WriteTable;
 import com.alibaba.fastjson2.JSONObject;
-import com.ruoyi.common.importExcel.excel.EasyPoiHelper;
 import org.springframework.beans.BeanUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.google.common.base.Functions;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.ruoyi.common.enums.FileBuzType;
@@ -34,7 +30,6 @@ import com.ruoyi.project.business.domain.vo.contract.TqContractExportVo;
 import com.ruoyi.project.business.domain.vo.contract.TqContractLiftVo;
 import com.ruoyi.project.business.domain.vo.contract.TqContractVo;
 import com.ruoyi.project.business.domain.vo.currency.ContractCurrencyTime;
-import com.ruoyi.project.business.domain.vo.quotation.QuotationVO;
 import com.ruoyi.project.business.dto.ContractSigningStatistic;
 import com.ruoyi.project.business.dto.LiftCount;
 import com.ruoyi.project.business.dto.LiftMonthCount;
@@ -62,11 +57,9 @@ import org.springframework.transaction.annotation.Transactional;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 
-import static com.ruoyi.common.utils.DateUtils.getMonthEnd;
-import static com.ruoyi.common.utils.DateUtils.getMonthStart;
 import static com.ruoyi.common.utils.DecimalUtils.add;
 import static com.ruoyi.project.business.enums.AuditFlowEnum.*;
-import static java.util.Objects.isNull;
+import static java.math.BigDecimal.ZERO;
 import static java.util.Objects.nonNull;
 import static org.apache.commons.lang3.StringUtils.EMPTY;
 import static org.apache.commons.lang3.StringUtils.isBlank;
@@ -503,36 +496,33 @@ public class TqContractServiceImpl implements ITqContractService
         result.setWeek(DateUtils.getWeekNumber(end));
         // 1. 各区域本周、月电梯(签单、排产、发货)数量统计
         List<LiftCount> weekCountList = tqContractLiftMapper.countStatistic(begin, end);
-        List<LiftCount> monthCountList = tqContractLiftMapper.countStatistic(getMonthStart(end), getMonthEnd(end));
-        result.setWeekCountList(weekCountList);
-        weekCountList.forEach(count -> {
-            result.setWeekSignCountTotal(add(result.getWeekSignCountTotal(), count.getSignCount()));
-            result.setWeekProductionCountTotal(add(result.getWeekProductionCountTotal(), count.getProductionCount()));
-            result.setWeekDeliveryCountTotal(add(result.getWeekDeliveryCountTotal(), count.getDeliveryCount()));
-        });
-        monthCountList.forEach(count -> {
-            result.setMonthSignCountTotal(add(result.getMonthSignCountTotal(), count.getSignCount()));
-            result.setMonthProductionCountTotal(add(result.getMonthProductionCountTotal(), count.getProductionCount()));
-            result.setMonthDeliveryCountTotal(add(result.getMonthDeliveryCountTotal(), count.getDeliveryCount()));
-        });
+        List<List<String>> weekCountStatistics = Lists.newArrayList();
+        weekCountStatistics.add(Lists.newArrayList("区域", "签单", "排产", "发货"));
+        weekCountStatistics.addAll(getTotalList(weekCountList, "周合计"));
+        result.setAreaCountStatisticsTitle(year + "周各区域数据");
+        result.setAreaCountStatistics(weekCountStatistics);
 
         // 2. 全年月度(签单、排产、发货)数量统计
         List<LiftCount> monthCountListAll = tqContractLiftMapper.countStatisticByMonthAll(year);
-        result.setMonthCountListAll(monthCountListAll);
-        monthCountListAll.forEach(count -> {
-            result.setMonthSignCountTotalAll(add(result.getMonthSignCountTotalAll(), count.getSignCount()));
-            result.setMonthProductionCountTotalAll(add(result.getMonthProductionCountTotalAll(), count.getProductionCount()));
-            result.setMonthDeliveryCountTotalAll(add(result.getMonthDeliveryCountTotalAll(), count.getDeliveryCount()));
-        });
+        String month = DateUtils.getMonth(end).toString();
+        LiftCount monthCount = monthCountListAll.stream().filter(item -> item.getKey().equals(month))
+                .findFirst().orElse(new LiftCount(month, ZERO, ZERO, ZERO));
+        weekCountStatistics.add(Lists.newArrayList("月合计",
+                MONEY.format(monthCount.getSignCount()), MONEY.format(monthCount.getProductionCount()), MONEY.format(monthCount.getDeliveryCount())));
+
+        List<List<String>> monthCountStatistics = Lists.newArrayList();
+        monthCountStatistics.add(Lists.newArrayList("月份", "签约合计", "排产合计", "发货合计"));
+        monthCountStatistics.addAll(getTotalList(monthCountListAll, "合计"));
+        result.setMonthCountStatisticsTitle(year + "国际月度签约、排产、发货");
+        result.setMonthCountStatistics(monthCountStatistics);
 
         // 3. 全年周(签单、排产、发货)数量统计
         List<LiftCount> weekCountListAll = tqContractLiftMapper.countStatisticByWeekAll(year);
-        result.setWeekCountListAll(weekCountListAll);
-        weekCountListAll.forEach(count -> {
-            result.setWeekSignCountTotalAll(add(result.getWeekSignCountTotalAll(), count.getSignCount()));
-            result.setWeekProductionCountTotalAll(add(result.getWeekProductionCountTotalAll(), count.getProductionCount()));
-            result.setWeekDeliveryCountTotalAll(add(result.getWeekDeliveryCountTotalAll(), count.getDeliveryCount()));
-        });
+        List<List<String>> weekCountStatisticsAll = Lists.newArrayList();
+        weekCountStatisticsAll.add(Lists.newArrayList("周", "签约合计", "排产合计", "发货合计"));
+        weekCountStatisticsAll.addAll(getTotalList(weekCountListAll, "合计"));
+        result.setWeekCountStatisticsTitle(year + "国际每周签约、排产、发货数据");
+        result.setWeekCountStatistics(weekCountStatisticsAll);
 
         // 4. 全年各区域签约金额
         List<LiftMonthCount> signingAmountAll = tqContractLiftMapper.countSigningStatisticAll(year);
@@ -547,12 +537,29 @@ public class TqContractServiceImpl implements ITqContractService
         result.setDeliveryMonthColStatisticsTitle(year + "发货金额");
         result.setDeliveryMonthColStatistics(getMonthColList(deliveryAmountAll));
         // 7. 全年各区域排产金额
-        result.setProductionAreaColStatisticsTitle(year + "排产金额");
+        result.setProductionMonthColStatisticsTitle(year + "排产金额");
         result.setProductionMonthColStatistics(getMonthColList(productionAmountAll));
 
         return result;
     }
 
+    private static List<List<String>> getTotalList(List<LiftCount> countListAll, String totalTitle) {
+        List<List<String>> result = Lists.newArrayList();
+        BigDecimal signCountTotal = ZERO;
+        BigDecimal productionCountTotal = ZERO;
+        BigDecimal deliveryCountTotal = ZERO;
+        for (LiftCount item : countListAll) {
+            result.add(Lists.newArrayList(item.getKey(),
+                    MONEY.format(item.getSignCount()), MONEY.format(item.getProductionCount()), MONEY.format(item.getDeliveryCount())));
+            signCountTotal = add(signCountTotal, item.getSignCount());
+            productionCountTotal = add(productionCountTotal, item.getProductionCount());
+            deliveryCountTotal = add(deliveryCountTotal, item.getDeliveryCount());
+        }
+        result.add(Lists.newArrayList(totalTitle,
+                MONEY.format(signCountTotal), MONEY.format(productionCountTotal), MONEY.format(deliveryCountTotal)));
+        return result;
+    }
+
     private List<List<String>> getAreaColList(List<LiftMonthCount> amountAll) {
         List<List<String>> result = Lists.newArrayList();
         if (CollectionUtils.isEmpty(amountAll)){
@@ -563,7 +570,7 @@ public class TqContractServiceImpl implements ITqContractService
         result.add(areaColHeader);
 
         // 底部区域合计行
-        List<String> areaSum = Lists.newArrayList("计");
+        List<String> areaSum = Lists.newArrayList("计");
         amountAll.forEach(item -> {
             areaColHeader.add(item.getKey());
             // 1. 添加各区域每月的数据
@@ -575,7 +582,7 @@ public class TqContractServiceImpl implements ITqContractService
                     monthAreaCount = Lists.newArrayList(i + "月");
                     result.add(monthAreaCount);
                 }
-                BigDecimal current = BigDecimal.ZERO;
+                BigDecimal current = ZERO;
                 switch (i) {
                     case 1:
                         current = item.getJanuary();
@@ -637,7 +644,7 @@ public class TqContractServiceImpl implements ITqContractService
         areaColHeader.add("合计");
         for (int i = 1; i < result.size(); i++) {
             List<String> row = result.get(i);
-            BigDecimal total = BigDecimal.ZERO;
+            BigDecimal total = ZERO;
             for (int j = 1; j < row.size(); j++) {
                 total = total.add(new BigDecimal(row.get(j).replaceAll(",", "")));
             }
@@ -661,7 +668,7 @@ public class TqContractServiceImpl implements ITqContractService
             List<BigDecimal> list = Lists.newArrayList(item.getJanuary(), item.getFebruary(), item.getMarch(), item.getApril(), item.getMay(),
                     item.getJune(), item.getJuly(), item.getAugust(), item.getSeptember(), item.getOctober(), item.getNovember(),
                     item.getDecember());
-            BigDecimal total = list.stream().reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal total = list.stream().reduce(ZERO, BigDecimal::add);
             List<String> row = Lists.newArrayList(item.getKey());
             list.forEach(amount -> row.add(MONEY.format(amount)));
             row.add(MONEY.format(total));
@@ -702,7 +709,9 @@ public class TqContractServiceImpl implements ITqContractService
         response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
         response.setCharacterEncoding("utf-8");
         try (ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build()) {
-
+            excelWriter.write(contractSigningStatistic.getAreaCountStatistics(), EasyExcel.writerSheet(contractSigningStatistic.getAreaCountStatisticsTitle()).build());
+            excelWriter.write(contractSigningStatistic.getMonthCountStatistics(), EasyExcel.writerSheet(contractSigningStatistic.getMonthCountStatisticsTitle()).build());
+            excelWriter.write(contractSigningStatistic.getWeekCountStatistics(), EasyExcel.writerSheet(contractSigningStatistic.getWeekCountStatisticsTitle()).build());
             excelWriter.write(contractSigningStatistic.getSigningAreaColStatistics(), EasyExcel.writerSheet(contractSigningStatistic.getSigningAreaColStatisticsTitle()).build());
             excelWriter.write(contractSigningStatistic.getProductionAreaColStatistics(), EasyExcel.writerSheet(contractSigningStatistic.getProductionAreaColStatisticsTitle()).build());
             excelWriter.write(contractSigningStatistic.getDeliveryMonthColStatistics(), EasyExcel.writerSheet(contractSigningStatistic.getDeliveryMonthColStatisticsTitle()).build());

+ 2 - 2
RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/service/quotation/impl/TqQuotationServiceImpl.java

@@ -1122,8 +1122,8 @@ public class TqQuotationServiceImpl extends ServiceImpl<TqQuotationMapper, TqQuo
                 data.put("carDetail", getMaterialInfo.apply(CAR_WALL_MATERIAL));
             }else if ("组合轿厢".equals(carType)){
                 data.put("carDetail", getMaterialInfo.apply(MIDDLE_LEFT_WALL));
-                data.put("carDetail1", getMaterialInfo.apply(MIDDLE_RIGHT_WALL));
-                data.put("carDetail2", getMaterialInfo.apply(LEFT_WALL_AUXILIARY_PANEL));
+                data.put("carDetail1", getMaterialInfo.apply(LEFT_WALL_AUXILIARY_PANEL));
+                data.put("carDetail2", getMaterialInfo.apply(MIDDLE_RIGHT_WALL));
                 data.put("carDetail3", getMaterialInfo.apply(RIGHT_WALL_AUXILIARY_PANEL));
                 data.put("carDetail4", getMaterialInfo.apply(MIDDLE_REAR_WALL));
                 data.put("carDetail5", getMaterialInfo.apply(REAR_WALL_AUXILIARY_PANEL));

BIN
RuoYi-Vue-fast-master/src/main/resources/wordTemplate/报价单.docx


+ 26 - 37
ruoyi-ui-vue2/src/views/board/contractSigningStatistic/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <div v-loading="pageLoading" class="app-container">
+  <div v-loading="loading" class="app-container">
     <div style="padding-bottom: 10px;">
       <span style="padding-right: 20px;font-size: 16px;font-weight: bold;">{{ $t('周') }}</span>
       <el-date-picker
@@ -21,40 +21,31 @@
 
       <el-row :gutter="24">
         <el-col :span="12">
-          <h2>{{ data.week }}周各区域数据</h2>
-          <el-table :data="data.weekCountList" :summary-method="getWeekCountSummaries" :show-summary="true" v-loading="loading"
+          <h2>{{ data.areaCountStatisticsTitle }}</h2>
+          <el-table :data="getBody(data.areaCountStatistics, 2)" :summary-method="() => getWeekCountSummaries()" :show-summary="true" v-loading="loading"
           :height="300" class="page-table" element-loading-text="loading..." :header-cell-style="{'background-color':'#F4F6F8','border-right':'1px solid #dfdcdc','color':'#92A2B5'}" border>
-            <Column label="区域" prop="key"/>
-            <Column label="签单" prop="signCount"/>
-            <Column label="排产" prop="productionCount"/>
-            <Column label="发货" prop="deliveryCount"/>
+            <Column v-for="(label, index) in getHeader(data.areaCountStatistics)" :label="label" :prop="index" :fixed="index === 0? 'left' : false"/>
           </el-table>
         </el-col>
         <el-col :span="12">
-          <h2>{{ data.year }}国际月度签约、排产、发货</h2>
-          <el-table :data="data.monthCountListAll" :summary-method="getMonthCountAllSummaries" :show-summary="true" v-loading="loading"
+          <h2>{{ data.monthCountStatisticsTitle }}</h2>
+          <el-table :data="getBody(data.monthCountStatistics)" :summary-method="() => getFooter(data.monthCountStatistics)" :show-summary="true" v-loading="loading"
           :height="300" class="page-table" element-loading-text="loading..." :header-cell-style="{'background-color':'#F4F6F8','border-right':'1px solid #dfdcdc','color':'#92A2B5'}" border>
-            <Column label="月份" prop="key"/>
-            <Column label="签约合计" prop="signCount"/>
-            <Column label="排产合计" prop="productionCount"/>
-            <Column label="发货合计" prop="deliveryCount"/>
+            <Column v-for="(label, index) in getHeader(data.monthCountStatistics)" :label="label" :prop="index" :fixed="index === 0? 'left' : false"/>
           </el-table>
         </el-col>
       </el-row>
 
       <el-row :gutter="24">
         <el-col :span="12">
-          <h2>{{ data.year }}国际每周签约、排产、发货数据(币别USD)</h2>
-          <el-table :data="data.weekCountListAll" :summary-method="getMonthCountAllSummaries" :show-summary="true" v-loading="loading"
+          <h2>{{ data.weekCountStatisticsTitle }}</h2>
+          <el-table :data="getBody(data.weekCountStatistics)" :summary-method="() => getFooter(data.weekCountStatistics)" :show-summary="true" v-loading="loading"
           :height="300" class="page-table" element-loading-text="loading..." :header-cell-style="{'background-color':'#F4F6F8','border-right':'1px solid #dfdcdc','color':'#92A2B5'}" border>
-            <Column label="周" prop="key"/>
-            <Column label="签约合计" prop="signCount"/>
-            <Column label="排产合计" prop="productionCount"/>
-            <Column label="发货合计" prop="deliveryCount"/>
+            <Column v-for="(label, index) in getHeader(data.weekCountStatistics)" :label="label" :prop="index" :fixed="index === 0? 'left' : false"/>
           </el-table>
         </el-col>
         <el-col :span="12">
-          <h2>{{ data.year }}国际各区域签单</h2>
+          <h2>{{ data.signingAreaColStatisticsTitle }}</h2>
           <el-table :data="getBody(data.signingAreaColStatistics)" :summary-method="() => getFooter(data.signingAreaColStatistics)" :show-summary="true" v-loading="loading"
           :height="300" class="page-table" element-loading-text="loading..." :header-cell-style="{'background-color':'#F4F6F8','border-right':'1px solid #dfdcdc','color':'#92A2B5'}" border>
             <Column v-for="(label, index) in getHeader(data.signingAreaColStatistics)" :label="label" :prop="index" :fixed="index === 0? 'left' : false"/>
@@ -64,14 +55,14 @@
 
       <el-row :gutter="24">
         <el-col :span="12">
-          <h2>{{ data.year }}国际各区域排产</h2>
+          <h2>{{ data.productionAreaColStatisticsTitle }}</h2>
           <el-table :data="getBody(data.productionAreaColStatistics)" :summary-method="() => getFooter(data.productionAreaColStatistics)" :show-summary="true" v-loading="loading"
            :height="300" class="page-table" element-loading-text="loading..." :header-cell-style="{'background-color':'#F4F6F8','border-right':'1px solid #dfdcdc','color':'#92A2B5'}" border>
             <Column v-for="(label, index) in getHeader(data.productionAreaColStatistics)" :label="label" :prop="index" :fixed="index === 0? 'left' : false"/>
           </el-table>
         </el-col>
         <el-col :span="12">
-          <h2>{{ data.year }}发货金额</h2>
+          <h2>{{ data.deliveryMonthColStatisticsTitle }}</h2>
           <el-table :data="getBody(data.deliveryMonthColStatistics)" :summary-method="() => getFooter(data.deliveryMonthColStatistics)" :show-summary="true" v-loading="loading"
           :height="300" class="page-table" element-loading-text="loading..." :header-cell-style="{'background-color':'#F4F6F8','border-right':'1px solid #dfdcdc','color':'#92A2B5'}" border>
             <Column v-for="(label, index) in getHeader(data.deliveryMonthColStatistics)" :label="label" :prop="index" :fixed="index === 0? 'left' : false"/>
@@ -81,7 +72,7 @@
 
       <el-row :gutter="24">
         <el-col :span="12">
-          <h2>{{ data.data.productionMonthColStatisticsTitle }}</h2>
+          <h2>{{ data.productionMonthColStatisticsTitle }}</h2>
           <el-table :data="getBody(data.productionMonthColStatistics)" :summary-method="() => getFooter(data.productionMonthColStatistics)" :show-summary="true" v-loading="loading"
           :height="300" class="page-table" element-loading-text="loading..." :header-cell-style="{'background-color':'#F4F6F8','border-right':'1px solid #dfdcdc','color':'#92A2B5'}" border>
             <Column v-for="(label, index) in getHeader(data.productionMonthColStatistics)" :label="label" :prop="index" :fixed="index === 0? 'left' : false"/>
@@ -142,29 +133,27 @@ export default {
       }, `周、月签约、排产、发货_${new Date().getTime()}.xlsx`)
     },
     getWeekCountSummaries() {
+      if (!this.data || !this.data.areaCountStatistics || this.data.areaCountStatistics.length < 2) {
+        return ['', '', '', '']
+      }
+      const arr = this.data.areaCountStatistics.slice(this.data.areaCountStatistics.length - 2)
       return [
-        <div><span>周合计</span><br/><span>月合计</span></div>,
-        <div><span>{this.data.weekSignCountTotal}</span><br/><span>{this.data.monthSignCountTotal}</span></div>,
-        <div><span>{this.data.weekProductionCountTotal}</span><br/><span>{this.data.monthProductionCountTotal}</span></div>,
-        <div><span>{this.data.weekDeliveryCountTotal}</span><br/><span>{this.data.monthDeliveryCountTotal}</span></div>
-      ];
-    },
-    getMonthCountAllSummaries() {
-      return ['合计', this.data.monthSignCountTotalAll, this.data.monthProductionCountTotalAll, this.data.monthDeliveryCountTotalAll]
-    },
-    getWeekCountAllSummaries() {
-      return ['合计', this.data.weekSignCountTotalAll, this.data.weekProductionCountTotalAll, this.data.weekDeliveryCountTotalAll]
+        <div><span>{arr[0][0]}</span><br/><span>{arr[1][0]}</span></div>,
+        <div><span>{arr[0][1]}</span><br/><span>{arr[1][1]}</span></div>,
+        <div><span>{arr[0][2]}</span><br/><span>{arr[1][2]}</span></div>,
+        <div><span>{arr[0][3]}</span><br/><span>{arr[1][3]}</span></div>
+      ]
     },
     getHeader(list){
       return list[0] || []
     },
-    getBody(list){
+    getBody(list, footerOffset = 1){
       if (!list || list.length < 3) {
         return []
       }
-      return list.slice(1, list.length - 1)
+      return list.slice(1, list.length - footerOffset)
     },
-    getFooter(list){
+    getFooter(list, footerOffset = 1){
       if (!list || list.length === 0) {
         return []
       }

+ 3 - 1
ruoyi-ui-vue2/src/views/quotation/quotation.vue

@@ -419,6 +419,7 @@ export default {
       loading: true,
       // 选中数组
       ids: [],
+      quotationNos: [],
       // 非单个禁用
       single: true,
       // 非多个禁用
@@ -746,6 +747,7 @@ export default {
     // 多选框选中数据
     handleSelectionChange(selection) {
       this.ids = selection.map((item) => item.id);
+      this.quotationNos = selection.map((item) => item.quotationNo);
       this.single = selection.length !== 1;
       this.multiple = !selection.length;
     },
@@ -901,7 +903,7 @@ export default {
         this.quotationExportOpen = false
         return
       }
-      let fileName = this.$t('quotation.quotation') + parseTime(new Date(), '{y}{m}{d}') + '.pdf'
+      let fileName = this.quotationNos[0] + '-' + parseTime(new Date(), '{y}{m}{d}') + '.pdf'
       this.download("/business/quotation/export/" + this.ids[0], {}, fileName, {skipDownload: true}).then(res => {
         this.quotationExportOpen = false
       })