【乐企板式文件生成工程】关于乐企板式文件(PDF/OFD/XML)生成工程介绍

发布于:2025-08-06 ⋅ 阅读:(17) ⋅ 点赞:(0)

1、摘要

乐企文件生成是一项重中之重的工作,但是单纯根据乐企文档去实现文件生成的话,是一项非常耗时且实现的效果并不一定很好的方式,目前【乐企文件生成工程】支持单独部署、支持多种文件类型(PDF、OFD、XML)、支持多类型发票(成品油、稀土、农产品、货物运输、旅客运输、不动产租赁、不动产销售、建筑服务)

2、发票文件生成方式有两种思路:

1、根据已有的OFD模板,动态替换ofd模板内容;之后将ofd转pdf(局限:单行问题不大)
可在【乐企】专栏查看详细代码详情可以在此处了解【乐企】有关乐企能力测试接口对接-基础版(详细)

2、根据html模板动态占位:该工程就是这种方式 ,目前效果良好,可看下图。
源码获取方式: 点击下方公众号,加作者微信获取代码版本信息
目前已经支持类型如下:

  • 数电专单行、多行;
  • 数电普单行、多行;
  • 成品油类型发票-专/普 单、多
  • 稀土类型发票-专/普 单、多
  • 货物运输-专-单行、多行;
  • 货物运输-普-单行、多行;
  • 旅客运输-专-单行、多行;
  • 旅客运输-普-单行、多行;
  • 不动产租赁-专
  • 不动产租赁-普

亮点一:操作简单,支持本地存储以及云存储

只需要切换配置文件中的文件开启方式即可~(case如下)
在这里插入图片描述

# 本地文件系统
file:
  local:
    enable: true  #这里如果是true 则按照本地文件路径存储
    basePath: /Users/yanjun.hou/Downloads/files

  # 云存储文件系统
  oss:
    enable: false #这里如果是true 则按照OSS方式存储
    endpoint: "" #对象存储服务的URL
    customDomain: "" #自定义域名
    appId: "" #应用ID
    region: "" #区域
    accessKey: ""
    secretKey: ""

亮点二:无需二次实体映射,直接按照乐企官方文档的JSON报文传输即可实现PDF、OFD、XML三种文件的生成!

{
    "ptbh": "ptbh-111222333",
    "bz": "这个是备注信息,销售方地址:北京市区朝阳区南京街道,销售方电话:这个是销售方3213213121122 购买方地址:这个是购买方地址,苏州市吴中区郭巷街道,新时代撒,购买方电话:这个是购买方电话,3123213213",
    "fphm": "24123421232324342484",
    "fppz": "01",
    "gmfmc": "购买方名称",
    "gmfnsrsbh": "31232198381273982",
    "hjje": 100,
    "hjse": 10,
    "jshj": 110,
    "kpr": "开票人",
    "kprq": "2024-10-19 17:22:06",
    "lzfpbz": "0",
    "qyDm": "11100",
    "tdys": "03",
    "xsfmc": "销售方名称",
    "xsfnsrsbh": "32131287869082372",
    "jzfwtdys": {
        "tdzzsxmbh": "tdzzsxmbh",
        "kdsbz": "N"
    },
    "fpmxList": [
        {
            "jzfwfsd":"建筑服务发生地",
            "jzxmmc":"建筑项目名称",
            "mxxh": 1,
            "dj": "100",
            "dw": "单位",
            "ggxh": "92",
            "hwhyslwfwmc": "*测试*测试商品",
            "sphfwssflhbbm": "11111",
            "xmmc": "测试商品",
            "spfwjc": "测试",
            "hsje": "110",
            "je": "100",
            "se": "10",
            "sl": "1",
            "slv": "0.1",
            "fphxz": "01"
        }
    ]
}

亮点三:切换tdys即可实现不同票种动态生成~

在这里插入图片描述
在这里插入图片描述

//一个入口,实现所有发票票种实现~
invoiceFileFactory.getInvoiceFileService(baseUploadInvoiceReq.getTdys()).makeInvoiceFile(baseUploadInvoiceReq);

实现效果

增值税专用发票--单行

增值税普通发票--单行
增值税普通发票--单行

增值税专用发票--多行
在这里插入图片描述

增值税普通发票--多行
在这里插入图片描述
增值税专/普/多行 稀土
在这里插入图片描述
增值税专/普/多行 成品油
在这里插入图片描述
货物运输-(专普票都支持)单行
在这里插入图片描述

货物运输(专普票都支持)-多行
在这里插入图片描述
不动产租赁
在这里插入图片描述

旅客运输(身份信息未做加密处理,可以自己针对出生日期进行分段加密)
在这里插入图片描述

项目结构说明

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: true
    basePath: /Users/yanjun.hou/Downloads/files

  # 云存储文件系统
  oss:
    enable: false
    endpoint: "" #对象存储服务的URL
    customDomain: "" #自定义域名
    appId: "" #应用ID
    region: "" #区域
    accessKey: ""
    secretKey: ""

根据注解ConditionalOnProperty动态选择文件上传实现方式,默认本地
在这里插入图片描述
在这里插入图片描述

项目支持:
1、沙箱环境/正式环境测试
2、文件生成
其中:file文件夹下的数据是关于文件生成的实现
impl文件夹下的数据是关于乐企业务接口的具体实现。
在这里插入图片描述

业务实现大致如下:
在这里插入图片描述
文件实现大致如下:

在这里插入图片描述


  • 乐企接口

  • 乐企API对接

  • 乐企沙箱测试

  • 乐企电子发票

  • 乐企板式文件生成


网站公告

今日签到

点亮在社区的每一天
去签到