Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
semiconductor-server
Project
Project
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
Graph
比较
统计图
议题
0
议题
0
列表
看板
标记
Milestones
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
inroi
semiconductor-server
Commits
f130dde3
提交
f130dde3
authored
10月 26, 2022
作者:
inroi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
微调
上级
9d1d89ed
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
216 行增加
和
39 行删除
+216
-39
pom.xml
semiconductor-system/pom.xml
+0
-9
KingDeeApi.java
...uctor-system/src/main/java/com/system/api/KingDeeApi.java
+1
-3
KingDeeApiClient.java
...system/src/main/java/com/system/api/KingDeeApiClient.java
+67
-27
KingDeeHttpApi.java
...r-system/src/main/java/com/system/api/KingDeeHttpApi.java
+98
-0
KingDeeConstants.java
...m/src/main/java/com/system/constans/KingDeeConstants.java
+14
-0
SerializerProxy.java
.../src/main/java/com/system/serializer/SerializerProxy.java
+36
-0
k3cloud-webapi-client.jar
...r-system/src/main/resources/lib/k3cloud-webapi-client.jar
+0
-0
没有找到文件。
semiconductor-system/pom.xml
浏览文件 @
f130dde3
...
...
@@ -111,15 +111,6 @@
<version>
0.10.0
</version>
</dependency>
<!--k3cloud-WebAPI-->
<dependency>
<groupId>
webapi
</groupId>
<artifactId>
k3cloud-webapi-client
</artifactId>
<scope>
system
</scope>
<version>
1.0
</version>
<systemPath>
${project.basedir}/src/main/resources/lib/k3cloud-webapi-client.jar
</systemPath>
</dependency>
</dependencies>
<build>
...
...
semiconductor-system/src/main/java/com/system/api/KingDeeApi.java
浏览文件 @
f130dde3
...
...
@@ -131,9 +131,7 @@ public class KingDeeApi {
String
content
=
"{\"FormId\":\""
+
sFormId
+
"\","
+
stringKey
(
key
)
+
stringWhere
(
where
)
+
"}"
;
System
.
out
.
println
(
"==========content=========="
+
content
+
"==========content=========="
);
List
<
List
<
Object
>>
result
=
kingDeeK3CloudApi
.
executeBillQuery
(
content
);
System
.
out
.
println
();
System
.
out
.
println
(
"++++++++++result++++++++++"
+
JsonUtil
.
toString
(
result
)
+
"++++++++++result++++++++++"
);
System
.
out
.
println
();
System
.
out
.
println
(
"---------->"
+
JsonUtil
.
toString
(
result
));
return
result
;
}
else
{
throw
new
KingDeeConnectException
(
LOGIN_MESSAGE
);
...
...
semiconductor-system/src/main/java/com/system/api/KingDeeApiClient.java
浏览文件 @
f130dde3
package
com
.
system
.
api
;
import
com.core.config.ThreadLocalConfig
;
import
kingdee.bos.json.JSONObject
;
import
kingdee.bos.webapi.client.ApiHttpClient
;
import
kingdee.bos.webapi.client.ApiRequest
;
import
kingdee.bos.webapi.client.ApiServiceRequest
;
import
org.apache.http.client.CookieStore
;
import
com.core.utils.StringUtil
;
import
com.system.constans.KingDeeConstants
;
import
com.system.serializer.SerializerProxy
;
import
com.system.utils.JsonUtil
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.util.CollectionUtils
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
/**
* @author Inori
*/
public
class
KingDeeApiClient
{
/**
* 金蝶地址
*/
private
String
serverUrl
;
private
CookieStore
cookieStore
;
/**
* Cookie
*/
private
String
cookieStore
;
/**
* 金蝶后缀
*/
private
static
final
String
HTTP_SUFFIX
=
".common.kdsvc"
;
public
KingDeeApiClient
(
String
serverUrl
)
{
this
.
serverUrl
=
serverUrl
;
}
public
<
T
>
ApiRequest
<
T
>
createRequest
(
String
serviceName
,
Object
[]
parameters
,
Class
<
T
>
returnType
)
{
return
new
ApiServiceRequest
<>(
this
.
serverUrl
,
this
.
cookieStore
,
serviceName
,
parameters
,
returnType
);
}
@SuppressWarnings
(
"unchecked"
)
public
<
T
>
T
execute
(
String
serviceName
,
Object
[]
parameters
,
Class
<
T
>
returnType
)
throws
Exception
{
ApiRequest
<
T
>
request
=
this
.
createRequest
(
serviceName
,
parameters
,
returnType
);
ApiHttpClient
<
T
>
httpClient
=
new
ApiHttpClient
<>();
request
.
setListener
(
httpClient
);
Map
<
String
,
Object
>
header
=
new
HashMap
<>(
1
);
header
.
put
(
"cookie"
,
cookieStore
);
Map
<
String
,
Object
>
request
=
new
HashMap
<>(
1
);
request
.
put
(
"parameters"
,
parameters
);
System
.
out
.
println
(
"---------->"
+
request
.
getServerUrl
());
String
url
=
serverUrl
+
serviceName
+
HTTP_SUFFIX
;
System
.
out
.
println
(
"------------>"
+
url
);
long
start
=
System
.
currentTimeMillis
();
T
send
=
httpClient
.
Send
(
request
,
returnType
);
ResponseEntity
<
String
>
responseEntity
=
KingDeeHttpApi
.
httpPost
(
url
,
header
,
JsonUtil
.
toString
(
request
)
);
long
costTime
=
System
.
currentTimeMillis
()
-
start
;
Map
<
String
,
Object
>
map
=
ThreadLocalConfig
.
get
();
map
.
put
(
"costTime"
,
costTime
);
ThreadLocalConfig
.
set
(
map
);
return
send
;
return
(
T
)
(
new
SerializerProxy
()).
deserialize
(
responseEntity
.
getBody
(),
returnType
)
;
}
public
Boolean
login
(
String
dbId
,
String
userName
,
String
password
,
int
lcid
)
{
try
{
Object
[]
loginInfo
=
new
Object
[]{
dbId
,
userName
,
password
,
lcid
};
ApiRequest
<
String
>
request
=
this
.
createRequest
(
"Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser"
,
loginInfo
,
String
.
class
);
ApiHttpClient
<
String
>
httpClient
=
new
ApiHttpClient
<>();
request
.
setListener
(
httpClient
);
String
ret
=
httpClient
.
Send
(
request
,
String
.
class
);
System
.
out
.
println
(
ret
);
int
result
=
(
new
JSONObject
(
ret
)).
getInt
(
"LoginResultType"
);
if
(
result
==
1
)
{
this
.
cookieStore
=
request
.
getCookieStore
();
return
true
;
Map
<
String
,
Object
>
request
=
new
HashMap
<>(
1
);
request
.
put
(
"parameters"
,
new
Object
[]{
dbId
,
userName
,
password
,
lcid
});
String
url
=
serverUrl
+
"Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser"
+
HTTP_SUFFIX
;
ResponseEntity
<
String
>
responseEntity
=
KingDeeHttpApi
.
httpPost
(
url
,
JsonUtil
.
toString
(
request
));
System
.
out
.
println
(
responseEntity
.
getBody
());
if
(
responseEntity
.
getStatusCode
()
==
HttpStatus
.
OK
)
{
String
cookieStore
=
this
.
getCookieStore
(
responseEntity
);
if
(
StringUtil
.
isNotBlank
(
cookieStore
))
{
this
.
cookieStore
=
cookieStore
;
return
true
;
}
else
{
return
false
;
}
}
else
{
return
false
;
}
...
...
@@ -66,5 +87,24 @@ public class KingDeeApiClient {
}
}
private
String
getCookieStore
(
ResponseEntity
<
String
>
responseEntity
)
{
String
cookieStore
=
""
;
Set
<
String
>
keys
=
responseEntity
.
getHeaders
().
keySet
();
for
(
String
key
:
keys
)
{
if
(
key
.
equalsIgnoreCase
(
KingDeeConstants
.
KING_DEE_COOKIE_NAME
))
{
List
<
String
>
cookieList
=
responseEntity
.
getHeaders
().
get
(
key
);
if
(!
CollectionUtils
.
isEmpty
(
cookieList
))
{
for
(
String
cookie
:
cookieList
)
{
if
(
cookie
.
startsWith
(
KingDeeConstants
.
KING_DEE_SESSION_NAME
))
{
cookieStore
=
cookie
;
break
;
}
}
}
}
}
return
cookieStore
;
}
}
semiconductor-system/src/main/java/com/system/api/KingDeeHttpApi.java
0 → 100644
浏览文件 @
f130dde3
package
com
.
system
.
api
;
import
org.springframework.http.HttpEntity
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.HttpMethod
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.client.SimpleClientHttpRequestFactory
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.web.client.RestTemplate
;
import
java.util.Map
;
import
java.util.Set
;
/**
* @author Inori
*/
public
class
KingDeeHttpApi
{
/**
* 连接超时时间
*/
private
static
final
int
CONN_TIMEOUT
=
10000
;
/**
* 请求超时时间
*/
private
static
final
int
READ_TIMEOUT
=
10000
;
/**
* 请求工具
*/
private
static
RestTemplate
restTemplate
;
static
{
//设置超时时间
SimpleClientHttpRequestFactory
requestFactory
=
new
SimpleClientHttpRequestFactory
();
requestFactory
.
setConnectTimeout
(
CONN_TIMEOUT
);
requestFactory
.
setReadTimeout
(
READ_TIMEOUT
);
restTemplate
=
new
RestTemplate
(
requestFactory
);
}
/**
* 发送Post请求
*/
public
static
ResponseEntity
<
String
>
httpPost
(
String
url
,
String
json
)
{
//初始化header公共参数
HttpHeaders
httpHeaders
=
initHeader
();
//发送请求
return
toPost
(
url
,
httpHeaders
,
json
);
}
/**
* 发送Post请求
*/
public
static
ResponseEntity
<
String
>
httpPost
(
String
url
,
Map
<
String
,
Object
>
header
,
String
json
)
{
//初始化header公共参数
HttpHeaders
httpHeaders
=
initHeader
();
setHeaderParam
(
httpHeaders
,
header
);
//发送请求
return
toPost
(
url
,
httpHeaders
,
json
);
}
/**
* 设置header公共参数
*/
private
static
HttpHeaders
initHeader
()
{
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
add
(
"Accept"
,
"application/json"
);
headers
.
add
(
"Accpet-Encoding"
,
"gzip"
);
headers
.
add
(
"Content-Encoding"
,
"UTF-8"
);
headers
.
add
(
"Content-Type"
,
"application/json; charset=UTF-8"
);
return
headers
;
}
/**
* 设置header参数
*/
private
static
void
setHeaderParam
(
HttpHeaders
httpHeaders
,
Map
<
String
,
Object
>
headers
)
{
if
(!
CollectionUtils
.
isEmpty
(
headers
))
{
Set
<
String
>
keys
=
headers
.
keySet
();
for
(
String
key
:
keys
)
{
httpHeaders
.
add
(
key
,
headers
.
get
(
key
).
toString
());
}
}
}
/**
* 发送请求
*/
private
static
ResponseEntity
<
String
>
toPost
(
String
url
,
HttpHeaders
httpHeaders
,
String
json
)
{
HttpEntity
<
String
>
httpEntity
=
new
HttpEntity
<>(
json
,
httpHeaders
);
return
restTemplate
.
exchange
(
url
,
HttpMethod
.
POST
,
httpEntity
,
String
.
class
);
}
}
\ No newline at end of file
semiconductor-system/src/main/java/com/system/constans/KingDeeConstants.java
0 → 100644
浏览文件 @
f130dde3
package
com
.
system
.
constans
;
/**
* @author Inori
*/
public
interface
KingDeeConstants
{
String
KING_DEE_COOKIE_NAME
=
"Set-Cookie"
;
String
KING_DEE_SESSION_NAME
=
"kdservice-sessionid"
;
}
semiconductor-system/src/main/java/com/system/serializer/SerializerProxy.java
0 → 100644
浏览文件 @
f130dde3
package
com
.
system
.
serializer
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
java.io.IOException
;
/**
* @author Inori
*/
public
class
SerializerProxy
{
public
Object
deserialize
(
String
content
,
Class
<?>
type
)
{
if
(
content
!=
null
&&
content
.
length
()
!=
0
)
{
return
"java.lang.string"
.
equalsIgnoreCase
(
type
.
getName
())
?
content
:
this
.
toDeserialize
(
content
,
type
);
}
else
if
(!
type
.
isPrimitive
())
{
return
type
;
}
else
{
return
"java.lang.String"
.
equalsIgnoreCase
(
type
.
getName
())
?
content
:
null
;
}
}
public
Object
toDeserialize
(
String
content
,
Class
<?>
type
)
{
ObjectMapper
mapper
=
new
ObjectMapper
();
try
{
return
mapper
.
readValue
(
content
,
type
);
}
catch
(
IOException
var6
)
{
var6
.
printStackTrace
();
}
return
null
;
}
}
\ No newline at end of file
semiconductor-system/src/main/resources/lib/k3cloud-webapi-client.jar
deleted
100644 → 0
浏览文件 @
9d1d89ed
File deleted
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论