# commonreport **Repository Path**: www.lyc.com/commonreport ## Basic Information - **Project Name**: commonreport - **Description**: 基于公司内部服务场景开发,目前内部版本已适配公司框架和自己开发的组件,开源版本适配了mybatis orm映射框架,基于spring 框架开发,分层设计良好,具有可拔插的特性,写报表导出不再费时费力。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2019-11-22 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # commonreport #### 介绍 基于公司内部服务场景开发,目前内部版本已适配公司框架和自己开发的组件,开源版本适配了mybatis orm映射框架,基于spring 框架开发,分层设计良好,具有可拔插的特性,写报表导出不再费时费力。 #### 软件架构 ![image](picture/jiagoutu.png) #### 安装教程 1. 编译commonreportbasic模块,install 到本地仓库 2. 编译commonreportcore模块,install 到本地仓库 3. 编译commonreportmybatisimpl模块,install 到本地仓库 4. 包引用如下图 ![image](picture/baoyinyong.png) #### 使用说明 1. 根据commonereportdemo中的测试代码配置好xml之后即可进行测试 2. 需要对commonreport中的所有类进行spring扫描否则无法被spring注入 3. 示例: 配置countSql:SELECT id,account_number AS accountNumber,PASSWORD,client_id AS clientId FROM account 配置querySql: 串行查询:SELECT id,account_number AS accountNumber,PASSWORD,client_id AS clientId FROM account 并行查询: SELECT id,account_number AS accountNumber,PASSWORD,client_id AS clientId FROM account where id >= (SELECT id FROM account LIMIT $LIMIT_CYCLE_COUNT, 1 ) and id > 50000 LIMIT $LIMIT_COUNT $LIMIT_CYCLE_COUNT:循环查询id占位符 $LIMIT_COUNT:单次查询查多少条 ExportBeanConfig对象属性介绍: 1. Object t 查询对象模型(必填) 2. String countSql 查询条数countSql(必填) 3. String querySql 查询结果集SQL(必填) 4. Object [] params 查询参数数组(选填) 5. int size:控制导出超过多少使用并行导出策略(选填) 6. int limitCount:控制并行导出策略下每次从db中查询多少条数据(选填) 7. boolean useParallelQuery:是否使用并行查询(默认false) 默认false:此情况下查询是单线程的,同时对后续的数据转换也是单线程的,建议开启true 配置true:此情况下查询是根据新生成的sql进行分页并行查询,同时对后续的数据转换也是并行进行的 8. boolean useObjectModel:是否使用对象模型(默认false) 默认false:此情况下导出接口返回数据的类型是List> 配置true:此情况下导出接口返回数据的类型是List,或者是List 9. Map> queryCacheMap:数据转换缓存,如将id->name 10. List converterList:自定义数据转换器,元素是数据转换器bean的名字,被spring管理, 组件已提供默认转换器,通过自定义数据转换器完成特殊场景下的数据转换 List converterFieldBeanList:对每个数据转换器都有对应的转换属性bean对象 注解: 1. @ExportTitle 这个注解作用于ExportBeanConfig.t对象中,在类上标识报表导出的sheet名字 2. @ExportField 这个注解作用于ExportBeanConfig.t对象里的属性 title:属性名称 index:对应Excel所属列的序号,从0开始 sourceKey:表格字段值的来源,值与ExportBeanConfig.queryCacheMap中的key是一直的 formate:对日期数据的格式化转换 referIndex:保留源字段和替换字段,比如想保留id,同时在id后面加入name, 则id.index=1,id.referIndex=2;name.index=2,name.referIndex=-1 3. ExportBeanConfig.t对象也可以用EasyExcel的部分注解,上面的两个注解是组件默认支持的。 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)