这周的需求是:统计出昨天的数据,然后写到Excel里面发邮件,想到每次都要用jwt或者最原始的poi写代码,就很麻烦,于是我用了以前学到的EasyPoi,然后封装成了工具类。
首先是导入依赖:
<!-- EasyPoi -->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>4.4.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>4.4.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>4.4.0</version>
</dependency>
我以前的博客说过一次,要使用EasyPoi,首先要创建一个实体类BO ,然后利用纯注解的方式进行开发,下面是实体类:
import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
import lombok.Data;
import java.io.Serializable;
/**
* @ClassName OperationDataReport
* @Author 王弈程
* @Date 2022/2/15 16:44
**/
@ExcelTarget("运营数据日报")
@Data
public class OperationDataReportBO implements Serializable {
@Excel(name = "当前有效活动总量",orderNum = "1",width = 20,needMerge = true)
private long currentTotalActive;
@Excel(name = "当前有效资源提供方总量",orderNum = "2",width = 20,needMerge = true)
private long currentTotalActiveResourceProvides;
@Excel(name = "当前有效资源使用方总量",orderNum = "3",width = 20,needMerge = true)
private long currentTotalActiveResourceUse;
@Excel(name = "昨日资源同步领取总量",orderNum = "4",width = 20,needMerge = true)
private long yesterdayResourcesSynchronReceiveTotal;
@Excel(name = "昨日资源异步领取总量",orderNum = "5",width = 20,needMerge = true)
private long yesterdayResourcesAsynchronReceiveTotal;
@Excel(name = "昨日资源领取总量",orderNum = "6",width = 20,needMerge = true)
private long yesterdayResourcesReceiveTotal;
@Excel(name = "昨日资源同步领取号码总量",orderNum = "7",width = 20,needMerge = true)
private long yesterdayResourcesSynchronReceivePhoneTotal;
@Excel(name = "昨日资源异步领取号码总量",orderNum = "8",width = 20,needMerge = true)
private long yesterdayResourcesAsynchronReceivePhoneTotal;
@Excel(name = "昨日资源领取号码总量",orderNum = "9",width = 20,needMerge = true)
private long yesterdayResourcesReceivePhoneTotal;
@Excel(name = "昨日新增库存总量",orderNum = "10",width = 20,needMerge = true)
private long yesterdayResourcesAddTotal;
@Excel(name = "昨日发送库存预警短信条目数",orderNum = "11",width = 20,needMerge = true)
private long yesterdaySendAlertSMSTotal;
}
因为应用场景不同,因此用法也不一样,我在这里给大家模拟一下,接下来是业务层接口类:
import lombok.extern.ohaotian.HTServiceAPI;
import java.util.Date;
/**
* @ClassName OperationDataReportService
* @Author 王弈程
* @Date 2022/2/15 15:47
**/
@HTServiceAPI
public interface OperationDataReportService {
void getYesterdayOperationData(Date date) throws Exception;
}
实现类:
import com.unicom.resinteractive.api.bo.OperationDataReportBO;
import com.unicom.resinteractive.api.bo.SendEmailBO;
import com.unicom.resinteractive.api.service.OperationDataReportService;
imp