From d8e76c8e094c2312284b5dc7b4207d049f27262b Mon Sep 17 00:00:00 2001
From: wjli <591616088@qq.com>
Date: 星期二, 16 五月 2023 09:25:44 +0800
Subject: [PATCH] 1.完善excel导出

---
 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderStatusCount.java           |   28 ++++++++++---
 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java |   51 ++++++++++++++++++++++++-
 xboot-modules/xboot-your/src/main/resources/mapper/SignCountMapper.xml                             |    1 
 3 files changed, 70 insertions(+), 10 deletions(-)

diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderStatusCount.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderStatusCount.java
index f85d9b6..780d760 100644
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderStatusCount.java
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderStatusCount.java
@@ -15,14 +15,22 @@
 @Data
 //@Excel("绛炬敹鐘舵�佺粺璁℃姤琛�")
 public class OrderStatusCount {
-    //    @ContentLoopMerge(eachRow = 5)
-    @ExcelProperty("杞﹀彿")
+    @ContentLoopMerge(eachRow = 5)
+    @ExcelProperty(value = "杞﹀彿")
     @TableField(value = "carName")
     private String carName;
+
+    @ContentLoopMerge(eachRow = 5)
+    @ExcelProperty("濮撳悕")
+    @TableField(value = "userName")
+    //@ExcelIgnore
+    private String userName;
     //    @ContentLoopMerge(eachRow = 5)
+    @ContentLoopMerge(eachRow = 5)
     @ExcelProperty("绾胯矾")
     @TableField(value = "line")
     private String line;
+
     @ExcelProperty("鎵规")
     @TableField(value = "batch")
     private String batch;
@@ -41,7 +49,14 @@
     @ExcelProperty("绛炬敹鐜�")
     @TableField(value = "proportion")
     private String proportion;
-    @ExcelProperty("鏃ユ湡")
+
+    @ContentLoopMerge(eachRow = 5)
+    @ExcelProperty("骞冲潎绛炬敹鐜�")
+    @TableField(value = "name")
+    //@ExcelIgnore
+    private String name;
+    //@ExcelProperty("鏃ユ湡")
+    @ExcelIgnore
     @ColumnWidth(20)
     private String sendDate;
     //    1 鎸夋棩鏌ヨ   3鎸夋湀鏌ヨ
@@ -61,10 +76,9 @@
     private String carId;
     @ExcelIgnore
     private String carNo;
-    @ExcelIgnore
-    private String name;
-    @ExcelIgnore
-    private String userName;
+   /* @ExcelIgnore
+    private String name;*/
+
 
     @ExcelIgnore
     private String carTime;
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java
index 74f3c25..35c9a38 100644
--- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java
@@ -5,6 +5,7 @@
 import cn.exrick.xboot.your.mapper.SignCountMapper;
 import cn.exrick.xboot.your.entity.SignCount;
 import cn.exrick.xboot.your.service.ISignCountService;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -15,6 +16,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.List;
@@ -105,25 +107,55 @@
         for (int i=0;i<records.size();i++) {
             for (OrderStatusCount statusCountx: recordsAll) {
                 if(records.get(i).getCarName().equals(statusCountx.getCarName())){
-                    records.get(i).setSendMonth(statusCountx.getProportion());
+                    if(statusCountx.getProportion().length()>6){
+                        String  ss = statusCountx.getProportion().replace("%","");
+                        BigDecimal bigDecimal = new BigDecimal(ss);
+                        double sss = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+                        records.get(i).setName(sss + "%");
+                    }else{
+                        records.get(i).setName(statusCountx.getProportion());
+                    }
                     break;
                 }
+            }
+            if(!StrUtil.isEmpty(records.get(i).getSignCount()) && !StrUtil.isEmpty(records.get(i).getAmount()) && !StrUtil.isEmpty(records.get(i).getNotSignCount())){
+                int abnormalSign = Integer.parseInt(records.get(i).getAmount())-Integer.parseInt(records.get(i).getSignCount())-Integer.parseInt(records.get(i).getNotSignCount());
+                if(abnormalSign<0){
+                    abnormalSign = 0;
+                }
+                records.get(i).setAbnormalSign(abnormalSign + "");
+            }
+            if(records.get(i).getProportion().length()>6){
+                String  ss = records.get(i).getProportion().replace("%","");
+                BigDecimal bigDecimal = new BigDecimal(ss);
+                double sss = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+                records.get(i).setProportion(sss+ "%");
             }
             //"oneBatch":"01娈�","twoBatch":"0","threeBatch":"0","fourBatch":"0","fiveBatch":"0"
             if("0".equals(records.get(i).getOneBatch())){
                 records.get(i).setOneBatch(null);
+            }else{
+                records.get(i).setBatch("01娈�");
             }
             if("0".equals(records.get(i).getTwoBatch())){
                 records.get(i).setTwoBatch(null);
+            }else{
+                records.get(i).setBatch("02娈�");
             }
             if("0".equals(records.get(i).getThreeBatch())){
                 records.get(i).setThreeBatch(null);
+            }else{
+                records.get(i).setBatch("03娈�");
             }
             if("0".equals(records.get(i).getFourBatch())){
                 records.get(i).setFourBatch(null);
+            }else{
+                records.get(i).setBatch("04娈�");
             }
             if("0".equals(records.get(i).getFiveBatch())){
                 records.get(i).setFiveBatch(null);
+            }else{
+                records.get(i).setBatch("05娈�");
             }
         }
         return records;
@@ -146,9 +178,22 @@
         for (int i=0;i<records.size();i++) {
             for (OrderStatusCount statusCountx: recordsAll) {
                 if(records.get(i).getCarName().equals(statusCountx.getCarName())){
-                    records.get(i).setSendMonth(statusCountx.getProportion());
+                    if(statusCountx.getProportion().length()>6){
+                        String  ss = statusCountx.getProportion().replace("%","");
+                        BigDecimal bigDecimal = new BigDecimal(ss);
+                        double sss = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+                        records.get(i).setSendMonth(sss + "%");
+                    }else{
+                        records.get(i).setSendMonth(statusCountx.getProportion());
+                    }
                     break;
                 }
+            }
+            if(records.get(i).getProportion().length()>6){
+                String  ss = records.get(i).getProportion().replace("%","");
+                BigDecimal bigDecimal = new BigDecimal(ss);
+                double sss = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+                records.get(i).setProportion(sss+ "%");
             }
             //"oneBatch":"01娈�","twoBatch":"0","threeBatch":"0","fourBatch":"0","fiveBatch":"0"
             if("0".equals(records.get(i).getOneBatch())){
@@ -171,4 +216,4 @@
         orderStatusCountIPage.setRecords(records);
         return orderStatusCountIPage;
     }
-}
+}
\ No newline at end of file
diff --git a/xboot-modules/xboot-your/src/main/resources/mapper/SignCountMapper.xml b/xboot-modules/xboot-your/src/main/resources/mapper/SignCountMapper.xml
index 7d4e14f..bcc1401 100644
--- a/xboot-modules/xboot-your/src/main/resources/mapper/SignCountMapper.xml
+++ b/xboot-modules/xboot-your/src/main/resources/mapper/SignCountMapper.xml
@@ -238,6 +238,7 @@
         user_name as userName,
         car_name,SUM(sign_count) as signCount,
         SUM(amount) as amount,
+        SUM(not_sign_count) as not_sign_count,
         CONCAT_WS( '',( FORMAT((SUM( sign_count ) / SUM( amount )),4 ) *100), '%') as proportion,
         (CASE `batch` WHEN '01娈�' THEN batch ELSE 0 END) as 'oneBatch',
         (CASE `batch` WHEN '02娈�' THEN batch ELSE 0 END) as 'twoBatch',

--
Gitblit v1.9.1