Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-backend
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
AutogeneralShanghai
yd-backend
Commits
59ae5c0b
Commit
59ae5c0b
authored
Jan 19, 2021
by
Simon Cheng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
'电子印章功能'
parent
bf328037
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
996 additions
and
3 deletions
+996
-3
auto_code/src/main/java/com/yd/util/PDFConfiguration.java
+62
-0
auto_code/src/main/resources/pdfconfiguration.properties
+11
-0
yd-api/lib/com-libs-pdf-0.0.1.jar
+0
-0
yd-api/pom.xml
+80
-0
yd-api/src/main/java/com/yd/api/practitioner/PractitionerHiringController.java
+5
-1
yd-api/src/main/java/com/yd/api/practitioner/PractitionerPDFTest.java
+222
-0
yd-api/src/main/java/com/yd/api/practitioner/service/PractitionerHiringContractService.java
+15
-0
yd-api/src/main/java/com/yd/api/practitioner/service/impl/PractitionerHiringContractServiceImpl.java
+147
-0
yd-api/src/main/java/com/yd/api/practitioner/vo/PDFHiringTest.java
+191
-0
yd-api/src/main/java/com/yd/util/CommonUtil.java
+34
-0
yd-api/src/main/java/com/yd/util/HttpDownload.java
+142
-0
yd-api/src/main/java/com/yd/util/PDFConfiguration.java
+60
-0
yd-api/src/main/resources/application-dev.properties
+11
-2
yd-api/src/main/resources/pdfconfiguration.properties
+16
-0
No files found.
auto_code/src/main/java/com/yd/util/PDFConfiguration.java
0 → 100644
View file @
59ae5c0b
package
com
.
yd
.
util
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.io.FileNotFoundException
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.util.Properties
;
/**
* Desc:properties文件获取工具类
* Created by hafiz.zhang on 2016/9/15.
*/
public
class
PDFConfiguration
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
PDFConfiguration
.
class
);
private
static
Properties
props
;
static
{
loadProps
();
}
synchronized
static
private
void
loadProps
(){
logger
.
info
(
"开始加载properties文件内容......."
);
props
=
new
Properties
();
InputStream
in
=
null
;
try
{
in
=
PDFConfiguration
.
class
.
getClassLoader
().
getResourceAsStream
(
"PDFConfiguration.properties"
);
props
.
load
(
in
);
}
catch
(
FileNotFoundException
e
)
{
logger
.
error
(
"jdbc.properties文件未找到"
);
}
catch
(
IOException
e
)
{
logger
.
error
(
"出现IOException"
);
}
finally
{
try
{
if
(
null
!=
in
)
{
in
.
close
();
}
}
catch
(
IOException
e
)
{
logger
.
error
(
"jdbc.properties文件流关闭出现异常"
);
}
}
logger
.
info
(
"加载properties文件内容完成..........."
);
logger
.
info
(
"properties文件内容:"
+
props
);
}
public
static
String
getProperty
(
String
key
){
if
(
null
==
props
)
{
loadProps
();
}
return
props
.
getProperty
(
key
);
}
public
static
String
getProperty
(
String
key
,
String
defaultValue
)
{
if
(
null
==
props
)
{
loadProps
();
}
return
props
.
getProperty
(
key
,
defaultValue
);
}
}
\ No newline at end of file
auto_code/src/main/resources/pdfconfiguration.properties
0 → 100644
View file @
59ae5c0b
pdf.template
=
/opt/tomcat8/conf/ydpdf/pdfres/templatePractitionerContract.pdf
pdf.signImage
=
/opt/tomcat8/conf/ydpdf/pdfres/上海银盾保险经纪有限公司.png
pdf.keyStorePath
=
/opt/tomcat8/conf/ydpdf/pdfres/4929078_m.zuihuibi.cn.pfx
pdf.keyPasswordFile
=
/opt/tomcat8/conf/ydpdf/pdfres/pfx-password.txt
pdf.check
=
/opt/tomcat8/conf/ydpdf/pdfres/check.png
pdf.uncheck
=
/opt/tomcat8/conf/ydpdf/pdfres/uncheck.png
pdf.temp.path
=
/opt/tomcat8/temp/
pdf.position.x
=
450
pdf.position.y
=
150
yd-api/lib/com-libs-pdf-0.0.1.jar
0 → 100644
View file @
59ae5c0b
File added
yd-api/pom.xml
View file @
59ae5c0b
...
@@ -183,14 +183,94 @@
...
@@ -183,14 +183,94 @@
<artifactId>
aliyun-java-sdk-dm
</artifactId>
<artifactId>
aliyun-java-sdk-dm
</artifactId>
<version>
3.1.0
</version>
<version>
3.1.0
</version>
</dependency>
</dependency>
<dependency>
<groupId>
org.bouncycastle
</groupId>
<artifactId>
bcprov-jdk15on
</artifactId>
<version>
1.60
</version>
</dependency>
<dependency>
<groupId>
org.bouncycastle
</groupId>
<artifactId>
bcpkix-jdk15on
</artifactId>
<version>
1.60
</version>
</dependency>
<dependency>
<groupId>
org.apache.pdfbox
</groupId>
<artifactId>
pdfbox
</artifactId>
<version>
2.0.13
</version>
</dependency>
<dependency>
<groupId>
com.itextpdf
</groupId>
<artifactId>
itextpdf
</artifactId>
<version>
5.5.13
</version>
</dependency>
<dependency>
<groupId>
com.itextpdf
</groupId>
<artifactId>
itext-asian
</artifactId>
<version>
5.2.0
</version>
</dependency>
<dependency>
<groupId>
com.itextpdf.tool
</groupId>
<artifactId>
xmlworker
</artifactId>
<version>
5.5.13
</version>
</dependency>
<dependency>
<groupId>
com.libs.pdf
</groupId>
<artifactId>
com-libs-pdf
</artifactId>
<version>
0.0.1
</version>
<scope>
system
</scope>
<systemPath>
${basedir}/lib/com-libs-pdf-0.0.1.jar
</systemPath>
</dependency>
</dependencies>
</dependencies>
<build>
<build>
<finalName>
ydapi
</finalName>
<finalName>
ydapi
</finalName>
<resources>
<resource>
<!--<targetPath>/WEB-INF/classes</targetPath>-->
<directory>
src/main/resources
</directory>
<includes>
<include>
**/*.*
</include>
</includes>
<filtering>
false
</filtering>
</resource>
</resources>
<plugins>
<plugins>
<plugin>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
<configuration>
<includeSystemScope>
true
</includeSystemScope>
</configuration>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-compiler-plugin
</artifactId>
<version>
3.7.0
</version>
<configuration>
<source>
1.8
</source>
<target>
1.8
</target>
<encoding>
UTF-8
</encoding>
</configuration>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-dependency-plugin
</artifactId>
<version>
2.10
</version>
<executions>
<execution>
<id>
copy-dependencies
</id>
<phase>
compile
</phase>
<goals>
<goal>
copy-dependencies
</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/${project.build.finalName}/WEB-INF/lib
</outputDirectory>
<includeScope>
system
</includeScope>
</configuration>
</execution>
</executions>
</plugin>
</plugin>
</plugins>
</plugins>
</build>
</build>
...
...
yd-api/src/main/java/com/yd/api/practitioner/PractitionerHiringController.java
View file @
59ae5c0b
package
com
.
yd
.
api
.
practitioner
;
package
com
.
yd
.
api
.
practitioner
;
import
com.yd.api.practitioner.service.PractitionerHiringService
;
import
com.yd.api.practitioner.service.PractitionerHiringService
;
import
com.yd.api.practitioner.vo.hiring.*
;
import
com.yd.api.practitioner.vo.hiring.*
;
import
com.yd.api.result.JsonResult
;
import
com.yd.api.result.JsonResult
;
...
@@ -224,6 +223,11 @@ public class PractitionerHiringController {
...
@@ -224,6 +223,11 @@ public class PractitionerHiringController {
@RequestMapping
(
"/hiringApprove"
)
@RequestMapping
(
"/hiringApprove"
)
public
Object
hiringApprove
(
@RequestBody
HiringApproveRequestVO
requestVO
){
public
Object
hiringApprove
(
@RequestBody
HiringApproveRequestVO
requestVO
){
JsonResult
result
=
new
JsonResult
();
JsonResult
result
=
new
JsonResult
();
try
{
PractitionerPDFTest
.
main
(
null
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
HiringApproveResponseVO
responseVO
=
practitionerHiringService
.
hiringApprove
(
requestVO
);
HiringApproveResponseVO
responseVO
=
practitionerHiringService
.
hiringApprove
(
requestVO
);
result
.
addResult
(
responseVO
);
result
.
addResult
(
responseVO
);
result
.
setData
(
responseVO
);
result
.
setData
(
responseVO
);
...
...
yd-api/src/main/java/com/yd/api/practitioner/PractitionerPDFTest.java
0 → 100644
View file @
59ae5c0b
package
com
.
yd
.
api
.
practitioner
;
import
java.io.BufferedReader
;
import
java.io.FileReader
;
import
java.io.IOException
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.Map
;
import
com.yd.libs.pdf.*
;
import
com.yd.util.PDFConfiguration
;
public
class
PractitionerPDFTest
{
/**
* 填充数据源
* 其中data存放的key值与pdf模板中的文本域值相对应
*/
public
static
Map
<
String
,
String
>
initData
()
{
String
secondSignature
=
"张亮"
;
String
secondPartyIDNo
=
"330127199611154184"
;
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
String
secondSignatureDate
=
format
.
format
(
new
Date
());
Map
<
String
,
String
>
data
=
new
HashMap
<
String
,
String
>();
//1页
data
.
put
(
"contactNo"
,
"C-SH-0001"
);
data
.
put
(
"practitionerNo"
,
"YDSH00127"
);
data
.
put
(
"subsystem"
,
"抱一"
);
data
.
put
(
"practitioner"
,
secondSignature
);
data
.
put
(
"idNo"
,
secondPartyIDNo
);
data
.
put
(
"residentAddress"
,
"上海市浦东新区张杨路560号中融恒瑞国际西楼1706室"
);
data
.
put
(
"mobileNo"
,
"13661741633"
);
//7页
data
.
put
(
"firstParty"
,
"上海银盾保险经纪有限公司"
);
data
.
put
(
"firstPartyResponser"
,
"上海银盾保险经纪有限公司"
);
data
.
put
(
"firstPartyAddress"
,
"上海市浦东新区张杨路560号中融恒瑞国际西楼1706室"
);
data
.
put
(
"secondParty"
,
secondSignature
);
data
.
put
(
"secondPartyIDNo"
,
secondPartyIDNo
);
data
.
put
(
"secondPartyAddress"
,
"上海市浦东新区张杨路560号中融恒瑞国际西楼1706室"
);
data
.
put
(
"secondMobileNo"
,
"1366668888"
);
data
.
put
(
"secondSubsystemOwner"
,
"陈欢欢"
);
data
.
put
(
"secondSubsystemSignature"
,
"陈欢欢"
);
data
.
put
(
"secondSubsystemIDNo"
,
"330127199611156403"
);
data
.
put
(
"secondSubsystemAddress"
,
"上海市浦东新区张杨路560号中融恒瑞国际西楼1706室"
);
data
.
put
(
"secondSubsystemMobileNo"
,
"1366668888"
);
data
.
put
(
"secondMentor"
,
"陈欢欢"
);
data
.
put
(
"secondMentorIDNo"
,
"330127199611158003"
);
data
.
put
(
"secondMentorAddress"
,
"上海市浦东新区张杨路560号中融恒瑞国际西楼1706室"
);
data
.
put
(
"secondMentorMobileNo"
,
"1366668888"
);
data
.
put
(
"contactYear"
,
"2120"
);
data
.
put
(
"contactMonth"
,
"12"
);
data
.
put
(
"contactDay"
,
"16"
);
//8页
data
.
put
(
"secondParty801"
,
secondSignature
);
data
.
put
(
"secondBirthYear801"
,
"1989"
);
data
.
put
(
"secondBirthMonth801"
,
"10"
);
data
.
put
(
"secondBirthDay801"
,
"09"
);
data
.
put
(
"secondPartyIDNo801"
,
secondPartyIDNo
);
data
.
put
(
"secondPartyPermanentResidenceAddress"
,
"上海市浦东新区张杨路560号中融恒瑞国际西楼1706室"
);
data
.
put
(
"secondPartyAddress801"
,
"上海市浦东新区张杨路560号中融恒瑞国际西楼1706室"
);
data
.
put
(
"secondMobileNo801"
,
"1366668888"
);
data
.
put
(
"secondPractitionerRegNo"
,
"26961531000080062020000314"
);
data
.
put
(
"secondEmail"
,
"2120@163.com"
);
data
.
put
(
"secondWorkingExperience1"
,
"嫦娥5号登月"
);
data
.
put
(
"secondWorkingPosition1"
,
"项目总工"
);
data
.
put
(
"secondWorkingPeriod1"
,
"2016.12~至今"
);
data
.
put
(
"secondWorkingExperience2"
,
"嫦娥4号登月"
);
data
.
put
(
"secondWorkingPosition2"
,
"姿态调整工程师"
);
data
.
put
(
"secondWorkingPeriod2"
,
"2014.11~2016.10"
);
data
.
put
(
"secondWorkingExperience3"
,
"嫦娥3号登月"
);
data
.
put
(
"secondWorkingPosition3"
,
"动力工程执掌"
);
data
.
put
(
"secondWorkingPeriod3"
,
"2012.03~2014.10"
);
data
.
put
(
"secondWorkingExperience4"
,
"嫦娥2号登月"
);
data
.
put
(
"secondWorkingPosition4"
,
"固态燃料冷凌技师"
);
data
.
put
(
"secondWorkingPeriod4"
,
"2010.07~2012.01"
);
data
.
put
(
"secondBankAccount"
,
secondSignature
);
data
.
put
(
"secondBankAccountOpening"
,
"上海市工商银行齐齐哈尔路支行"
);
data
.
put
(
"secondBankAccountID"
,
"6222001001234567890"
);
data
.
put
(
"secondMentor802"
,
"陈欢欢"
);
data
.
put
(
"secondIntroducer"
,
"陈欢欢"
);
data
.
put
(
"secondMentorIDNo801"
,
"330127199611151346"
);
data
.
put
(
"secondIntroducerIDNo"
,
"330127199611156403"
);
data
.
put
(
"secondEffectiveYear"
,
"2120"
);
data
.
put
(
"secondEffectiveMonth"
,
"12"
);
data
.
put
(
"secondEffectiveDay"
,
"30"
);
data
.
put
(
"secondParty802"
,
secondSignature
);
data
.
put
(
"secondMentor801"
,
"陈欢欢"
);
data
.
put
(
"secondSubsystem"
,
"抱一"
);
data
.
put
(
"secondSubsystemNo"
,
"HUGONE"
);
data
.
put
(
"secondSubsystemManager"
,
"陈欢欢"
);
data
.
put
(
"secondSubsystemMaster"
,
"陈欢欢"
);
data
.
put
(
"secondBranchManager"
,
"王子帷"
);
data
.
put
(
"secondBranchMaster"
,
"王子帷"
);
data
.
put
(
"secondCenterHr"
,
"EVEN"
);
data
.
put
(
"secondCenterCEO"
,
"SHARON"
);
//9页
//10页
data
.
put
(
"secondSignatureDate1001"
,
secondSignatureDate
);
//12页
data
.
put
(
"secondParty1201"
,
secondSignature
);
data
.
put
(
"secondSignatureDate1201"
,
secondSignatureDate
);
//14页
data
.
put
(
"secondParty1401"
,
secondSignature
);
data
.
put
(
"secondSignatureDate1401"
,
secondSignatureDate
);
//16页
data
.
put
(
"secondParty1601"
,
secondSignature
);
data
.
put
(
"secondPartyIDNo1601"
,
secondPartyIDNo
);
data
.
put
(
"secondSignatureDate1601"
,
secondSignatureDate
);
return
data
;
}
public
static
Map
<
String
,
String
>
initImage
()
{
Map
<
String
,
String
>
images
=
new
HashMap
<
String
,
String
>();
images
.
put
(
"secondPersonerPicture"
,
"D:\\pcs12\\secondPersonerPicture.png"
);
//印章从配置文件读
String
signImage
=
PDFConfiguration
.
getProperty
(
"pdf.signImage"
);
images
.
put
(
"yindunESignature1001"
,
signImage
);
images
.
put
(
"yindunESignature1201"
,
signImage
);
images
.
put
(
"yindunESignature1401"
,
signImage
);
images
.
put
(
"secondSignature1001"
,
"D:\\pcs12\\signature.png"
);
images
.
put
(
"secondSignature1201"
,
"D:\\pcs12\\signature.png"
);
images
.
put
(
"secondSignature1401"
,
"D:\\pcs12\\signature.png"
);
images
.
put
(
"secondSignature1601"
,
"D:\\pcs12\\signature.png"
);
images
.
put
(
"secondIDFrontPageImage"
,
"D:\\pcs12\\IDFront.jpg"
);
images
.
put
(
"secondIDBackPageImage"
,
"D:\\pcs12\\IDBack.jpg"
);
images
.
put
(
"secondBankCardImage"
,
"D:\\pcs12\\bank.jpg"
);
//选中或不选中从配置文件读
String
checkFile
=
PDFConfiguration
.
getProperty
(
"pdf.check"
);
String
unCheckFile
=
PDFConfiguration
.
getProperty
(
"pdf.uncheck"
);
images
.
put
(
"secondIDType1"
,
checkFile
);
images
.
put
(
"secondIDType2"
,
unCheckFile
);
images
.
put
(
"secondIDType3"
,
unCheckFile
);
images
.
put
(
"secondIDType4"
,
unCheckFile
);
images
.
put
(
"secondPersonalStatement1"
,
checkFile
);
images
.
put
(
"secondPersonalStatement2"
,
unCheckFile
);
images
.
put
(
"secondPersonalStatement3"
,
unCheckFile
);
images
.
put
(
"secondPersonalStatement4"
,
unCheckFile
);
images
.
put
(
"secondPersonalStatement5"
,
unCheckFile
);
images
.
put
(
"secondPersonalStatement5"
,
unCheckFile
);
images
.
put
(
"secondPosition1"
,
checkFile
);
images
.
put
(
"secondPosition2"
,
unCheckFile
);
images
.
put
(
"secondPosition3"
,
unCheckFile
);
images
.
put
(
"secondPosition4"
,
unCheckFile
);
images
.
put
(
"secondPosition5"
,
unCheckFile
);
images
.
put
(
"secondPosition6"
,
unCheckFile
);
return
images
;
}
public
static
void
main
(
String
[]
args
)
throws
Exception
{
//PDF模板文件
String
templatePDF
=
"D:\\pcs12\\templatePractitionerContract.pdf"
;
templatePDF
=
PDFConfiguration
.
getProperty
(
"pdf.template"
);
//模板文件生成零时文件
String
tmpPathPDF
=
PDFConfiguration
.
getProperty
(
"pdf.temp.path"
);
String
practitionerNO
=
"SH000012"
;
//PDF模板输出结果文件
String
templateResultPDF
=
tmpPathPDF
+
practitionerNO
+
"-template.pdf"
;
//初始化模板数据
Map
<
String
,
String
>
dt
=
initData
();
Map
<
String
,
String
>
img
=
initImage
();
//按模板填充数据生成结果PDF
PDFTemplate
.
generatePDF
(
templatePDF
,
templateResultPDF
,
dt
,
img
);
//准备加盖电子印章的源文件
String
signSourcePDF
=
templateResultPDF
;
//电子印章文件
String
signImage
=
"D:\\pcs12\\上海银盾保险经纪有限公司.png"
;
signImage
=
PDFConfiguration
.
getProperty
(
"pdf.signImage"
);
//加盖电子印章结果文件
String
signResultPDF
=
"D:\\pcs12\\signedYD.pdf"
;
signResultPDF
=
tmpPathPDF
+
practitionerNO
+
"-signedYD.pdf"
;
String
password
=
"UC645YlB"
;
password
=
readFileTxt
(
PDFConfiguration
.
getProperty
(
"pdf.keyPasswordFile"
));
String
keyStorePath
=
"D:\\pcs12\\4929078_m.zuihuibi.cn.pfx"
;
keyStorePath
=
PDFConfiguration
.
getProperty
(
"pdf.keyStorePath"
);;
float
x
=
450
;
float
y
=
150
;
x
=
Float
.
parseFloat
(
PDFConfiguration
.
getProperty
(
"pdf.position.x"
));
y
=
Float
.
parseFloat
(
PDFConfiguration
.
getProperty
(
"pdf.position.y"
));
PDFSign
.
sign
(
signResultPDF
,
password
,
keyStorePath
,
signSourcePDF
,
signImage
,
x
,
y
);
}
private
static
String
readFileTxt
(
String
filePath
)
{
String
line
=
null
;
try
{
FileReader
fr
=
new
FileReader
(
filePath
);
//为了提高效率,加入缓冲技术,将字符读取流对象作为参数传递给缓冲对象的构造函数
BufferedReader
bufr
=
new
BufferedReader
(
fr
);
while
((
line
=
bufr
.
readLine
())!=
null
)
{
System
.
out
.
println
(
line
);
}
bufr
.
close
();
//close()中已经包含了flush
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
line
;
}
}
yd-api/src/main/java/com/yd/api/practitioner/service/PractitionerHiringContractService.java
0 → 100644
View file @
59ae5c0b
package
com
.
yd
.
api
.
practitioner
.
service
;
import
java.util.Map
;
public
interface
PractitionerHiringContractService
{
String
generatePractitionerContract
(
Long
hiringBasicInfoId
);
Map
<
String
,
String
>
initHiringBasicInfoData
(
Long
hiringBasicInfoId
);
Map
<
String
,
String
>
initHiringImageInfoData
(
Long
hiringBasicInfoId
);
String
generatePractitionerPDF
(
String
practitionerNO
,
Map
<
String
,
String
>
initDatas
,
Map
<
String
,
String
>
initImages
);
}
\ No newline at end of file
yd-api/src/main/java/com/yd/api/practitioner/service/impl/PractitionerHiringContractServiceImpl.java
0 → 100644
View file @
59ae5c0b
package
com
.
yd
.
api
.
practitioner
.
service
.
impl
;
import
com.yd.api.practitioner.service.PractitionerHiringContractService
;
import
com.yd.dal.entity.practitioner.hiring.HiringBasicInfo
;
import
com.yd.dal.entity.practitioner.hiring.HiringMemberShip
;
import
com.yd.dal.entity.practitioner.hiring.HiringPersonalStatements
;
import
com.yd.dal.entity.practitioner.hiring.HiringWorkingExperience
;
import
com.yd.dal.mapper.customer.AclPractitionerHiringBasicInfoMapper
;
import
com.yd.dal.mapper.customer.AclPractitionerHiringMembershipMapper
;
import
com.yd.dal.mapper.customer.AclPractitionerHiringPersonalStatementsMapper
;
import
com.yd.dal.mapper.customer.AclPractitionerHiringWorkingExperienceMapper
;
import
com.yd.dal.mapper.practitioner.PractitionerHiringMapper
;
import
com.yd.libs.pdf.PDFSign
;
import
com.yd.libs.pdf.PDFTemplate
;
import
com.yd.rmi.ali.oss.service.OssService
;
import
com.yd.util.CommonUtil
;
import
com.yd.util.PDFConfiguration
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
@Service
(
"PractitionerHiringContractService"
)
public
class
PractitionerHiringContractServiceImpl
implements
PractitionerHiringContractService
{
@Autowired
private
OssService
ossService
;
@Resource
private
PractitionerHiringMapper
practitionerHiringMapper
;
/**
* 申请经纪人的ID,生成电子合同,在经纪人表中自动生成记录
* @param hiringBasicInfoId
* @return
*/
@Override
public
String
generatePractitionerContract
(
Long
hiringBasicInfoId
)
{
//1、从DB中按照hiringBasicInfoId,获取经纪人的文字信息
Map
<
String
,
String
>
initDatas
=
new
HashMap
<
String
,
String
>();
initDatas
=
initHiringBasicInfoData
(
hiringBasicInfoId
);
//2、从DB中按照hiringBasicInfoId,从oss上获取经纪人上传的图片信息,需存本地临时文件
Map
<
String
,
String
>
initImages
=
new
HashMap
<
String
,
String
>();
initImages
=
initHiringImageInfoData
(
hiringBasicInfoId
);
//ag_acl_practitioner.employee_no
String
practitionerNO
=
"YDSH00009"
;
String
contractNO
=
"CTSH00009"
;
//3、PDF模板生成合同文件,存本地临时文件后,上传oss
String
contractFile
=
generatePractitionerPDF
(
practitionerNO
,
initDatas
,
initImages
);
//上传至oss ossService
String
contractFileOSS
=
contractFile
;
//4、经纪人表生成经纪人记录ag_acl_practitioner,ag_acl_practitioner.contract_oss_path
// 经纪人经纪人类型级别定义表ag_acl_practitioner_setting
return
contractFileOSS
;
}
/**
* 申请ID的数据列表
* @param hiringBasicInfoId
* @return
*/
@Override
public
Map
<
String
,
String
>
initHiringBasicInfoData
(
Long
hiringBasicInfoId
)
{
//PDF模板中定义的文字key,和值的集合
Map
<
String
,
String
>
data
=
new
HashMap
<
String
,
String
>();
HiringBasicInfo
hiringBasicInfo
=
practitionerHiringMapper
.
findHiringBasicInfo
(
hiringBasicInfoId
);
//模板文件生成零时文件
//甲方
String
firstParty
=
PDFConfiguration
.
getProperty
(
"pdf.firstParty"
);
//甲方负责人
String
firstPartyResponser
=
PDFConfiguration
.
getProperty
(
"pdf.firstPartyResponser"
);
//甲方地址
String
firstPartyAddress
=
PDFConfiguration
.
getProperty
(
"pdf.firstPartyAddress"
);
return
data
;
}
/**
* 申请ID的图片列表,本地地址。从oss上拉到本地
* @param hiringBasicInfoId
* @return
*/
@Override
public
Map
<
String
,
String
>
initHiringImageInfoData
(
Long
hiringBasicInfoId
)
{
//PDF模板中定义的文字key,和值的集合
Map
<
String
,
String
>
images
=
new
HashMap
<
String
,
String
>();
//选中
String
check
=
PDFConfiguration
.
getProperty
(
"pdf.check"
);
//未选中
String
uncheck
=
PDFConfiguration
.
getProperty
(
"pdf.uncheck"
);
return
images
;
}
/**
* 用采集过来的经纪人数据、图片,生成该经纪人的电子合同
* @param initDatas
* @param initImages
* @return
*/
@Override
public
String
generatePractitionerPDF
(
String
practitionerNO
,
Map
<
String
,
String
>
initDatas
,
Map
<
String
,
String
>
initImages
)
{
String
templatePDF
=
"D:\\pcs12\\templatePractitionerContract.pdf"
;
templatePDF
=
PDFConfiguration
.
getProperty
(
"pdf.template"
);
//模板文件生成零时文件
String
tmpPathPDF
=
PDFConfiguration
.
getProperty
(
"pdf.temp.path"
);
//PDF模板输出结果文件
String
templateResultPDF
=
tmpPathPDF
+
practitionerNO
+
"-template.pdf"
;
//按模板填充数据生成结果PDF
PDFTemplate
.
generatePDF
(
templatePDF
,
templateResultPDF
,
initDatas
,
initImages
);
//加盖电子印章结果文件
String
signResultPDF
=
"D:\\pcs12\\signedYD.pdf"
;
signResultPDF
=
tmpPathPDF
+
practitionerNO
+
"-signedYD.pdf"
;
String
password
=
"UC645YlB"
;
password
=
CommonUtil
.
readFileTxt
(
PDFConfiguration
.
getProperty
(
"pdf.keyPasswordFile"
));
String
keyStorePath
=
"D:\\pcs12\\4929078_m.zuihuibi.cn.pfx"
;
keyStorePath
=
PDFConfiguration
.
getProperty
(
"pdf.keyStorePath"
);;
//准备加盖电子印章的源文件
String
signSourcePDF
=
templateResultPDF
;
//电子印章文件
String
signImage
=
"D:\\pcs12\\上海银盾保险经纪有限公司.png"
;
signImage
=
PDFConfiguration
.
getProperty
(
"pdf.signImage"
);
float
x
=
450
;
float
y
=
150
;
x
=
Float
.
parseFloat
(
PDFConfiguration
.
getProperty
(
"pdf.position.x"
));
y
=
Float
.
parseFloat
(
PDFConfiguration
.
getProperty
(
"pdf.position.y"
));
try
{
PDFSign
.
sign
(
signResultPDF
,
password
,
keyStorePath
,
signSourcePDF
,
signImage
,
x
,
y
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
signResultPDF
;
}
}
yd-api/src/main/java/com/yd/api/practitioner/vo/PDFHiringTest.java
0 → 100644
View file @
59ae5c0b
package
com
.
yd
.
api
.
practitioner
.
vo
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.Map
;
import
com.yd.libs.pdf.*
;
public
class
PDFHiringTest
{
/**
* 填充数据源
* 其中data存放的key值与pdf模板中的文本域值相对应
*/
public
static
Map
<
String
,
String
>
initData
()
{
String
secondSignature
=
"张亮"
;
String
secondPartyIDNo
=
"330127199611154184"
;
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
String
secondSignatureDate
=
format
.
format
(
new
Date
());
Map
<
String
,
String
>
data
=
new
HashMap
<
String
,
String
>();
//1页
data
.
put
(
"contactNo"
,
"C-SH-0001"
);
data
.
put
(
"practitionerNo"
,
"YDSH00127"
);
data
.
put
(
"subsystem"
,
"抱一"
);
data
.
put
(
"practitioner"
,
secondSignature
);
data
.
put
(
"idNo"
,
secondPartyIDNo
);
data
.
put
(
"residentAddress"
,
"上海市浦东新区张杨路560号中融恒瑞国际西楼1706室"
);
data
.
put
(
"mobileNo"
,
"13661741633"
);
//7页
data
.
put
(
"firstParty"
,
"上海银盾保险经纪有限公司"
);
data
.
put
(
"firstPartyResponer"
,
"上海银盾保险经纪有限公司"
);
data
.
put
(
"firstPartyAddress"
,
"上海市浦东新区张杨路560号中融恒瑞国际西楼1706室"
);
data
.
put
(
"secondParty"
,
secondSignature
);
data
.
put
(
"secondPartyIDNo"
,
secondPartyIDNo
);
data
.
put
(
"secondPartyAddress"
,
"上海市浦东新区张杨路560号中融恒瑞国际西楼1706室"
);
data
.
put
(
"secondMobileNo"
,
"1366668888"
);
data
.
put
(
"secondSubsystemOwner"
,
"陈欢欢"
);
data
.
put
(
"secondSubsystemSignature"
,
"陈欢欢"
);
data
.
put
(
"secondSubsystemIDNo"
,
"330127199611156403"
);
data
.
put
(
"secondSubsystemAddress"
,
"上海市浦东新区张杨路560号中融恒瑞国际西楼1706室"
);
data
.
put
(
"secondSubsystemMobileNo"
,
"1366668888"
);
data
.
put
(
"secondMentor"
,
"陈欢欢"
);
data
.
put
(
"secondMentorIDNo"
,
"330127199611158003"
);
data
.
put
(
"secondMentorAddress"
,
"上海市浦东新区张杨路560号中融恒瑞国际西楼1706室"
);
data
.
put
(
"secondMentorMobileNo"
,
"1366668888"
);
data
.
put
(
"contactYear"
,
"2120"
);
data
.
put
(
"contactMonth"
,
"12"
);
data
.
put
(
"contactDay"
,
"16"
);
//8页
data
.
put
(
"secondParty801"
,
secondSignature
);
data
.
put
(
"secondBirthYear801"
,
"1989"
);
data
.
put
(
"secondBirthMonth801"
,
"10"
);
data
.
put
(
"secondBirthDay801"
,
"09"
);
data
.
put
(
"secondPartyIDNo801"
,
secondPartyIDNo
);
data
.
put
(
"secondPartyPermanentResidenceAddress"
,
"上海市浦东新区张杨路560号中融恒瑞国际西楼1706室"
);
data
.
put
(
"secondPartyAddress801"
,
"上海市浦东新区张杨路560号中融恒瑞国际西楼1706室"
);
data
.
put
(
"secondMobileNo801"
,
"1366668888"
);
data
.
put
(
"secondPractitionerRegNo"
,
"26961531000080062020000314"
);
data
.
put
(
"secondEmail"
,
"2120@163.com"
);
data
.
put
(
"secondWorkingExperience1"
,
"嫦娥5号登月"
);
data
.
put
(
"secondWorkingPosition1"
,
"项目总工"
);
data
.
put
(
"secondWorkingPeriod1"
,
"2016.12~至今"
);
data
.
put
(
"secondWorkingExperience2"
,
"嫦娥4号登月"
);
data
.
put
(
"secondWorkingPosition2"
,
"姿态调整工程师"
);
data
.
put
(
"secondWorkingPeriod2"
,
"2014.11~2016.10"
);
data
.
put
(
"secondWorkingExperience3"
,
"嫦娥3号登月"
);
data
.
put
(
"secondWorkingPosition3"
,
"动力工程执掌"
);
data
.
put
(
"secondWorkingPeriod3"
,
"2012.03~2014.10"
);
data
.
put
(
"secondWorkingExperience4"
,
"嫦娥2号登月"
);
data
.
put
(
"secondWorkingPosition4"
,
"固态燃料冷凌技师"
);
data
.
put
(
"secondWorkingPeriod4"
,
"2010.07~2012.01"
);
data
.
put
(
"secondBankAccount"
,
secondSignature
);
data
.
put
(
"secondBankAccountOpening"
,
"上海市工商银行齐齐哈尔路支行"
);
data
.
put
(
"secondBankAccountID"
,
"6222001001234567890"
);
data
.
put
(
"secondMentor802"
,
"陈欢欢"
);
data
.
put
(
"secondIntroducer"
,
"陈欢欢"
);
data
.
put
(
"secondMentorIDNo801"
,
"330127199611151346"
);
data
.
put
(
"secondIntroducerIDNo"
,
"330127199611156403"
);
data
.
put
(
"secondEffectiveYear"
,
"2120"
);
data
.
put
(
"secondEffectiveMonth"
,
"12"
);
data
.
put
(
"secondEffectiveDay"
,
"30"
);
data
.
put
(
"secondParty802"
,
secondSignature
);
data
.
put
(
"secondMentor801"
,
"陈欢欢"
);
data
.
put
(
"secondSubsystem"
,
"抱一"
);
data
.
put
(
"secondSubsystemNo"
,
"HUGONE"
);
data
.
put
(
"secondSubsystemManager"
,
"陈欢欢"
);
data
.
put
(
"secondSubsystemMaster"
,
"陈欢欢"
);
data
.
put
(
"secondBranchManager"
,
"王子帷"
);
data
.
put
(
"secondBranchMaster"
,
"王子帷"
);
data
.
put
(
"secondCenterHr"
,
"EVEN"
);
data
.
put
(
"secondCenterCEO"
,
"SHARON"
);
//9页
//10页
data
.
put
(
"secondSignatureDate1001"
,
secondSignatureDate
);
//12页
data
.
put
(
"secondParty1201"
,
secondSignature
);
data
.
put
(
"secondSignatureDate1201"
,
secondSignatureDate
);
//14页
data
.
put
(
"secondParty1401"
,
secondSignature
);
data
.
put
(
"secondSignatureDate1401"
,
secondSignatureDate
);
//16页
data
.
put
(
"secondParty1601"
,
secondSignature
);
data
.
put
(
"secondPartyIDNo1601"
,
secondPartyIDNo
);
data
.
put
(
"secondSignatureDate1601"
,
secondSignatureDate
);
return
data
;
}
public
static
Map
<
String
,
String
>
initImage
()
{
Map
<
String
,
String
>
images
=
new
HashMap
<
String
,
String
>();
//公司印章,需配置
String
yindunESignature
=
"D:\\pcs12\\上海银盾保险经纪有限公司.png"
;
images
.
put
(
"yindunESignature1001"
,
"D:\\pcs12\\上海银盾保险经纪有限公司.png"
);
images
.
put
(
"yindunESignature1201"
,
"D:\\pcs12\\上海银盾保险经纪有限公司.png"
);
images
.
put
(
"yindunESignature1401"
,
"D:\\pcs12\\上海银盾保险经纪有限公司.png"
);
//五张图是动态的,根据DB里面记录的OSS Path,先从阿里云下载到本地作为临时文件,处理模板需要本地文件
//经纪人个人照片
String
secondPersonerPicture
=
"D:\\pcs12\\secondPersonerPicture.png"
;
images
.
put
(
"secondPersonerPicture"
,
secondPersonerPicture
);
//经纪人个人手写签名图
String
secondSignature
=
"D:\\pcs12\\signature.png"
;
images
.
put
(
"secondSignature1001"
,
secondSignature
);
images
.
put
(
"secondSignature1201"
,
secondSignature
);
images
.
put
(
"secondSignature1401"
,
secondSignature
);
images
.
put
(
"secondSignature1601"
,
secondSignature
);
//经纪人个人身份证正面图
String
secondIDFrontPageImage
=
"D:\\pcs12\\IDFront.jpg"
;
images
.
put
(
"secondIDFrontPageImage"
,
secondIDFrontPageImage
);
//经纪人个人身份证背面图
String
secondIDBackPageImage
=
"D:\\pcs12\\IDback.jpg"
;
images
.
put
(
"secondIDBackPageImage"
,
secondIDBackPageImage
);
//经纪人个人银行卡正面图
String
secondBankCardImage
=
"D:\\pcs12\\bank.jpg"
;
images
.
put
(
"secondBankCardImage"
,
secondBankCardImage
);
//选中或未选中2张图,需配置
//PDF模板文件中4种身份证件类型
images
.
put
(
"secondIDType1"
,
"D:\\pcs12\\checked.png"
);
images
.
put
(
"secondIDType2"
,
"D:\\pcs12\\uncheck.png"
);
images
.
put
(
"secondIDType3"
,
"D:\\pcs12\\uncheck.png"
);
images
.
put
(
"secondIDType4"
,
"D:\\pcs12\\uncheck.png"
);
//个人申明中的6个选项,从左到右,从上到下
images
.
put
(
"secondPersonalStatement1"
,
"D:\\pcs12\\checked.png"
);
images
.
put
(
"secondPersonalStatement2"
,
"D:\\pcs12\\uncheck.png"
);
images
.
put
(
"secondPersonalStatement3"
,
"D:\\pcs12\\uncheck.png"
);
images
.
put
(
"secondPersonalStatement4"
,
"D:\\pcs12\\uncheck.png"
);
images
.
put
(
"secondPersonalStatement5"
,
"D:\\pcs12\\uncheck.png"
);
images
.
put
(
"secondPersonalStatement5"
,
"D:\\pcs12\\checked.png"
);
//个人签约职称中的6个选项,从左到右,从上到下
images
.
put
(
"secondPosition1"
,
"D:\\pcs12\\checked.png"
);
images
.
put
(
"secondPosition2"
,
"D:\\pcs12\\uncheck.png"
);
images
.
put
(
"secondPosition3"
,
"D:\\pcs12\\uncheck.png"
);
images
.
put
(
"secondPosition4"
,
"D:\\pcs12\\uncheck.png"
);
images
.
put
(
"secondPosition5"
,
"D:\\pcs12\\uncheck.png"
);
images
.
put
(
"secondPosition6"
,
"D:\\pcs12\\uncheck.png"
);
return
images
;
}
public
static
void
main
(
String
[]
args
)
throws
Exception
{
//PDF模板文件,需配置
String
templatePDF
=
"D:\\pcs12\\templatePractitionerContract.pdf"
;
//PDF模板输出结果文件
String
templateResultPDF
=
"D:\\pcs12\\resultData.pdf"
;
//初始化模板数据
Map
<
String
,
String
>
dt
=
initData
();
Map
<
String
,
String
>
img
=
initImage
();
//按模板填充数据生成结果PDF
PDFTemplate
.
generatePDF
(
templatePDF
,
templateResultPDF
,
dt
,
img
);
//准备加盖电子印章的源文件
String
signSourcePDF
=
templateResultPDF
;
//电子印章文件,需配置
String
signImage
=
"D:\\pcs12\\上海银盾保险经纪有限公司.png"
;
//加盖电子印章结果文件
String
signResultPDF
=
"D:\\pcs12\\signedYD.pdf"
;
String
password
=
"UC645YlB"
;
//CA证书文件,需配置
String
keyStorePath
=
"D:\\pcs12\\4929078_m.zuihuibi.cn.pfx"
;
float
x
=
450
;
float
y
=
150
;
PDFSign
.
sign
(
signResultPDF
,
password
,
keyStorePath
,
signSourcePDF
,
signImage
,
x
,
y
);
}
}
yd-api/src/main/java/com/yd/util/CommonUtil.java
View file @
59ae5c0b
...
@@ -1502,5 +1502,39 @@ public class CommonUtil {
...
@@ -1502,5 +1502,39 @@ public class CommonUtil {
}
}
return
sumDay
;
return
sumDay
;
}
}
public
static
String
getApproveStatusByStepSeq
(
Integer
stepSeq
){
switch
(
stepSeq
)
{
case
1
:
return
"-2"
;
case
2
:
return
"1"
;
case
3
:
return
"2"
;
case
4
:
return
"3"
;
case
5
:
return
"4"
;
}
return
null
;
}
public
static
String
readFileTxt
(
String
filePath
)
{
String
line
=
null
;
try
{
FileReader
fr
=
new
FileReader
(
filePath
);
//为了提高效率,加入缓冲技术,将字符读取流对象作为参数传递给缓冲对象的构造函数
BufferedReader
bufr
=
new
BufferedReader
(
fr
);
while
((
line
=
bufr
.
readLine
())!=
null
)
{
System
.
out
.
println
(
line
);
}
bufr
.
close
();
//close()中已经包含了flush
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
line
;
}
}
}
yd-api/src/main/java/com/yd/util/HttpDownload.java
0 → 100644
View file @
59ae5c0b
package
com
.
yd
.
util
;
import
java.io.File
;
import
java.io.FileOutputStream
;
import
java.io.InputStream
;
import
org.apache.http.Header
;
import
org.apache.http.HeaderElement
;
import
org.apache.http.HttpEntity
;
import
org.apache.http.HttpResponse
;
import
org.apache.http.NameValuePair
;
import
org.apache.http.client.HttpClient
;
import
org.apache.http.client.methods.HttpGet
;
import
org.apache.http.impl.client.DefaultHttpClient
;
/**
* HttpDownload文件下载工具类
* Created by Simon Cheng on 202021/1/18.
*/
public
class
HttpDownload
{
public
static
final
int
cache
=
10
*
1024
;
public
static
final
boolean
isWindows
;
public
static
final
String
splash
;
public
static
final
String
root
;
static
{
if
(
System
.
getProperty
(
"os.name"
)
!=
null
&&
System
.
getProperty
(
"os.name"
).
toLowerCase
().
contains
(
"windows"
))
{
isWindows
=
true
;
splash
=
"\\"
;
root
=
"D:"
;
}
else
{
isWindows
=
false
;
splash
=
"/"
;
root
=
"/opt/tomcat8/temp"
;
}
}
/**
* 根据url下载文件,文件名从response header头中获取
* @param url
* @return
*/
public
static
String
download
(
String
url
)
{
return
download
(
url
,
null
);
}
/**
* 根据url下载文件,保存到filepath中
* @param url
* @param filepath
* @return
*/
public
static
String
download
(
String
url
,
String
filepath
)
{
try
{
HttpClient
client
=
new
DefaultHttpClient
();
HttpGet
httpget
=
new
HttpGet
(
url
);
HttpResponse
response
=
client
.
execute
(
httpget
);
HttpEntity
entity
=
response
.
getEntity
();
InputStream
is
=
entity
.
getContent
();
if
(
filepath
==
null
)
{
filepath
=
getFilePath
(
response
);
}
File
file
=
new
File
(
filepath
);
file
.
getParentFile
().
mkdirs
();
FileOutputStream
fileout
=
new
FileOutputStream
(
file
);
/**
* 根据实际运行效果 设置缓冲区大小
*/
byte
[]
buffer
=
new
byte
[
cache
];
int
ch
=
0
;
while
((
ch
=
is
.
read
(
buffer
))
!=
-
1
)
{
fileout
.
write
(
buffer
,
0
,
ch
);
}
is
.
close
();
fileout
.
flush
();
fileout
.
close
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
/**
* 获取response要下载的文件的默认路径
* @param response
* @return
*/
public
static
String
getFilePath
(
HttpResponse
response
)
{
String
filepath
=
root
+
splash
;
String
filename
=
getFileName
(
response
);
if
(
filename
!=
null
)
{
filepath
+=
filename
;
}
else
{
filepath
+=
getRandomFileName
();
}
return
filepath
;
}
/**
* 获取response header中Content-Disposition中的filename值
* @param response
* @return
*/
public
static
String
getFileName
(
HttpResponse
response
)
{
Header
contentHeader
=
response
.
getFirstHeader
(
"Content-Disposition"
);
String
filename
=
null
;
if
(
contentHeader
!=
null
)
{
HeaderElement
[]
values
=
contentHeader
.
getElements
();
if
(
values
.
length
==
1
)
{
NameValuePair
param
=
values
[
0
].
getParameterByName
(
"filename"
);
if
(
param
!=
null
)
{
try
{
filename
=
param
.
getValue
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
}
return
filename
;
}
/**
* 获取随机文件名
* @return
*/
public
static
String
getRandomFileName
()
{
return
String
.
valueOf
(
System
.
currentTimeMillis
());
}
public
static
void
outHeaders
(
HttpResponse
response
)
{
Header
[]
headers
=
response
.
getAllHeaders
();
for
(
int
i
=
0
;
i
<
headers
.
length
;
i
++)
{
System
.
out
.
println
(
headers
[
i
]);
}
}
public
static
void
main
(
String
[]
args
)
{
String
url
=
"https://dev-yindun-store.oss-cn-shanghai-finance-1-pub.aliyuncs.com/brokerHiring/38/7210115.jpg"
;
String
filepath
=
"D:\\test\\a.jpg"
;
HttpDownload
.
download
(
url
,
filepath
);
}
}
yd-api/src/main/java/com/yd/util/PDFConfiguration.java
0 → 100644
View file @
59ae5c0b
package
com
.
yd
.
util
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.io.*
;
import
java.util.Properties
;
/**
* Desc:properties文件获取工具类
* Created by Simon Cheng on 202021/1/18.
*/
public
class
PDFConfiguration
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
PDFConfiguration
.
class
);
private
static
Properties
props
;
static
{
loadProps
();
}
synchronized
static
private
void
loadProps
(){
logger
.
info
(
"开始加载properties文件内容......."
);
props
=
new
Properties
();
InputStream
in
=
null
;
try
{
in
=
PDFConfiguration
.
class
.
getClassLoader
().
getResourceAsStream
(
"pdfconfiguration.properties"
);
props
.
load
(
in
);
}
catch
(
FileNotFoundException
e
)
{
logger
.
error
(
"pdfconfiguration.properties文件未找到"
);
}
catch
(
IOException
e
)
{
logger
.
error
(
"出现IOException"
);
}
finally
{
try
{
if
(
null
!=
in
)
{
in
.
close
();
}
}
catch
(
IOException
e
)
{
logger
.
error
(
"pdfconfiguration.properties文件流关闭出现异常"
);
}
}
logger
.
info
(
"加载properties文件内容完成..........."
);
logger
.
info
(
"properties文件内容:"
+
props
);
}
public
static
String
getProperty
(
String
key
){
if
(
null
==
props
)
{
loadProps
();
}
return
props
.
getProperty
(
key
);
}
public
static
String
getProperty
(
String
key
,
String
defaultValue
)
{
if
(
null
==
props
)
{
loadProps
();
}
return
props
.
getProperty
(
key
,
defaultValue
);
}
}
\ No newline at end of file
yd-api/src/main/resources/application-dev.properties
View file @
59ae5c0b
...
@@ -52,4 +52,14 @@ jwt.bypass:TEST
...
@@ -52,4 +52,14 @@ jwt.bypass:TEST
enable.datasecurity
:
false
enable.datasecurity
:
false
#存量数据接口开关
#存量数据接口开关
prod.checkavailable
:
prod.checkavailable
:
\ No newline at end of file
pdf.template
=
/opt/tomcat8/conf/ydpdf/pdfres/templatePractitionerContract.pdf
pdf.signImage
=
/opt/tomcat8/conf/ydpdf/pdfres/上海银盾保险经纪有限公司.png
pdf.keyStorePath
=
/opt/tomcat8/conf/ydpdf/pdfres/4929078_m.zuihuibi.cn.pfx
pdf.keyPasswordFile
=
/opt/tomcat8/conf/ydpdf/pdfres/pfx-password.txt
pdf.position.x
=
450
pdf.position.y
=
150
pdf.check
=
/opt/tomcat8/conf/ydpdf/pdfres/check.png
pdf.uncheck
=
/opt/tomcat8/conf/ydpdf/pdfres/uncheck.png
yd-api/src/main/resources/pdfconfiguration.properties
0 → 100644
View file @
59ae5c0b
pdf.template
=
/opt/tomcat8/conf/ydpdf/pdfres/templatePractitionerContract.pdf
pdf.signImage
=
/opt/tomcat8/conf/ydpdf/pdfres/上海银盾保险经纪有限公司.png
pdf.keyStorePath
=
/opt/tomcat8/conf/ydpdf/pdfres/4929078_m.zuihuibi.cn.pfx
pdf.keyPasswordFile
=
/opt/tomcat8/conf/ydpdf/pdfres/pfx-password.txt
pdf.check
=
/opt/tomcat8/conf/ydpdf/pdfres/check.png
pdf.uncheck
=
/opt/tomcat8/conf/ydpdf/pdfres/uncheck.png
pdf.temp.path
=
/opt/tomcat8/temp/
pdf.firstParty
=
上海银盾保险经纪有限公司
pdf.firstPartyResponser
=
Sharon Wan
pdf.firstPartyAddress
=
上海市浦东新区张杨路560号中融恒瑞国际西楼1706室
pdf.position.x
=
450
pdf.position.y
=
150
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment