wjli
2023-05-16 d8e76c8e094c2312284b5dc7b4207d049f27262b
1.完善excel导出
3个文件已修改
76 ■■■■ 已修改文件
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderStatusCount.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/resources/mapper/SignCountMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
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,10 +178,23 @@
        for (int i=0;i<records.size();i++) {
            for (OrderStatusCount statusCountx: recordsAll) {
                if(records.get(i).getCarName().equals(statusCountx.getCarName())){
                    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())){
                records.get(i).setOneBatch(null);
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',