Commit 77bee27c by Simon Cheng

'薪资表模板读写'

parent b6aa9bdb
...@@ -22,13 +22,18 @@ ...@@ -22,13 +22,18 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<!-- 编译时的编码 --> <!-- 编译时的编码 -->
<maven.compiler.encoding>UTF-8</maven.compiler.encoding> <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.20</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId> <artifactId>spring-boot-starter</artifactId>
</dependency> </dependency>
...@@ -69,43 +74,43 @@ ...@@ -69,43 +74,43 @@
<artifactId>commons-lang3</artifactId> <artifactId>commons-lang3</artifactId>
<version>3.7</version> <version>3.7</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.jsonwebtoken</groupId> <groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId> <artifactId>jjwt</artifactId>
<version>0.6.0</version> <version>0.6.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId> <artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.tomcat.embed</groupId> <groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId> <artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.github.pagehelper</groupId> <groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId> <artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version> <version>1.2.5</version>
</dependency> </dependency>
<!-- <!--
<dependency> <dependency>
<groupId>io.springfox</groupId> <groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId> <artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version> <version>2.8.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.springfox</groupId> <groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId> <artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version> <version>2.8.0</version>
</dependency> </dependency>
--> -->
<dependency> <dependency>
<groupId>com.google.guava</groupId> <groupId>com.google.guava</groupId>
<artifactId>guava</artifactId> <artifactId>guava</artifactId>
...@@ -221,10 +226,11 @@ ...@@ -221,10 +226,11 @@
<scope>system</scope> <scope>system</scope>
<systemPath>${basedir}/lib/com-libs-pdf-0.0.1.jar</systemPath> <systemPath>${basedir}/lib/com-libs-pdf-0.0.1.jar</systemPath>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>
<finalName>ydapi</finalName> <finalName>ydapi</finalName>
<resources> <resources>
<resource> <resource>
<!--<targetPath>/WEB-INF/classes</targetPath>--> <!--<targetPath>/WEB-INF/classes</targetPath>-->
......
package com.yd.api.practitioner;
import java.io.*;
import java.util.*;
import com.libs.pdf.freemarker.HtmlGenerator;
import com.libs.pdf.freemarker.PdfGenerator;
import com.yd.api.practitioner.vo.CommissionItems;
import com.yd.api.practitioner.vo.Commission;
public class PractitionerSalaryPDFTest {
public static void main(String[] args) {
try
{
//html模板文件
String tempFilfe = "practitionerSalaryTemplate.html";
//pdf输出文件
String outputFile = "D:/sample.pdf";
//模板上的变量定义
Map<String, Object> variables = new HashMap<String, Object>(3);
//佣金项目列表变量
List<CommissionItems> comList = new ArrayList<CommissionItems>();
//列表1:☆S01 首年度销售佣金
CommissionItems tomS01 = new CommissionItems();
tomS01.setName("☆S01 首年度销售佣金");
//列表1中的条目明细
List<Commission> tomItems1 = new ArrayList<Commission>();
Commission tomItem1 = new Commission();
tomItem1.setInsurer("泰康人寿");
tomItem1.setCommission("56.78");
tomItem1.setEffectiveDate("2021.2.1");
tomItem1.setFyc("45.00");
tomItem1.setGradeRate("86");
tomItem1.setInsured("姑苏蓝氏");
tomItem1.setNote("首保");
tomItem1.setPolicyNo("TKSH000012345");
tomItem1.setPremium("125.90");
tomItem1.setProductCode("PTK789001");
tomItem1.setSubSystem("王子");
tomItem1.setYearMonth("202102");
tomItems1.add(tomItem1);
tomS01.setItems(tomItems1);
comList.add(tomS01);
//列表2:☆S03 首年度辅导奖金
CommissionItems tomS03 = new CommissionItems();
tomS03.setName("☆S03 首年度辅导奖金");
//列表2中的条目明细
List<Commission> tomItems3 = new ArrayList<Commission>();
Commission tomItem3 = new Commission();
tomItem3.setInsurer("泰康人寿");
tomItem3.setCommission("3451.00");
tomItem3.setEffectiveDate("2021.1.1");
tomItem3.setFyc("5433.00");
tomItem3.setGradeRate("53%");
tomItem3.setInsured("王一博");
tomItem3.setNote("首保");
tomItem3.setPolicyNo("TKSC00012123100K");
tomItem3.setPremium("6756.00");
tomItem3.setProductCode("PTK000211");
tomItem3.setSubSystem("王子");
tomItem3.setYearMonth("202101");
tomItems3.add(tomItem3);
//列表2中的条目明细
Commission tomItem32 = new Commission();
tomItem32.setInsurer("泰康人寿");
tomItem32.setCommission("879.33");
tomItem32.setEffectiveDate("2021.2.1");
tomItem32.setFyc("561.30");
tomItem32.setGradeRate("56");
tomItem32.setInsured("李现");
tomItem32.setNote("首保");
tomItem32.setPolicyNo("TKJS000222");
tomItem32.setPremium("3211.90");
tomItem32.setProductCode("PTK3333");
tomItem32.setSubSystem("王子");
tomItem32.setYearMonth("202102");
tomItems3.add(tomItem32);
tomS03.setItems(tomItems3);
comList.add(tomS03);
//列表3:☆S14 特别管理奖金
CommissionItems tomSS14 = new CommissionItems();
tomSS14.setName("☆S14 特别管理奖金");
//列表3中的条目明细
List<Commission> tomItems14 = new ArrayList<Commission>();
Commission tomItem14 = new Commission();
tomItem14.setInsurer("泰康人寿");
tomItem14.setCommission("3423.45");
tomItem14.setEffectiveDate("2021.3.1");
tomItem14.setFyc("5335.00");
tomItem14.setGradeRate("56");
tomItem14.setInsured("肖战");
tomItem14.setNote("续保");
tomItem14.setPolicyNo("TKSH000020210301000176");
tomItem14.setPremium("8899.00");
tomItem14.setProductCode("PTK03214");
tomItem14.setSubSystem("王子");
tomItem14.setYearMonth("202103");
tomItems14.add(tomItem14);
tomSS14.setItems(tomItems14);
comList.add(tomSS14);
//html模板中的其他单值变量
variables.put("commissionYearMonth", "202103");
variables.put("commissionDate", "20210310");
variables.put("branch", "上海总部");
variables.put("practitionerNameCode", "YDSH00338");
variables.put("bankAccount", "6222010101012234589");
variables.put("subSystem", "王子");
variables.put("grade", "S2 企业合伙人");
variables.put("fyp", "5678.90");
variables.put("fap", "3457.87");
variables.put("other", "90.00");
variables.put("otherAddPlus", "0.00");
variables.put("tax", "0.00");
variables.put("totalCommission", "7658.89");
variables.put("otherSummary", "0.00");
variables.put("supplementTax", "0.00");
variables.put("otherTaxSummary", "0.00");
variables.put("currentActualSalary", "7658.89");
variables.put("currentTaxBeforeSalary", "7658.89");
variables.put("currentYearTaxBeforeSalary", "7658.89");
variables.put("preTaxOffRate", "78");
variables.put("currentYearTaxSummary", "7658.89");
variables.put("currentTax", "0.00");
variables.put("currentMonthFYC", "7658.89");
variables.put("currentYearFYC", "7658.89");
variables.put("currentMonthRYC", "7658.89");
//html模板中的列表变量
variables.put("comList", comList);
String htmlStr = HtmlGenerator.generate(tempFilfe, variables);
OutputStream out = new FileOutputStream(outputFile);
PdfGenerator.generatePlus(htmlStr, out);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
package com.yd.api.practitioner.vo;
public class Commission {
public String getInsurer() {
return insurer;
}
public void setInsurer(String insurer) {
this.insurer = insurer;
}
private String insurer;
public String getPolicyNo() {
return policyNo;
}
public void setPolicyNo(String policyNo) {
this.policyNo = policyNo;
}
private String policyNo;
public String getEffectiveDate() {
return effectiveDate;
}
public void setEffectiveDate(String effectiveDate) {
this.effectiveDate = effectiveDate;
}
private String effectiveDate;
public String getProductCode() {
return productCode;
}
public void setProductCode(String productCode) {
this.productCode = productCode;
}
private String productCode;
public String getSubSystem() {
return subSystem;
}
public void setSubSystem(String subSystem) {
this.subSystem = subSystem;
}
private String subSystem;
public String getInsured() {
return insured;
}
public void setInsured(String insured) {
this.insured = insured;
}
private String insured;
public String getYearMonth() {
return yearMonth;
}
public void setYearMonth(String yearMonth) {
this.yearMonth = yearMonth;
}
private String yearMonth;
public String getPremium() {
return premium;
}
public void setPremium(String premium) {
this.premium = premium;
}
private String premium;
public String getFyc() {
return fyc;
}
public void setFyc(String fyc) {
this.fyc = fyc;
}
private String fyc;
public String getGradeRate() {
return gradeRate;
}
public void setGradeRate(String gradeRate) {
this.gradeRate = gradeRate;
}
private String gradeRate;
public String getCommission() {
return commission;
}
public void setCommission(String commission) {
this.commission = commission;
}
private String commission;
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
private String note;
}
package com.yd.api.practitioner.vo;
import java.util.List;
public class CommissionItems {
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
private String name;
public List<Commission> getItems() {
return items;
}
public void setItems(List<Commission> items) {
this.items = items;
}
private List<Commission> items;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment