Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
apps-collaboration
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
高燕
apps-collaboration
Commits
773e8844
Commit
773e8844
authored
Sep 08, 2020
by
gaoyingwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update:修改统一用户部分接口以及修改发送协同接口
parent
dbf852b4
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
576 additions
and
213 deletions
+576
-213
CollaborationController.java
...pps/collaboration/controller/CollaborationController.java
+1
-1
ThirdparyServlet.java
...va/com/seeyon/apps/thirdparyServlet/ThirdparyServlet.java
+434
-0
SyncService.java
.../java/com/seeyon/ctp/common/sync/manager/SyncService.java
+0
-195
XmlUtil.java
src/main/java/com/seeyon/ctp/common/util/XmlUtil.java
+42
-16
ServletAuthenticator.java
...om/seeyon/ctp/common/web/filter/ServletAuthenticator.java
+79
-0
CollaborationResource.java
.../com/seeyon/ctp/rest/resources/CollaborationResource.java
+16
-1
spring-collaboration-manager.xml
...gin/collaboration/spring/spring-collaboration-manager.xml
+4
-0
No files found.
src/main/java/com/seeyon/apps/collaboration/controller/CollaborationController.java
View file @
773e8844
...
@@ -2359,7 +2359,7 @@ public class CollaborationController extends BaseController {
...
@@ -2359,7 +2359,7 @@ public class CollaborationController extends BaseController {
}
}
}
}
// 判断是外部调用下单的流程
// 判断是外部调用下单的流程
if
(
"XDLC"
.
equals
(
ctpTemplate
.
getTempleteNumber
())
&&
isFinished
){
if
(
(
"XDLC"
.
equals
(
ctpTemplate
.
getTempleteNumber
())
||
"ECXDLC"
.
equals
(
ctpTemplate
.
getTempleteNumber
()))
&&
isFinished
){
String
DIC_DATA_URL
=
"http://192.168.3.13:8081/TJYW/getWaitHand/oaUpdateData"
;
String
DIC_DATA_URL
=
"http://192.168.3.13:8081/TJYW/getWaitHand/oaUpdateData"
;
// 调用外部接口,修改门户订单状态,并将最终审核后的数据提交给OA,此时相关填写数据已修改
// 调用外部接口,修改门户订单状态,并将最终审核后的数据提交给OA,此时相关填写数据已修改
...
...
src/main/java/com/seeyon/apps/thirdparyServlet/ThirdparyServlet.java
0 → 100644
View file @
773e8844
package
com
.
seeyon
.
apps
.
thirdparyServlet
;
import
com.seeyon.ctp.common.AppContext
;
import
com.seeyon.ctp.common.authenticate.domain.User
;
import
com.seeyon.ctp.common.exceptions.BusinessException
;
import
com.seeyon.ctp.common.util.XmlUtil
;
import
com.seeyon.ctp.organization.bo.*
;
import
com.seeyon.ctp.organization.manager.OrgManagerDirect
;
import
com.seeyon.ctp.rest.util.MemberUtil
;
import
com.seeyon.ctp.util.Datetimes
;
import
com.seeyon.v3x.services.organization.AccountManager
;
import
com.seeyon.v3x.services.organization.DepartmentManager
;
import
net.sf.json.JSONObject
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
org.apache.http.client.methods.CloseableHttpResponse
;
import
org.apache.http.client.methods.HttpPost
;
import
org.apache.http.entity.ContentType
;
import
org.apache.http.entity.StringEntity
;
import
org.apache.http.impl.client.CloseableHttpClient
;
import
org.apache.http.impl.client.HttpClients
;
import
org.apache.http.util.EntityUtils
;
import
java.io.BufferedReader
;
import
java.io.IOException
;
import
java.io.InputStreamReader
;
import
java.io.OutputStreamWriter
;
import
java.net.HttpURLConnection
;
import
java.net.URL
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
import
com.seeyon.ctp.organization.manager.OrgManager
;
import
org.springframework.util.StringUtils
;
import
javax.servlet.ServletException
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServlet
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
public
class
ThirdparyServlet
extends
HttpServlet
{
private
static
final
Log
log
=
LogFactory
.
getLog
(
ThirdparyServlet
.
class
);
private
OrgManager
orgManager
=
(
OrgManager
)
AppContext
.
getBean
(
"orgManager"
);
private
AccountManager
accountManager
=
(
AccountManager
)
AppContext
.
getBean
(
"V3xAccountManager"
);
private
DepartmentManager
departmentManager
=
(
DepartmentManager
)
AppContext
.
getBean
(
"V3xDepartmentManager"
);
private
OrgManagerDirect
orgManagerDirect
=
(
OrgManagerDirect
)
AppContext
.
getBean
(
"orgManagerDirect"
);
/**
* @see HttpServlet#HttpServlet()
*/
public
ThirdparyServlet
()
{
super
();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected
void
doGet
(
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
ServletException
,
IOException
{
// TODO Auto-generated method stub
//response.getWriter().append("Served at: ").append(request.getContextPath());
try
{
linktofutaisystem
(
request
,
response
);
}
catch
(
Exception
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
}
}
private
void
linktofutaisystem
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
try
{
Map
<
String
,
String
[]>
parameterMap
=
request
.
getParameterMap
();
String
syncXml
=
parameterMap
.
get
(
"syncXml"
)[
0
];
System
.
out
.
println
(
syncXml
);
Map
<
String
,
Object
>
returnMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
map
=
XmlUtil
.
xml2map
(
syncXml
);
System
.
out
.
println
(
map
.
get
(
"dataType"
));
if
(
map
.
get
(
"dataType"
).
equals
(
"1"
)){
//组织机构
Map
<
String
,
Object
>
syncContent
=
(
Map
<
String
,
Object
>)
map
.
get
(
"syncContent"
);
Map
<
String
,
Object
>
oldContent
=
(
Map
<
String
,
Object
>)
syncContent
.
get
(
"oldContent"
);
Map
<
String
,
Object
>
baseInfo
=
(
Map
<
String
,
Object
>)
oldContent
.
get
(
"baseInfo"
);
String
isCorp
=
(
String
)
baseInfo
.
get
(
"isCorp"
);
if
(
isCorp
.
equals
(
"1"
)){
//公司
if
(
map
.
get
(
"operType"
).
equals
(
"1"
)){
//新增
this
.
addAccount
(
map
,
returnMap
);
}
else
if
(
map
.
get
(
"operType"
).
equals
(
"2"
)){
//删除
this
.
deleteAccount
(
map
,
returnMap
);
}
else
if
(
map
.
get
(
"operType"
).
equals
(
"4"
)){
//更新
this
.
updateAccount
(
map
,
returnMap
);
}
else
{
returnMap
.
put
(
"status"
,
2
);
returnMap
.
put
(
"errcode"
,
"error"
);
returnMap
.
put
(
"errormsg"
,
"对应操作类型为其他类型"
);
}
}
else
if
(
isCorp
.
equals
(
"0"
)){
//部门
if
(
map
.
get
(
"operType"
).
equals
(
"1"
)){
//新增
this
.
addDept
(
map
,
returnMap
);
}
else
if
(
map
.
get
(
"operType"
).
equals
(
"2"
)){
//删除
this
.
deleteDept
(
map
,
returnMap
);
}
else
if
(
map
.
get
(
"operType"
).
equals
(
"4"
)){
//更新
this
.
updateDept
(
map
,
returnMap
);
}
else
{
returnMap
.
put
(
"status"
,
2
);
returnMap
.
put
(
"errcode"
,
"error"
);
returnMap
.
put
(
"errormsg"
,
"对应操作类型为其他类型"
);
}
}
else
{
returnMap
.
put
(
"status"
,
2
);
returnMap
.
put
(
"errcode"
,
"error"
);
returnMap
.
put
(
"errormsg"
,
"组织机构类型为其他类型"
);
}
}
else
if
(
map
.
get
(
"dataType"
).
equals
(
"2"
)){
//用户
if
(
map
.
get
(
"operType"
).
equals
(
"1"
)){
//新增
this
.
addMember
(
map
,
returnMap
);
}
else
if
(
map
.
get
(
"operType"
).
equals
(
"2"
)){
//删除
this
.
deleteMember
(
map
,
returnMap
);
}
else
if
(
map
.
get
(
"operType"
).
equals
(
"4"
)){
//更新
this
.
updateMember
(
map
,
returnMap
);
}
else
{
returnMap
.
put
(
"status"
,
2
);
returnMap
.
put
(
"errcode"
,
"error"
);
returnMap
.
put
(
"errormsg"
,
"对应操作类型为其他类型"
);
}
}
else
{
returnMap
.
put
(
"status"
,
2
);
returnMap
.
put
(
"errcode"
,
"error"
);
returnMap
.
put
(
"errormsg"
,
"数据类型为其他类型"
);
}
String
returnData
=
XmlUtil
.
recursionMapToXml
(
returnMap
);
System
.
out
.
println
(
returnData
);
ServletOutputStream
out
=
response
.
getOutputStream
();
OutputStreamWriter
ow
=
new
OutputStreamWriter
(
out
,
"utf-8"
);
ow
.
write
(
returnData
);
ow
.
flush
();
ow
.
close
();
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected
void
doPost
(
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
ServletException
,
IOException
{
// TODO Auto-generated method stub
doGet
(
request
,
response
);
}
public
static
String
sendPost
(
String
url
,
String
param
){
OutputStreamWriter
out
=
null
;
BufferedReader
reader
=
null
;
String
response
=
""
;
//创建连接
try
{
URL
httpUrl
=
null
;
//HTTP URL类 用这个类来创建连接
//创建URL
httpUrl
=
new
URL
(
url
);
//建立连接
HttpURLConnection
conn
=
(
HttpURLConnection
)
httpUrl
.
openConnection
();
conn
.
setRequestMethod
(
"POST"
);
conn
.
setRequestProperty
(
"Content-Type"
,
"application/json"
);
conn
.
setRequestProperty
(
"connection"
,
"keep-alive"
);
conn
.
setUseCaches
(
false
);
//设置不要缓存
conn
.
setInstanceFollowRedirects
(
true
);
conn
.
setDoOutput
(
true
);
conn
.
setDoInput
(
true
);
conn
.
connect
();
//POST请求
out
=
new
OutputStreamWriter
(
conn
.
getOutputStream
());
out
.
write
(
param
);
out
.
flush
();
//读取响应
reader
=
new
BufferedReader
(
new
InputStreamReader
(
conn
.
getInputStream
()));
String
lines
;
while
((
lines
=
reader
.
readLine
())
!=
null
)
{
lines
=
new
String
(
lines
.
getBytes
(),
"utf-8"
);
response
+=
lines
;
}
reader
.
close
();
// 断开连接
conn
.
disconnect
();
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"发送 POST 请求出现异常!"
+
e
);
e
.
printStackTrace
();
}
//使用finally块来关闭输出流、输入流
finally
{
try
{
if
(
out
!=
null
){
out
.
close
();
}
if
(
reader
!=
null
){
reader
.
close
();
}
}
catch
(
IOException
ex
){
ex
.
printStackTrace
();
}
}
return
response
;
}
public
static
String
sendPost2
(
String
url
,
String
data
)
{
String
response
=
null
;
try
{
CloseableHttpClient
httpclient
=
null
;
CloseableHttpResponse
httpresponse
=
null
;
try
{
httpclient
=
HttpClients
.
createDefault
();
HttpPost
httppost
=
new
HttpPost
(
url
);
StringEntity
stringentity
=
new
StringEntity
(
data
,
ContentType
.
create
(
"application/json"
,
"UTF-8"
));
httppost
.
setEntity
(
stringentity
);
httpresponse
=
httpclient
.
execute
(
httppost
);
response
=
EntityUtils
.
toString
(
httpresponse
.
getEntity
());
}
finally
{
if
(
httpclient
!=
null
)
{
httpclient
.
close
();
}
if
(
httpresponse
!=
null
)
{
httpresponse
.
close
();
}
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
response
;
}
private
void
addAccount
(
Map
<
String
,
Object
>
map
,
Map
<
String
,
Object
>
returnMap
)
throws
BusinessException
{
Map
<
String
,
Object
>
syncContent
=
(
Map
<
String
,
Object
>)
map
.
get
(
"syncContent"
);
Map
<
String
,
Object
>
newContent
=
(
Map
<
String
,
Object
>)
syncContent
.
get
(
"newContent"
);
Map
<
String
,
Object
>
parentInfo
=
(
Map
<
String
,
Object
>)
newContent
.
get
(
"parentInfo"
);
Map
<
String
,
Object
>
baseInfo
=
(
Map
<
String
,
Object
>)
newContent
.
get
(
"baseInfo"
);
V3xOrgAccount
account
=
orgManager
.
getAccountByName
((
String
)
baseInfo
.
get
(
"deptName"
));
if
(
account
==
null
){
returnMap
.
put
(
"status"
,
2
);
returnMap
.
put
(
"errcode"
,
"SYNC_ERR_1_1_0001"
);
returnMap
.
put
(
"errormsg"
,
"组织已存在"
);
return
;
}
if
(
StringUtils
.
isEmpty
(
baseInfo
.
get
(
"deptName"
))||
StringUtils
.
isEmpty
(
baseInfo
.
get
(
"deptUniCode"
))
||
StringUtils
.
isEmpty
(
baseInfo
.
get
(
"showNum"
))){
returnMap
.
put
(
"status"
,
2
);
returnMap
.
put
(
"errcode"
,
"SYNC_ERR_1_1_0003"
);
returnMap
.
put
(
"errormsg"
,
"必填属性未填"
);
return
;
}
V3xOrgAccount
unit
=
new
V3xOrgAccount
();
unit
.
setIdIfNew
();
unit
.
setOrgAccountId
(
unit
.
getId
());
unit
.
setCode
((
String
)
baseInfo
.
get
(
"deptUniCode"
));
unit
.
setName
((
String
)
baseInfo
.
get
(
"deptName"
));
unit
.
setSortId
(
Long
.
parseLong
((
String
)
baseInfo
.
get
(
"showNum"
)));
if
(
StringUtils
.
isEmpty
((
String
)
parentInfo
.
get
(
"parentCode"
))){
Long
accountId
=
accountManager
.
getAccountIdByCode
(
"org-admin"
);
if
(
StringUtils
.
isEmpty
(
accountId
)||
accountId
.
equals
(-
1L
)){
returnMap
.
put
(
"status"
,
2
);
returnMap
.
put
(
"errcode"
,
"SYNC_ERR_1_1_0004"
);
returnMap
.
put
(
"errormsg"
,
"找不到父级"
);
return
;
}
unit
.
setSuperior
(
accountId
);
}
else
{
String
code
=
(
String
)
parentInfo
.
get
(
"parentCode"
);
Long
accountId
=
accountManager
.
getAccountIdByCode
(
code
);
if
(
StringUtils
.
isEmpty
(
accountId
)||
accountId
.
equals
(-
1L
)){
returnMap
.
put
(
"status"
,
2
);
returnMap
.
put
(
"errcode"
,
"SYNC_ERR_1_1_0004"
);
returnMap
.
put
(
"errormsg"
,
"找不到父级"
);
return
;
}
unit
.
setSuperior
(
accountId
);
}
Map
admininfo
=
new
HashMap
();
admininfo
.
put
(
"loginName"
,
baseInfo
.
get
(
"deptName"
)+
"管理员"
);
//管理员登录名
admininfo
.
put
(
"password"
,
"123456"
);
//管理员密码
V3xOrgMember
adminmember
=
MemberUtil
.
createMember
(
admininfo
);
OrganizationMessage
result
=
new
OrganizationMessage
();
result
=
orgManagerDirect
.
addAccount
(
unit
,
adminmember
);
System
.
out
.
println
(
result
.
isSuccess
());
if
(!
result
.
isSuccess
()){
returnMap
.
put
(
"status"
,
2
);
returnMap
.
put
(
"errcode"
,
"SYNC_ERR_1_1_9999"
);
returnMap
.
put
(
"errormsg"
,
"其它错误"
);
}
else
{
returnMap
.
put
(
"status"
,
1
);
returnMap
.
put
(
"errcode"
,
""
);
returnMap
.
put
(
"errormsg"
,
""
);
}
}
private
void
deleteAccount
(
Map
<
String
,
Object
>
map
,
Map
<
String
,
Object
>
returnMap
)
{
}
private
void
updateAccount
(
Map
<
String
,
Object
>
map
,
Map
<
String
,
Object
>
returnMap
)
{
}
private
void
addDept
(
Map
<
String
,
Object
>
map
,
Map
<
String
,
Object
>
returnMap
)
throws
BusinessException
{
Map
<
String
,
Object
>
syncContent
=
(
Map
<
String
,
Object
>)
map
.
get
(
"syncContent"
);
Map
<
String
,
Object
>
newContent
=
(
Map
<
String
,
Object
>)
syncContent
.
get
(
"newContent"
);
Map
<
String
,
Object
>
parentInfo
=
(
Map
<
String
,
Object
>)
newContent
.
get
(
"parentInfo"
);
Map
<
String
,
Object
>
baseInfo
=
(
Map
<
String
,
Object
>)
newContent
.
get
(
"baseInfo"
);
if
(
StringUtils
.
isEmpty
(
baseInfo
.
get
(
"deptName"
))||
StringUtils
.
isEmpty
(
baseInfo
.
get
(
"deptUniCode"
))
||
StringUtils
.
isEmpty
(
baseInfo
.
get
(
"showNum"
))||
StringUtils
.
isEmpty
(
parentInfo
.
get
(
"parentCode"
))){
returnMap
.
put
(
"status"
,
2
);
returnMap
.
put
(
"errcode"
,
"SYNC_ERR_1_1_0003"
);
returnMap
.
put
(
"errormsg"
,
"必填属性未填"
);
return
;
}
V3xOrgAccount
account
=
orgManager
.
getAccountByName
((
String
)
baseInfo
.
get
(
"deptName"
));
if
(
account
==
null
){
returnMap
.
put
(
"status"
,
2
);
returnMap
.
put
(
"errcode"
,
"SYNC_ERR_1_1_0001"
);
returnMap
.
put
(
"errormsg"
,
"组织已存在"
);
return
;
}
V3xOrgDepartment
department
=
new
V3xOrgDepartment
();
department
.
setIdIfNew
();
department
.
setName
((
String
)
baseInfo
.
get
(
"deptName"
));
department
.
setCode
((
String
)
baseInfo
.
get
(
"deptUniCode"
));
if
(
parentInfo
.
get
(
"isCorp"
).
equals
(
"0"
)){
Long
departmentId
=
departmentManager
.
getDepartmentIdByCode
((
String
)
parentInfo
.
get
(
"parentCode"
));
if
(
StringUtils
.
isEmpty
(
departmentId
)||
departmentId
.
equals
(-
1L
)){
returnMap
.
put
(
"status"
,
2
);
returnMap
.
put
(
"errcode"
,
"SYNC_ERR_2_1_0004"
);
returnMap
.
put
(
"errormsg"
,
"找不到父级"
);
return
;
}
department
.
setSuperior
(
departmentId
);
V3xOrgUnit
unit
=
orgManager
.
getUnitById
(
departmentId
);
department
.
setOrgAccountId
(
unit
.
getOrgAccountId
());
}
else
if
(
parentInfo
.
get
(
"isCorp"
).
equals
(
"1"
)){
Long
accountId
=
accountManager
.
getAccountIdByCode
((
String
)
parentInfo
.
get
(
"parentCode"
));
if
(
StringUtils
.
isEmpty
(
accountId
)||
accountId
.
equals
(-
1L
)){
returnMap
.
put
(
"status"
,
2
);
returnMap
.
put
(
"errcode"
,
"SYNC_ERR_2_1_0004"
);
returnMap
.
put
(
"errormsg"
,
"找不到父级"
);
return
;
}
department
.
setSuperior
(
accountId
);
department
.
setOrgAccountId
(
accountId
);
}
department
.
setSortId
(
Long
.
parseLong
((
String
)
baseInfo
.
get
(
"showNum"
)));
department
.
setEnabled
(
true
);
orgManagerDirect
.
addDepartment
(
department
);
}
private
void
deleteDept
(
Map
<
String
,
Object
>
map
,
Map
<
String
,
Object
>
returnMap
)
{
}
private
void
updateDept
(
Map
<
String
,
Object
>
map
,
Map
<
String
,
Object
>
returnMap
)
{
}
private
void
addMember
(
Map
<
String
,
Object
>
map
,
Map
<
String
,
Object
>
returnMap
)
throws
BusinessException
,
ParseException
{
Map
<
String
,
Object
>
syncContent
=
(
Map
<
String
,
Object
>)
map
.
get
(
"syncContent"
);
Map
<
String
,
Object
>
newContent
=
(
Map
<
String
,
Object
>)
syncContent
.
get
(
"newContent"
);
Map
<
String
,
Object
>
parentInfo
=
(
Map
<
String
,
Object
>)
newContent
.
get
(
"parentInfo"
);
Map
<
String
,
Object
>
baseInfo
=
(
Map
<
String
,
Object
>)
newContent
.
get
(
"baseInfo"
);
V3xOrgMember
orgMember
=
orgManager
.
getMemberByLoginName
((
String
)
baseInfo
.
get
(
"loginName"
));
if
(
orgMember
==
null
){
returnMap
.
put
(
"status"
,
2
);
returnMap
.
put
(
"errcode"
,
"SYNC_ERR_2_1_0001"
);
returnMap
.
put
(
"errormsg"
,
"用户已存在"
);
return
;
}
if
(
StringUtils
.
isEmpty
(
baseInfo
.
get
(
"userName"
))||
StringUtils
.
isEmpty
(
baseInfo
.
get
(
"loginName"
))||
StringUtils
.
isEmpty
(
parentInfo
.
get
(
"corpName"
))||
StringUtils
.
isEmpty
(
parentInfo
.
get
(
"parentCode"
))
||
StringUtils
.
isEmpty
(
parentInfo
.
get
(
"showNum"
))){
returnMap
.
put
(
"status"
,
2
);
returnMap
.
put
(
"errcode"
,
"SYNC_ERR_2_1_0003"
);
returnMap
.
put
(
"errormsg"
,
"必填属性未填"
);
return
;
}
String
accountCode
=
(
String
)
parentInfo
.
get
(
"corpName"
);
//公司编码
String
departmentCode
=
(
String
)
parentInfo
.
get
(
"parentCode"
);
//部门编码
Long
accountId
=
accountManager
.
getAccountIdByCode
(
accountCode
);
Long
departmentId
=
departmentManager
.
getDepartmentIdByCode
(
departmentCode
);
System
.
out
.
println
(
"accountId:"
+
accountId
+
",departmentId:"
+
departmentId
);
if
(
StringUtils
.
isEmpty
(
accountId
)||
StringUtils
.
isEmpty
(
departmentId
)||
accountId
.
equals
(-
1L
)||
departmentId
.
equals
(-
1L
)){
returnMap
.
put
(
"status"
,
2
);
returnMap
.
put
(
"errcode"
,
"SYNC_ERR_2_1_0004"
);
returnMap
.
put
(
"errormsg"
,
"找不到父级"
);
return
;
}
V3xOrgMember
member
=
new
V3xOrgMember
();
member
.
setIdIfNew
();
member
.
setName
((
String
)
baseInfo
.
get
(
"userName"
));
member
.
setProperty
(
"birthday"
,
Datetimes
.
parse
(
String
.
valueOf
(
baseInfo
.
get
(
"birthday"
)),
TimeZone
.
getDefault
(),
"yyyy-MM-dd"
));
member
.
setProperty
(
"idnum"
,(
String
)
baseInfo
.
get
(
"idCardNumber"
));
Integer
gender
=
baseInfo
.
get
(
"gender"
).
equals
(
"Z02"
)
?
2
:
1
;
member
.
setProperty
(
"gender"
,
gender
);
member
.
setProperty
(
"telnumber"
,(
String
)
baseInfo
.
get
(
"mobile"
));
member
.
setProperty
(
"officenumber"
,(
String
)
baseInfo
.
get
(
"telephone"
));
member
.
setProperty
(
"emailaddress"
,(
String
)
baseInfo
.
get
(
"email"
));
member
.
setSortId
(
Long
.
parseLong
((
String
)
parentInfo
.
get
(
"showNum"
)));
V3xOrgPrincipal
v3xOrgPrincipal
=
member
.
getV3xOrgPrincipal
();
v3xOrgPrincipal
.
setLoginName
((
String
)
baseInfo
.
get
(
"loginName"
));
v3xOrgPrincipal
.
setPassword
(
"123456"
);
member
.
setV3xOrgPrincipal
(
v3xOrgPrincipal
);
member
.
setOrgAccountId
(
accountId
);
member
.
setOrgDepartmentId
(
departmentId
);
member
.
setLoginName
(
member
,(
String
)
baseInfo
.
get
(
"loginName"
));
OrganizationMessage
organizationMessage
=
orgManagerDirect
.
addMember
(
member
);
System
.
out
.
println
(
organizationMessage
.
isSuccess
());
if
(!
organizationMessage
.
isSuccess
()){
returnMap
.
put
(
"status"
,
2
);
returnMap
.
put
(
"errcode"
,
"SYNC_ERR_2_1_9999"
);
returnMap
.
put
(
"errormsg"
,
"其它错误"
);
}
else
{
returnMap
.
put
(
"status"
,
1
);
returnMap
.
put
(
"errcode"
,
""
);
returnMap
.
put
(
"errormsg"
,
""
);
}
}
private
void
deleteMember
(
Map
<
String
,
Object
>
map
,
Map
<
String
,
Object
>
returnMap
)
{
}
private
void
updateMember
(
Map
<
String
,
Object
>
map
,
Map
<
String
,
Object
>
returnMap
)
{
}
}
\ No newline at end of file
src/main/java/com/seeyon/ctp/common/sync/manager/SyncService.java
deleted
100644 → 0
View file @
dbf852b4
package
com
.
seeyon
.
ctp
.
common
.
sync
.
manager
;
import
java.util.Map
;
import
com.eetrust.eim.plugin.constants.UapuConstants
;
import
com.eetrust.eim.plugin.pojo.SyncResult
;
import
com.eetrust.eim.plugin.pojo.uapu.SyncUapuOrg
;
import
com.eetrust.eim.plugin.pojo.uapu.SyncUapuSimpleUser
;
import
com.eetrust.eim.plugin.service.AbstractSimpleUapuService
;
import
com.eetrust.eim.plugin.util.SyncUtil
;
import
com.eetrust.eim.plugin.util.XmlParser
;
public
class
SyncService
extends
AbstractSimpleUapuService
{
/**
* 添加或修改组织机构
* @param dept
* @return 返回错误信息:null为成功
*/
public
SyncResult
addOrModUapuOrg
(
SyncUapuOrg
dept
)
throws
Exception
{
String
uniCode
=
dept
.
getSyncUniCode
();
//组织机构唯一标识
//需要必填的属性未填写,返回错误
if
(
uniCode
==
null
||
uniCode
.
trim
().
equals
(
""
))
{
return
XmlParser
.
getInstance
().
getSyncResult
(
"SYNC_ERR_1_1_0003"
);
}
String
deptName
=
dept
.
getDeptName
();
//组织机构名称
String
deptStatus
=
dept
.
getDeptStatus
();
//组织机构状态:1为启用;2为停用(请根据系统自身情况进行转换)
String
parentCode
=
dept
.
getParentCode
();
//组织机构上级部门
String
showNum
=
dept
.
getShowNum
();
//组织机构排序号
Map
<
String
,
String
>
otherAttributesMap
=
dept
.
getSingleValueMap
();
//组织机构的其它属性,键为英文名
//String address = otherAttributesMap.get("address"); //如果统一用户管理系统中存在地址字段,且属性名为address,则能够通过本方式获取到(注意null的判断)
//将获取到的信息存库
//如果使用了spring,可以通过以下方式获取spring中注入的bean对象,代码示例如下:
//IDeptDAO deptDAO = (IDeptDAO)SyncUtil.getInstance().getBean("deptDAO");//引号中为spring中注入bean的name
//保存或更新成功后,直接返回null即可。
//return null;
//如果在保存或更新过程中出现问题,请返回错误信息(见错误码表),代码示例如下:
//return XmlParser.getInstance().getSyncResult("SYNC_ERR_1_1_0003");
//当返回错误为其它错误时,建议填写错误信息,以便于运维过程中排查问题,代码示例如下:
//return XmlParser.getInstance().getSyncResult("SYNC_ERR_1_1_9999", "sql执行过程中出现错误,用户手机号重复");
return
null
;
}
/**
* 添加或修改用户
*@param user
* @return 返回错误信息:null为成功
*/
public
SyncResult
addOrModUapuUser
(
SyncUapuSimpleUser
user
)
throws
Exception
{
String
uniCode
=
user
.
getSyncUniCode
();
//用户唯一标识
//需要必填的属性未填写,返回错误
if
(
uniCode
==
null
||
uniCode
.
trim
().
equals
(
""
))
{
return
XmlParser
.
getInstance
().
getSyncResult
(
"SYNC_ERR_2_1_0003"
);
}
String
userName
=
user
.
getUserName
();
//用户名称
String
loginName
=
user
.
getLoginName
();
//用户帐号
String
deptStatus
=
user
.
getAccountStatus
();
//用户状态:1为启用;3为停用(请根据系统自身情况进行转换)
String
parentCode
=
user
.
getParentCode
();
//用户所属部门编码(同步来组织机构的uniCode值)
String
showNum
=
user
.
getShowNum
();
//用户排序号
Map
<
String
,
String
>
otherAttributesMap
=
user
.
getSingleValueMap
();
//用户的其它属性,键为英文名
//String mobile = otherAttributesMap.get("mobile"); //如果统一用户管理系统中存在手机号字段,且属性名为mobile,则能够通过本方式获取到(注意null的判断)
//将获取到的信息存库
//如果使用了spring,可以通过以下方式获取spring中注入的bean对象,代码示例如下:
//IUserDAO userDAO = (IUserDAO)SyncUtil.getInstance().getBean("userDAO");//引号中为spring中注入bean的name
//保存或更新成功后,直接返回null即可,代码示例如下:
//return null;
//如果在保存或更新过程中出现问题,请返回错误信息(见错误码表),代码示例如下:
//return XmlParser.getInstance().getSyncResult("SYNC_ERR_2_1_0003");
//当返回错误为其它错误时,建议填写错误信息,以便于运维过程中排查问题,代码示例如下:
//return XmlParser.getInstance().getSyncResult("SYNC_ERR_2_1_9999", "sql执行过程中出现错误,用户手机号重复");
return
null
;
}
/**
* 删除组织机构
*@param dept
* @return 返回错误信息:null为成功
*/
public
SyncResult
delUapuOrg
(
SyncUapuOrg
dept
)
throws
Exception
{
String
uniCode
=
dept
.
getSyncUniCode
();
//组织机构唯一标识
//需要必填的属性未填写,返回错误
if
(
uniCode
==
null
||
uniCode
.
trim
().
equals
(
""
))
{
return
XmlParser
.
getInstance
().
getSyncResult
(
"SYNC_ERR_1_2_0003"
);
}
//根据uniCode唯一标识删除组织机构
//如果使用了spring,可以通过以下方式获取spring中注入的bean对象,代码示例如下:
//IDeptDAO deptDAO = (IDeptDAO)SyncUtil.getInstance().getBean("deptDAO");//引号中为spring中注入bean的name
//删除成功后,直接返回null即可,代码示例如下:
//return null;
return
null
;
}
/**
* 删除用户
*@param user
* @return 返回错误信息:null为成功
*/
public
SyncResult
delSimpleUapuUser
(
SyncUapuSimpleUser
user
)
throws
Exception
{
String
uniCode
=
user
.
getSyncUniCode
();
//用户唯一标识
//需要必填的属性未填写,返回错误
if
(
uniCode
==
null
||
uniCode
.
trim
().
equals
(
""
))
{
return
XmlParser
.
getInstance
().
getSyncResult
(
"SYNC_ERR_2_2_0003"
);
}
//根据uniCode唯一标识删除用户
//如果使用了spring,可以通过以下方式获取spring中注入的bean对象,代码示例如下:
//IUserDAO userDAO = (IUserDAO)SyncUtil.getInstance().getBean("userDAO");//引号中为spring中注入bean的name
//删除成功后,直接返回null即可,代码示例如下:
//return null;
return
null
;
}
/**
* 判断组织机构是否存在(可不用实现)
*/
public
Boolean
existUapuOrg
(
String
uniCode
)
throws
Exception
{
//唯一标识为传递值,则无需判断是否存在
if
(
uniCode
==
null
||
uniCode
.
trim
().
equals
(
""
))
{
return
null
;
}
//根据uniCode唯一标识查询组织机构
//如果使用了spring,可以通过以下方式获取spring中注入的bean对象,代码示例如下:
//IDeptDAO deptDAO = (IDeptDAO)SyncUtil.getInstance().getBean("deptDAO");//引号中为spring中注入bean的name
//查询成功后,根据查询结果返回true或false,组织机构存在代码示例如下:
//return true;
//组织机构不存在代码示例如下:
//return false;
//出现异常代码示例如下:
//return null;
return
null
;
}
/**
* 判断用户是否存在(可不用实现)
*/
public
Boolean
existUapuUser
(
String
uniCode
)
throws
Exception
{
//唯一标识为传递值,则无需判断是否存在
if
(
uniCode
==
null
||
uniCode
.
trim
().
equals
(
""
))
{
return
null
;
}
//根据uniCode唯一标识查询用户
//如果使用了spring,可以通过以下方式获取spring中注入的bean对象,如:
//IUserDAO userDAO = (IUserDAO)SyncUtil.getInstance().getBean("userDAO");//引号中为spring中注入bean的name
//查询成功后,根据查询结果返回true或false,用户存在代码示例如下:
//return true;
//用户不存在代码示例如下:
//return false;
//出现异常代码示例如下:
//return null;
return
null
;
}
}
src/main/java/com/seeyon/ctp/common/util/XmlUtil.java
View file @
773e8844
...
@@ -51,7 +51,7 @@ public class XmlUtil {
...
@@ -51,7 +51,7 @@ public class XmlUtil {
Element
changeContent
=
(
Element
)
syncContent
.
selectSingleNode
(
"./changeContent"
);
Element
changeContent
=
(
Element
)
syncContent
.
selectSingleNode
(
"./changeContent"
);
syncContentMap
.
put
(
"changeContent"
,
element2Map
(
changeContent
));
syncContentMap
.
put
(
"changeContent"
,
element2Map
(
changeContent
));
Element
newContent
=
(
Element
)
syncContent
.
selectSingleNode
(
"./newContent"
);
Element
newContent
=
(
Element
)
syncContent
.
selectSingleNode
(
"./newContent"
);
syncContentMap
.
put
(
"newContent
"
,
element2Map
(
newContent
));
syncContentMap
.
put
(
"newContent"
,
element2Map
(
newContent
));
map
.
put
(
"syncContent"
,
syncContentMap
);
map
.
put
(
"syncContent"
,
syncContentMap
);
// 获得当前节点的子节点
// 获得当前节点的子节点
...
@@ -72,27 +72,53 @@ public class XmlUtil {
...
@@ -72,27 +72,53 @@ public class XmlUtil {
private
static
Map
<
String
,
Object
>
element2Map
(
Element
element
)
{
private
static
Map
<
String
,
Object
>
element2Map
(
Element
element
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
Element
baseInfo
=
(
Element
)
element
.
selectSingleNode
(
"./baseInfo"
);
Element
baseInfo
=
(
Element
)
element
.
selectSingleNode
(
"./baseInfo"
);
List
<
Element
>
childElements
=
baseInfo
.
elements
();
if
(
baseInfo
!=
null
){
if
(
childElements
.
size
()
>
0
)
{
List
childElements
=
baseInfo
.
elements
();
Map
<
String
,
Object
>
tempMap
=
new
HashMap
<>();
if
(
childElements
.
size
()
>
0
)
{
Iterator
var33
=
childElements
.
iterator
();
Map
<
String
,
Object
>
tempMap
=
new
HashMap
<>();
while
(
var33
.
hasNext
())
{
Iterator
var33
=
childElements
.
iterator
();
Element
element1
=
(
Element
)
var33
.
next
();
while
(
var33
.
hasNext
())
{
tempMap
.
put
(
element1
.
getName
(),
element1
.
getText
());
Element
element1
=
(
Element
)
var33
.
next
();
tempMap
.
put
(
element1
.
getName
(),
element1
.
getText
());
}
map
.
put
(
"baseInfo"
,
tempMap
);
}
}
map
.
put
(
"baseInfo"
,
tempMap
);
}
}
Element
parentInfo
=
(
Element
)
element
.
selectSingleNode
(
"./parentInfo"
);
Element
parentInfo
=
(
Element
)
element
.
selectSingleNode
(
"./parentInfo"
);
List
<
Element
>
childElements1
=
parentInfo
.
elements
();
if
(
parentInfo
!=
null
){
if
(
childElements1
.
size
()
>
0
)
{
Map
<
String
,
Object
>
tempMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
tempMap
=
new
HashMap
<>();
Iterator
var44
=
childElements1
.
iterator
();
Element
parentCode
=
(
Element
)
parentInfo
.
selectSingleNode
(
"./parentCode"
);
while
(
var44
.
hasNext
())
{
tempMap
.
put
(
parentCode
.
getName
(),
parentCode
.
getText
());
Element
element1
=
(
Element
)
var44
.
next
();
// List childElements1 = parentInfo.elements();
tempMap
.
put
(
element1
.
getName
(),
element1
.
getText
());
// if (childElements1.size() > 0) {
}
// Iterator var44 = childElements1.iterator();
// while(var44.hasNext()) {
// Element element1 = (Element)var44.next();
// tempMap.put(element1.getName(),element1.getText());
// }
//
// Element parentCode = (Element) childElements1.get(0).selectSingleNode("./parentInfo");
// tempMap.put("isCorp",syncContent.attributeValue("isCorp"));
// map.put("parentInfo",tempMap);
// }
tempMap
.
put
(
"isCorp"
,
parentCode
.
attributeValue
(
"isCorp"
));
map
.
put
(
"parentInfo"
,
tempMap
);
map
.
put
(
"parentInfo"
,
tempMap
);
}
}
return
map
;
return
map
;
}
}
public
static
String
recursionMapToXml
(
Map
<
String
,
Object
>
map
){
Document
document
=
DocumentHelper
.
createDocument
();
Element
root
=
document
.
addElement
(
"returnData"
);
for
(
String
key:
map
.
keySet
())
{
String
value
=
map
.
get
(
key
).
toString
();
if
(
value
==
null
)
{
value
=
""
;
}
value
=
value
.
trim
();
Element
filed
=
root
.
addElement
(
key
);
filed
.
setText
(
value
);
}
return
document
.
asXML
();
}
}
}
src/main/java/com/seeyon/ctp/common/web/filter/ServletAuthenticator.java
0 → 100644
View file @
773e8844
package
com
.
seeyon
.
ctp
.
common
.
web
.
filter
;
import
java.io.PrintWriter
;
import
java.util.Arrays
;
import
java.util.List
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpSession
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
com.seeyon.ctp.common.AppContext
;
import
com.seeyon.ctp.common.i18n.ResourceUtil
;
/**
* Servlet身份校验。
* @author wangwenyou
*
*/
public
class
ServletAuthenticator
extends
AbstractAuthenticator
{
private
static
Log
LOG
=
LogFactory
.
getLog
(
ServletAuthenticator
.
class
);
@Override
public
void
afterFailure
(
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
Exception
{
String
uri
=
request
.
getRequestURI
().
substring
(
8
);
if
(
uri
.
endsWith
(
".psml"
))
{
// PortalServlet
PrintWriter
out
=
response
.
getWriter
();
out
.
println
(
"<script type=\"text/javascript\" charset=\"UTF-8\" src=\""
+
request
.
getContextPath
()
+
"/common/js/V3X.js\"></script>"
);
out
.
println
(
"<script>"
);
// 刷新空间
out
.
println
(
"alert(\""
+
ResourceUtil
.
getString
(
"loginUserState.unknown"
)
+
"\");"
);
out
.
println
(
"if(getA8Top){getA8Top().location.href =\""
+
request
.
getContextPath
()
+
"/main.do?method=logout\";}\n"
);
out
.
println
(
"</script>"
);
out
.
close
();
}
else
{
super
.
afterFailure
(
request
,
response
);
}
}
// Servlet列表
private
static
List
<
String
>
servlets
=
Arrays
.
asList
(
"getAJAXMessageServlet"
,
"getAJAXOnlineServlet"
,
"htmlofficeservlet"
,
"isignaturehtmlH5servlet"
,
"isignaturehtmlservlet"
,
"login/sso"
,
"login/ssologout"
,
"m-signature/"
,
"ofdServlet"
,
"office/cache/"
,
"officeservlet"
,
"pdfservlet"
,
"sursenServlet"
,
"verifyCodeImage.jpg"
);
// 可匿名访问的白名单
private
static
List
<
String
>
anonymousWhiteList
=
Arrays
.
asList
(
"login/sso"
,
"verifyCodeImage.jpg"
,
"thirdparyServlet"
);
@Override
public
boolean
authenticate
(
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
Exception
{
AppContext
.
initSystemEnvironmentContext
(
request
,
response
);
if
(
AppContext
.
getCurrentUser
()
!=
null
)
{
return
true
;
}
String
uri
=
request
.
getRequestURI
().
substring
(
8
);
for
(
String
string
:
anonymousWhiteList
)
{
if
(
uri
.
startsWith
(
string
))
{
return
true
;
}
}
HttpSession
session
=
request
.
getSession
(
false
);
String
sessionId
=
session
!=
null
?
session
.
getId
()
:
""
;
LOG
.
warn
(
"servlet "
+
uri
+
"'s anonymous access fail:"
+
sessionId
);
return
false
;
}
public
static
boolean
accept
(
HttpServletRequest
request
)
{
String
uri
=
request
.
getRequestURI
().
substring
(
8
);
if
(
uri
.
endsWith
(
".psml"
))
{
return
true
;
}
for
(
String
string
:
servlets
)
{
if
(
uri
.
startsWith
(
string
))
{
return
true
;
}
}
return
false
;
}
}
src/main/java/com/seeyon/ctp/rest/resources/CollaborationResource.java
View file @
773e8844
...
@@ -7817,6 +7817,11 @@ public class CollaborationResource extends BaseResource {
...
@@ -7817,6 +7817,11 @@ public class CollaborationResource extends BaseResource {
Map
<
String
,
Object
>
main
=
isNull
(
param
.
get
(
"main"
))
?
null
:
(
Map
<
String
,
Object
>)
param
.
get
(
"main"
)
;
//主表数据
Map
<
String
,
Object
>
main
=
isNull
(
param
.
get
(
"main"
))
?
null
:
(
Map
<
String
,
Object
>)
param
.
get
(
"main"
)
;
//主表数据
List
<
Object
>
sub
=
isNull
(
param
.
get
(
"sub"
))
?
null
:
(
List
<
Object
>)
param
.
get
(
"sub"
);
//重复表数据
List
<
Object
>
sub
=
isNull
(
param
.
get
(
"sub"
))
?
null
:
(
List
<
Object
>)
param
.
get
(
"sub"
);
//重复表数据
if
(
main
!=
null
&&
!
main
.
isEmpty
())
{
if
(
main
!=
null
&&
!
main
.
isEmpty
())
{
if
(
main
.
get
(
"confidentiality"
).
equals
(
"是"
)){
main
.
put
(
"confidentiality"
,
1
);
}
else
{
main
.
put
(
"confidentiality"
,
0
);
}
Map
<
String
,
String
>
yingsheguanxiMap
=
(
Map
<
String
,
String
>)
mped
.
get
(
"main"
)
;
Map
<
String
,
String
>
yingsheguanxiMap
=
(
Map
<
String
,
String
>)
mped
.
get
(
"main"
)
;
Set
<
String
>
mainSet
=
main
.
keySet
()
;
Set
<
String
>
mainSet
=
main
.
keySet
()
;
for
(
String
key
:
mainSet
)
{
for
(
String
key
:
mainSet
)
{
...
@@ -8331,7 +8336,17 @@ public class CollaborationResource extends BaseResource {
...
@@ -8331,7 +8336,17 @@ public class CollaborationResource extends BaseResource {
return
ok
(
map
);
return
ok
(
map
);
}
}
@POST
@Consumes
(
MediaType
.
APPLICATION_XML
)
@Path
(
"test"
)
@RestInterfaceAnnotation
public
Response
getPrintSummary
(
String
xml
)
throws
BusinessException
,
Exception
{
Map
<
String
,
Object
>
map1
=
XmlUtil
.
xml2map
(
xml
);
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
map
.
put
(
"success"
,
true
);
map
.
put
(
"date"
,
map1
);
return
ok
(
map
);
}
}
}
src/main/webapp/WEB-INF/cfgHome/plugin/collaboration/spring/spring-collaboration-manager.xml
View file @
773e8844
...
@@ -118,4 +118,8 @@
...
@@ -118,4 +118,8 @@
<!-- 协同插件管理器 -->
<!-- 协同插件管理器 -->
<bean
id=
"collaborationPluginManager"
class=
"com.seeyon.apps.collaboration.manager.CollaborationPluginManagerImpl"
></bean>
<bean
id=
"collaborationPluginManager"
class=
"com.seeyon.apps.collaboration.manager.CollaborationPluginManagerImpl"
></bean>
<bean
id=
"V3xAccountManager"
class=
"com.seeyon.v3x.services.organization.impl.AccountManagerImpl"
></bean>
<bean
id=
"V3xDepartmentManager"
class=
"com.seeyon.v3x.services.organization.impl.DepartmentManagerImpl"
></bean>
</beans>
</beans>
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