发票文件生成方式有两种思路:
1、根据已有的OFD模板,动态替换ofd模板内容;之后将ofd转pdf(局限:单行问题不大)
可在【乐企】专栏查看详细代码
详情可以在此处了解【乐企】有关乐企能力测试接口对接-基础版(详细)
2、根据html模板动态占位:该工程就是这种方式 ,目前效果良好,可看下图。
源码获取方式:私信(有偿获取,谢谢,这个也是我周末疯狂加班整理)
拿去即用的源码!无任何保留,当然也并不是所有票种都支持
(时间有限、精力有限、已经连着转了,要冒烟了…)
自己拿到源码之后可以自行适配其余模板类型,目前已经支持类型如下:
- 数电专单行、多行;
- 数电普单行、多行;
- 成品油类型发票-专/普 单、多
- 稀土类型发票-专/普 单、多
- 货物运输-专-单行、多行;
- 货物运输-普-单行、多行;
- 旅客运输-专-单行、多行;
- 旅客运输-普-单行、多行;
- 不动产租赁-专
- 不动产租赁-普
实现效果
增值税专用发票--单行
增值税普通发票--单行
增值税专用发票--多行
增值税普通发票--多行
增值税专/普/多行 稀土
增值税专/普/多行 成品油
货物运输-(专普票都支持)单行
货物运输(专普票都支持)-多行
不动产租赁
旅客运输
项目结构说明
lq-Invoice-project
├── common-oss#文件工程
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com.lq.file
│ │ │ │ ├── core #文件核心包:配置文件读取、操作模板方法定义
│ │ │ │ ├── local # 本地文件存储方式实现
│ │ │ │ ├── oss # OSS文件存储方式实现(支持aws)
│ │ │ │ └── utils
│ │ │ │ └── FileAutoConfiguration.java
│ │ │ └── resources
│ ├── pom.xml
└── lq-invoice#乐企工程
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com.lq.invoice
│ │ │ ├── controller
│ │ │ ├── domain
│ │ │ ├── enums
│ │ │ ├── exception
│ │ │ ├── factory
│ │ │ ├── service
│ │ │ └── util
│ └── resources
└── pom.xml
common-oss模块
application.yml
# 本地文件系统
file:local:enable: truebasePath: /Users/yanjun.hou/Downloads/files# 云存储文件系统oss:enable: falseendpoint: "" #对象存储服务的URLcustomDomain: "" #自定义域名appId: "" #应用IDregion: "" #区域accessKey: ""secretKey: ""
根据注解ConditionalOnProperty动态选择文件上传实现方式,默认本地
项目支持:
1、沙箱环境/正式环境测试
2、文件生成
其中:file文件夹下的数据是关于文件生成的实现
impl文件夹下的数据是关于乐企业务接口的具体实现。
业务实现大致如下:
文件实现大致如下:
由于项目比较繁忙,只有周末抽时间写一写,具体实现思路都是一样
Tips:旅客运输类发票,关于身份证号码需要做敏感信息加密处理,目前这部分代码未做处理!