Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
K
kingdee-adapter
Project
Project
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
Graph
比较
统计图
议题
0
议题
0
列表
看板
标记
Milestones
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
inroi
kingdee-adapter
Commits
93a0bc5c
提交
93a0bc5c
authored
2月 25, 2023
作者:
李炎
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
testLog
上级
d2edf695
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
119 行增加
和
132 行删除
+119
-132
KingDeeCommonPushApi.java
src/main/java/com/system/kingdee/KingDeeCommonPushApi.java
+119
-132
没有找到文件。
src/main/java/com/system/kingdee/KingDeeCommonPushApi.java
浏览文件 @
93a0bc5c
...
...
@@ -35,16 +35,15 @@ public class KingDeeCommonPushApi {
@Autowired
private
KingDeeCommonConfigMapper
kingDeeCommonConfigMapper
;
public
String
kingDeeUpdateThirdData
(
Map
<
String
,
String
>
config
,
String
queueId
,
String
name
,
List
<
Map
<
String
,
Object
>>
dataList
,
List
<
Map
<
String
,
String
>>
fieldList
,
Map
<
String
,
Object
>
data
,
HashSet
<
String
>
attachments
)
{
public
String
kingDeeUpdateThirdData
(
Map
<
String
,
String
>
config
,
String
queueId
,
String
name
,
List
<
Map
<
String
,
Object
>>
dataList
,
List
<
Map
<
String
,
String
>>
fieldList
,
Map
<
String
,
Object
>
data
,
HashSet
<
String
>
attachments
)
{
data
.
put
(
"Model"
,
thirdPartyFieldToKingDee
(
dataList
,
fieldList
,
config
.
get
(
"entryName"
),
attachments
));
return
kingDeeApi
.
kingDeeDataPush
(
config
,
queueId
,
name
,
data
);
}
public
String
uploadAttachment
(
String
attachment
,
long
Id
)
{
return
kingDeeApi
.
uploadAttachment
(
attachment
,
Id
);
public
String
uploadAttachment
(
String
attachment
,
long
Id
)
{
return
kingDeeApi
.
uploadAttachment
(
attachment
,
Id
);
}
/**
...
...
@@ -53,19 +52,18 @@ public class KingDeeCommonPushApi {
public
Map
<
String
,
Object
>
thirdPartyFieldToKingDee
(
List
<
Map
<
String
,
Object
>>
dataList
,
List
<
Map
<
String
,
String
>>
fieldList
,
String
entryName
,
HashSet
<
String
>
attachments
)
{
Map
<
String
,
Object
>
modelMap
=
new
LinkedHashMap
<>(
2
);
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
System
.
out
.
println
(
"======thirdPartyFieldToKingDee===dataList"
+
dataList
);
System
.
out
.
println
(
"======thirdPartyFieldToKingDee===dataList"
+
dataList
);
for
(
Map
<
String
,
Object
>
map
:
dataList
)
{
Map
<
String
,
Object
>
entityMap
=
new
HashMap
();
Map
<
String
,
Map
<
String
,
Object
>>
mapBillDatas
=
new
HashMap
();
for
(
Map
<
String
,
String
>
field
:
fieldList
)
{
String
fieldType
=
field
.
get
(
"fieldType"
);
if
(
fieldType
.
equals
(
"附件"
))
{
attachments
.
add
((
String
)
map
.
get
(
field
.
get
(
"thirdPartyField"
)));
continue
;
}
String
fieldType
=
field
.
get
(
"fieldType"
);
if
(
fieldType
.
equals
(
"附件"
))
{
attachments
.
add
((
String
)
map
.
get
(
field
.
get
(
"thirdPartyField"
)));
continue
;
}
if
(
Constants
.
TRUE
.
equals
(
field
.
get
(
"isEntryField"
)))
{
this
.
populateThirdPartyData
(
entityMap
,
map
,
field
,
mapBillDatas
);
if
(
map
.
containsKey
(
"ERP_SIC"
))
{
...
...
@@ -78,58 +76,53 @@ public class KingDeeCommonPushApi {
this
.
populateThirdPartyData
(
modelMap
,
map
,
field
,
mapBillDatas
);
}
}
SetMapFields
(
mapBillDatas
);
list
.
add
(
entityMap
);
}
modelMap
.
put
(
entryName
,
list
);
System
.
out
.
println
(
"======thirdPartyFieldToKingDee===modelMap"
+
modelMap
);
System
.
out
.
println
(
"======thirdPartyFieldToKingDee===modelMap"
+
modelMap
);
return
modelMap
;
}
/**
* 设置Map字段
*
* @param mapBillDatas
*/
private
void
SetMapFields
(
Map
<
String
,
Map
<
String
,
Object
>>
mapBillDatas
)
{
for
(
Entry
<
String
,
Map
<
String
,
Object
>>
mapBillData:
mapBillDatas
.
entrySet
())
{
String
kingDeeField
=
mapBillData
.
getKey
();
Map
<
String
,
Object
>
mapValue
=
mapBillData
.
getValue
();
Map
<
String
,
Object
>
mapEntity
=
(
Map
<
String
,
Object
>)
mapValue
.
get
(
"mapEntity"
);
String
mapBill
=
(
String
)
mapValue
.
get
(
"mapBill"
);
Map
<
String
,
Object
>
fieldValues
=
(
Map
<
String
,
Object
>)
mapValue
.
get
(
"fieldValues"
);
List
<
KingDeeCommonConfigListOutVoRecords
>
records
=
kingDeeCommonConfigMapper
.
getKingDeeCommonConfigByDocType
(
mapBill
);
if
(
records
.
size
()
>
0
)
{
KingDeeCommonConfigListOutVoRecords
kingDeeCommonConfig
=
records
.
get
(
0
);
String
primaryKeyField
=
kingDeeCommonConfig
.
getPrimaryKeyField
();
//需要获取的字段
List
<
String
>
wheres
=
new
ArrayList
<
String
>();
for
(
Entry
<
String
,
Object
>
fieldValue:
fieldValues
.
entrySet
())
{
wheres
.
add
(
""
+
fieldValue
.
getKey
()
+
"="
+
"'"
+
fieldValue
.
getValue
()
+
"'"
);
}
List
<
String
>
fields
=
new
ArrayList
<
String
>();
fields
.
add
(
primaryKeyField
);
TableStructureListOutVoRecords
tableStructureListOutVoRecords
=
databaseTableMapper
.
tableStructureOne
(
mapBill
);
if
(!
Constants
.
NULL
.
equals
(
tableStructureListOutVoRecords
))
{
String
dbTableName
=
tableStructureListOutVoRecords
.
getDbTableName
();
List
<
Object
>
datas
=
databaseTableMapper
.
getDynamicTableDatas
(
dbTableName
,
fields
,
wheres
);
if
(
datas
.
size
()
>
0
)
{
SetKingdeeValue
(
mapEntity
,
kingDeeField
,
primaryKeyField
,
datas
.
get
(
0
));
}
}
}
}
private
void
SetMapFields
(
Map
<
String
,
Map
<
String
,
Object
>>
mapBillDatas
)
{
for
(
Entry
<
String
,
Map
<
String
,
Object
>>
mapBillData
:
mapBillDatas
.
entrySet
())
{
String
kingDeeField
=
mapBillData
.
getKey
();
Map
<
String
,
Object
>
mapValue
=
mapBillData
.
getValue
();
Map
<
String
,
Object
>
mapEntity
=
(
Map
<
String
,
Object
>)
mapValue
.
get
(
"mapEntity"
);
String
mapBill
=
(
String
)
mapValue
.
get
(
"mapBill"
);
Map
<
String
,
Object
>
fieldValues
=
(
Map
<
String
,
Object
>)
mapValue
.
get
(
"fieldValues"
);
List
<
KingDeeCommonConfigListOutVoRecords
>
records
=
kingDeeCommonConfigMapper
.
getKingDeeCommonConfigByDocType
(
mapBill
);
if
(
records
.
size
()
>
0
)
{
KingDeeCommonConfigListOutVoRecords
kingDeeCommonConfig
=
records
.
get
(
0
);
String
primaryKeyField
=
kingDeeCommonConfig
.
getPrimaryKeyField
();
//需要获取的字段
List
<
String
>
wheres
=
new
ArrayList
<
String
>();
for
(
Entry
<
String
,
Object
>
fieldValue
:
fieldValues
.
entrySet
())
{
wheres
.
add
(
""
+
fieldValue
.
getKey
()
+
"="
+
"'"
+
fieldValue
.
getValue
()
+
"'"
);
}
List
<
String
>
fields
=
new
ArrayList
<
String
>();
fields
.
add
(
primaryKeyField
);
TableStructureListOutVoRecords
tableStructureListOutVoRecords
=
databaseTableMapper
.
tableStructureOne
(
mapBill
);
if
(!
Constants
.
NULL
.
equals
(
tableStructureListOutVoRecords
))
{
String
dbTableName
=
tableStructureListOutVoRecords
.
getDbTableName
();
List
<
Object
>
datas
=
databaseTableMapper
.
getDynamicTableDatas
(
dbTableName
,
fields
,
wheres
);
if
(
datas
.
size
()
>
0
)
{
SetKingdeeValue
(
mapEntity
,
kingDeeField
,
primaryKeyField
,
datas
.
get
(
0
));
}
}
}
}
}
private
void
populateThirdPartyData
(
Map
<
String
,
Object
>
temp
,
Map
<
String
,
Object
>
map
,
Map
<
String
,
String
>
field
,
Map
<
String
,
Map
<
String
,
Object
>>
mapBillDatas
)
{
...
...
@@ -137,55 +130,47 @@ public class KingDeeCommonPushApi {
String
thirdPartyField
=
field
.
get
(
"thirdPartyField"
);
String
retrievalField
=
field
.
get
(
"retrievalField"
);
String
mapBill
=
field
.
get
(
"mapBill"
);
String
defaultValue
=
field
.
get
(
"defaultValue"
);
if
(
StringUtil
.
isBlank
(
thirdPartyField
))
{
SetDefaultValue
(
temp
,
defaultValue
,
retrievalField
,
kingDeeField
);
return
;
if
(
StringUtil
.
isBlank
(
thirdPartyField
))
{
SetDefaultValue
(
temp
,
defaultValue
,
retrievalField
,
kingDeeField
);
return
;
}
Object
curValue
=
ExcuteScript
(
thirdPartyField
,
map
);
if
(
thirdPartyField
.
equals
(
"pay"
))
{
System
.
out
.
println
(
"=======
========pay"
+
curValue
);
System
.
out
.
println
(
"=======
pay"
+
curValue
);
}
if
(
Constants
.
NULL
.
equals
(
curValue
))
{
SetDefaultValue
(
temp
,
defaultValue
,
retrievalField
,
kingDeeField
);
return
;
if
(
Constants
.
NULL
.
equals
(
curValue
))
{
SetDefaultValue
(
temp
,
defaultValue
,
retrievalField
,
kingDeeField
);
return
;
}
if
(
StringUtil
.
isNotBlank
(
mapBill
))
{
Map
<
String
,
Object
>
fieldValues
;
if
(!
mapBillDatas
.
containsKey
(
kingDeeField
))
{
Map
<
String
,
Object
>
mapBillData
=
new
HashMap
<
String
,
Object
>();
mapBillDatas
.
put
(
kingDeeField
,
mapBillData
);
mapBillData
.
put
(
"mapBill"
,
mapBill
);
mapBillData
.
put
(
"mapEntity"
,
temp
);
fieldValues
=
new
HashMap
();
mapBillData
.
put
(
"fieldValues"
,
fieldValues
);
}
else
{
Map
<
String
,
Object
>
mapBillData
=
mapBillDatas
.
get
(
kingDeeField
);
fieldValues
=
(
Map
<
String
,
Object
>)
mapBillData
.
get
(
"fieldValues"
);
}
fieldValues
.
put
(
retrievalField
,
curValue
);
if
(
StringUtil
.
isNotBlank
(
mapBill
))
{
Map
<
String
,
Object
>
fieldValues
;
if
(!
mapBillDatas
.
containsKey
(
kingDeeField
))
{
Map
<
String
,
Object
>
mapBillData
=
new
HashMap
<
String
,
Object
>();
mapBillDatas
.
put
(
kingDeeField
,
mapBillData
);
mapBillData
.
put
(
"mapBill"
,
mapBill
);
mapBillData
.
put
(
"mapEntity"
,
temp
);
fieldValues
=
new
HashMap
();
mapBillData
.
put
(
"fieldValues"
,
fieldValues
);
}
else
{
Map
<
String
,
Object
>
mapBillData
=
mapBillDatas
.
get
(
kingDeeField
);
fieldValues
=
(
Map
<
String
,
Object
>)
mapBillData
.
get
(
"fieldValues"
);
}
fieldValues
.
put
(
retrievalField
,
curValue
);
SetKingdeeValue
(
temp
,
kingDeeField
,
retrievalField
,
""
);
return
;
return
;
}
SetKingdeeValue
(
temp
,
kingDeeField
,
retrievalField
,
curValue
);
}
private
void
SetDefaultValue
(
Map
<
String
,
Object
>
temp
,
String
defaultValue
,
String
retrievalField
,
String
kingDeeField
)
{
if
(
StringUtil
.
isNotBlank
(
defaultValue
))
{
private
void
SetDefaultValue
(
Map
<
String
,
Object
>
temp
,
String
defaultValue
,
String
retrievalField
,
String
kingDeeField
)
{
if
(
StringUtil
.
isNotBlank
(
defaultValue
))
{
if
(
StringUtil
.
isNotBlank
(
retrievalField
))
{
temp
.
put
(
kingDeeField
,
new
HashMap
<
String
,
Object
>(
1
)
{{
put
(
retrievalField
,
defaultValue
);
...
...
@@ -195,60 +180,62 @@ public class KingDeeCommonPushApi {
}
}
}
private
void
SetKingdeeValue
(
Map
<
String
,
Object
>
temp
,
String
kingDeeField
,
String
retrievalField
,
Object
curValue
)
{
private
void
SetKingdeeValue
(
Map
<
String
,
Object
>
temp
,
String
kingDeeField
,
String
retrievalField
,
Object
curValue
)
{
if
(!
Constants
.
NULL
.
equals
(
curValue
))
{
if
(
StringUtil
.
isNotBlank
(
retrievalField
))
{
if
(
kingDeeField
.
equals
(
"F_LQKJ_RecConditionId"
))
{
System
.
out
.
println
(
"===============F_LQKJ_RecConditionId:"
+
curValue
);
}
temp
.
put
(
kingDeeField
,
new
HashMap
<
String
,
Object
>(
1
)
{{
put
(
retrievalField
,
curValue
);
}});
if
(
kingDeeField
.
equals
(
"F_LQKJ_RecConditionId"
))
{
System
.
out
.
println
(
"===============temp:"
+
temp
);
}
}
else
{
temp
.
put
(
kingDeeField
,
curValue
);
}
}
}
private
Object
ExcuteScript
(
String
thirdPartyField
,
Object
value
)
{
private
Object
ExcuteScript
(
String
thirdPartyField
,
Object
value
)
{
ScriptEngineManager
engineManager
=
new
ScriptEngineManager
();
ScriptEngine
scriptEngine
=
engineManager
.
getEngineByName
(
"JavaScript"
);
try
{
List
<
Object
>
valuesList
=
new
ArrayList
<
Object
>();
Map
<
String
,
Object
>
curValue
=
(
Map
<
String
,
Object
>)
value
;
List
<
String
>
keys
=
new
ArrayList
();
List
<
Object
>
values
=
new
ArrayList
();
Boolean
isContained
=
false
;
for
(
Map
.
Entry
<
String
,
Object
>
curEntry
:
curValue
.
entrySet
())
{
if
(
thirdPartyField
.
contains
(
curEntry
.
getKey
()))
{
keys
.
add
(
curEntry
.
getKey
());
values
.
add
(
curEntry
.
getValue
());
isContained
=
true
;
}
}
if
(!
isContained
)
return
""
;
String
Script
=
"function getfieldValue("
+
String
.
join
(
","
,
keys
)
+
"){ return "
+
thirdPartyField
+
"}"
+
""
;
try
{
List
<
Object
>
valuesList
=
new
ArrayList
<
Object
>();
Map
<
String
,
Object
>
curValue
=
(
Map
<
String
,
Object
>)
value
;
List
<
String
>
keys
=
new
ArrayList
();
List
<
Object
>
values
=
new
ArrayList
();
Boolean
isContained
=
false
;
for
(
Map
.
Entry
<
String
,
Object
>
curEntry
:
curValue
.
entrySet
())
{
if
(
thirdPartyField
.
contains
(
curEntry
.
getKey
()))
{
keys
.
add
(
curEntry
.
getKey
());
values
.
add
(
curEntry
.
getValue
());
isContained
=
true
;
}
}
if
(!
isContained
)
return
""
;
String
Script
=
"function getfieldValue("
+
String
.
join
(
","
,
keys
)
+
"){ return "
+
thirdPartyField
+
"}"
+
""
;
Object
result
=
scriptEngine
.
eval
(
Script
);
Invocable
in
=
(
Invocable
)
scriptEngine
;
result
=
in
.
invokeFunction
(
"getfieldValue"
,
values
.
toArray
());
return
result
;
}
catch
(
ScriptException
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
}
catch
(
NoSuchMethodException
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
}
return
value
;
return
result
;
}
catch
(
ScriptException
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
}
catch
(
NoSuchMethodException
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
}
return
value
;
}
public
String
kingDeeUpdateBySql
(
Map
<
String
,
String
>
config
,
String
queueId
,
String
name
,
String
request
)
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论