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