Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gk
Project
Project
Details
Activity
Releases
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
micro_app
gk
Commits
f84952e9
Commit
f84952e9
authored
Apr 13, 2021
by
yangshuxing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
契约锁开发
parent
aeb17965
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
1113 additions
and
5 deletions
+1113
-5
pom.xml
pom.xml
+12
-2
Application.java
src/main/java/com/dlbridge/jadp/Application.java
+1
-1
RmiConfig.java
src/main/java/com/dlbridge/jadp/config/web/RmiConfig.java
+32
-0
EnrollInfo.java
.../java/com/dlbridge/jadp/plugins/cmpt/bean/EnrollInfo.java
+1
-0
RemoteService.java
...com/dlbridge/jadp/plugins/cmpt/service/RemoteService.java
+1
-0
NavigationController.java
.../dlbridge/jadp/plugins/cmpt/web/NavigationController.java
+33
-0
CmptContact.java
.../com/dlbridge/jadp/plugins/qiyuesuo/bean/CmptContact.java
+28
-0
ContactLock.java
.../com/dlbridge/jadp/plugins/qiyuesuo/bean/ContactLock.java
+26
-0
ContactLockController.java
...dp/plugins/qiyuesuo/controller/ContactLockController.java
+74
-0
ContactLockMapper.java
...ridge/jadp/plugins/qiyuesuo/mapper/ContactLockMapper.java
+21
-0
ContactLockMapper.xml
...bridge/jadp/plugins/qiyuesuo/mapper/ContactLockMapper.xml
+36
-0
SendByCategoryService.java
.../jadp/plugins/qiyuesuo/service/SendByCategoryService.java
+365
-0
application-dev.properties
src/main/resources/application-dev.properties
+9
-1
application-production.properties
src/main/resources/application-production.properties
+8
-0
application-test.properties
src/main/resources/application-test.properties
+10
-1
navigation.jsp
src/main/webapp/WEB-INF/views/cmpt/navigation.jsp
+291
-0
LamdatTest.java
src/test/java/com/dlbridge/jadp/LamdatTest.java
+23
-0
LockMain.java
src/test/java/com/dlbridge/jadp/LockMain.java
+142
-0
No files found.
pom.xml
View file @
f84952e9
...
@@ -368,6 +368,16 @@
...
@@ -368,6 +368,16 @@
<artifactId>
qrgen
</artifactId>
<artifactId>
qrgen
</artifactId>
<version>
1.4
</version>
<version>
1.4
</version>
</dependency>
</dependency>
<dependency>
<groupId>
com.qiyuesuo.sdk
</groupId>
<artifactId>
sdk-java
</artifactId>
<version>
3.3.2
</version>
</dependency>
<dependency>
<groupId>
com.neusoft.shg3.service
</groupId>
<artifactId>
rmi
</artifactId>
<version>
0.0.3
</version>
</dependency>
</dependencies>
</dependencies>
<repositories>
<repositories>
...
@@ -375,7 +385,7 @@
...
@@ -375,7 +385,7 @@
<repository>
<repository>
<id>
nexus
</id>
<id>
nexus
</id>
<name>
Private Repositories
</name>
<name>
Private Repositories
</name>
<url>
http://maven.geexek.com.cn
:8081
/nexus/content/groups/public/
</url>
<url>
http://maven.geexek.com.cn/nexus/content/groups/public/
</url>
<snapshots>
<snapshots>
<enabled>
true
</enabled>
<enabled>
true
</enabled>
<updatePolicy>
daily
</updatePolicy>
<updatePolicy>
daily
</updatePolicy>
...
@@ -387,7 +397,7 @@
...
@@ -387,7 +397,7 @@
<pluginRepository>
<pluginRepository>
<id>
nexus
</id>
<id>
nexus
</id>
<name>
Private Repositories
</name>
<name>
Private Repositories
</name>
<url>
http://maven.geexek.com.cn
:8081
/nexus/content/groups/public/
</url>
<url>
http://maven.geexek.com.cn/nexus/content/groups/public/
</url>
<snapshots>
<snapshots>
<enabled>
false
</enabled>
<enabled>
false
</enabled>
<updatePolicy>
daily
</updatePolicy>
<updatePolicy>
daily
</updatePolicy>
...
...
src/main/java/com/dlbridge/jadp/Application.java
View file @
f84952e9
...
@@ -25,7 +25,7 @@ import org.springframework.web.servlet.config.annotation.EnableWebMvc;
...
@@ -25,7 +25,7 @@ import org.springframework.web.servlet.config.annotation.EnableWebMvc;
@EnableCaching
@EnableCaching
@SpringBootApplication
(
exclude
=
{
RedisAutoConfiguration
.
class
})
@SpringBootApplication
(
exclude
=
{
RedisAutoConfiguration
.
class
})
@EnableWebMvc
@EnableWebMvc
@MapperScan
(
basePackages
=
"com.dlbridge.jadp.plugins
.cmpt.dao.mapper
"
)
@MapperScan
(
basePackages
=
"com.dlbridge.jadp.plugins"
)
@EnableAspectJAutoProxy
(
proxyTargetClass
=
true
)
@EnableAspectJAutoProxy
(
proxyTargetClass
=
true
)
@EnableFeignClients
(
basePackages
=
"com.dlbridge.feign"
)
@EnableFeignClients
(
basePackages
=
"com.dlbridge.feign"
)
@EnableDiscoveryClient
@EnableDiscoveryClient
...
...
src/main/java/com/dlbridge/jadp/config/web/RmiConfig.java
0 → 100644
View file @
f84952e9
package
com
.
dlbridge
.
jadp
.
config
.
web
;
import
com.neusoft.upload.service.RMIUpload
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.remoting.rmi.RmiProxyFactoryBean
;
/**
* @Author shuxing.yang
* @Date 2021/4/9 13:29
*/
@Configuration
@Slf4j
public
class
RmiConfig
{
@Value
(
"${upload.rmi}"
)
private
String
serviceUrl
;
@Bean
public
RmiProxyFactoryBean
rmiUpload
(){
log
.
info
(
"rmi : "
+
serviceUrl
);
RmiProxyFactoryBean
rmiProxyFactoryBean
=
new
RmiProxyFactoryBean
();
rmiProxyFactoryBean
.
setRefreshStubOnConnectFailure
(
true
);
rmiProxyFactoryBean
.
setLookupStubOnStartup
(
false
);
rmiProxyFactoryBean
.
setServiceInterface
(
RMIUpload
.
class
);
rmiProxyFactoryBean
.
setServiceUrl
(
serviceUrl
);
return
rmiProxyFactoryBean
;
}
}
src/main/java/com/dlbridge/jadp/plugins/cmpt/bean/EnrollInfo.java
View file @
f84952e9
...
@@ -29,6 +29,7 @@ public class EnrollInfo {
...
@@ -29,6 +29,7 @@ public class EnrollInfo {
@ApiModelProperty
(
value
=
"项目ID"
)
@ApiModelProperty
(
value
=
"项目ID"
)
private
Integer
roadId
;
private
Integer
roadId
;
@ApiModelProperty
(
value
=
"救援人员电话"
)
@ApiModelProperty
(
value
=
"救援人员电话"
)
private
String
remark
;
private
String
remark
;
private
String
gender
;
private
String
gender
;
...
...
src/main/java/com/dlbridge/jadp/plugins/cmpt/service/RemoteService.java
View file @
f84952e9
...
@@ -87,6 +87,7 @@ public class RemoteService {
...
@@ -87,6 +87,7 @@ public class RemoteService {
info
.
setUserName
(
content
.
getString
(
"name"
));
info
.
setUserName
(
content
.
getString
(
"name"
));
info
.
setEnrollId
(
content
.
getString
(
"enrollId"
));
info
.
setEnrollId
(
content
.
getString
(
"enrollId"
));
info
.
setPhone
(
content
.
getString
(
"phone"
));
info
.
setPhone
(
content
.
getString
(
"phone"
));
info
.
setIdentityNo
(
content
.
getString
(
"identityNo"
));
return
info
;
return
info
;
}
else
{
}
else
{
return
null
;
return
null
;
...
...
src/main/java/com/dlbridge/jadp/plugins/cmpt/web/NavigationController.java
0 → 100644
View file @
f84952e9
package
com
.
dlbridge
.
jadp
.
plugins
.
cmpt
.
web
;
import
com.dlbridge.jadp.common.interceptor.PageView
;
import
com.dlbridge.jadp.plugins.cmpt.dao.model.Cmpt
;
import
com.dlbridge.jadp.plugins.cmpt.service.CmptService
;
import
lombok.extern.log4j.Log4j2
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.servlet.ModelAndView
;
import
springfox.documentation.annotations.ApiIgnore
;
import
javax.annotation.Resource
;
@Controller
@Log4j2
@RequestMapping
(
"gk/navigation/"
)
@ApiIgnore
public
class
NavigationController
{
@Resource
private
CmptService
cmptService
;
@RequestMapping
(
"index/{cmptId}"
)
@PageView
public
ModelAndView
index
(
@PathVariable
(
"cmptId"
)
Integer
cmptId
,
ModelAndView
mv
)
{
Cmpt
cmpt
=
cmptService
.
queryCmptBycmptId
(
cmptId
);
mv
.
addObject
(
"cmpt"
,
cmpt
);
mv
.
setViewName
(
"cmpt/navigation"
);
return
mv
;
}
}
src/main/java/com/dlbridge/jadp/plugins/qiyuesuo/bean/CmptContact.java
0 → 100644
View file @
f84952e9
package
com
.
dlbridge
.
jadp
.
plugins
.
qiyuesuo
.
bean
;
import
lombok.Data
;
/**
* @Author shuxing.yang
* @Date 2021/4/9 10:08
*/
@Data
public
class
CmptContact
{
private
int
cmptId
;
private
long
sealId
;
private
long
templateId
;
private
int
contactType
;
private
int
categoryType
;
private
String
subject
;
private
long
categoryId
;
private
String
companyReceiver
;
}
src/main/java/com/dlbridge/jadp/plugins/qiyuesuo/bean/ContactLock.java
0 → 100644
View file @
f84952e9
package
com
.
dlbridge
.
jadp
.
plugins
.
qiyuesuo
.
bean
;
import
lombok.Data
;
/**
* @Author shuxing.yang
* @Date 2021/4/8 10:06
*/
@Data
public
class
ContactLock
{
private
int
id
;
private
int
cmptId
;
private
String
idCard
;
private
String
userName
;
private
String
phone
;
private
String
contactId
;
private
int
isSign
;
private
int
isAuth
;
private
String
createTime
;
private
String
ticket
;
private
int
companySign
;
private
String
msg
;
}
src/main/java/com/dlbridge/jadp/plugins/qiyuesuo/controller/ContactLockController.java
0 → 100644
View file @
f84952e9
package
com
.
dlbridge
.
jadp
.
plugins
.
qiyuesuo
.
controller
;
import
com.dlbridge.jadp.plugins.qiyuesuo.bean.ContactLock
;
import
com.dlbridge.jadp.plugins.qiyuesuo.service.SendByCategoryService
;
import
com.neusoft.www.utils.web.Result
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @Author shuxing.yang
* @Date 2021/4/7 17:35
*/
@RestController
(
value
=
"qiyueContactController"
)
@RequestMapping
(
"/api"
)
@Slf4j
public
class
ContactLockController
{
@Autowired
private
SendByCategoryService
sendByCategoryService
;
@RequestMapping
(
"/person-auth"
)
public
Result
personAuth
(
ContactLock
lock
){
log
.
info
(
"入参:"
+
lock
);
if
(
StringUtils
.
isBlank
(
lock
.
getIdCard
())){
return
Result
.
fail
().
setMsg
(
"无证件号!"
);
}
Map
<
String
,
String
>
param
=
new
HashMap
<>();
param
.
put
(
"cmptId"
,
lock
.
getCmptId
()+
""
);
param
.
put
(
"idCard"
,
lock
.
getIdCard
());
param
.
put
(
"userName"
,
lock
.
getUserName
());
param
.
put
(
"phone"
,
lock
.
getPhone
());
ContactLock
ticket
=
sendByCategoryService
.
getPersonAuthToken
(
param
);
log
.
info
(
"返回前端的json:"
+
ticket
);
if
(
ticket
==
null
||
ticket
.
getMsg
()
!=
null
){
return
new
Result
().
setMsg
(
"获取ticket失败:"
+
ticket
.
getMsg
()
).
setCode
(-
1
);
}
return
new
Result
().
setContent
(
ticket
);
}
@RequestMapping
(
"/authSuccess"
)
public
Result
authSuccess
(
ContactLock
lock
){
sendByCategoryService
.
authSuccess
(
lock
);
return
new
Result
().
setContent
(
null
);
}
@RequestMapping
(
"/signSuccess"
)
public
Result
signSuccess
(
ContactLock
lock
)
throws
Exception
{
sendByCategoryService
.
signSuccess
(
lock
);
return
new
Result
().
setContent
(
null
);
}
@RequestMapping
(
"/doc"
)
public
Result
doc
(
ContactLock
lock
){
log
.
info
(
"入参:"
+
lock
);
if
(
StringUtils
.
isBlank
(
lock
.
getIdCard
())){
return
Result
.
fail
().
setMsg
(
"无证件号!"
);
}
Map
<
String
,
String
>
param
=
new
HashMap
<>();
param
.
put
(
"cmptId"
,
lock
.
getCmptId
()+
""
);
param
.
put
(
"idCard"
,
lock
.
getIdCard
());
param
.
put
(
"userName"
,
lock
.
getUserName
());
param
.
put
(
"phone"
,
lock
.
getPhone
());
ContactLock
ticket
=
sendByCategoryService
.
getContactToken
(
param
);
return
new
Result
().
setContent
(
ticket
);
}
}
src/main/java/com/dlbridge/jadp/plugins/qiyuesuo/mapper/ContactLockMapper.java
0 → 100644
View file @
f84952e9
package
com
.
dlbridge
.
jadp
.
plugins
.
qiyuesuo
.
mapper
;
import
com.dlbridge.jadp.plugins.qiyuesuo.bean.CmptContact
;
import
com.dlbridge.jadp.plugins.qiyuesuo.bean.ContactLock
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.Map
;
public
interface
ContactLockMapper
{
ContactLock
getContactByCmptIdAndIdCard
(
@Param
(
"param"
)
Map
<
String
,
String
>
param
);
int
saveContactLock
(
@Param
(
"param"
)
Map
<
String
,
String
>
param
);
void
updateAuthSuccess
(
@Param
(
"lock"
)
ContactLock
lock
);
void
updateSignSuccess
(
@Param
(
"lock"
)
ContactLock
lock
);
CmptContact
getCmptContact
(
int
cmptId
);
}
src/main/java/com/dlbridge/jadp/plugins/qiyuesuo/mapper/ContactLockMapper.xml
0 → 100644
View file @
f84952e9
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.dlbridge.jadp.plugins.qiyuesuo.mapper.ContactLockMapper"
>
<select
id=
"getContactByCmptIdAndIdCard"
resultType=
"com.dlbridge.jadp.plugins.qiyuesuo.bean.ContactLock"
>
select contactId,cmptId,idcard idCard,userName,contactId,isSign,isAuth,phone,companySign
from contact
where cmptId=#{param.cmptId} and idCard=#{param.idCard}
and userName=#{param.userName} and phone = #{param.phone}
limit 1
</select>
<insert
id=
"saveContactLock"
>
insert into contact (cmptId,idcard,userName,phone,contactId,createTime,companySign)
values (#{param.cmptId},#{param.idCard},#{param.userName},#{param.phone},
#{param.contactId},now(),#{param.companySign})
</insert>
<update
id=
"updateAuthSuccess"
>
update contact
set isAuth = 1
where cmptId=#{lock.cmptId} and idCard=#{lock.idCard}
</update>
<update
id=
"updateSignSuccess"
>
update contact
set isSign = 1
where cmptId=#{lock.cmptId} and idCard=#{lock.idCard}
</update>
<select
id=
"getCmptContact"
resultType=
"com.dlbridge.jadp.plugins.qiyuesuo.bean.CmptContact"
>
select cmptId,sealId,templateId,contactType,categoryType,subject,categoryId,companyReceiver
from cmpt_contact
where cmptId=#{cmptId} limit 1
</select>
</mapper>
\ No newline at end of file
src/main/java/com/dlbridge/jadp/plugins/qiyuesuo/service/SendByCategoryService.java
0 → 100644
View file @
f84952e9
This diff is collapsed.
Click to expand it.
src/main/resources/application-dev.properties
View file @
f84952e9
...
@@ -108,4 +108,12 @@ spring.cloud.sentinel.datasource.ds.nacos.groupId=dev
...
@@ -108,4 +108,12 @@ spring.cloud.sentinel.datasource.ds.nacos.groupId=dev
spring.cloud.sentinel.datasource.ds.nacos.rule-type
=
flow
spring.cloud.sentinel.datasource.ds.nacos.rule-type
=
flow
base.url
=
http://localhost:8080
base.url
=
http://localhost:8080
\ No newline at end of file
lock.url
=
https://openapi.qiyuesuo.cn
lock.accessKey
=
trRQR9ewQX
lock.accessSecret
=
W6PysadsbPppDfts18ukZBUJ2GPkQZ
lock.categoryId
=
2816977402314363323
lock.companyReceiver
=
18201908070
upload.rmi
=
rmi://172.16.214.236:9125/RMIUpload
\ No newline at end of file
src/main/resources/application-production.properties
View file @
f84952e9
...
@@ -103,3 +103,11 @@ spring.cloud.sentinel.datasource.ds.nacos.groupId=production
...
@@ -103,3 +103,11 @@ spring.cloud.sentinel.datasource.ds.nacos.groupId=production
#
#
## 规则类型
## 规则类型
spring.cloud.sentinel.datasource.ds.nacos.rule-type
=
flow
spring.cloud.sentinel.datasource.ds.nacos.rule-type
=
flow
lock.url
=
https://openapi.qiyuesuo.cn
lock.accessKey
=
trRQR9ewQX
lock.accessSecret
=
W6PysadsbPppDfts18ukZBUJ2GPkQZ
lock.categoryId
=
2816977402314363323
lock.companyReceiver
=
18201908070
upload.rmi
=
rmi://10.25.255.181:9125/RMIUpload
src/main/resources/application-test.properties
View file @
f84952e9
...
@@ -101,4 +101,13 @@ spring.cloud.sentinel.datasource.ds.nacos.groupId=test
...
@@ -101,4 +101,13 @@ spring.cloud.sentinel.datasource.ds.nacos.groupId=test
## 规则类型
## 规则类型
spring.cloud.sentinel.datasource.ds.nacos.rule-type
=
flow
spring.cloud.sentinel.datasource.ds.nacos.rule-type
=
flow
base.url
=
https://testzs.geexek.com.cn/
base.url
=
https://testzs.geexek.com.cn/
\ No newline at end of file
lock.url
=
https://openapi.qiyuesuo.cn
lock.accessKey
=
trRQR9ewQX
lock.accessSecret
=
W6PysadsbPppDfts18ukZBUJ2GPkQZ
lock.categoryId
=
2816977402314363323
lock.companyReceiver
=
18201908070
upload.rmi
=
rmi://172.16.214.236:9125/RMIUpload
\ No newline at end of file
src/main/webapp/WEB-INF/views/cmpt/navigation.jsp
0 → 100644
View file @
f84952e9
This diff is collapsed.
Click to expand it.
src/test/java/com/dlbridge/jadp/LamdatTest.java
0 → 100644
View file @
f84952e9
package
com
.
dlbridge
.
jadp
;
import
java.util.Arrays
;
import
java.util.List
;
/**
* @Author shuxing.yang
* @Date 2021/4/11 11:48
*/
public
class
LamdatTest
{
public
static
void
main
(
String
[]
args
)
{
//Reduction
List
<
Integer
>
integers
=
Arrays
.
asList
(
1
,
2
,
3
);
Integer
reduced
=
integers
.
stream
().
reduce
(
100
,
(
a
,
b
)
->
{
System
.
out
.
println
(
"a:"
+
a
);
System
.
out
.
println
(
"b:"
+
b
);
return
a
+
b
;
});
}
}
src/test/java/com/dlbridge/jadp/LockMain.java
0 → 100644
View file @
f84952e9
package
com
.
dlbridge
.
jadp
;
import
com.qiyuesuo.sdk.v2.SdkClient
;
import
com.qiyuesuo.sdk.v2.bean.*
;
import
com.qiyuesuo.sdk.v2.json.JSONUtils
;
import
com.qiyuesuo.sdk.v2.param.SignParam
;
import
com.qiyuesuo.sdk.v2.request.ContractDraftRequest
;
import
com.qiyuesuo.sdk.v2.request.ContractPageRequest
;
import
com.qiyuesuo.sdk.v2.request.ContractSignCompanyRequest
;
import
com.qiyuesuo.sdk.v2.response.ContractPageResult
;
import
com.qiyuesuo.sdk.v2.response.SdkResponse
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
/**
* @Author shuxing.yang
* @Date 2021/4/6 17:33
*/
public
class
LockMain
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
LockMain
.
class
);
private
static
final
String
PLATFORM_NAME
=
"大头橙橙汁公司"
;
public
static
void
main
(
String
[]
args
)
throws
Exception
{
String
url
=
"https://openapi.qiyuesuo.cn"
;
String
accessKey
=
"trRQR9ewQX"
;
String
accessSecret
=
"W6PysadsbPppDfts18ukZBUJ2GPkQZ"
;
SdkClient
client
=
new
SdkClient
(
url
,
accessKey
,
accessSecret
);
/**
* 根据业务分类配置进行合同发起,文件、签署流程、签署公章、签署位置均在业务分类中维护
* 该场景模拟一个人事合同的场景,即平台方公司与员工签署合同,平台方公司先签署,员工后签
*/
SdkResponse
<
Contract
>
draft
=
draft
(
client
);
System
.
out
.
println
(
"创建合同草稿成功,并发起,合同ID:{}"
+
draft
.
getResult
().
getId
());
companySealSignByCategoryConfig
(
client
,
draft
.
getResult
().
getId
());
System
.
out
.
println
(
"公章签署成功"
);
/**
* 平台方签署完成,签署方签署可采用
* (1)接收短信的方式登录契约锁云平台进行签署
* (2)生成内嵌页面签署链接进行签署(下方生成的链接)
* (3)JS-SDK签署(仅支持个人)
*/
SdkResponse
<
ContractPageResult
>
pageResponse
=
gerenateSignUrl
(
client
,
draft
.
getResult
().
getId
());
System
.
out
.
println
(
"生成签署链接成功,签署地址:{}"
+
pageResponse
.
getResult
().
getPageUrl
());
}
/**
* 根据业务分类配置创建合同草稿并发起合同
*
* @param client
* @return
* @throws Exception
*/
private
static
SdkResponse
<
Contract
>
draft
(
SdkClient
client
)
throws
Exception
{
Contract
draftContract
=
new
Contract
();
draftContract
.
setSubject
(
"合同主题"
);
draftContract
.
setCategory
(
new
Category
(
2584280095237849689L
));
// 设置业务分类ID,套用该业务分类的配置
draftContract
.
addTemplateParam
(
new
TemplateParam
(
"接收方2"
,
"发起方填参"
));
// 若业务分类中包含参数模板,设置参数内容
draftContract
.
addTemplateParam
(
new
TemplateParam
(
"接收方1"
,
"发起方填参"
));
// 设置接收方详情,接收方需要与业务分类中设置的签署方流程匹配
// 公司签署方
Signatory
companySignatory
=
new
Signatory
();
companySignatory
.
setTenantName
(
PLATFORM_NAME
);
companySignatory
.
setTenantType
(
"COMPANY"
);
companySignatory
.
setReceiver
(
new
User
(
"17621699044"
,
"MOBILE"
));
companySignatory
.
setSerialNo
(
1
);
draftContract
.
addSignatory
(
companySignatory
);
// 个人签署方
Signatory
personalSignatory
=
new
Signatory
();
personalSignatory
.
setTenantType
(
"PERSONAL"
);
personalSignatory
.
setReceiver
(
new
User
(
"15021504325"
,
"MOBILE"
));
personalSignatory
.
setTenantName
(
"邓茜茜"
);
draftContract
.
addSignatory
(
personalSignatory
);
draftContract
.
setSend
(
true
);
// 创建合同草稿并发起合同
String
response
=
null
;
try
{
response
=
client
.
service
(
new
ContractDraftRequest
(
draftContract
));
}
catch
(
Exception
e
)
{
throw
new
Exception
(
"创建合同草稿请求服务器失败,失败原因:"
+
e
.
getMessage
());
}
SdkResponse
<
Contract
>
sdkResponse
=
JSONUtils
.
toQysResponse
(
response
,
Contract
.
class
);
if
(!
sdkResponse
.
getCode
().
equals
(
0
))
{
throw
new
Exception
(
"创建合同草稿失败,失败原因:"
+
sdkResponse
.
getMessage
());
}
return
sdkResponse
;
}
/**
* 根据业务分类配置的签署位置与印章签署公章
* 若未配置签署位置需要设置签署位置与印章
*
* @param client
* @param contractId
* @return
* @throws Exception
*/
private
static
SdkResponse
companySealSignByCategoryConfig
(
SdkClient
client
,
Long
contractId
)
throws
Exception
{
SignParam
param
=
new
SignParam
();
param
.
setContractId
(
contractId
);
String
response
=
null
;
try
{
response
=
client
.
service
(
new
ContractSignCompanyRequest
(
param
));
}
catch
(
Exception
e
)
{
throw
new
Exception
(
"公章签署请求服务器失败,失败原因:"
+
e
.
getMessage
());
}
SdkResponse
sdkResponse
=
JSONUtils
.
toQysResponse
(
response
,
Object
.
class
);
if
(!
sdkResponse
.
getCode
().
equals
(
0
))
{
throw
new
Exception
(
"公章签署失败,失败原因:"
+
sdkResponse
.
getMessage
());
}
return
sdkResponse
;
}
/**
* 生成用户的签署链接
*
* @param client
* @param contractId
* @return
* @throws Exception
*/
private
static
SdkResponse
<
ContractPageResult
>
gerenateSignUrl
(
SdkClient
client
,
Long
contractId
)
throws
Exception
{
User
signUser
=
new
User
(
"15021504325"
,
"MOBILE"
);
String
callbackPage
=
"https://www.qiyuesuo.com"
;
ContractPageRequest
request
=
new
ContractPageRequest
(
contractId
,
signUser
,
callbackPage
);
String
response
;
try
{
response
=
client
.
service
(
request
);
}
catch
(
Exception
e
)
{
throw
new
Exception
(
"生成签署链接请求服务器失败,失败原因:"
+
e
.
getMessage
());
}
SdkResponse
<
ContractPageResult
>
sdkResponse
=
JSONUtils
.
toQysResponse
(
response
,
ContractPageResult
.
class
);
if
(!
sdkResponse
.
getCode
().
equals
(
0
))
{
throw
new
Exception
(
"法人章签署失败,失败原因:"
+
sdkResponse
.
getMessage
());
}
return
sdkResponse
;
}
}
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