SSM格式化导出报表时间的格式
原创
©著作权归作者所有:来自51CTO博客作者霸道流氓的原创作品,请联系作者获取转载授权,否则将追究法律责任
一、数据库中的数据
时间格式为dateTime类型
二、对应Moddel实体类
private Date goOutTicketTime;
private Date returnOutTicketTime;
private Date depositPayTime;
private Date orderInvalidTime;
三、导出报表的action
对应的导出要显示的字段是Model中的属性。
如果现在就导出:
四、解决方案
1.在Model下新建ext包(扩展类包)
2.在此包下新建Model实体的扩展类,此扩展类要继承原来的实体类。
将要格式化的时间新增为扩展类的属性并改名(后面添加changed),设置对应的get以及set方法。
public class BusNotcompleteorderReportExt extends BusNotcompleteorderReport {
//账单导出时间格式
private String ReturnOutTicketTimeChanged;
private String GoOutTicketTimeChanged;
private String DepositPayTimeChanged;
private String OrderInvalidTimeChanged;
public String getReturnOutTicketTimeChanged() {
if(getReturnOutTicketTime()!=null) {
ReturnOutTicketTimeChanged=DateUtils.formatDate(getReturnOutTicketTime(), "yyyy-MM-dd HH:mm:ss");
}
return ReturnOutTicketTimeChanged;
}
public void setReturnOutTicketTimeChanged(String returnOutTicketTimeChanged) {
ReturnOutTicketTimeChanged = returnOutTicketTimeChanged;
}
其他省略,同理。
3.修改mapper文件
找到对应查询报表数据的mapper文件,修改添加的对应的
扩展的mapper文件,其中BaseResultMap是使用代码生成工具自动生成的。
下面是扩展的自己写的mapper文件。对应的type要修改为扩展后的实体Model。并且要继承自动生成的resultMap。
<!-- 结果集 -->
<resultMap id="BaseExtResultMap" type="**.model.ext.BusNotcompleteorderReportExt" extends="BaseResultMap">
</resultMap>
<!-- 查询未完成报表 -->
<select id="getBusNotcompleteorderReportByParam" parameterType="java.util.Map" resultMap="BaseExtResultMap">
select
*
from
bus_notcompleteorder_report bnr
where 1 = 1
......
4.修改对应的action、service、serviceImpl、dao层对应方法的返回类型为扩展的实体Model。
5.在导出报表的action中修改要导出的Excel的属性为扩展类的属性,要对于名字相同。
其他属性省略。
fieldNames.add(new String[] {
"GoOutTicketTimeChanged",
"ReturnOutTicketTimeChanged",
"DepositPayTimeChanged",
"OrderInvalidTimeChanged"
});
6.此时对应的导出为
有问题请留言。