Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
B
BasicAPI
Project
Project
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
杜科
BasicAPI
Commits
1bbfbc6c
Commit
1bbfbc6c
authored
Mar 02, 2023
by
shyWang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
PDM前端改造
文档相关改造
parent
2b2a52c8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
878 additions
and
69 deletions
+878
-69
SearchOperatorEnumUtil.java
src/com/yonde/basedata/search/SearchOperatorEnumUtil.java
+3
-3
RevisionControlledVO.java
src/com/yonde/basedata/vo/RevisionControlledVO.java
+3
-1
DocUtil.java
src/com/yonde/common/DocUtil.java
+111
-0
DxCommonUtils.java
src/com/yonde/common/DxCommonUtils.java
+25
-0
DxDocUtil.java
src/com/yonde/common/DxDocUtil.java
+75
-0
DxPartUtil.java
src/com/yonde/common/DxPartUtil.java
+177
-8
DxSearchUtil.java
src/com/yonde/common/DxSearchUtil.java
+6
-1
LinkObjUtil.java
src/com/yonde/common/LinkObjUtil.java
+64
-2
DxDocController.java
src/com/yonde/doc/controller/DxDocController.java
+4
-5
DxDocumentVO.java
src/com/yonde/doc/vo/DxDocumentVO.java
+64
-35
DxPartDescribeLinkController.java
...m/yonde/part/controller/DxPartDescribeLinkController.java
+67
-0
DxPartReferenceLinkController.java
.../yonde/part/controller/DxPartReferenceLinkController.java
+68
-0
DxPartService.java
src/com/yonde/part/service/DxPartService.java
+118
-8
DxPartDescribeLinkVO.java
src/com/yonde/part/vo/DxPartDescribeLinkVO.java
+40
-2
DxPartReferenceLinkVO.java
src/com/yonde/part/vo/DxPartReferenceLinkVO.java
+51
-2
DxPartVO.java
src/com/yonde/part/vo/DxPartVO.java
+2
-2
No files found.
src/com/yonde/basedata/search/SearchOperatorEnumUtil.java
View file @
1bbfbc6c
...
...
@@ -5,9 +5,7 @@ import com.yonde.basedata.vo.DxMasterVO;
import
com.yonde.basedata.vo.DxVersionVO
;
import
com.yonde.context.vo.DxContextVO
;
import
com.yonde.doc.vo.DxDocumentVO
;
import
com.yonde.part.vo.DxPartVO
;
import
com.yonde.part.vo.DxUsageLinkVO
;
import
com.yonde.part.vo.DxViewVO
;
import
com.yonde.part.vo.*
;
import
wt.clients.beans.query.WTAttribute
;
import
wt.doc.WTDocument
;
import
wt.fc.ObjectIdentifier
;
...
...
@@ -88,6 +86,8 @@ public class SearchOperatorEnumUtil {
typeItemMap
.
put
(
DxMasterVO
.
class
,
"com.yonde.dex.version.plugin.common.entity.DxMasterVO"
);
typeItemMap
.
put
(
DxContextVO
.
class
,
"com.yonde.dex.context.common.vo.DxContextProjectVO"
);
typeItemMap
.
put
(
DxUsageLinkVO
.
class
,
"com.yonde.dcs.xbom.common.entity.vo.DxUsageLinkVO"
);
typeItemMap
.
put
(
DxPartDescribeLinkVO
.
class
,
"com.yonde.dcs.xbom.common.entity.vo.DxPartDescribeLinkVO"
);
typeItemMap
.
put
(
DxPartReferenceLinkVO
.
class
,
"com.yonde.dcs.xbom.common.entity.vo.DxPartReferenceLinkVO"
);
//TODO add
}
...
...
src/com/yonde/basedata/vo/RevisionControlledVO.java
View file @
1bbfbc6c
...
...
@@ -6,6 +6,7 @@ import com.yonde.common.DateTimeUtil;
import
com.yonde.part.vo.DxPartVO
;
import
wt.enterprise.RevisionControlled
;
import
wt.fc.Persistable
;
import
wt.locks.LockHelper
;
import
wt.org.WTPrincipal
;
import
wt.org.WTUser
;
import
wt.session.SessionContext
;
...
...
@@ -76,7 +77,8 @@ public class RevisionControlledVO extends IdVO implements Serializable {
}
public
void
setLockerVO
(
RevisionControlled
object
)
throws
WTException
{
Persistable
persistable
=
object
.
getLocker
().
getObject
();
Persistable
persistable
=
LockHelper
.
getLocker
(
object
);
//object.getLocker().getObject();
if
(
persistable
!=
null
)
{
WTUser
locker
=
((
WTUser
)
persistable
);
this
.
setLockNote
(
object
.
getLockNote
());
...
...
src/com/yonde/common/DocUtil.java
View file @
1bbfbc6c
...
...
@@ -3,6 +3,7 @@ package com.yonde.common;
import
com.ptc.core.meta.type.mgmt.server.impl.WTTypeDefinition
;
import
com.ptc.core.meta.type.mgmt.server.impl.WTTypeDefinitionMaster
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.log4j.Logger
;
import
wt.access.NotAuthorizedException
;
import
wt.content.*
;
...
...
@@ -11,11 +12,16 @@ import wt.doc.WTDocumentDependencyLink;
import
wt.doc.WTDocumentMaster
;
import
wt.doc.WTDocumentMasterIdentity
;
import
wt.fc.*
;
import
wt.folder.Folder
;
import
wt.folder.FolderEntry
;
import
wt.folder.FolderHelper
;
import
wt.httpgw.URLFactory
;
import
wt.iba.definition.IBADefinitionException
;
import
wt.iba.definition.litedefinition.AttributeDefDefaultView
;
import
wt.iba.definition.service.IBADefinitionHelper
;
import
wt.iba.value.StringValue
;
import
wt.inf.container.WTContainer
;
import
wt.inf.container.WTContainerRef
;
import
wt.method.RemoteAccess
;
import
wt.method.RemoteMethodServer
;
import
wt.org.WTPrincipal
;
...
...
@@ -26,8 +32,10 @@ import wt.query.SearchCondition;
import
wt.query.SubSelectExpression
;
import
wt.session.SessionHelper
;
import
wt.session.SessionServerHelper
;
import
wt.team.TeamReference
;
import
wt.type.ClientTypedUtility
;
import
wt.type.TypeDefinitionReference
;
import
wt.type.TypedUtility
;
import
wt.util.WTAttributeNameIfc
;
import
wt.util.WTException
;
import
wt.util.WTPropertyVetoException
;
...
...
@@ -1155,4 +1163,107 @@ public class DocUtil implements RemoteAccess, Serializable {
throws
VersionControlException
{
return
RfUtil
.
getDocVid
(
doc
);
}
/**
* create wtdocument in windchill by name, container,folder and type
* type default is WTDocument, folder default value is Default,
* name and container must has value.
*
* @return
* @throws WTException
*/
public
static
WTDocument
createDoc
(
String
docNum
,
String
docName
,
WTContainer
container
,
Folder
docFold
,
String
type
)
throws
WTException
{
logger
.
debug
(
"=============create doc begin============"
);
if
(
docName
==
null
||
""
.
equals
(
docName
))
{
return
null
;
}
if
(
container
==
null
)
{
return
null
;
}
WTDocument
document
=
WTDocument
.
newWTDocument
();
try
{
TypeDefinitionReference
typeDefinitionRef
=
null
;
if
(
type
==
null
||
""
.
equals
(
type
))
{
typeDefinitionRef
=
TypedUtility
.
getTypeDefinitionReference
(
"wt.doc.WTDocument"
);
}
else
{
typeDefinitionRef
=
TypedUtility
.
getTypeDefinitionReference
(
type
);
}
document
.
setTypeDefinitionReference
(
typeDefinitionRef
);
document
.
setName
(
docName
);
if
(
StringUtils
.
isNotEmpty
(
docNum
))
{
document
.
setNumber
(
docNum
);
}
// Set Folder
if
(
docFold
==
null
)
{
docFold
=
FolderHelper
.
service
.
getFolder
(
"Default"
,
WTContainerRef
.
newWTContainerRef
(
container
));
/*
* if (folder == null || "".equals(folder)) {
* docFold = FolderHelper.service.getFolder("Default", WTContainerRef.newWTContainerRef(container));
* } else {
* docFold = FolderHelper.service.getFolder("Default/" + folder,
* WTContainerRef.newWTContainerRef(container));
* }
*/
}
FolderHelper
.
assignLocation
((
FolderEntry
)
document
,
docFold
);
// Set Container
PersistenceHelper
.
manager
.
save
(
document
);
logger
.
debug
(
"=============create doc end============"
);
}
catch
(
WTException
e
)
{
logger
.
error
(
e
.
getLocalizedMessage
(),
e
);
throw
new
WTException
(
e
);
}
catch
(
WTPropertyVetoException
e
)
{
logger
.
error
(
e
.
getLocalizedMessage
(),
e
);
throw
new
WTException
(
e
);
}
return
document
;
}
/**
* revise WTDocument
*
* @param document
* WTDocument
* @return WTDocument
* @throws WTException
*/
public
static
WTDocument
reviseWTDocument
(
WTDocument
document
,
String
comment
)
throws
WTException
{
WTDocument
wtdocument
=
document
;
try
{
if
(
wtdocument
==
null
)
{
return
null
;
}
WTContainer
container
=
wtdocument
.
getContainer
();
WTContainerRef
containerRef
=
WTContainerRef
.
newWTContainerRef
(
container
);
// container.getContainerReference();//
TeamReference
teamReference
=
wtdocument
.
getTeamId
();
Folder
oldFoler
=
FolderHelper
.
getFolder
(
wtdocument
);
if
(
oldFoler
==
null
)
{
String
strLocation
=
wtdocument
.
getLocation
();
oldFoler
=
FolderHelper
.
service
.
getFolder
(
strLocation
,
containerRef
);
}
wtdocument
=
(
WTDocument
)
wt
.
vc
.
VersionControlHelper
.
service
.
newVersion
((
wt
.
vc
.
Versioned
)
wtdocument
);
if
(
teamReference
!=
null
)
{
wtdocument
.
setTeamId
(
teamReference
);
}
VersionControlHelper
.
setNote
(
wtdocument
,
comment
==
null
?
""
:
comment
);
wtdocument
.
setContainer
(
container
);
FolderHelper
.
assignLocation
((
FolderEntry
)
wtdocument
,
oldFoler
);
wtdocument
=
(
WTDocument
)
PersistenceHelper
.
manager
.
save
(
wtdocument
);
wtdocument
=
(
WTDocument
)
PersistenceHelper
.
manager
.
refresh
(
wtdocument
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"Auto Revise Failed :"
+
e
.
toString
());
logger
.
error
(
"Original comment :"
+
comment
);
throw
new
WTException
(
e
);
}
return
wtdocument
;
}
}
src/com/yonde/common/DxCommonUtils.java
View file @
1bbfbc6c
...
...
@@ -6,6 +6,9 @@ import wt.access.AccessPermission;
import
wt.doc.WTDocument
;
import
wt.fc.PersistenceServerHelper
;
import
wt.fc.WTObject
;
import
wt.folder.Folder
;
import
wt.folder.FolderHelper
;
import
wt.inf.container.WTContainerRef
;
import
wt.lifecycle.LifeCycleHelper
;
import
wt.lifecycle.LifeCycleManaged
;
import
wt.lifecycle.State
;
...
...
@@ -135,4 +138,26 @@ public class DxCommonUtils implements RemoteAccess, Serializable {
}
return
false
;
}
public
static
Folder
makeFolder
(
String
locationFolder
,
WTContainerRef
containerRef
)
throws
WTException
{
if
(
locationFolder
==
null
||
locationFolder
.
equalsIgnoreCase
(
""
))
{
locationFolder
=
"/Default"
;
}
else
{
if
(!
locationFolder
.
startsWith
(
"/Default"
))
{
locationFolder
=
"/Default/"
+
locationFolder
;
}
}
Folder
location
=
null
;
try
{
location
=
FolderHelper
.
service
.
getFolder
(
locationFolder
,
containerRef
);
}
catch
(
Exception
e
)
{
location
=
null
;
}
if
(
location
==
null
)
location
=
FolderHelper
.
service
.
saveFolderPath
(
locationFolder
,
containerRef
);
return
location
;
}
}
src/com/yonde/common/DxDocUtil.java
0 → 100644
View file @
1bbfbc6c
package
com
.
yonde
.
common
;
import
com.yonde.basedata.vo.DxDocumentFolderVO
;
import
com.yonde.context.vo.DxContextVO
;
import
com.yonde.doc.vo.DxDocumentVO
;
import
com.yonde.part.vo.DxPartVO
;
import
org.apache.log4j.Logger
;
import
wt.doc.WTDocument
;
import
wt.folder.Folder
;
import
wt.inf.container.WTContainer
;
import
wt.log4j.LogR
;
import
wt.method.RemoteAccess
;
import
wt.part.WTPart
;
import
wt.util.WTException
;
import
java.io.Serializable
;
public
class
DxDocUtil
implements
RemoteAccess
,
Serializable
{
private
static
Logger
logger
=
LogR
.
getLogger
(
DxDocUtil
.
class
.
getName
());
private
static
final
long
serialVersionUID
=
1L
;
/**
* 根据id 查询DxDocument
* @param id
* @return
* @throws Exception
*/
public
static
DxDocumentVO
getDxDocumentVO
(
long
id
)
throws
Exception
{
String
oid
=
"OR:wt.doc.WTDocument:"
+
id
;
WTDocument
doc
=
RfUtil
.
getDoc
(
oid
);
DxDocumentVO
dxDocumentVO
=
new
DxDocumentVO
(
doc
);
/*if (ObjectsUtil.nonNull(part)) {
WTPart copyOfPart = getWorkingCopyOfPart(part);
dxPartVO = new DxPartVO(copyOfPart);
}*/
return
dxDocumentVO
;
}
/**
* 根据id 查询DxDocument
* @param id
* @return
*/
public
static
WTDocument
getDocById
(
long
id
)
{
String
oid
=
"OR:wt.doc.WTDocument:"
+
id
;
WTDocument
doc
=
RfUtil
.
getDoc
(
oid
);
return
doc
;
}
public
static
WTDocument
createDoc
(
DxDocumentVO
dxDocumentVO
)
throws
WTException
{
WTContainer
container
=
null
;
DxContextVO
dxContext
=
dxDocumentVO
.
getDxContext
();
logger
.
error
(
"dxContext Name======"
+
dxContext
);
if
(
ObjectsUtil
.
nonNull
(
dxContext
))
{
String
contextName
=
dxContext
.
getName
();
logger
.
error
(
"container Name======"
+
contextName
);
container
=
ContainerUtil
.
getContainerByName
(
contextName
);
logger
.
error
(
"container======"
+
container
);
}
if
(
ObjectsUtil
.
isNull
(
container
))
{
return
null
;
}
String
folderPath
=
null
;
DxDocumentFolderVO
folderVO
=
dxDocumentVO
.
getDxDocumentFolder
();
if
(
ObjectsUtil
.
nonNull
(
folderVO
))
{
folderPath
=
folderVO
.
getFullPath
();
}
Folder
folder
=
DxCommonUtils
.
makeFolder
(
folderPath
,
container
.
getContainerReference
());
//dxDocumentVO.getSubTypeName()
WTDocument
doc
=
DocUtil
.
createDoc
(
dxDocumentVO
.
getNumber
(),
dxDocumentVO
.
getName
(),
container
,
folder
,
null
);
// TODO update attr
return
doc
;
}
}
src/com/yonde/common/DxPartUtil.java
View file @
1bbfbc6c
This diff is collapsed.
Click to expand it.
src/com/yonde/common/DxSearchUtil.java
View file @
1bbfbc6c
...
...
@@ -9,6 +9,7 @@ import com.yonde.basedata.vo.IdVO;
import
com.yonde.doc.vo.DxDocumentVO
;
import
com.yonde.part.vo.DxPartVO
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.log4j.Logger
;
import
org.springframework.data.domain.PageImpl
;
import
org.springframework.data.domain.PageRequest
;
...
...
@@ -86,6 +87,10 @@ public class DxSearchUtil implements RemoteAccess, Serializable {
boolean
enforce
=
SessionServerHelper
.
manager
.
setAccessEnforced
(
false
);
List
partList
;
List
<
String
>
indices
=
searchQueryCondition
.
getIndices
();
Class
cls
=
WTPart
.
class
;
if
(
StringUtils
.
isNotEmpty
(
searchQueryCondition
.
getName
()))
{
cls
=
WTDocument
.
class
;
}
try
{
SearchItems
searchItems
=
searchQueryCondition
.
getSearchItems
();
if
(
ObjectsUtil
.
isNull
(
searchItems
))
{
...
...
@@ -96,7 +101,7 @@ public class DxSearchUtil implements RemoteAccess, Serializable {
List<SearchItem> items = child.getItems();
}*/
QuerySpec
querySpec
=
DxSearchUtil
.
buildQuerySpec
(
searchItems
,
WTPart
.
clas
s
);
QuerySpec
querySpec
=
DxSearchUtil
.
buildQuerySpec
(
searchItems
,
cl
s
);
/* LatestConfigSpec ls = new LatestConfigSpec();
querySpec = ls.appendSearchCriteria(querySpec);*/
QueryResult
qr
=
PersistenceHelper
.
manager
.
find
((
StatementSpec
)
querySpec
);
...
...
src/com/yonde/common/LinkObjUtil.java
View file @
1bbfbc6c
...
...
@@ -7,14 +7,19 @@ import org.apache.log4j.Logger;
import
wt.doc.WTDocument
;
import
wt.doc.WTDocumentDependencyLink
;
import
wt.doc.WTDocumentHelper
;
import
wt.doc.WTDocumentMaster
;
import
wt.fc.Persistable
;
import
wt.fc.PersistenceHelper
;
import
wt.fc.PersistenceServerHelper
;
import
wt.fc.QueryResult
;
import
wt.part.WTPart
;
import
wt.part.WTPartDescribeLink
;
import
wt.part.WTPartReferenceLink
;
import
wt.session.SessionServerHelper
;
import
wt.util.WTException
;
import
java.lang.reflect.InvocationTargetException
;
import
java.rmi.RemoteException
;
import
java.util.ArrayList
;
import
java.util.List
;
import
static
org
.
apache
.
commons
.
lang
.
StringUtils
.
isNotBlank
;
...
...
@@ -314,8 +319,6 @@ public class LinkObjUtil {
* 获取部件下的所有层子件。
*
* @param part
* @param partList
* @param isA
* @throws WTException
*//*
public static void getAllUsesPartList(WTPart part, ArrayList<WTPart> partList, boolean needVersionA, String containerName) throws WTException {
...
...
@@ -374,4 +377,63 @@ public class LinkObjUtil {
SessionServerHelper.manager.setAccessEnforced(accessEnforceds);
}
}*/
public
static
WTPartReferenceLink
associateRefDocToPart
(
WTPart
part
,
WTDocument
doc
)
throws
WTException
{
boolean
enforce
=
wt
.
session
.
SessionServerHelper
.
manager
.
setAccessEnforced
(
false
);
WTPartReferenceLink
wtpartreferencelink
=
null
;
try
{
WTDocumentMaster
docMasterRoleB
=
(
WTDocumentMaster
)
doc
.
getMaster
();
// 检查是否文档间已经有连接,得到WTPartReferenceLink
QueryResult
queryresult
=
PersistenceHelper
.
manager
.
find
(
WTPartReferenceLink
.
class
,
part
,
WTPartReferenceLink
.
REFERENCED_BY_ROLE
,
docMasterRoleB
);
System
.
out
.
println
(
">>>associateRefDocToPart>>>part<<<<"
+
part
.
getNumber
()+
">>><<doc>>"
+
doc
.
getNumber
()+
"<<<queryresult.size()>>>"
+(
queryresult
.
size
()));
if
(
queryresult
==
null
||
queryresult
.
size
()
==
0
)
{
// 如果没有连接,则建立
wtpartreferencelink
=
WTPartReferenceLink
.
newWTPartReferenceLink
(
part
,
docMasterRoleB
);
PersistenceServerHelper
.
manager
.
insert
(
wtpartreferencelink
);
wtpartreferencelink
=
(
WTPartReferenceLink
)
PersistenceHelper
.
manager
.
refresh
(
wtpartreferencelink
);
}
}
finally
{
SessionServerHelper
.
manager
.
setAccessEnforced
(
enforce
);
}
return
wtpartreferencelink
;
}
/**
* 创建文档和部件的描述关系
*
* @param wtpart
* @param wtdocument
* @return
* @throws Exception
*/
public
static
WTPartDescribeLink
createPartDocDescLink
(
WTPart
wtpart
,
WTDocument
wtdocument
)
throws
WTException
{
WTPartDescribeLink
link
=
getPartDescribeLink
(
wtpart
,
wtdocument
);
if
(
link
==
null
)
{
link
=
WTPartDescribeLink
.
newWTPartDescribeLink
(
wtpart
,
wtdocument
);
PersistenceServerHelper
.
manager
.
insert
(
link
);
link
=
(
WTPartDescribeLink
)
PersistenceHelper
.
manager
.
refresh
(
link
);
}
return
link
;
}
/**
* 获取part和文档描述关系
*
* @param wtpart
* @param wtdocument
* @return
* @throws WTException
*/
public
static
WTPartDescribeLink
getPartDescribeLink
(
WTPart
wtpart
,
WTDocument
wtdocument
)
throws
WTException
{
QueryResult
queryresult
=
PersistenceHelper
.
manager
.
find
(
wt
.
part
.
WTPartDescribeLink
.
class
,
wtpart
,
WTPartDescribeLink
.
DESCRIBES_ROLE
,
wtdocument
);
if
(
queryresult
==
null
||
queryresult
.
size
()
==
0
)
return
null
;
else
return
(
WTPartDescribeLink
)
queryresult
.
nextElement
();
}
}
src/com/yonde/doc/controller/DxDocController.java
View file @
1bbfbc6c
...
...
@@ -7,13 +7,12 @@ import com.yonde.doc.vo.DxDocumentVO;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
@RestController
@RequestMapping
({
"/DxDocument"
})
@ResponseBody
public
class
DxDocController
extends
AbstractBaseController
{
@Autowired
p
rivate
DxDocService
docService
;
/*
@Autowired
p
ublic DxDocService docService;*/
@GetMapping
({
"/version/getWorkingCopy/{id}"
})
//@ApiOperation("获取工作副本")
...
...
@@ -163,6 +162,6 @@ public class DxDocController extends AbstractBaseController {
protected
DxDocService
getService
()
{
return
docService
;
return
null
;
}
}
src/com/yonde/doc/vo/DxDocumentVO.java
View file @
1bbfbc6c
package
com
.
yonde
.
doc
.
vo
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.fasterxml.jackson.annotation.JsonTypeInfo
;
import
com.yonde.basedata.entity.users.DxUserVO
;
import
com.yonde.basedata.vo.*
;
import
com.yonde.common.DateTimeUtil
;
import
com.yonde.common.IBAHelper
;
import
com.yonde.context.vo.DxContextVO
;
import
wt.doc.WTDocument
;
import
wt.fc.Persistable
;
import
wt.fc.PersistenceHelper
;
import
wt.org.WTOrganization
;
import
wt.org.WTUser
;
import
wt.session.SessionContext
;
import
wt.session.SessionHelper
;
import
wt.type.ClientTypedUtility
;
import
wt.util.WTException
;
import
wt.vc.wip.WorkInProgressHelper
;
import
java.io.Serializable
;
import
java.lang.reflect.InvocationTargetException
;
import
java.rmi.RemoteException
;
import
java.util.Locale
;
import
java.util.Map
;
public
class
DxDocumentVO
extends
RevisionControlledVO
{
@JsonTypeInfo
(
use
=
JsonTypeInfo
.
Id
.
CLASS
,
property
=
"classname"
,
visible
=
true
,
defaultImpl
=
DxDocumentVO
.
class
)
public
class
DxDocumentVO
extends
RevisionControlledVO
implements
Serializable
{
public
DxDocumentVO
()
{
}
...
...
@@ -37,10 +44,6 @@ public class DxDocumentVO extends RevisionControlledVO {
private
boolean
latest
;
private
boolean
checkOuted
;
private
String
subTypeName
;
private
String
subTypeDisplayName
;
private
Long
lifecycleTemplateId
;
private
DxContextVO
dxContext
;
...
...
@@ -62,24 +65,38 @@ public class DxDocumentVO extends RevisionControlledVO {
//TODO
//Team team = TeamHelper.service.getTeam("");
//team.getOwnership().
WTOrganization
organization
=
wtDoc
.
getOrganization
();
this
.
setDxOrganization
(
new
DxOrganizationVO
(
organization
));
this
.
setMasterVO
(
new
DxMasterVO
(
wtDoc
));
this
.
setVersion
(
new
DxVersionVO
(
wtDoc
));
this
.
setDxContext
(
new
DxContextVO
(
wtDoc
.
getContainer
()));
this
.
setModifier
(
new
DxUserVO
(
wtDoc
.
getModifier
().
getPrincipal
()));
this
.
setCreator
(
new
DxUserVO
(
wtDoc
.
getCreator
().
getPrincipal
()));
this
.
dynamicAttrs
=
IBAHelper
.
getAllIBAValues
(
wtDoc
);
this
.
state
=
wtDoc
.
getState
().
getState
().
getDisplay
(
Locale
.
SIMPLIFIED_CHINESE
);
this
.
subTypeName
=
ClientTypedUtility
.
getTypeIdentifier
(
wtDoc
).
getTypename
();
this
.
subTypeDisplayName
=
ClientTypedUtility
.
getLocalizedTypeName
(
wtDoc
,
Locale
.
SIMPLIFIED_CHINESE
);
this
.
latest
=
wtDoc
.
isLatestIteration
();
this
.
checkOuted
=
WorkInProgressHelper
.
isCheckedOut
(
wtDoc
);
SessionContext
previous
=
SessionContext
.
newContext
();
try
{
if
(
wtDoc
==
null
)
{
return
;
}
this
.
wtDoc
=
wtDoc
;
// To set the user of the session to be the administrator
SessionHelper
.
manager
.
setAdministrator
();
WTOrganization
organization
=
wtDoc
.
getOrganization
();
this
.
setDxOrganization
(
new
DxOrganizationVO
(
organization
));
this
.
setMasterVO
(
new
DxMasterVO
(
wtDoc
));
this
.
setVersion
(
new
DxVersionVO
(
wtDoc
));
this
.
setDxContext
(
new
DxContextVO
(
wtDoc
.
getContainer
()));
this
.
name
=
wtDoc
.
getName
();
this
.
number
=
wtDoc
.
getNumber
();
this
.
setModifier
(
new
DxUserVO
(
wtDoc
.
getModifier
().
getPrincipal
()));
this
.
setCreator
(
new
DxUserVO
(
wtDoc
.
getCreator
().
getPrincipal
()));
this
.
dynamicAttrs
=
IBAHelper
.
getAllIBAValues
(
wtDoc
);
this
.
state
=
wtDoc
.
getState
().
getState
().
toString
();
//this.subTypeName = ClientTypedUtility.getTypeIdentifier(wtDoc).getTypename();
this
.
subTypeName
=
"managementDoc"
;
//TODO 要映射
this
.
subTypeDisplayName
=
ClientTypedUtility
.
getLocalizedTypeName
(
wtDoc
,
Locale
.
SIMPLIFIED_CHINESE
);
this
.
latest
=
wtDoc
.
isLatestIteration
();
this
.
checkOuted
=
WorkInProgressHelper
.
isCheckedOut
(
wtDoc
);
this
.
setOperator
(
"NO_CHANGE"
);
this
.
lifecycleTemplateId
=
PersistenceHelper
.
getObjectIdentifier
(
wtDoc
.
getLifeCycleTemplate
().
getObject
()).
getId
();
}
finally
{
SessionContext
.
setContext
(
previous
);
}
this
.
lifecycleTemplateId
=
PersistenceHelper
.
getObjectIdentifier
(
wtDoc
.
getLifeCycleTemplate
().
getObject
()).
getId
();
}
public
DxOrganizationVO
getDxOrganization
()
{
...
...
@@ -206,8 +223,28 @@ public class DxDocumentVO extends RevisionControlledVO {
this
.
checkOuted
=
checkOuted
;
}
@Override
public
String
getSubTypeName
()
{
return
subTypeName
;
}
@Override
public
void
setSubTypeName
(
String
subTypeName
)
{
this
.
subTypeName
=
subTypeName
;
}
public
String
getModifyTime
()
{
@Override
public
String
getSubTypeDisplayName
()
{
return
subTypeDisplayName
;
}
@Override
public
void
setSubTypeDisplayName
(
String
subTypeDisplayName
)
{
this
.
subTypeDisplayName
=
subTypeDisplayName
;
}
/*public String getModifyTime() {
return modifyTime;
}
...
...
@@ -258,13 +295,5 @@ public class DxDocumentVO extends RevisionControlledVO {
public void setSubTypeDisplayName(String subTypeDisplayName) {
this.subTypeDisplayName = subTypeDisplayName;
}
@Override
public
String
getDxClassname
()
{
return
this
.
getClass
().
getName
();
}
@Override
public
void
setDxClassname
(
String
var1
)
{
}
*/
}
src/com/yonde/part/controller/DxPartDescribeLinkController.java
0 → 100644
View file @
1bbfbc6c
package
com
.
yonde
.
part
.
controller
;
import
com.alibaba.fastjson.JSON
;
import
com.yonde.basedata.controller.AbstractBaseController
;
import
com.yonde.basedata.entity.api.ApiResult
;
import
com.yonde.part.service.DxPartService
;
import
com.yonde.part.vo.DxPartDescribeLinkVO
;
import
com.yonde.part.vo.DxPartVO
;
import
com.yonde.part.vo.DxUsageLinkVO
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
@RestController
@RequestMapping
(
value
=
"/DxPartDescribeLink"
)
public
class
DxPartDescribeLinkController
extends
AbstractBaseController
{
//@ApiOperation("深度保存对象")
@PostMapping
({
"recursion"
})
public
ApiResult
recursionObj
(
@RequestBody
Map
entity
)
{
//return ApiResult.ok(this.getService().saveRecursion(entity));
try
{
String
jsonString
=
JSON
.
toJSONString
(
entity
);
DxUsageLinkVO
entityVO
=
JSON
.
parseObject
(
jsonString
,
DxUsageLinkVO
.
class
);
entityVO
=
DxPartService
.
createDxPartUsageLink
(
entityVO
);
return
ApiResult
.
ok
(
entityVO
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
ApiResult
.
error
(
"501"
,
e
.
getLocalizedMessage
(),
e
);
}
}
//@ApiOperation("深度保存对象")
@PostMapping
({
"recursions"
})
public
ApiResult
recursionObj
(
@RequestBody
List
<
Object
>
entity
)
{
//return ApiResult.ok(this.getService().saveRecursion(entity));
try
{
String
jsonString
=
JSON
.
toJSONString
(
entity
);
List
<
DxPartDescribeLinkVO
>
entityVOList
=
JSON
.
parseArray
(
jsonString
,
DxPartDescribeLinkVO
.
class
);
List
<
DxPartDescribeLinkVO
>
resultList
=
new
ArrayList
<
DxPartDescribeLinkVO
>();
for
(
DxPartDescribeLinkVO
o
:
entityVOList
)
{
DxPartDescribeLinkVO
entityVO
=
DxPartService
.
createDxPartDesLink
(
o
);
resultList
.
add
(
entityVO
);
}
return
ApiResult
.
ok
(
resultList
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
ApiResult
.
error
(
"501"
,
e
.
getLocalizedMessage
(),
e
);
}
}
@PostMapping
({
"/search/{id}"
})
//@ApiOperation("获取工作副本")
public
List
<
DxPartDescribeLinkVO
>
searchDesLink
(
@PathVariable
Long
id
)
{
List
<
DxPartDescribeLinkVO
>
dxPartDescribeLinkVOS
=
new
ArrayList
<
DxPartDescribeLinkVO
>();
try
{
dxPartDescribeLinkVOS
=
DxPartService
.
searchPartDesLink
(
id
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
dxPartDescribeLinkVOS
;
}
}
src/com/yonde/part/controller/DxPartReferenceLinkController.java
0 → 100644
View file @
1bbfbc6c
package
com
.
yonde
.
part
.
controller
;
import
com.alibaba.fastjson.JSON
;
import
com.yonde.basedata.controller.AbstractBaseController
;
import
com.yonde.basedata.entity.api.ApiResult
;
import
com.yonde.part.service.DxPartService
;
import
com.yonde.part.vo.DxPartReferenceLinkVO
;
import
com.yonde.part.vo.DxPartVO
;
import
com.yonde.part.vo.DxUsageLinkVO
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
@RestController
@RequestMapping
(
value
=
"/DxPartReferenceLink"
)
public
class
DxPartReferenceLinkController
extends
AbstractBaseController
{
//@ApiOperation("深度保存对象")
@PostMapping
({
"recursion"
})
public
ApiResult
recursionObj
(
@RequestBody
Map
entity
)
{
//return ApiResult.ok(this.getService().saveRecursion(entity));
try
{
String
jsonString
=
JSON
.
toJSONString
(
entity
);
DxUsageLinkVO
entityVO
=
JSON
.
parseObject
(
jsonString
,
DxUsageLinkVO
.
class
);
entityVO
=
DxPartService
.
createDxPartUsageLink
(
entityVO
);
return
ApiResult
.
ok
(
entityVO
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
ApiResult
.
error
(
"501"
,
e
.
getLocalizedMessage
(),
e
);
}
}
//@ApiOperation("深度保存对象")
@PostMapping
({
"recursions"
})
public
ApiResult
recursionObj
(
@RequestBody
List
<
Object
>
entity
)
{
//return ApiResult.ok(this.getService().saveRecursion(entity));
try
{
String
jsonString
=
JSON
.
toJSONString
(
entity
);
List
<
DxPartReferenceLinkVO
>
entityVOList
=
JSON
.
parseArray
(
jsonString
,
DxPartReferenceLinkVO
.
class
);
List
<
DxPartReferenceLinkVO
>
resultList
=
new
ArrayList
<
DxPartReferenceLinkVO
>();
for
(
DxPartReferenceLinkVO
o
:
entityVOList
)
{
DxPartReferenceLinkVO
entityVO
=
DxPartService
.
createDxPartRefLink
(
o
);
resultList
.
add
(
entityVO
);
}
return
ApiResult
.
ok
(
resultList
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
ApiResult
.
error
(
"501"
,
e
.
getLocalizedMessage
(),
e
);
}
}
@PostMapping
({
"/search/{id}"
})
//@ApiOperation("获取工作副本")
public
List
<
DxPartReferenceLinkVO
>
searchRefLink
(
@PathVariable
Long
id
)
{
List
<
DxPartReferenceLinkVO
>
dxPartReferenceLinkVOS
=
new
ArrayList
<
DxPartReferenceLinkVO
>();
try
{
dxPartReferenceLinkVOS
=
DxPartService
.
searchPartRefLink
(
id
);
//dxPartVO = DxPartService.checkin(id, node);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
dxPartReferenceLinkVOS
;
}
}
src/com/yonde/part/service/DxPartService.java
View file @
1bbfbc6c
package
com
.
yonde
.
part
.
service
;
import
com.yonde.basedata.data.DxPageImpl
;
import
com.yonde.basedata.entity.users.DxUserVO
;
import
com.yonde.basedata.search.BaseSearchCondition
;
import
com.yonde.basedata.search.SearchQueryCondition
;
import
com.yonde.basedata.vo.IdVO
;
import
com.yonde.common.*
;
import
com.yonde.part.vo.BOMQueryVO
;
import
com.yonde.part.vo.DxPartVO
;
import
com.yonde.part.vo.DxUsageLinkVO
;
import
com.yonde.part.vo.*
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.log4j.Logger
;
import
org.springframework.stereotype.Service
;
import
wt.doc.WTDocument
;
import
wt.doc.WTDocumentMaster
;
import
wt.fc.PersistenceHelper
;
import
wt.fc.QueryResult
;
import
wt.log4j.LogR
;
import
wt.method.RemoteAccess
;
import
wt.method.RemoteMethodServer
;
import
wt.part.WTPart
;
import
wt.part.WTPartHelper
;
import
wt.part.WTPartUsageLink
;
import
wt.part.*
;
import
wt.session.SessionContext
;
import
wt.session.SessionHelper
;
import
wt.util.WTException
;
import
wt.vc.VersionControlHelper
;
import
wt.vc.wip.WorkInProgressHelper
;
import
java.io.Serializable
;
import
java.lang.reflect.InvocationTargetException
;
...
...
@@ -47,7 +48,7 @@ public class DxPartService implements RemoteAccess, Serializable {
}
logger
.
error
(
"findByConfigSpecSelect===111"
+
searchQueryCondition
.
toString
());
/*boolean enforce = SessionServerHelper.manager.setAccessEnforced(false);*/
List
<
IdVO
>
partList
=
DxSearchUtil
.
findByConfigSpecSelect
(
searchQueryCondition
);
;
List
<
IdVO
>
partList
=
DxSearchUtil
.
findByConfigSpecSelect
(
searchQueryCondition
);
return
partList
;
}
...
...
@@ -192,15 +193,21 @@ public class DxPartService implements RemoteAccess, Serializable {
DxPartVO
dxPartVO
=
null
;
try
{
SessionHelper
.
manager
.
setAdministrator
();
logger
.
error
(
"getCopyOf ===="
+
id
);
WTPart
partById
=
DxPartUtil
.
getPartById
(
id
);
if
(
CommonUtil
.
isCheckedOut
(
partById
))
{
WTPart
partByIdCp
=
(
WTPart
)
CommonUtil
.
getWorkingCopyVersion
(
partById
);
dxPartVO
=
new
DxPartVO
(
partByIdCp
);
if
(
ObjectsUtil
.
isNull
(
dxPartVO
.
getLocker
()))
{
dxPartVO
.
setLockerVO
(
partById
);
dxPartVO
.
setLockerVO
(
CommonUtil
.
getPreviousVersion
(
partById
)
);
}
}
else
{
dxPartVO
=
new
DxPartVO
(
partById
);
if
(
WorkInProgressHelper
.
isWorkingCopy
(
partById
)
&&
ObjectsUtil
.
isNull
(
dxPartVO
.
getLocker
()))
{
DxUserVO
dxUserVO
=
new
DxUserVO
(
partById
.
getModifier
().
getPrincipal
());
dxPartVO
.
setLocker
(
dxUserVO
);
dxPartVO
.
setLockerId
(
dxUserVO
.
getId
());
}
}
}
finally
{
...
...
@@ -334,6 +341,55 @@ public class DxPartService implements RemoteAccess, Serializable {
return
dxPartVO
;
}
/**
* 创建部件link
* @param dxPartVO
* @return
* @throws Exception
*/
public
static
DxPartReferenceLinkVO
createDxPartRefLink
(
DxPartReferenceLinkVO
dxPartVO
)
throws
Exception
{
if
(!
RemoteMethodServer
.
ServerFlag
)
{
return
(
DxPartReferenceLinkVO
)
RemoteMethodServer
.
getDefault
().
invoke
(
"createDxPartRefLink"
,
DxPartService
.
class
.
getName
(),
null
,
new
Class
[]
{
DxPartReferenceLinkVO
.
class
},
new
Object
[]
{
dxPartVO
});
}
SessionContext
previous
=
SessionContext
.
newContext
();
try
{
SessionHelper
.
manager
.
setAdministrator
();
WTPartReferenceLink
referenceLink
=
DxPartUtil
.
saveWTPartRefLink
(
dxPartVO
);
System
.
out
.
println
(
"referenceLink===="
+
referenceLink
);
dxPartVO
=
new
DxPartReferenceLinkVO
(
referenceLink
);
}
finally
{
SessionContext
.
setContext
(
previous
);
}
return
dxPartVO
;
}
/**
* 创建部件描述link
* @param dxPartVO
* @return
* @throws Exception
*/
public
static
DxPartDescribeLinkVO
createDxPartDesLink
(
DxPartDescribeLinkVO
dxPartVO
)
throws
Exception
{
if
(!
RemoteMethodServer
.
ServerFlag
)
{
return
(
DxPartDescribeLinkVO
)
RemoteMethodServer
.
getDefault
().
invoke
(
"createDxPartDesLink"
,
DxPartService
.
class
.
getName
(),
null
,
new
Class
[]
{
DxPartDescribeLinkVO
.
class
},
new
Object
[]
{
dxPartVO
});
}
SessionContext
previous
=
SessionContext
.
newContext
();
try
{
SessionHelper
.
manager
.
setAdministrator
();
logger
.
error
(
"dxPartVO===="
+
dxPartVO
);
WTPartDescribeLink
describeLink
=
DxPartUtil
.
saveWTPartDesLink
(
dxPartVO
);
logger
.
error
(
"describeLink===="
+
describeLink
);
dxPartVO
=
new
DxPartDescribeLinkVO
(
describeLink
);
}
finally
{
SessionContext
.
setContext
(
previous
);
}
return
dxPartVO
;
}
/**
* 获取对象
* @param id
...
...
@@ -365,4 +421,58 @@ public class DxPartService implements RemoteAccess, Serializable {
}
return
partVOList
;
}
public
static
List
<
DxPartDescribeLinkVO
>
searchPartDesLink
(
Long
id
)
throws
Exception
{
if
(!
RemoteMethodServer
.
ServerFlag
)
{
return
(
List
)
RemoteMethodServer
.
getDefault
().
invoke
(
"searchPartDesLink"
,
DxPartService
.
class
.
getName
(),
null
,
new
Class
[]
{
Long
.
class
},
new
Object
[]
{
id
});
}
List
<
DxPartDescribeLinkVO
>
resultList
=
new
ArrayList
<
DxPartDescribeLinkVO
>();
SessionContext
previous
=
SessionContext
.
newContext
();
try
{
SessionHelper
.
manager
.
setAdministrator
();
WTPart
partById
=
DxPartUtil
.
getPartById
(
id
);
QueryResult
qr
=
PersistenceHelper
.
manager
.
navigate
(
partById
,
WTPartDescribeLink
.
DESCRIBED_BY_ROLE
,
WTPartDescribeLink
.
class
,
false
);
while
(
qr
!=
null
&&
qr
.
hasMoreElements
())
{
WTPartDescribeLink
nowLink
=
(
WTPartDescribeLink
)
qr
.
nextElement
();
if
(
nowLink
.
getRoleBObject
()
instanceof
WTDocument
)
{
DxPartDescribeLinkVO
describeLinkVO
=
new
DxPartDescribeLinkVO
(
nowLink
);
resultList
.
add
(
describeLinkVO
);
}
}
}
finally
{
SessionContext
.
setContext
(
previous
);
}
return
resultList
;
}
public
static
List
<
DxPartReferenceLinkVO
>
searchPartRefLink
(
Long
id
)
throws
Exception
{
if
(!
RemoteMethodServer
.
ServerFlag
)
{
return
(
List
)
RemoteMethodServer
.
getDefault
().
invoke
(
"searchPartRefLink"
,
DxPartService
.
class
.
getName
(),
null
,
new
Class
[]
{
Long
.
class
},
new
Object
[]
{
id
});
}
List
<
DxPartReferenceLinkVO
>
resultList
=
new
ArrayList
<
DxPartReferenceLinkVO
>();
SessionContext
previous
=
SessionContext
.
newContext
();
try
{
SessionHelper
.
manager
.
setAdministrator
();
WTPart
partById
=
DxPartUtil
.
getPartById
(
id
);
QueryResult
qrRefLink
=
PersistenceHelper
.
manager
.
navigate
(
partById
,
WTPartReferenceLink
.
REFERENCES_ROLE
,
WTPartReferenceLink
.
class
,
false
);
while
(
qrRefLink
!=
null
&&
qrRefLink
.
hasMoreElements
())
{
WTPartReferenceLink
nowLink
=
(
WTPartReferenceLink
)
qrRefLink
.
nextElement
();
if
(
nowLink
.
getRoleBObject
()
instanceof
WTDocumentMaster
)
{
DxPartReferenceLinkVO
referenceLinkVO
=
new
DxPartReferenceLinkVO
(
nowLink
);
resultList
.
add
(
referenceLinkVO
);
}
}
}
finally
{
SessionContext
.
setContext
(
previous
);
}
return
resultList
;
}
}
src/com/yonde/part/vo/DxPartDescribeLinkVO.java
View file @
1bbfbc6c
package
com
.
yonde
.
part
.
vo
;
import
com.fasterxml.jackson.annotation.JsonTypeInfo
;
import
com.yonde.basedata.vo.IdVO
;
import
com.yonde.common.DateTimeUtil
;
import
com.yonde.doc.vo.DxDocumentVO
;
public
class
DxPartDescribeLinkVO
extends
IdVO
{
import
wt.doc.WTDocument
;
import
wt.fc.PersistenceHelper
;
import
wt.part.WTPart
;
import
wt.part.WTPartDescribeLink
;
import
wt.session.SessionContext
;
import
wt.session.SessionHelper
;
import
wt.util.WTException
;
import
java.io.Serializable
;
import
java.lang.reflect.InvocationTargetException
;
import
java.rmi.RemoteException
;
@JsonTypeInfo
(
use
=
JsonTypeInfo
.
Id
.
CLASS
,
property
=
"classname"
,
visible
=
true
,
defaultImpl
=
DxPartDescribeLinkVO
.
class
)
public
class
DxPartDescribeLinkVO
extends
IdVO
implements
Serializable
{
private
DxDocumentVO
target
;
private
DxPartVO
source
;
...
...
@@ -15,6 +34,25 @@ public class DxPartDescribeLinkVO extends IdVO {
// TODO
public
DxPartDescribeLinkVO
()
{
}
public
DxPartDescribeLinkVO
(
WTPartDescribeLink
describeLink
)
throws
WTException
,
RemoteException
,
InvocationTargetException
{
super
(
describeLink
);
SessionContext
previous
=
SessionContext
.
newContext
();
try
{
// To set the user of the session to be the administrator
SessionHelper
.
manager
.
setAdministrator
();
this
.
setSource
(
new
DxPartVO
((
WTPart
)
describeLink
.
getRoleAObject
()));
this
.
sourceId
=
this
.
source
.
getId
();
this
.
setTarget
(
new
DxDocumentVO
((
WTDocument
)
describeLink
.
getRoleBObject
()));
this
.
targetId
=
this
.
target
.
getId
();
}
finally
{
SessionContext
.
setContext
(
previous
);
}
}
public
DxDocumentVO
getTarget
()
{
return
target
;
}
...
...
src/com/yonde/part/vo/DxPartReferenceLinkVO.java
View file @
1bbfbc6c
package
com
.
yonde
.
part
.
vo
;
import
com.fasterxml.jackson.annotation.JsonTypeInfo
;
import
com.yonde.basedata.vo.IdVO
;
import
com.yonde.doc.vo.DxDocumentVO
;
public
class
DxPartReferenceLinkVO
extends
IdVO
{
import
wt.doc.WTDocument
;
import
wt.doc.WTDocumentMaster
;
import
wt.fc.QueryResult
;
import
wt.part.WTPart
;
import
wt.part.WTPartReferenceLink
;
import
wt.session.SessionContext
;
import
wt.session.SessionHelper
;
import
wt.util.WTException
;
import
wt.vc.VersionControlHelper
;
import
wt.vc.wip.WorkInProgressHelper
;
import
java.io.Serializable
;
import
java.lang.reflect.InvocationTargetException
;
import
java.rmi.RemoteException
;
@JsonTypeInfo
(
use
=
JsonTypeInfo
.
Id
.
CLASS
,
property
=
"classname"
,
visible
=
true
,
defaultImpl
=
DxPartReferenceLinkVO
.
class
)
public
class
DxPartReferenceLinkVO
extends
IdVO
implements
Serializable
{
private
DxDocumentVO
target
;
private
DxPartVO
source
;
...
...
@@ -15,6 +36,34 @@ public class DxPartReferenceLinkVO extends IdVO {
// TODO
public
DxPartReferenceLinkVO
()
{
}
public
DxPartReferenceLinkVO
(
WTPartReferenceLink
referenceLink
)
throws
WTException
,
RemoteException
,
InvocationTargetException
{
super
(
referenceLink
);
SessionContext
previous
=
SessionContext
.
newContext
();
try
{
// To set the user of the session to be the administrator
SessionHelper
.
manager
.
setAdministrator
();
this
.
setSource
(
new
DxPartVO
((
WTPart
)
referenceLink
.
getRoleAObject
()));
this
.
sourceId
=
this
.
source
.
getId
();
WTDocumentMaster
documentMaster
=
(
WTDocumentMaster
)
referenceLink
.
getRoleBObject
();
QueryResult
qrv
=
VersionControlHelper
.
service
.
allVersionsOf
(
documentMaster
);
WTDocument
document
=
null
;
while
(
qrv
.
hasMoreElements
())
{
document
=
(
WTDocument
)
qrv
.
nextElement
();
if
(!
WorkInProgressHelper
.
isWorkingCopy
(
document
))
{
this
.
setTarget
(
new
DxDocumentVO
(
document
));
break
;
}
}
this
.
targetId
=
this
.
target
.
getId
();
}
finally
{
SessionContext
.
setContext
(
previous
);
}
}
public
DxDocumentVO
getTarget
()
{
return
target
;
}
...
...
src/com/yonde/part/vo/DxPartVO.java
View file @
1bbfbc6c
...
...
@@ -102,9 +102,9 @@ public class DxPartVO extends RevisionControlledVO implements Serializable {
//ObjectMapper m = new ObjectMapper();
WTOrganization
organization
=
wtPart
.
getOrganization
();
this
.
setDxOrganization
(
new
DxOrganizationVO
(
organization
));
this
.
originId
=
id
;
WTPart
previousVersion
=
CommonUtil
.
getPreviousVersion
(
wtPart
);
this
.
predecessorId
=
PersistenceHelper
.
getObjectIdentifier
(
previousVersion
).
getId
();
this
.
originId
=
predecessorId
;
this
.
name
=
wtPart
.
getName
();
this
.
number
=
wtPart
.
getNumber
();
this
.
setMasterVO
(
new
DxMasterVO
(
wtPart
));
...
...
@@ -126,7 +126,7 @@ public class DxPartVO extends RevisionControlledVO implements Serializable {
this
.
endItem
=
wtPart
.
isEndItem
();
this
.
dxView
=
new
DxViewVO
(
wtPart
);
this
.
dxViewId
=
dxView
.
getLevel
();
}
finally
{
}
finally
{
SessionContext
.
setContext
(
previous
);
}
...
...
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