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
52e269b4
Commit
52e269b4
authored
Apr 16, 2023
by
shyWang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
PDM前端改造
更改相关
parent
09bc7ce6
Show whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
1567 additions
and
511 deletions
+1567
-511
AbstractBaseController.java
...com/yonde/basedata/controller/AbstractBaseController.java
+24
-0
SearchOperatorEnumUtil.java
src/com/yonde/basedata/search/SearchOperatorEnumUtil.java
+7
-1
BaseSearchService.java
src/com/yonde/basedata/service/BaseSearchService.java
+39
-0
DxMasterVO.java
src/com/yonde/basedata/vo/DxMasterVO.java
+13
-0
DxVersionVO.java
src/com/yonde/basedata/vo/DxVersionVO.java
+15
-0
RevisionControlledVO.java
src/com/yonde/basedata/vo/RevisionControlledVO.java
+5
-5
DxChangeOrderController.java
src/com/yonde/change/controller/DxChangeOrderController.java
+66
-15
DXChangeOrderService.java
src/com/yonde/change/service/DXChangeOrderService.java
+432
-45
WTChangeDataUtil.java
src/com/yonde/change/util/WTChangeDataUtil.java
+137
-149
DxChangeAffectedDataVo.java
src/com/yonde/change/vo/DxChangeAffectedDataVo.java
+19
-5
DxChangeAfterDataVo.java
src/com/yonde/change/vo/DxChangeAfterDataVo.java
+7
-1
DxChangeItemVo.java
src/com/yonde/change/vo/DxChangeItemVo.java
+176
-0
DxReportedAgainstVo.java
src/com/yonde/change/vo/DxReportedAgainstVo.java
+13
-3
DxAddressedByVo.java
src/com/yonde/change/vo/ecn/DxAddressedByVo.java
+15
-1
DxChangeNoticeVo.java
src/com/yonde/change/vo/ecn/DxChangeNoticeVo.java
+12
-2
DxChangeRequestVo.java
src/com/yonde/change/vo/ecr/DxChangeRequestVo.java
+25
-1
DxFormalizedByVo.java
src/com/yonde/change/vo/ecr/DxFormalizedByVo.java
+74
-0
DxProblemReportVo.java
src/com/yonde/change/vo/pr/DxProblemReportVo.java
+31
-2
ChangeOrderUtil.java
src/com/yonde/common/ChangeOrderUtil.java
+307
-256
CommonUtil.java
src/com/yonde/common/CommonUtil.java
+2
-4
DxPartUtil.java
src/com/yonde/common/DxPartUtil.java
+3
-0
DxSearchUtil.java
src/com/yonde/common/DxSearchUtil.java
+24
-4
ObjectsUtil.java
src/com/yonde/common/ObjectsUtil.java
+1
-1
PartUtil.java
src/com/yonde/common/PartUtil.java
+48
-0
RfUtil.java
src/com/yonde/common/RfUtil.java
+9
-6
DxPartService.java
src/com/yonde/part/service/DxPartService.java
+8
-2
WfcProcessService.java
src/com/yonde/wfc/service/WfcProcessService.java
+31
-4
DxWfBizExtInfo.java
src/com/yonde/wfc/vo/DxWfBizExtInfo.java
+23
-3
DxWfProcessTaskVO.java
src/com/yonde/wfc/vo/DxWfProcessTaskVO.java
+1
-1
No files found.
src/com/yonde/basedata/controller/AbstractBaseController.java
View file @
52e269b4
...
...
@@ -14,6 +14,7 @@ import com.yonde.part.vo.DxUsageLinkVO;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
...
...
@@ -27,6 +28,11 @@ public class AbstractBaseController {
return
ApiResult
.
ok
(
""
);
}
@GetMapping
({
"/findWTObj/{id}"
})
public
ApiResult
<
LifecycleTemplateVO
>
findWTObj
(
@PathVariable
Long
id
)
{
return
ApiResult
.
ok
(
""
);
}
//@ApiOperation("配置规范查询")
@PostMapping
({
"findBySpec"
})
Map
<
String
,
Object
>
findByConfigSpec
(
@RequestBody
SearchQueryCondition
specSearch
)
{
...
...
@@ -76,6 +82,24 @@ public class AbstractBaseController {
}
}
@PostMapping
({
"/version/newVersions"
})
public
List
newVersions
(
@RequestBody
Map
idMap
,
HttpServletRequest
request
)
{
String
ids
=
(
String
)
idMap
.
get
(
"ids"
);
List
<
String
>
idList
=
new
ArrayList
<
String
>();
if
(
ObjectsUtil
.
nonNull
(
ids
))
{
String
[]
split
=
ids
.
split
(
","
);
idList
=
new
ArrayList
<
String
>(
Arrays
.
asList
(
split
));
}
String
portUserName
=
request
.
getHeader
(
"portUserName"
);
List
list
=
new
ArrayList
<
String
>();
try
{
list
=
BaseSearchService
.
newVersions
(
idList
,
portUserName
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
list
;
}
public
SearchItems
getPermSearchItems
(
BaseSearchCondition
permSearchParams
)
{
SearchItems
searchItems
=
new
SearchItems
();
searchItems
.
setOperator
(
SearchItems
.
BooleanOperator
.
AND
);
...
...
src/com/yonde/basedata/search/SearchOperatorEnumUtil.java
View file @
52e269b4
...
...
@@ -2,6 +2,9 @@ package com.yonde.basedata.search;
import
com.yonde.basedata.entity.users.DxUserVO
;
import
com.yonde.basedata.vo.*
;
import
com.yonde.change.vo.DxChangeAffectedDataVo
;
import
com.yonde.change.vo.DxChangeAfterDataVo
;
import
com.yonde.change.vo.DxReportedAgainstVo
;
import
com.yonde.change.vo.ecn.DxChangeNoticeVo
;
import
com.yonde.change.vo.ecr.DxChangeRequestVo
;
import
com.yonde.change.vo.pr.DxProblemReportVo
;
...
...
@@ -101,6 +104,7 @@ public class SearchOperatorEnumUtil {
public
static
void
initTypeMap
()
{
typeMap
.
put
(
"DxDocument"
,
WTDocument
.
class
);
typeMap
.
put
(
"doc"
,
WTDocument
.
class
);
typeMap
.
put
(
"DxPart"
,
WTPart
.
class
);
typeMap
.
put
(
"DxChangeRequest"
,
WTChangeRequest2
.
class
);
typeMap
.
put
(
"DxChangeNotice"
,
WTChangeOrder2
.
class
);
...
...
@@ -152,7 +156,9 @@ public class SearchOperatorEnumUtil {
typeItemMap
.
put
(
DxChangeRequestVo
.
class
,
"com.yonde.dcs.cmt.common.entity.vo.DxChangeRequestVo"
);
typeItemMap
.
put
(
DxChangeNoticeVo
.
class
,
"com.yonde.dcs.cmt.common.entity.vo.DxChangeNoticeVo"
);
typeItemMap
.
put
(
DxProblemReportVo
.
class
,
"com.yonde.dcs.cmt.common.entity.vo.DxProblemReportVo"
);
typeItemMap
.
put
(
DxReportedAgainstVo
.
class
,
"com.yonde.dcs.cmt.common.entity.vo.DxReportedAgainstVo"
);
typeItemMap
.
put
(
DxChangeAffectedDataVo
.
class
,
"com.yonde.dcs.cmt.common.entity.vo.DxChangeAffectedDataVo"
);
typeItemMap
.
put
(
DxChangeAfterDataVo
.
class
,
"com.yonde.dcs.cmt.common.entity.vo.DxChangeAfterDataVo"
);
//TODO add
}
...
...
src/com/yonde/basedata/service/BaseSearchService.java
View file @
52e269b4
...
...
@@ -9,6 +9,8 @@ import com.yonde.basedata.vo.ObjFileLinkVO;
import
com.yonde.common.*
;
import
com.yonde.doc.vo.DxDocumentVO
;
import
com.yonde.part.service.DxPartService
;
import
com.yonde.part.vo.DxPart
;
import
com.yonde.part.vo.DxPartVO
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.log4j.Logger
;
...
...
@@ -27,6 +29,7 @@ import wt.method.RemoteMethodServer;
import
wt.part.WTPart
;
import
wt.session.SessionContext
;
import
wt.session.SessionHelper
;
import
wt.session.SessionServerHelper
;
import
wt.util.WTProperties
;
import
java.io.File
;
...
...
@@ -105,6 +108,42 @@ public class BaseSearchService <V extends IdVO> implements RemoteAccess {
return
false
;
}
public
static
List
newVersions
(
List
<
String
>
idList
,
String
userName
)
throws
Exception
{
if
(!
RemoteMethodServer
.
ServerFlag
)
{
return
(
List
)
RemoteMethodServer
.
getDefault
().
invoke
(
"newVersions"
,
BaseSearchService
.
class
.
getName
(),
null
,
new
Class
[]
{
List
.
class
,
String
.
class
},
new
Object
[]
{
idList
,
userName
});
}
CommonUtil
.
initSessionContext
(
userName
);
List
resultList
=
new
ArrayList
();
boolean
enforced
=
SessionServerHelper
.
manager
.
setAccessEnforced
(
false
);
try
{
for
(
String
id
:
idList
)
{
WTObject
wtObjectById
=
RfUtil
.
getWTObjectById
(
Long
.
valueOf
(
id
));
String
comment
=
userName
+
"修订"
;
if
(
wtObjectById
instanceof
WTPart
)
{
WTPart
wtPart
=
(
WTPart
)
wtObjectById
;
wtPart
=
PartUtil
.
reviseWTPart
(
wtPart
,
comment
);
DxPartVO
dxPart
=
new
DxPartVO
(
wtPart
);
resultList
.
add
(
dxPart
);
continue
;
}
if
(
wtObjectById
instanceof
WTDocument
)
{
WTDocument
wtDocument
=
(
WTDocument
)
wtObjectById
;
wtDocument
=
DocUtil
.
reviseWTDocument
(
wtDocument
,
comment
);
DxDocumentVO
dxDocumentVO
=
new
DxDocumentVO
(
wtDocument
);
resultList
.
add
(
dxDocumentVO
);
continue
;
}
//TODO other type add
}
}
finally
{
SessionServerHelper
.
manager
.
setAccessEnforced
(
enforced
);
}
return
resultList
;
}
public
static
void
uploadFile
(
CommonsMultipartFile
file
,
ObjFileLinkVO
fileForm
)
throws
Exception
{
if
(!
RemoteMethodServer
.
ServerFlag
)
{
RemoteMethodServer
.
getDefault
().
invoke
(
"uploadFile"
,
BaseSearchService
.
class
.
getName
(),
null
,
...
...
src/com/yonde/basedata/vo/DxMasterVO.java
View file @
52e269b4
...
...
@@ -2,6 +2,7 @@ package com.yonde.basedata.vo;
import
com.yonde.basedata.entity.users.DxUserVO
;
import
com.yonde.common.DateTimeUtil
;
import
wt.change2.VersionableChangeItem
;
import
wt.doc.WTDocument
;
import
wt.doc.WTDocumentMaster
;
import
wt.enterprise.RevisionControlled
;
...
...
@@ -56,6 +57,18 @@ public class DxMasterVO extends IdVO implements Serializable {
}
}
public
DxMasterVO
(
VersionableChangeItem
changeItem
)
throws
WTException
{
this
.
id
=
PersistenceHelper
.
getObjectIdentifier
(
changeItem
).
getId
();
this
.
objectType
=
changeItem
.
getDisplayType
().
toString
();
this
.
number
=
changeItem
.
getName
();
this
.
name
=
changeItem
.
getName
();
this
.
setCreator
(
new
DxUserVO
(
changeItem
.
getCreator
().
getPrincipal
()));
this
.
setModifier
(
new
DxUserVO
(
changeItem
.
getModifier
().
getPrincipal
()));
this
.
creatorId
=
this
.
getCreator
().
getUserId
();
this
.
modifierId
=
this
.
getModifier
().
getUserId
();
this
.
subTypeName
=
"DxMaster"
;
}
public
String
getNumber
()
{
return
number
;
}
...
...
src/com/yonde/basedata/vo/DxVersionVO.java
View file @
52e269b4
package
com
.
yonde
.
basedata
.
vo
;
import
com.yonde.common.DateTimeUtil
;
import
wt.change2.VersionableChangeItem
;
import
wt.enterprise.RevisionControlled
;
import
wt.fc.PersistenceHelper
;
import
wt.util.WTException
;
...
...
@@ -41,6 +42,20 @@ public class DxVersionVO implements Serializable {
}
}
public
DxVersionVO
(
VersionableChangeItem
controlled
)
throws
WTException
{
if
(
null
!=
controlled
)
{
this
.
versionKey
=
controlled
.
getVersionIdentifier
().
getValue
();
this
.
masterId
=
PersistenceHelper
.
getObjectIdentifier
(
controlled
.
getMaster
()).
getId
();
//this.master = new DxMasterVO(controlled);
this
.
checkOuted
=
false
;
this
.
versionId
=
PersistenceHelper
.
getObjectIdentifier
(
controlled
).
getId
();
this
.
displayVersion
=
this
.
versionKey
+
"."
+
controlled
.
getIterationIdentifier
().
getValue
();
this
.
iterationId
=
controlled
.
getIterationIdentifier
().
getValue
();
this
.
iterationCreateTime
=
DateTimeUtil
.
timeStampToString
(
controlled
.
getCreateTimestamp
());
this
.
iterationCreateId
=
PersistenceHelper
.
getObjectIdentifier
(
controlled
.
getCreator
().
getObject
()).
getId
();
}
}
public
String
getVersionKey
()
{
return
versionKey
;
}
...
...
src/com/yonde/basedata/vo/RevisionControlledVO.java
View file @
52e269b4
...
...
@@ -97,13 +97,13 @@ public class RevisionControlledVO extends IdVO implements Serializable {
}
else
{
if
(
WorkInProgressHelper
.
isCheckedOut
(
object
))
{
Workable
copyVersion
=
CommonUtil
.
getWorkingCopyVersion
(
object
);
if
(
ObjectsUtil
.
is
Null
(
copyVersion
.
getLocker
()))
{
if
(
ObjectsUtil
.
non
Null
(
copyVersion
.
getLocker
()))
{
if
(
copyVersion
instanceof
WTDocument
)
{
WTDocument
previousVersionDoc
=
CommonUtil
.
getPreviousVersionDoc
((
WTDocument
)
copyVersion
);
this
.
setLockerSign
(
previousVersionDoc
);
//
WTDocument previousVersionDoc = CommonUtil.getPreviousVersionDoc((WTDocument) copyVersion);
this
.
setLockerSign
(
(
WTDocument
)
copyVersion
);
}
else
if
(
copyVersion
instanceof
WTPart
)
{
WTPart
wtPart
=
CommonUtil
.
getPreviousVersion
((
WTPart
)
copyVersion
);
this
.
setLockerSign
(
wtPart
);
//
WTPart wtPart = CommonUtil.getPreviousVersion((WTPart) copyVersion);
this
.
setLockerSign
(
(
WTPart
)
copyVersion
);
}
// TODO
}
...
...
src/com/yonde/change/controller/DxChangeOrderController.java
View file @
52e269b4
...
...
@@ -7,16 +7,16 @@ import com.yonde.basedata.vo.IdVO;
import
com.yonde.change.service.DXChangeOrderService
;
import
com.yonde.change.vo.DxChangeAffectedDataVo
;
import
com.yonde.change.vo.DxReportedAgainstVo
;
import
com.yonde.change.vo.ecn.DxAddressedByVo
;
import
com.yonde.change.vo.ecn.DxChangeNoticeVo
;
import
com.yonde.change.vo.ecr.DxChangeRequestVo
;
import
com.yonde.change.vo.ecr.DxFormalizedByVo
;
import
com.yonde.change.vo.pr.DxProblemReportVo
;
import
com.yonde.common.ObjectsUtil
;
import
com.yonde.doc.service.DxDocService
;
import
com.yonde.doc.vo.DxDocumentVO
;
import
com.yonde.part.service.DxPartService
;
import
com.yonde.part.vo.DxPartVO
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.log4j.Logger
;
import
org.springframework.web.bind.annotation.*
;
import
wt.log4j.LogR
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.ArrayList
;
...
...
@@ -28,25 +28,27 @@ import java.util.Map;
@RequestMapping
({
"/changeOrder"
})
public
class
DxChangeOrderController
extends
AbstractBaseController
{
private
static
final
Logger
log
=
LogR
.
getLogger
(
DxChangeOrderController
.
class
.
getName
());
//@ApiOperation("深度保存对象")
@PostMapping
({
"createPR"
})
public
ApiResult
recursionPR
(
@RequestBody
Map
entity
,
HttpServletRequest
request
)
{
DxProblemReportVo
pr
=
null
;
try
{
String
jsonString
=
JSON
.
toJSONString
(
entity
);
log
.
error
(
"PR param======"
+
entity
);
DxProblemReportVo
entityVO
=
JSON
.
parseObject
(
jsonString
,
DxProblemReportVo
.
class
);
log
.
error
(
"PR entityVO======"
+
entityVO
);
String
portUserName
=
request
.
getHeader
(
"portUserName"
);
if
(
ObjectsUtil
.
nonNull
(
entityVO
.
getOperator
())
&&
entityVO
.
getOperator
().
equals
(
"
NO_CHANGE
"
))
{
if
(
ObjectsUtil
.
nonNull
(
entityVO
.
getOperator
())
&&
entityVO
.
getOperator
().
equals
(
"
MODIFY
"
))
{
//更新link
//part = DxPartService.updateDxPartUsageLink(entityVO
);
pr
=
DXChangeOrderService
.
modifyPR
(
entityVO
,
portUserName
);
}
else
{
pr
=
DXChangeOrderService
.
createPR
(
entityVO
,
portUserName
);
}
return
ApiResult
.
ok
(
pr
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
ApiResult
.
error
(
"501"
,
e
.
getLocalizedMessage
(),
e
);
return
ApiResult
.
error
(
"501"
,
e
.
get
Cause
().
get
LocalizedMessage
(),
e
);
}
}
...
...
@@ -58,16 +60,16 @@ public class DxChangeOrderController extends AbstractBaseController {
String
jsonString
=
JSON
.
toJSONString
(
entity
);
DxChangeRequestVo
entityVO
=
JSON
.
parseObject
(
jsonString
,
DxChangeRequestVo
.
class
);
String
portUserName
=
request
.
getHeader
(
"portUserName"
);
if
(
ObjectsUtil
.
nonNull
(
entityVO
.
getOperator
())
&&
entityVO
.
getOperator
().
equals
(
"
NO_CHANGE
"
))
{
if
(
ObjectsUtil
.
nonNull
(
entityVO
.
getOperator
())
&&
entityVO
.
getOperator
().
equals
(
"
MODIFY
"
))
{
//更新link
//part = DxPartService.updateDxPartUsageLink(entityVO
);
ecr
=
DXChangeOrderService
.
modifyECR
(
entityVO
,
portUserName
);
}
else
{
ecr
=
DXChangeOrderService
.
createECR
(
entityVO
,
portUserName
);
}
return
ApiResult
.
ok
(
ecr
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
ApiResult
.
error
(
"501"
,
e
.
getLocalizedMessage
(),
e
);
return
ApiResult
.
error
(
"501"
,
e
.
get
Cause
().
get
LocalizedMessage
(),
e
);
}
}
...
...
@@ -79,16 +81,16 @@ public class DxChangeOrderController extends AbstractBaseController {
String
jsonString
=
JSON
.
toJSONString
(
entity
);
DxChangeNoticeVo
entityVO
=
JSON
.
parseObject
(
jsonString
,
DxChangeNoticeVo
.
class
);
String
portUserName
=
request
.
getHeader
(
"portUserName"
);
if
(
ObjectsUtil
.
nonNull
(
entityVO
.
getOperator
())
&&
entityVO
.
getOperator
().
equals
(
"
NO_CHANGE
"
))
{
if
(
ObjectsUtil
.
nonNull
(
entityVO
.
getOperator
())
&&
entityVO
.
getOperator
().
equals
(
"
MODIFY
"
))
{
//更新link
//part = DxPartService.updateDxPartUsageLink(entityVO
);
ecn
=
DXChangeOrderService
.
modifyECN
(
entityVO
,
portUserName
);
}
else
{
ecn
=
DXChangeOrderService
.
createECN
(
entityVO
,
portUserName
);
}
return
ApiResult
.
ok
(
ecn
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
ApiResult
.
error
(
"501"
,
e
.
getLocalizedMessage
(),
e
);
return
ApiResult
.
error
(
"501"
,
e
.
get
Cause
().
get
LocalizedMessage
(),
e
);
}
}
...
...
@@ -111,9 +113,39 @@ public class DxChangeOrderController extends AbstractBaseController {
return
resultList
;
}
@GetMapping
({
"/DxAddressedBy/search"
})
//@ApiOperation("获取ECN相关ECR")
public
List
getDxAddressedBy
(
@RequestParam
(
value
=
"targetId"
,
required
=
false
)
String
targetId
,
@RequestParam
(
value
=
"sourceId"
,
required
=
false
)
String
sourceId
,
HttpServletRequest
request
)
{
List
<
DxAddressedByVo
>
resultList
=
new
ArrayList
<
DxAddressedByVo
>();
try
{
if
(
StringUtils
.
isNotEmpty
(
targetId
))
{
resultList
=
DXChangeOrderService
.
getECRByECN
(
Long
.
valueOf
(
targetId
));
return
resultList
;
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
resultList
;
}
@GetMapping
({
"/DxFormalizedBy/search"
})
//@ApiOperation("获取ECN相关ECR")
public
List
getDxFormalizedBy
(
@RequestParam
(
value
=
"targetId"
,
required
=
false
)
String
targetId
,
@RequestParam
(
value
=
"sourceId"
,
required
=
false
)
String
sourceId
,
HttpServletRequest
request
)
{
List
<
DxFormalizedByVo
>
resultList
=
new
ArrayList
<
DxFormalizedByVo
>();
try
{
if
(
StringUtils
.
isNotEmpty
(
sourceId
))
{
resultList
=
DXChangeOrderService
.
getIssueByECR
(
Long
.
valueOf
(
sourceId
));
return
resultList
;
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
resultList
;
}
@GetMapping
({
"/DxChangeAffectedData/search"
})
//@ApiOperation("获取更改相关对象")
public
List
getChangeAffectedDataLink
(
@RequestParam
(
value
=
"targetId"
,
required
=
false
)
String
targetId
,
@RequestParam
(
value
=
"sourceId"
,
required
=
false
)
String
sourceId
,
@RequestParam
(
"sourceIdType"
)
String
sourceIdType
,
HttpServletRequest
request
)
{
public
List
getChangeAffectedDataLink
(
@RequestParam
(
value
=
"targetId"
,
required
=
false
)
String
targetId
,
@RequestParam
(
value
=
"sourceId"
,
required
=
false
)
String
sourceId
,
@RequestParam
(
value
=
"sourceIdType"
,
required
=
false
)
String
sourceIdType
,
HttpServletRequest
request
)
{
List
<
DxChangeAffectedDataVo
>
resultList
=
new
ArrayList
<
DxChangeAffectedDataVo
>();
try
{
if
(
StringUtils
.
isNotEmpty
(
sourceId
))
{
...
...
@@ -130,6 +162,25 @@ public class DxChangeOrderController extends AbstractBaseController {
return
resultList
;
}
@GetMapping
({
"/DxCMReferenceLink/search"
})
//@ApiOperation("获取更改相关对象")
public
List
getCMReferenceLink
(
@RequestParam
(
value
=
"targetId"
,
required
=
false
)
String
targetId
,
@RequestParam
(
value
=
"sourceId"
,
required
=
false
)
String
sourceId
,
@RequestParam
(
value
=
"sourceIdType"
,
required
=
false
)
String
sourceIdType
,
HttpServletRequest
request
)
{
List
<
DxChangeAffectedDataVo
>
resultList
=
new
ArrayList
<
DxChangeAffectedDataVo
>();
try
{
if
(
StringUtils
.
isNotEmpty
(
sourceId
))
{
resultList
=
DXChangeOrderService
.
getChangeDataLink
(
Long
.
valueOf
(
sourceId
),
"after"
);
return
resultList
;
}
if
(
StringUtils
.
isNotEmpty
(
targetId
))
{
resultList
=
DXChangeOrderService
.
getAffectedDataLink
(
Long
.
valueOf
(
targetId
),
sourceIdType
);
return
resultList
;
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
resultList
;
}
@GetMapping
({
"/version/getWorkingCopy"
})
//@ApiOperation("获取变更对象")
public
IdVO
getWorkingCopy
(
@RequestParam
(
"id"
)
Long
id
,
@RequestParam
(
"type"
)
String
type
,
HttpServletRequest
request
)
{
...
...
src/com/yonde/change/service/DXChangeOrderService.java
View file @
52e269b4
...
...
@@ -11,28 +11,31 @@ import com.yonde.change.vo.DxReportedAgainstVo;
import
com.yonde.change.vo.ecn.DxAddressedByVo
;
import
com.yonde.change.vo.ecn.DxChangeNoticeVo
;
import
com.yonde.change.vo.ecr.DxChangeRequestVo
;
import
com.yonde.change.vo.ecr.DxFormalizedByVo
;
import
com.yonde.change.vo.pr.DxProblemReportVo
;
import
com.yonde.common.*
;
import
com.yonde.context.vo.DxContextVO
;
import
com.yonde.doc.vo.DxDocumentVO
;
import
com.yonde.part.vo.DxPartVO
;
import
org.apache.
commons.lang.StringUtils
;
import
org.apache.
log4j.Logger
;
import
org.springframework.util.CollectionUtils
;
import
wt.change2.*
;
import
wt.doc.WTDocument
;
import
wt.fc.Persistable
;
import
wt.fc.PersistenceHelper
;
import
wt.fc.QueryResult
;
import
wt.fc.WTObject
;
import
wt.fc.collections.WTValuedHashMap
;
import
wt.folder.Folder
;
import
wt.folder.FolderHelper
;
import
wt.inf.container.WTContainer
;
import
wt.log4j.LogR
;
import
wt.method.RemoteAccess
;
import
wt.method.RemoteMethodServer
;
import
wt.part.WTPart
;
import
wt.pom.Transaction
;
import
wt.type.TypeDefinitionReference
;
import
wt.type.TypedUtilityServiceHelper
;
import
wt.util.WTException
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -40,6 +43,8 @@ import java.util.Vector;
public
class
DXChangeOrderService
implements
RemoteAccess
{
private
static
final
Logger
log
=
LogR
.
getLogger
(
DXChangeOrderService
.
class
.
getName
());
public
static
DxProblemReportVo
createPR
(
DxProblemReportVo
entityVO
,
String
userName
)
throws
Exception
{
if
(!
RemoteMethodServer
.
ServerFlag
)
{
...
...
@@ -57,7 +62,10 @@ public class DXChangeOrderService implements RemoteAccess {
}
}
if
(
ObjectsUtil
.
isNull
(
changeIssue
))
{
changeIssue
=
WTChangeIssue
.
newWTChangeIssue
(
""
);
changeIssue
=
WTChangeIssue
.
newWTChangeIssue
();
TypeDefinitionReference
tydef
=
TypedUtilityServiceHelper
.
service
.
getTypeDefinitionReference
(
"wt.change2.WTChangeIssue"
);
changeIssue
.
setTypeDefinitionReference
(
tydef
);
}
changeIssue
.
setNumber
(
entityVO
.
getNumber
());
changeIssue
.
setName
(
entityVO
.
getName
());
...
...
@@ -67,7 +75,7 @@ public class DXChangeOrderService implements RemoteAccess {
container
=
ContainerUtil
.
getContainerByName
(
contextName
);
}
if
(
ObjectsUtil
.
isNull
(
container
))
{
return
null
;
throw
new
WTException
(
"上下文不可为空!"
)
;
}
if
(
container
!=
null
)
{
changeIssue
.
setContainer
(
container
);
...
...
@@ -83,9 +91,13 @@ public class DXChangeOrderService implements RemoteAccess {
loacationMap
.
put
(
changeIssue
,
location
);
FolderHelper
.
assignLocations
(
loacationMap
);
}
else
{
System
.
out
.
println
(
"未找到工程更改文件夹"
);
throw
new
WTException
(
String
.
format
(
"未找到工程更改文件夹%d"
,
folderPath
)
);
}
}
else
{
throw
new
WTException
(
String
.
format
(
"型号上下文%d不存在"
,
dxContext
.
getName
()));
}
changeIssue
.
setRequester
(
userName
);
log
.
error
(
"PR====="
+
changeIssue
);
changeIssue
=
(
WTChangeIssue
)
ChangeHelper2
.
service
.
saveChangeIssue
(
changeIssue
);
//更新软属性
if
(
ObjectsUtil
.
nonNull
(
entityVO
.
getDynamicAttrs
()))
{
...
...
@@ -97,18 +109,93 @@ public class DXChangeOrderService implements RemoteAccess {
if
(!
CollectionUtils
.
isEmpty
(
reportedAgainsts
))
{
Vector
affectedDataVector
=
new
Vector
();
for
(
DxReportedAgainstVo
reportedAgainst
:
reportedAgainsts
)
{
Long
targetId
=
reportedAgainst
.
getPboId
();
String
pboType
=
reportedAgainst
.
getPboType
();
String
typeStr
=
SearchOperatorEnumUtil
.
typeStrPrefixMap
.
get
(
pboType
);
Persistable
oid
=
CommonUtil
.
getPersistableByOid
(
"OR:"
+
typeStr
+
targetId
);
affectedDataVector
.
add
(
oid
);
//ifc = ChangeOrderUtil.addChangeableToChangeIssue(ifc, (Changeable2) oid);
int
targetId
=
reportedAgainst
.
getPboId
();
log
.
error
(
"PR targetId===="
+
targetId
);
log
.
error
(
"PR targetType===="
+
reportedAgainst
.
getPboType
());
WTObject
wtObjectById
=
RfUtil
.
getWTObjectById
((
long
)
targetId
);
log
.
error
(
"PR 受影响对象===="
+
wtObjectById
);
if
(
ObjectsUtil
.
nonNull
(
wtObjectById
))
{
affectedDataVector
.
add
(
wtObjectById
);
}
}
if
(!
CollectionUtils
.
isEmpty
(
affectedDataVector
))
{
ChangeOrderUtil
.
setIssueAffectedData
(
changeIssue
,
affectedDataVector
);
}
}
return
new
DxProblemReportVo
(
changeIssue
);
}
public
static
DxProblemReportVo
modifyPR
(
DxProblemReportVo
entityVO
,
String
userName
)
throws
Exception
{
if
(!
RemoteMethodServer
.
ServerFlag
)
{
return
(
DxProblemReportVo
)
RemoteMethodServer
.
getDefault
().
invoke
(
"modifyPR"
,
DXChangeOrderService
.
class
.
getName
(),
null
,
new
Class
[]
{
DxProblemReportVo
.
class
,
String
.
class
},
new
Object
[]
{
entityVO
,
userName
});
}
CommonUtil
.
initSessionContext
(
userName
);
WTChangeIssue
changeIssue
=
null
;
if
(
ObjectsUtil
.
nonNull
(
entityVO
.
getId
()))
{
WTObject
objectById
=
RfUtil
.
getWTObjectById
(
entityVO
.
getId
());
if
(
ObjectsUtil
.
nonNull
(
objectById
))
{
changeIssue
=
(
WTChangeIssue
)
objectById
;
}
}
if
(
ObjectsUtil
.
isNull
(
changeIssue
))
{
throw
new
WTException
(
"编辑失败:PR不存在!"
);
}
if
(
ObjectsUtil
.
nonNull
(
entityVO
.
getName
()))
{
changeIssue
.
setName
(
entityVO
.
getName
());
ChangeOrderUtil
.
updateChangeItemName
(
changeIssue
,
entityVO
.
getName
());
}
changeIssue
.
setRequester
(
userName
);
log
.
error
(
"PR====="
+
changeIssue
);
changeIssue
=
(
WTChangeIssue
)
ChangeHelper2
.
service
.
saveChangeIssue
(
changeIssue
);
//更新软属性
if
(
ObjectsUtil
.
nonNull
(
entityVO
.
getDynamicAttrs
()))
{
IBAUtil
.
forceSetIBAValues
(
changeIssue
,
entityVO
.
getDynamicAttrs
());
}
changeIssue
=
(
WTChangeIssue
)
PersistenceHelper
.
manager
.
refresh
(
changeIssue
);
Transaction
ts
=
null
;
try
{
ts
=
new
Transaction
();
ts
.
start
();
ChangeOrderUtil
.
deletePrData
(
changeIssue
);
//设置受影响对象
List
<
DxReportedAgainstVo
>
reportedAgainsts
=
entityVO
.
getReportedAgainsts
();
if
(!
CollectionUtils
.
isEmpty
(
reportedAgainsts
))
{
Vector
affectedDataVector
=
new
Vector
();
for
(
DxReportedAgainstVo
reportedAgainst
:
reportedAgainsts
)
{
long
targetId
=
reportedAgainst
.
getPboId
();
if
(
ObjectsUtil
.
isNull
(
targetId
)
||
targetId
==
0
)
{
targetId
=
reportedAgainst
.
getTarget
().
getId
();
}
log
.
error
(
"PR targetId===="
+
targetId
);
WTObject
wtObjectById
=
RfUtil
.
getWTObjectById
(
targetId
);
log
.
error
(
"PR 受影响对象===="
+
wtObjectById
);
if
(
ObjectsUtil
.
nonNull
(
wtObjectById
))
{
affectedDataVector
.
add
(
wtObjectById
);
}
}
if
(!
CollectionUtils
.
isEmpty
(
affectedDataVector
))
{
ChangeOrderUtil
.
setIssueAffectedData
(
changeIssue
,
affectedDataVector
);
}
}
ts
.
commit
();
ts
=
null
;
}
finally
{
if
(
ts
!=
null
)
{
ts
.
rollback
();
}
}
return
new
DxProblemReportVo
(
changeIssue
);
}
/**
* 创建ECR
* @param entityVO
* @param userName
* @return
* @throws Exception
*/
public
static
DxChangeRequestVo
createECR
(
DxChangeRequestVo
entityVO
,
String
userName
)
throws
Exception
{
if
(!
RemoteMethodServer
.
ServerFlag
)
{
return
(
DxChangeRequestVo
)
RemoteMethodServer
.
getDefault
().
invoke
(
"createECR"
,
DXChangeOrderService
.
class
.
getName
(),
null
,
...
...
@@ -127,6 +214,9 @@ public class DXChangeOrderService implements RemoteAccess {
}
if
(
ObjectsUtil
.
isNull
(
ecr
))
{
ecr
=
WTChangeRequest2
.
newWTChangeRequest2
(
name
);
TypeDefinitionReference
tydef
=
TypedUtilityServiceHelper
.
service
.
getTypeDefinitionReference
(
"wt.change2.WTChangeRequest2"
);
ecr
.
setTypeDefinitionReference
(
tydef
);
}
String
number
=
entityVO
.
getNumber
();
if
(
number
!=
null
)
{
...
...
@@ -138,7 +228,7 @@ public class DXChangeOrderService implements RemoteAccess {
container
=
ContainerUtil
.
getContainerByName
(
contextName
);
}
if
(
ObjectsUtil
.
isNull
(
container
))
{
return
null
;
throw
new
WTException
(
"上下文不可为空!"
)
;
}
if
(
container
!=
null
)
{
ecr
.
setContainer
(
container
);
...
...
@@ -157,12 +247,13 @@ public class DXChangeOrderService implements RemoteAccess {
System
.
out
.
println
(
"未找到工程更改文件夹"
);
}
}
String
type
=
entityVO
.
getSubTypeName
();
// TODO 动态获取变更类型
/* String type = entityVO.getSubTypeName();
if (StringUtils.isNotEmpty(type)) {
TypeDefinitionReference tdr = TypedUtilityServiceHelper.service
.getTypeDefinitionReference(type);
ecr.setTypeDefinitionReference(tdr);
}
}
*/
ecr
=
(
WTChangeRequest2
)
ChangeHelper2
.
service
.
saveChangeRequest
(
ecr
);
//更新软属性
if
(
ObjectsUtil
.
nonNull
(
entityVO
.
getDynamicAttrs
()))
{
...
...
@@ -174,18 +265,108 @@ public class DXChangeOrderService implements RemoteAccess {
Vector
affectedDataVector
=
new
Vector
();
if
(!
CollectionUtils
.
isEmpty
(
affectedDatas
))
{
for
(
DxChangeAffectedDataVo
affectedData
:
affectedDatas
)
{
Long
targetId
=
affectedData
.
getTargetId
();
long
targetId
=
affectedData
.
getPboId
();
if
(
ObjectsUtil
.
isNull
(
targetId
)
||
targetId
==
0
)
{
targetId
=
affectedData
.
getTarget
().
getId
();
}
String
pboType
=
affectedData
.
getPboType
();
log
.
error
(
"ECR targetId===="
+
targetId
);
log
.
error
(
"ECR targetType===="
+
pboType
);
String
typeStr
=
SearchOperatorEnumUtil
.
typeStrPrefixMap
.
get
(
pboType
);
Persistable
oid
=
CommonUtil
.
getPersistableByOid
(
"OR:"
+
typeStr
+
targetId
);
if
(
ObjectsUtil
.
nonNull
(
oid
))
{
affectedDataVector
.
add
(
oid
);
}
}
ChangeOrderUtil
.
setECRAffectedData
(
ecr
,
affectedDataVector
);
}
//关联Issue、ECR
List
<
DxFormalizedByVo
>
formalizedBys
=
entityVO
.
getFormalizedBys
();
if
(!
CollectionUtils
.
isEmpty
(
formalizedBys
))
{
for
(
DxFormalizedByVo
formalizedBy
:
formalizedBys
)
{
DxProblemReportVo
target
=
formalizedBy
.
getTarget
();
Long
id
=
target
.
getId
();
WTObject
wtObjectById
=
RfUtil
.
getWTObjectById
(
id
);
if
(
ObjectsUtil
.
nonNull
(
wtObjectById
))
{
ChangeOrderUtil
.
addChangeRequestToChangeIssue
((
WTChangeIssue
)
wtObjectById
,
ecr
);
}
}
}
DxChangeRequestVo
dxChangeRequestVo
=
new
DxChangeRequestVo
(
ecr
);
return
dxChangeRequestVo
;
}
public
static
DxChangeRequestVo
modifyECR
(
DxChangeRequestVo
entityVO
,
String
userName
)
throws
Exception
{
if
(!
RemoteMethodServer
.
ServerFlag
)
{
return
(
DxChangeRequestVo
)
RemoteMethodServer
.
getDefault
().
invoke
(
"modifyECR"
,
DXChangeOrderService
.
class
.
getName
(),
null
,
new
Class
[]
{
DxChangeRequestVo
.
class
,
String
.
class
},
new
Object
[]
{
entityVO
,
userName
});
}
CommonUtil
.
initSessionContext
(
userName
);
WTChangeRequest2
ecr
=
null
;
if
(
ObjectsUtil
.
nonNull
(
entityVO
.
getId
()))
{
WTObject
objectById
=
RfUtil
.
getWTObjectById
(
entityVO
.
getId
());
if
(
ObjectsUtil
.
nonNull
(
objectById
))
{
ecr
=
(
WTChangeRequest2
)
objectById
;
}
}
if
(
ObjectsUtil
.
isNull
(
ecr
))
{
throw
new
WTException
(
"修改失败:该ECR不存在!"
);
}
String
name
=
entityVO
.
getName
();
if
(
name
!=
null
)
{
ecr
.
setName
(
name
);
ChangeOrderUtil
.
updateChangeItemName
(
ecr
,
name
);
}
ecr
=
(
WTChangeRequest2
)
ChangeHelper2
.
service
.
saveChangeRequest
(
ecr
);
//更新软属性
if
(
ObjectsUtil
.
nonNull
(
entityVO
.
getDynamicAttrs
()))
{
IBAUtil
.
forceSetIBAValues
(
ecr
,
entityVO
.
getDynamicAttrs
());
}
ecr
=
(
WTChangeRequest2
)
PersistenceHelper
.
manager
.
refresh
(
ecr
);
Transaction
ts
=
null
;
try
{
ts
=
new
Transaction
();
ts
.
start
();
ChangeOrderUtil
.
deleteEcrData
(
ecr
);
//设置受影响对象
List
<
DxChangeAffectedDataVo
>
affectedDatas
=
entityVO
.
getChangeAffectedDatas
();
Vector
affectedDataVector
=
new
Vector
();
if
(!
CollectionUtils
.
isEmpty
(
affectedDatas
))
{
for
(
DxChangeAffectedDataVo
affectedData
:
affectedDatas
)
{
long
targetId
=
affectedData
.
getPboId
();
if
(
ObjectsUtil
.
isNull
(
targetId
)
||
targetId
==
0
)
{
targetId
=
affectedData
.
getTarget
().
getId
();
}
log
.
error
(
"ECR targetId===="
+
targetId
);
WTObject
wtObjectById
=
RfUtil
.
getWTObjectById
(
targetId
);
if
(
ObjectsUtil
.
nonNull
(
wtObjectById
))
{
affectedDataVector
.
add
(
wtObjectById
);
}
}
ChangeOrderUtil
.
setECRAffectedData
(
ecr
,
affectedDataVector
);
}
ts
.
commit
();
ts
=
null
;
}
finally
{
if
(
ObjectsUtil
.
nonNull
(
ts
))
{
ts
.
rollback
();
}
}
DxChangeRequestVo
dxChangeRequestVo
=
new
DxChangeRequestVo
(
ecr
);
return
dxChangeRequestVo
;
}
/**
* 创建ECN
* @param changeNoticeVo
* @param userName
* @return
* @throws Exception
*/
public
static
DxChangeNoticeVo
createECN
(
DxChangeNoticeVo
changeNoticeVo
,
String
userName
)
throws
Exception
{
if
(!
RemoteMethodServer
.
ServerFlag
)
{
return
(
DxChangeNoticeVo
)
RemoteMethodServer
.
getDefault
().
invoke
(
"createECN"
,
DXChangeOrderService
.
class
.
getName
(),
null
,
...
...
@@ -195,6 +376,7 @@ public class DXChangeOrderService implements RemoteAccess {
CommonUtil
.
initSessionContext
(
userName
);
WTChangeOrder2
wtChangeOrder2
=
null
;
WTContainer
container
=
null
;
if
(
ObjectsUtil
.
nonNull
(
changeNoticeVo
.
getId
()))
{
WTObject
objectById
=
RfUtil
.
getWTObjectById
(
changeNoticeVo
.
getId
());
if
(
ObjectsUtil
.
nonNull
(
objectById
))
{
...
...
@@ -202,7 +384,37 @@ public class DXChangeOrderService implements RemoteAccess {
}
}
if
(
ObjectsUtil
.
isNull
(
wtChangeOrder2
))
{
wtChangeOrder2
=
WTChangeOrder2
.
newWTChangeOrder2
(
changeNoticeVo
.
getName
());
wtChangeOrder2
=
WTChangeOrder2
.
newWTChangeOrder2
();
TypeDefinitionReference
tydef
=
TypedUtilityServiceHelper
.
service
.
getTypeDefinitionReference
(
"wt.change2.WTChangeOrder2"
);
wtChangeOrder2
.
setTypeDefinitionReference
(
tydef
);
wtChangeOrder2
.
setName
(
changeNoticeVo
.
getName
());
wtChangeOrder2
.
setNumber
(
changeNoticeVo
.
getNumber
());
DxContextVO
dxContext
=
changeNoticeVo
.
getDxContext
();
if
(
ObjectsUtil
.
nonNull
(
dxContext
))
{
String
contextName
=
dxContext
.
getName
();
container
=
ContainerUtil
.
getContainerByName
(
contextName
);
}
if
(
ObjectsUtil
.
isNull
(
container
))
{
throw
new
WTException
(
"上下文不可为空!"
);
}
if
(
container
!=
null
)
{
wtChangeOrder2
.
setContainer
(
container
);
String
folderPath
=
null
;
DxDocumentFolderVO
folderVO
=
null
;
if
(
ObjectsUtil
.
nonNull
(
folderVO
))
{
folderPath
=
folderVO
.
getFullPath
();
}
//设置ecr的文件夹路径
Folder
location
=
DxCommonUtils
.
makeFolder
(
folderPath
,
container
.
getContainerReference
());
if
(
location
!=
null
)
{
WTValuedHashMap
loacationMap
=
new
WTValuedHashMap
();
loacationMap
.
put
(
wtChangeOrder2
,
location
);
FolderHelper
.
assignLocations
(
loacationMap
);
}
else
{
System
.
out
.
println
(
"未找到工程更改文件夹"
);
}
}
}
wtChangeOrder2
=
ChangeOrderUtil
.
createWTChangeOrder2
(
wtChangeOrder2
,
changeNoticeVo
.
getName
(),
null
,
null
,
""
,
changeNoticeVo
.
getDynamicAttrs
());
...
...
@@ -213,29 +425,39 @@ public class DXChangeOrderService implements RemoteAccess {
}
wtChangeOrder2
=
(
WTChangeOrder2
)
PersistenceHelper
.
manager
.
refresh
(
wtChangeOrder2
);
//设置受影响对象
List
<
Changeable2
>
affectedDataList
=
new
ArrayList
<
Changeable2
>();
Vector
<
Changeable2
>
affectedDataList
=
new
Vector
<
Changeable2
>();
List
<
DxChangeAffectedDataVo
>
affectedDatas
=
changeNoticeVo
.
getChangeAffectedDatas
();
if
(!
CollectionUtils
.
isEmpty
(
affectedDatas
))
{
for
(
DxChangeAffectedDataVo
affectedData
:
affectedDatas
)
{
String
pboClass
=
affectedData
.
getPboType
();
String
prefix
=
SearchOperatorEnumUtil
.
typeStrPrefixMap
.
get
(
pboClass
);
Long
pboId
=
affectedData
.
getPboId
();
Changeable2
wtObjectByOid
=
(
Changeable2
)
RfUtil
.
getWTObjectByOid
(
"OR:"
+
prefix
+
pboId
);
Long
pboId
=
(
long
)
affectedData
.
getPboId
();
if
(
ObjectsUtil
.
isNull
(
pboId
)
||
pboId
==
0
)
{
pboId
=
affectedData
.
getTarget
().
getId
();
}
log
.
error
(
"ECN targetId===="
+
pboId
);
log
.
error
(
"ECN targetType===="
+
affectedData
.
getPboType
());
Changeable2
wtObjectByOid
=
(
Changeable2
)
RfUtil
.
getWTObjectById
(
pboId
);
log
.
error
(
"ECN wtObjectByOid===="
+
wtObjectByOid
);
affectedDataList
.
add
(
wtObjectByOid
);
}
wtChangeOrder2
=
ChangeOrderUtil
.
addAffectedDataToChangeNotice
(
wtChangeOrder2
,
affectedDataList
,
null
);
}
//设置产生对象
List
<
Changeable2
>
afterDataList
=
new
ArrayList
<
Changeable2
>();
Vector
<
Changeable2
>
afterDataList
=
new
Vector
<
Changeable2
>();
List
<
DxChangeAfterDataVo
>
referenceLink
=
changeNoticeVo
.
getSourceDxCMReferenceLink
();
if
(!
CollectionUtils
.
isEmpty
(
referenceLink
))
{
for
(
DxChangeAfterDataVo
dxChangeAfterDataVo
:
referenceLink
)
{
String
pboClass
=
dxChangeAfterDataVo
.
getPboType
();
String
prefix
=
SearchOperatorEnumUtil
.
typeStrPrefixMap
.
get
(
pboClass
);
Long
pboId
=
dxChangeAfterDataVo
.
getPboId
();
Changeable2
wtObjectByOid
=
(
Changeable2
)
RfUtil
.
getWTObjectByOid
(
"OR:"
+
prefix
+
pboId
);
if
(
ObjectsUtil
.
isNull
(
pboId
)
||
pboId
==
0
)
{
pboId
=
dxChangeAfterDataVo
.
getTarget
().
getId
();
}
log
.
error
(
"ECN targetId2===="
+
pboId
);
log
.
error
(
"ECN targetType2===="
+
dxChangeAfterDataVo
.
getPboType
());
Changeable2
wtObjectByOid
=
(
Changeable2
)
RfUtil
.
getWTObjectById
(
pboId
);
log
.
error
(
"ECN SourceDxCMReferenceLink===="
+
wtObjectByOid
);
afterDataList
.
add
(
wtObjectByOid
);
}
ChangeOrderUtil
.
addChangeableAfterToChangeNotice
(
wtChangeOrder2
,
afterDataList
,
null
);
}
//关联ECN、ECR
List
<
DxAddressedByVo
>
addressedBys
=
changeNoticeVo
.
getAddressedBys
();
...
...
@@ -254,6 +476,103 @@ public class DXChangeOrderService implements RemoteAccess {
return
changeNoticeVo
;
}
/**
* 修改ECN
* @param changeNoticeVo
* @param userName
* @return
* @throws Exception
*/
public
static
DxChangeNoticeVo
modifyECN
(
DxChangeNoticeVo
changeNoticeVo
,
String
userName
)
throws
Exception
{
if
(!
RemoteMethodServer
.
ServerFlag
)
{
return
(
DxChangeNoticeVo
)
RemoteMethodServer
.
getDefault
().
invoke
(
"modifyECN"
,
DXChangeOrderService
.
class
.
getName
(),
null
,
new
Class
[]
{
DxChangeNoticeVo
.
class
,
String
.
class
},
new
Object
[]
{
changeNoticeVo
,
userName
});
}
CommonUtil
.
initSessionContext
(
userName
);
WTChangeOrder2
wtChangeOrder2
=
null
;
if
(
ObjectsUtil
.
nonNull
(
changeNoticeVo
.
getId
()))
{
WTObject
objectById
=
RfUtil
.
getWTObjectById
(
changeNoticeVo
.
getId
());
if
(
ObjectsUtil
.
nonNull
(
objectById
))
{
wtChangeOrder2
=
(
WTChangeOrder2
)
objectById
;
}
}
if
(
ObjectsUtil
.
isNull
(
wtChangeOrder2
))
{
throw
new
WTException
(
"修改失败:该ECN不存在!"
);
}
String
name
=
changeNoticeVo
.
getName
();
if
(
ObjectsUtil
.
nonNull
(
name
))
{
changeNoticeVo
.
setName
(
name
);
ChangeOrderUtil
.
updateChangeItemName
(
wtChangeOrder2
,
name
);
}
wtChangeOrder2
=
(
WTChangeOrder2
)
ChangeHelper2
.
service
.
saveChangeOrder
(
wtChangeOrder2
);
//更新软属性
if
(
ObjectsUtil
.
nonNull
(
changeNoticeVo
.
getDynamicAttrs
()))
{
IBAUtil
.
forceSetIBAValues
(
wtChangeOrder2
,
changeNoticeVo
.
getDynamicAttrs
());
}
wtChangeOrder2
=
(
WTChangeOrder2
)
PersistenceHelper
.
manager
.
refresh
(
wtChangeOrder2
);
Transaction
ts
=
null
;
try
{
ts
=
new
Transaction
();
ts
.
start
();
ChangeOrderUtil
.
deleteChangeBefore
(
wtChangeOrder2
);
//设置受影响对象
Vector
<
Changeable2
>
affectedDataList
=
new
Vector
<
Changeable2
>();
List
<
DxChangeAffectedDataVo
>
affectedDatas
=
changeNoticeVo
.
getChangeAffectedDatas
();
if
(!
CollectionUtils
.
isEmpty
(
affectedDatas
))
{
for
(
DxChangeAffectedDataVo
affectedData
:
affectedDatas
)
{
Long
pboId
=
(
long
)
affectedData
.
getPboId
();
if
(
ObjectsUtil
.
isNull
(
pboId
)
||
pboId
==
0
)
{
pboId
=
affectedData
.
getTarget
().
getId
();
}
log
.
error
(
"ECN targetId===="
+
pboId
);
Changeable2
wtObjectByOid
=
(
Changeable2
)
RfUtil
.
getWTObjectById
(
pboId
);
log
.
error
(
"ECN wtObjectByOid===="
+
wtObjectByOid
);
affectedDataList
.
add
(
wtObjectByOid
);
}
wtChangeOrder2
=
ChangeOrderUtil
.
addAffectedDataToChangeNotice
(
wtChangeOrder2
,
affectedDataList
,
null
);
}
ChangeOrderUtil
.
deleteChangeAfter
(
wtChangeOrder2
);
//设置产生对象
Vector
<
Changeable2
>
afterDataList
=
new
Vector
<
Changeable2
>();
List
<
DxChangeAfterDataVo
>
referenceLink
=
changeNoticeVo
.
getSourceDxCMReferenceLink
();
if
(!
CollectionUtils
.
isEmpty
(
referenceLink
))
{
for
(
DxChangeAfterDataVo
dxChangeAfterDataVo
:
referenceLink
)
{
Long
pboId
=
dxChangeAfterDataVo
.
getPboId
();
if
(
ObjectsUtil
.
isNull
(
pboId
)
||
pboId
==
0
)
{
pboId
=
dxChangeAfterDataVo
.
getTarget
().
getId
();
}
log
.
error
(
"ECN targetId2===="
+
pboId
);
Changeable2
wtObjectByOid
=
(
Changeable2
)
RfUtil
.
getWTObjectById
(
pboId
);
log
.
error
(
"ECN SourceDxCMReferenceLink===="
+
wtObjectByOid
);
afterDataList
.
add
(
wtObjectByOid
);
}
ChangeOrderUtil
.
addChangeableAfterToChangeNotice
(
wtChangeOrder2
,
afterDataList
,
null
);
}
//关联ECN、ECR
/* List<DxAddressedByVo> addressedBys = changeNoticeVo.getAddressedBys();
if (!CollectionUtils.isEmpty(addressedBys)) {
for (DxAddressedByVo addressedBy : addressedBys) {
DxChangeRequestVo source = addressedBy.getSource();
String prefix = SearchOperatorEnumUtil.typeStrPrefixMap.get(source.getDxClassname());
String oid = "OR:" + prefix + source.getId();
WTChangeRequest2 persistableByOid = (WTChangeRequest2) CommonUtil.getPersistableByOid(oid);
if (ObjectsUtil.nonNull(persistableByOid)) {
ChangeOrderUtil.addChangeNoticeToChangeRequest(wtChangeOrder2,persistableByOid);
}
}
}*/
ts
.
commit
();
ts
=
null
;
}
finally
{
if
(
ObjectsUtil
.
nonNull
(
ts
))
{
ts
.
rollback
();
}
}
changeNoticeVo
=
new
DxChangeNoticeVo
(
wtChangeOrder2
);
return
changeNoticeVo
;
}
/**
* 根据pbo 获取关联变更对象
* @param id
...
...
@@ -341,11 +660,17 @@ public class DXChangeOrderService implements RemoteAccess {
CommonUtil
.
initSessionContext
(
null
);
List
resultList
=
new
ArrayList
();
WTObject
wtObjectById
=
RfUtil
.
getWTObjectById
(
id
);
log
.
error
(
"getChangeDataLink===="
+
wtObjectById
);
if
(
wtObjectById
instanceof
WTChangeOrder2
)
{
WTChangeOrder2
changeOrder2
=
(
WTChangeOrder2
)
wtObjectById
;
DxChangeNoticeVo
noticeVo
=
new
DxChangeNoticeVo
(
changeOrder2
);
List
<
WTObject
>
changeBefore
=
ChangeOrderUtil
.
getChangeBefore
(
changeOrder2
);
for
(
WTObject
wtObject
:
changeBefore
)
{
List
<
WTObject
>
changeData
;
if
(
"after"
.
equalsIgnoreCase
(
sourceIdType
))
{
changeData
=
ChangeOrderUtil
.
getChangeAfter
(
changeOrder2
);
}
else
{
changeData
=
ChangeOrderUtil
.
getChangeBefore
(
changeOrder2
);
}
for
(
WTObject
wtObject
:
changeData
)
{
IdVO
changeableVO
=
WTChangeDataUtil
.
buildChangeableVO
(
wtObject
);
DxChangeAffectedDataVo
dataVo
=
new
DxChangeAffectedDataVo
((
RevisionControlledVO
)
changeableVO
,
noticeVo
);
resultList
.
add
(
dataVo
);
...
...
@@ -368,6 +693,7 @@ public class DXChangeOrderService implements RemoteAccess {
WTChangeIssue
changeIssue
=
(
WTChangeIssue
)
wtObjectById
;
DxProblemReportVo
reportVo
=
new
DxProblemReportVo
(
changeIssue
);
List
<
WTObject
>
changeBefore
=
ChangeOrderUtil
.
getChangeBefore
(
changeIssue
);
log
.
error
(
"issue changeBefore====="
+
changeBefore
.
size
());
for
(
WTObject
wtObject
:
changeBefore
)
{
IdVO
changeableVO
=
WTChangeDataUtil
.
buildChangeableVO
(
wtObject
);
DxReportedAgainstVo
againstVo
=
new
DxReportedAgainstVo
(
reportVo
,
(
RevisionControlledVO
)
changeableVO
);
...
...
@@ -379,6 +705,65 @@ public class DXChangeOrderService implements RemoteAccess {
return
resultList
;
}
/**
* 根据ECN获取ECR
* @param id
* @return
* @throws Exception
*/
public
static
List
getECRByECN
(
Long
id
)
throws
Exception
{
if
(!
RemoteMethodServer
.
ServerFlag
)
{
return
(
List
)
RemoteMethodServer
.
getDefault
().
invoke
(
"getECRByECN"
,
DXChangeOrderService
.
class
.
getName
(),
null
,
new
Class
[]
{
Long
.
class
},
new
Object
[]
{
id
});
}
CommonUtil
.
initSessionContext
(
null
);
List
resultList
=
new
ArrayList
();
WTObject
wtObjectById
=
RfUtil
.
getWTObjectById
(
id
);
log
.
error
(
"getECRByECN===="
+
wtObjectById
);
if
(
wtObjectById
instanceof
WTChangeOrder2
)
{
WTChangeOrder2
changeOrder2
=
(
WTChangeOrder2
)
wtObjectById
;
DxChangeNoticeVo
noticeVo
=
new
DxChangeNoticeVo
(
changeOrder2
);
List
<
WTChangeRequest2
>
request2s
=
ChangeOrderUtil
.
getChangeRequestByChangeNotice
(
changeOrder2
);
for
(
WTChangeRequest2
request2
:
request2s
)
{
DxChangeRequestVo
requestVo
=
new
DxChangeRequestVo
(
request2
);
DxAddressedByVo
addressedByVo
=
new
DxAddressedByVo
(
requestVo
,
noticeVo
);
resultList
.
add
(
addressedByVo
);
}
}
return
resultList
;
}
/**
* 根据ECR获取Issue
* @param id
* @return
* @throws Exception
*/
public
static
List
getIssueByECR
(
Long
id
)
throws
Exception
{
if
(!
RemoteMethodServer
.
ServerFlag
)
{
return
(
List
)
RemoteMethodServer
.
getDefault
().
invoke
(
"getIssueByECR"
,
DXChangeOrderService
.
class
.
getName
(),
null
,
new
Class
[]
{
Long
.
class
},
new
Object
[]
{
id
});
}
CommonUtil
.
initSessionContext
(
null
);
List
resultList
=
new
ArrayList
();
WTObject
wtObjectById
=
RfUtil
.
getWTObjectById
(
id
);
log
.
error
(
"getIssueByECR===="
+
wtObjectById
);
if
(
wtObjectById
instanceof
WTChangeRequest2
)
{
WTChangeRequest2
changeRequest2
=
(
WTChangeRequest2
)
wtObjectById
;
DxChangeRequestVo
requestVo
=
new
DxChangeRequestVo
(
changeRequest2
);
List
<
WTChangeIssue
>
issues
=
ChangeOrderUtil
.
getChangeIssueByChangeRequest
(
changeRequest2
);
for
(
WTChangeIssue
issue
:
issues
)
{
//DxChangeRequestVo requestVo = new DxChangeRequestVo(request2);
DxProblemReportVo
problemReportVo
=
new
DxProblemReportVo
(
issue
);
DxFormalizedByVo
formalizedByVo
=
new
DxFormalizedByVo
(
requestVo
,
problemReportVo
);
resultList
.
add
(
formalizedByVo
);
}
}
return
resultList
;
}
/**
* 根据id 获取变更对象
* @param id
...
...
@@ -395,6 +780,7 @@ public class DXChangeOrderService implements RemoteAccess {
CommonUtil
.
initSessionContext
(
null
);
WTObject
wtObjectById
=
RfUtil
.
getWTObjectById
(
id
);
IdVO
idVO
=
null
;
if
(
ObjectsUtil
.
nonNull
(
wtObjectById
))
{
if
(
wtObjectById
instanceof
WTChangeOrder2
)
{
idVO
=
new
DxChangeNoticeVo
((
WTChangeOrder2
)
wtObjectById
);
}
else
if
(
wtObjectById
instanceof
WTChangeRequest2
)
{
...
...
@@ -403,6 +789,7 @@ public class DXChangeOrderService implements RemoteAccess {
// TODO
idVO
=
new
DxProblemReportVo
((
WTChangeIssue
)
wtObjectById
);
}
}
return
idVO
;
}
}
src/com/yonde/change/util/WTChangeDataUtil.java
View file @
52e269b4
...
...
@@ -32,7 +32,7 @@ import java.util.List;
public
class
WTChangeDataUtil
implements
RemoteAccess
{
/**
*
根据oid获取产品名称
*
根据oid获取产品名称
* @param oid
* @return
*/
...
...
@@ -74,7 +74,7 @@ public class WTChangeDataUtil implements RemoteAccess {
/**
*
获取行号信息
*
获取行号信息
* @return
*/
public
static
String
getLineInfo
()
{
...
...
@@ -97,7 +97,7 @@ public class WTChangeDataUtil implements RemoteAccess {
WTChangeRequest2 ecr = null;
try {
ecr = WTChangeRequest2.newWTChangeRequest2(getStringValue((String) attributes.get("partNumber")));
//
设置软类型
//
设置软类型
TypeDefinitionReference tdr = TypedUtilityServiceHelper.service
.getTypeDefinitionReference("CAIC.EngineeringChangeRequest");
ecr.setTypeDefinitionReference(tdr);
...
...
@@ -139,13 +139,13 @@ public class WTChangeDataUtil implements RemoteAccess {
String changeReason = getStringValue((String) attributes.get("changeReason"));
if (!StringUtil.isEmpty(changeReason)){
//
更改理由富文本
//
更改理由富文本
System.out.println(getLineInfo()+"----->"+changeReason);
}
String changeContent = getStringValue((String) attributes.get("designChangeContent"));
if (!StringUtil.isEmpty(changeContent)){
//
更改内容富文本
//
更改内容富文本
System.out.println(getLineInfo()+"----->"+changeContent);
}
...
...
@@ -160,7 +160,7 @@ public class WTChangeDataUtil implements RemoteAccess {
WTChangeRequest2 ecr = null;
try {
ecr = WTChangeRequest2.newWTChangeRequest2(getStringValue((String) attributes.get("partNumber")));
//
设置软类型
//
设置软类型
TypeDefinitionReference tdr = TypedUtilityServiceHelper.service
.getTypeDefinitionReference("CAIC.PartNumberChangeRequest");
ecr.setTypeDefinitionReference(tdr);
...
...
@@ -202,13 +202,13 @@ public class WTChangeDataUtil implements RemoteAccess {
String changeReason = getStringValue((String) attributes.get("changeReason"));
if (!StringUtil.isEmpty(changeReason)){
//
更改理由富文本
//
更改理由富文本
System.out.println(getLineInfo()+"----->"+changeReason);
}
String changeContent = getStringValue((String) attributes.get("designChangeContent"));
if (!StringUtil.isEmpty(changeContent)){
//
更改内容富文本
//
更改内容富文本
System.out.println(getLineInfo()+"----->"+changeContent);
}
...
...
@@ -234,7 +234,7 @@ public class WTChangeDataUtil implements RemoteAccess {
/**
*
通过产品oid获取基线对象
*
通过产品oid获取基线对象
* @param oid
* @return
*/
...
...
@@ -261,7 +261,7 @@ public class WTChangeDataUtil implements RemoteAccess {
/**
*
获取更改请求
*
获取更改请求
* @param changeable2
* @return
*/
...
...
@@ -293,7 +293,7 @@ public class WTChangeDataUtil implements RemoteAccess {
}
/**
*
受影响对象关联E
CN
*
受影响对象关联ECN
* @param changeable2
* @return
*/
...
...
@@ -329,7 +329,7 @@ public class WTChangeDataUtil implements RemoteAccess {
}
/**
*
受影响对象关联ECN 自变更通告产生
*
受影响对象关联ECN 自变更通告产生
* @param changeable2
* @return
*/
...
...
@@ -365,7 +365,7 @@ public class WTChangeDataUtil implements RemoteAccess {
}
/**
*
获取问题请求
*
获取问题请求
* @param changeable2
* @return
*/
...
...
@@ -399,9 +399,9 @@ public class WTChangeDataUtil implements RemoteAccess {
/**
* 按照编号,版本获取前一大版的历史版本Part对象
* 按照编号,版本获取前一大版的历史版本Part对象
*
* @return 上一大版本的最新小版本对象
* @return 上一大版本的最新小版本对象
*/
public
static
WTPart
getWTPartPreviousVersion
(
WTPart
part
)
throws
WTException
{
...
...
@@ -415,7 +415,7 @@ public class WTChangeDataUtil implements RemoteAccess {
order
=
type2
.
getOrder
();
}
WTPart
previousVersion
=
null
;
QueryResult
qr
=
VersionControlHelper
.
service
.
allVersionsOf
(
part
.
getMaster
());
// 获取所有版本的物料
QueryResult
qr
=
VersionControlHelper
.
service
.
allVersionsOf
(
part
.
getMaster
());
// 获取所有版本的物料
WTPart
tempPart
=
null
;
boolean
flag
=
false
;
while
(
qr
.
hasMoreElements
())
{
...
...
@@ -454,7 +454,7 @@ public class WTChangeDataUtil implements RemoteAccess {
/**
*
* 比较版本
* 比较版本
*
* @param rc1
* @param rc2
...
...
@@ -498,17 +498,5 @@ public class WTChangeDataUtil implements RemoteAccess {
}
public
static
void
main
(
String
[]
args
)
{
//获取软属性
// IBAHelper.getIBAStringValue(product, ibaKey);
//设置软属性
// IBAHelper.setIBAStringValue(obj, ibaKey, value);
//通过oid获取对象
// ToolUtils.getObjectByOid(oid);
}
}
src/com/yonde/change/vo/DxChangeAffectedDataVo.java
View file @
52e269b4
...
...
@@ -2,17 +2,18 @@ package com.yonde.change.vo;
import
com.yonde.basedata.vo.IdVO
;
import
com.yonde.basedata.vo.RevisionControlledVO
;
import
com.yonde.common.entity.DxIterationVOHolder
;
import
com.yonde.doc.vo.DxDocumentVO
;
import
com.yonde.part.vo.DxPartVO
;
import
java.io.Serializable
;
/**
* 受影响对象LINK
*/
public
class
DxChangeAffectedDataVo
implements
Serializable
{
public
class
DxChangeAffectedDataVo
extends
IdVO
implements
Serializable
{
private
String
pboType
;
private
Long
pboId
;
private
int
pboId
;
private
Boolean
isDraft
;
private
String
draftName
;
private
String
draftNumber
;
...
...
@@ -48,6 +49,19 @@ public class DxChangeAffectedDataVo implements Serializable {
this
.
source
=
source
;
this
.
sourceId
=
source
.
getId
();
this
.
sourceIdType
=
source
.
getSubTypeName
();
if
(
target
instanceof
DxPartVO
)
{
DxPartVO
dxPartVO
=
(
DxPartVO
)
target
;
this
.
displayName
=
dxPartVO
.
getName
();
this
.
displayNumber
=
dxPartVO
.
getNumber
();
this
.
displayVersion
=
dxPartVO
.
getDisplayVersion
();
this
.
displayTypeName
=
dxPartVO
.
getSubTypeDisplayName
();
}
else
if
(
target
instanceof
DxDocumentVO
)
{
DxDocumentVO
dxDocumentVO
=
(
DxDocumentVO
)
target
;
this
.
displayName
=
dxDocumentVO
.
getName
();
this
.
displayNumber
=
dxDocumentVO
.
getNumber
();
this
.
displayVersion
=
dxDocumentVO
.
getDisplayVersion
();
this
.
displayTypeName
=
dxDocumentVO
.
getSubTypeDisplayName
();
}
}
public
IdVO
getSource
()
{
...
...
@@ -66,11 +80,11 @@ public class DxChangeAffectedDataVo implements Serializable {
this
.
pboType
=
pboType
;
}
public
Long
getPboId
()
{
public
int
getPboId
()
{
return
pboId
;
}
public
void
setPboId
(
Long
pboId
)
{
public
void
setPboId
(
int
pboId
)
{
this
.
pboId
=
pboId
;
}
...
...
src/com/yonde/change/vo/DxChangeAfterDataVo.java
View file @
52e269b4
package
com
.
yonde
.
change
.
vo
;
import
com.yonde.basedata.vo.IdVO
;
import
com.yonde.basedata.vo.RevisionControlledVO
;
import
java.io.Serializable
;
/**
* 改后对象LINK
*/
public
class
DxChangeAfterDataVo
{
public
class
DxChangeAfterDataVo
extends
IdVO
implements
Serializable
{
private
RevisionControlledVO
target
;
private
Long
sourceId
;
...
...
@@ -15,6 +18,9 @@ public class DxChangeAfterDataVo {
private
String
pboType
;
private
Long
pboId
;
public
DxChangeAfterDataVo
()
{
}
public
String
getPboType
()
{
return
pboType
;
}
...
...
src/com/yonde/change/vo/DxChangeItemVo.java
View file @
52e269b4
package
com
.
yonde
.
change
.
vo
;
import
com.yonde.basedata.entity.users.DxUserVO
;
import
com.yonde.basedata.vo.DxMasterVO
;
import
com.yonde.basedata.vo.DxVersionVO
;
import
com.yonde.basedata.vo.IdVO
;
import
wt.change2.VersionableChangeItem
;
import
wt.util.WTException
;
import
java.io.Serializable
;
public
class
DxChangeItemVo
extends
IdVO
implements
Serializable
{
private
DxVersionVO
version
;
private
Long
versionId
;
private
String
versionKey
;
private
String
displayVersion
;
private
String
iterationId
;
private
String
iterationCreateTime
;
private
Long
iterationCreateId
;
private
DxMasterVO
masterVO
;
private
Long
masterId
;
private
Long
creatorId
;
private
Long
modifierId
;
private
String
lockNote
;
private
String
lockDate
;
private
DxUserVO
locker
;
private
Long
lockerId
;
private
Long
sandboxId
=
0L
;
private
String
secretCode
=
"NonSecret"
;
public
DxChangeItemVo
()
{
}
public
DxChangeItemVo
(
VersionableChangeItem
changeItem
)
throws
WTException
{
super
(
changeItem
);
this
.
setMasterVO
(
new
DxMasterVO
(
changeItem
));
this
.
setVersion
(
new
DxVersionVO
(
changeItem
));
}
public
DxVersionVO
getVersion
()
{
return
version
;
}
public
void
setVersion
(
DxVersionVO
version
)
{
this
.
version
=
version
;
this
.
versionId
=
version
.
getVersionId
();
this
.
versionKey
=
version
.
getVersionKey
();
}
public
Long
getVersionId
()
{
return
versionId
;
}
public
void
setVersionId
(
Long
versionId
)
{
this
.
versionId
=
versionId
;
}
public
String
getVersionKey
()
{
return
versionKey
;
}
public
void
setVersionKey
(
String
versionKey
)
{
this
.
versionKey
=
versionKey
;
}
public
String
getDisplayVersion
()
{
return
displayVersion
;
}
public
void
setDisplayVersion
(
String
displayVersion
)
{
this
.
displayVersion
=
displayVersion
;
}
public
String
getIterationId
()
{
return
iterationId
;
}
public
void
setIterationId
(
String
iterationId
)
{
this
.
iterationId
=
iterationId
;
}
public
String
getIterationCreateTime
()
{
return
iterationCreateTime
;
}
public
void
setIterationCreateTime
(
String
iterationCreateTime
)
{
this
.
iterationCreateTime
=
iterationCreateTime
;
}
public
Long
getIterationCreateId
()
{
return
iterationCreateId
;
}
public
void
setIterationCreateId
(
Long
iterationCreateId
)
{
this
.
iterationCreateId
=
iterationCreateId
;
}
public
DxMasterVO
getMasterVO
()
{
return
masterVO
;
}
public
void
setMasterVO
(
DxMasterVO
masterVO
)
{
this
.
masterVO
=
masterVO
;
this
.
masterId
=
masterVO
.
getId
();
}
public
Long
getMasterId
()
{
return
masterId
;
}
public
void
setMasterId
(
Long
masterId
)
{
this
.
masterId
=
masterId
;
}
public
Long
getCreatorId
()
{
return
creatorId
;
}
public
void
setCreatorId
(
Long
creatorId
)
{
this
.
creatorId
=
creatorId
;
}
public
Long
getModifierId
()
{
return
modifierId
;
}
public
void
setModifierId
(
Long
modifierId
)
{
this
.
modifierId
=
modifierId
;
}
public
String
getLockNote
()
{
return
lockNote
;
}
public
void
setLockNote
(
String
lockNote
)
{
this
.
lockNote
=
lockNote
;
}
public
String
getLockDate
()
{
return
lockDate
;
}
public
void
setLockDate
(
String
lockDate
)
{
this
.
lockDate
=
lockDate
;
}
public
DxUserVO
getLocker
()
{
return
locker
;
}
public
void
setLocker
(
DxUserVO
locker
)
{
this
.
locker
=
locker
;
}
public
Long
getLockerId
()
{
return
lockerId
;
}
public
void
setLockerId
(
Long
lockerId
)
{
this
.
lockerId
=
lockerId
;
}
public
Long
getSandboxId
()
{
return
sandboxId
;
}
public
void
setSandboxId
(
Long
sandboxId
)
{
this
.
sandboxId
=
sandboxId
;
}
public
String
getSecretCode
()
{
return
secretCode
;
}
public
void
setSecretCode
(
String
secretCode
)
{
this
.
secretCode
=
secretCode
;
}
}
src/com/yonde/change/vo/DxReportedAgainstVo.java
View file @
52e269b4
package
com
.
yonde
.
change
.
vo
;
import
com.fasterxml.jackson.annotation.JsonTypeInfo
;
import
com.yonde.basedata.vo.IdVO
;
import
com.yonde.basedata.vo.RevisionControlledVO
;
import
com.yonde.change.vo.pr.DxProblemReportVo
;
...
...
@@ -10,6 +11,12 @@ import java.io.Serializable;
/**
* PR Link
*/
@JsonTypeInfo
(
use
=
JsonTypeInfo
.
Id
.
CLASS
,
property
=
"classname"
,
visible
=
true
,
defaultImpl
=
DxReportedAgainstVo
.
class
)
public
class
DxReportedAgainstVo
extends
IdVO
implements
Serializable
{
private
DxProblemReportVo
source
;
...
...
@@ -20,9 +27,12 @@ public class DxReportedAgainstVo extends IdVO implements Serializable {
private
Long
targetId
;
private
String
targetIdType
;
private
Long
pboId
;
private
int
pboId
;
private
String
pboType
;
public
DxReportedAgainstVo
()
{
}
public
DxReportedAgainstVo
(
DxProblemReportVo
source
,
RevisionControlledVO
target
)
{
if
(
ObjectsUtil
.
nonNull
(
source
))
{
this
.
source
=
source
;
...
...
@@ -39,11 +49,11 @@ public class DxReportedAgainstVo extends IdVO implements Serializable {
}
}
public
Long
getPboId
()
{
public
int
getPboId
()
{
return
pboId
;
}
public
void
setPboId
(
Long
pboId
)
{
public
void
setPboId
(
int
pboId
)
{
this
.
pboId
=
pboId
;
}
...
...
src/com/yonde/change/vo/ecn/DxAddressedByVo.java
View file @
52e269b4
...
...
@@ -2,7 +2,9 @@ package com.yonde.change.vo.ecn;
import
com.yonde.change.vo.ecr.DxChangeRequestVo
;
public
class
DxAddressedByVo
{
import
java.io.Serializable
;
public
class
DxAddressedByVo
implements
Serializable
{
private
DxChangeRequestVo
source
;
private
DxChangeNoticeVo
target
;
private
Long
sourceId
;
...
...
@@ -10,6 +12,18 @@ public class DxAddressedByVo {
private
Long
targetId
;
private
String
targetIdType
;
public
DxAddressedByVo
()
{
}
public
DxAddressedByVo
(
DxChangeRequestVo
source
,
DxChangeNoticeVo
target
)
{
this
.
source
=
source
;
this
.
sourceId
=
source
.
getId
();
this
.
sourceIdType
=
source
.
getSubTypeName
();
this
.
target
=
target
;
this
.
targetId
=
target
.
getId
();
this
.
targetIdType
=
target
.
getSubTypeName
();
}
public
DxChangeRequestVo
getSource
()
{
return
source
;
}
...
...
src/com/yonde/change/vo/ecn/DxChangeNoticeVo.java
View file @
52e269b4
...
...
@@ -2,10 +2,10 @@ package com.yonde.change.vo.ecn;
import
com.yonde.basedata.entity.users.DxUserVO
;
import
com.yonde.basedata.vo.DxOrganizationVO
;
import
com.yonde.basedata.vo.IdVO
;
import
com.yonde.basedata.vo.ObjFileLinkVO
;
import
com.yonde.change.vo.DxChangeAffectedDataVo
;
import
com.yonde.change.vo.DxChangeAfterDataVo
;
import
com.yonde.change.vo.DxChangeItemVo
;
import
com.yonde.common.DxCommonUtils
;
import
com.yonde.common.IBAHelper
;
import
com.yonde.common.ObjectsUtil
;
...
...
@@ -18,11 +18,12 @@ import java.io.Serializable;
import
java.util.List
;
import
java.util.Locale
;
public
class
DxChangeNoticeVo
extends
IdVO
implements
Serializable
{
public
class
DxChangeNoticeVo
extends
DxChangeItemVo
implements
Serializable
{
private
String
number
;
private
String
name
;
private
String
state
;
private
Long
versionId
;
private
DxContextVO
dxContext
;
private
Long
dxContextId
;
...
...
@@ -43,6 +44,7 @@ public class DxChangeNoticeVo extends IdVO implements Serializable {
public
DxChangeNoticeVo
(
WTChangeOrder2
wtChangeOrder2
)
throws
Exception
{
super
(
wtChangeOrder2
);
this
.
versionId
=
this
.
id
;
this
.
name
=
wtChangeOrder2
.
getName
();
this
.
number
=
wtChangeOrder2
.
getNumber
();
this
.
state
=
wtChangeOrder2
.
getState
().
getState
().
toString
();
...
...
@@ -61,6 +63,14 @@ public class DxChangeNoticeVo extends IdVO implements Serializable {
}
public
Long
getVersionId
()
{
return
versionId
;
}
public
void
setVersionId
(
Long
versionId
)
{
this
.
versionId
=
versionId
;
}
public
String
getNumber
()
{
return
number
;
}
...
...
src/com/yonde/change/vo/ecr/DxChangeRequestVo.java
View file @
52e269b4
...
...
@@ -6,6 +6,7 @@ import com.yonde.basedata.vo.DxOrganizationVO;
import
com.yonde.basedata.vo.IdVO
;
import
com.yonde.basedata.vo.ObjFileLinkVO
;
import
com.yonde.change.vo.DxChangeAffectedDataVo
;
import
com.yonde.change.vo.DxChangeItemVo
;
import
com.yonde.common.DxCommonUtils
;
import
com.yonde.common.IBAHelper
;
import
com.yonde.common.ObjectsUtil
;
...
...
@@ -22,11 +23,12 @@ import java.util.Locale;
/**
* ECR
*/
public
class
DxChangeRequestVo
extends
IdVO
implements
Serializable
{
public
class
DxChangeRequestVo
extends
DxChangeItemVo
implements
Serializable
{
private
String
number
;
private
String
name
;
private
String
state
;
private
Long
versionId
;
private
DxContextVO
dxContext
;
private
Long
dxContextId
;
...
...
@@ -41,8 +43,14 @@ public class DxChangeRequestVo extends IdVO implements Serializable {
//受影响对象
private
List
<
DxChangeAffectedDataVo
>
changeAffectedDatas
;
private
List
<
DxFormalizedByVo
>
formalizedBys
;
public
DxChangeRequestVo
()
{
}
public
DxChangeRequestVo
(
WTChangeRequest2
ecr
)
throws
Exception
{
super
(
ecr
);
this
.
versionId
=
this
.
id
;
this
.
name
=
ecr
.
getName
();
this
.
number
=
ecr
.
getNumber
();
this
.
state
=
ecr
.
getState
().
getState
().
getDisplay
();
...
...
@@ -62,6 +70,22 @@ public class DxChangeRequestVo extends IdVO implements Serializable {
this
.
setObjFileLinks
(
DxCommonUtils
.
buildObjFileLinks
(
ecr
));
}
public
List
<
DxFormalizedByVo
>
getFormalizedBys
()
{
return
formalizedBys
;
}
public
void
setFormalizedBys
(
List
<
DxFormalizedByVo
>
formalizedBys
)
{
this
.
formalizedBys
=
formalizedBys
;
}
public
Long
getVersionId
()
{
return
versionId
;
}
public
void
setVersionId
(
Long
versionId
)
{
this
.
versionId
=
versionId
;
}
public
String
getNumber
()
{
return
number
;
}
...
...
src/com/yonde/change/vo/ecr/DxFormalizedByVo.java
0 → 100644
View file @
52e269b4
package
com
.
yonde
.
change
.
vo
.
ecr
;
import
com.yonde.change.vo.pr.DxProblemReportVo
;
import
java.io.Serializable
;
public
class
DxFormalizedByVo
implements
Serializable
{
private
DxProblemReportVo
target
;
private
DxChangeRequestVo
source
;
private
Long
sourceId
;
private
String
sourceIdType
;
private
Long
targetId
;
private
String
targetIdType
;
public
DxFormalizedByVo
()
{
}
public
DxFormalizedByVo
(
DxChangeRequestVo
source
,
DxProblemReportVo
target
)
{
this
.
target
=
target
;
this
.
targetId
=
target
.
getId
();
this
.
targetIdType
=
target
.
getSubTypeName
();
this
.
source
=
source
;
this
.
sourceId
=
source
.
getId
();
this
.
sourceIdType
=
source
.
getSubTypeName
();
}
public
DxProblemReportVo
getTarget
()
{
return
target
;
}
public
void
setTarget
(
DxProblemReportVo
target
)
{
this
.
target
=
target
;
}
public
DxChangeRequestVo
getSource
()
{
return
source
;
}
public
void
setSource
(
DxChangeRequestVo
source
)
{
this
.
source
=
source
;
}
public
Long
getSourceId
()
{
return
sourceId
;
}
public
void
setSourceId
(
Long
sourceId
)
{
this
.
sourceId
=
sourceId
;
}
public
String
getSourceIdType
()
{
return
sourceIdType
;
}
public
void
setSourceIdType
(
String
sourceIdType
)
{
this
.
sourceIdType
=
sourceIdType
;
}
public
Long
getTargetId
()
{
return
targetId
;
}
public
void
setTargetId
(
Long
targetId
)
{
this
.
targetId
=
targetId
;
}
public
String
getTargetIdType
()
{
return
targetIdType
;
}
public
void
setTargetIdType
(
String
targetIdType
)
{
this
.
targetIdType
=
targetIdType
;
}
}
src/com/yonde/change/vo/pr/DxProblemReportVo.java
View file @
52e269b4
package
com
.
yonde
.
change
.
vo
.
pr
;
import
com.fasterxml.jackson.annotation.JsonTypeInfo
;
import
com.yonde.basedata.entity.users.DxUserVO
;
import
com.yonde.basedata.vo.DxOrganizationVO
;
import
com.yonde.basedata.vo.DxVersionVO
;
import
com.yonde.basedata.vo.IdVO
;
import
com.yonde.basedata.vo.ObjFileLinkVO
;
import
com.yonde.change.vo.DxChangeItemVo
;
import
com.yonde.change.vo.DxReportedAgainstVo
;
import
com.yonde.common.DxCommonUtils
;
import
com.yonde.common.IBAHelper
;
...
...
@@ -22,12 +25,17 @@ import java.util.Locale;
/**
* PR
*/
public
class
DxProblemReportVo
extends
IdVO
implements
Serializable
{
@JsonTypeInfo
(
use
=
JsonTypeInfo
.
Id
.
CLASS
,
property
=
"classname"
,
visible
=
true
,
defaultImpl
=
DxProblemReportVo
.
class
)
public
class
DxProblemReportVo
extends
DxChangeItemVo
implements
Serializable
{
private
String
name
;
private
String
number
;
private
String
state
;
private
String
problemSource
;
private
String
problemCategory
;
private
String
comments
;
...
...
@@ -46,6 +54,9 @@ public class DxProblemReportVo extends IdVO implements Serializable {
private
List
<
ObjFileLinkVO
>
objFileLinks
;
private
boolean
latest
=
true
;
private
boolean
checkOuted
=
false
;
public
DxProblemReportVo
()
{
}
...
...
@@ -57,6 +68,7 @@ public class DxProblemReportVo extends IdVO implements Serializable {
WTOrganization
organization
=
ifc
.
getOrganization
();
if
(
ObjectsUtil
.
nonNull
(
organization
))
{
this
.
setDxOrganization
(
new
DxOrganizationVO
(
organization
));
this
.
objOrgId
=
this
.
dxOrganization
.
getId
();
}
this
.
setDxContext
(
new
DxContextVO
(
ifc
.
getContainer
()));
this
.
subTypeName
=
"DxProblemReport"
;
//TODO 要映射
...
...
@@ -70,12 +82,29 @@ public class DxProblemReportVo extends IdVO implements Serializable {
this
.
setObjFileLinks
(
DxCommonUtils
.
buildObjFileLinks
(
ifc
));
}
public
boolean
isLatest
()
{
return
latest
;
}
public
void
setLatest
(
boolean
latest
)
{
this
.
latest
=
latest
;
}
public
boolean
isCheckOuted
()
{
return
checkOuted
;
}
public
void
setCheckOuted
(
boolean
checkOuted
)
{
this
.
checkOuted
=
checkOuted
;
}
public
DxContextVO
getDxContext
()
{
return
dxContext
;
}
public
void
setDxContext
(
DxContextVO
dxContext
)
{
this
.
dxContext
=
dxContext
;
this
.
dxContextId
=
dxContext
.
getId
();
}
public
Long
getDxContextId
()
{
...
...
src/com/yonde/common/ChangeOrderUtil.java
View file @
52e269b4
...
...
@@ -5,7 +5,6 @@ import com.yonde.basedata.vo.DxDocumentFolderVO;
import
com.yonde.change.vo.DxChangeAffectedDataVo
;
import
com.yonde.change.vo.ecr.DxChangeRequestVo
;
import
com.yonde.context.vo.DxContextVO
;
import
org.apache.commons.collections.ListUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.log4j.Logger
;
import
org.springframework.util.CollectionUtils
;
...
...
@@ -15,8 +14,6 @@ import wt.fc.collections.*;
import
wt.folder.Folder
;
import
wt.folder.FolderEntry
;
import
wt.folder.FolderHelper
;
import
wt.folder.FolderNotFoundException
;
import
wt.iba.value.IBAHolder
;
import
wt.inf.container.WTContainer
;
import
wt.inf.container.WTContainerRef
;
import
wt.lifecycle.LifeCycleServerHelper
;
...
...
@@ -34,6 +31,7 @@ import wt.type.TypedUtility;
import
wt.type.TypedUtilityServiceHelper
;
import
wt.util.WTException
;
import
wt.util.WTPropertyVetoException
;
import
wt.vc.Mastered
;
import
wt.workflow.engine.WfEngineHelper
;
import
wt.workflow.engine.WfProcess
;
import
wt.workflow.engine.WfState
;
...
...
@@ -43,11 +41,9 @@ import java.sql.Timestamp;
import
java.util.*
;
/**
*
* @author liuwei
*/
public
class
ChangeOrderUtil
{
public
class
ChangeOrderUtil
{
private
static
final
Logger
LOGGER
=
LogR
.
getLogger
(
ChangeOrderUtil
.
class
.
getName
());
/**
...
...
@@ -66,17 +62,17 @@ public class ChangeOrderUtil
*/
public
static
WTChangeOrder2
createWTChangeOrder2
(
String
ecnType
,
String
name
,
Folder
folder
,
ChangeNoticeComplexity
changeNoticeComplexity
,
String
description
,
Timestamp
timestamp
,
Map
<
String
,
String
>
ibaMap
)
throws
WTException
,
WTPropertyVetoException
{
Map
<
String
,
String
>
ibaMap
)
throws
WTException
,
WTPropertyVetoException
{
WTChangeOrder2
changeOrder
=
WTChangeOrder2
.
newWTChangeOrder2
(
name
);
TypeDefinitionReference
typeDefinitionRef
=
TypedUtility
.
getTypeDefinitionReference
(
ecnType
);
if
(
typeDefinitionRef
==
null
)
{
typeDefinitionRef
=
TypeDefinitionReference
.
newTypeDefinitionReference
();
}
changeOrder
.
setTypeDefinitionReference
(
typeDefinitionRef
);
if
(!
StringUtils
.
isEmpty
(
description
))
{
if
(!
StringUtils
.
isEmpty
(
description
))
{
changeOrder
.
setDescription
(
description
);
}
if
(
timestamp
!=
null
){
if
(
timestamp
!=
null
)
{
changeOrder
.
setNeedDate
(
timestamp
);
}
changeOrder
.
setChangeNoticeComplexity
(
changeNoticeComplexity
);
...
...
@@ -102,9 +98,8 @@ public class ChangeOrderUtil
* @throws WTException
* @throws WTPropertyVetoException
*/
public
static
WTChangeOrder2
createWTChangeOrder2
(
String
name
,
String
ecnType
,
Folder
folder
,
String
description
,
Map
<
String
,
Object
>
ibaMap
)
throws
WTException
,
WTPropertyVetoException
{
public
static
WTChangeOrder2
createWTChangeOrder2
(
String
name
,
String
ecnType
,
Folder
folder
,
String
description
,
Map
<
String
,
Object
>
ibaMap
)
throws
WTException
,
WTPropertyVetoException
{
WTChangeOrder2
changeOrder
=
WTChangeOrder2
.
newWTChangeOrder2
(
name
);
TypeDefinitionReference
typeDefinitionRef
=
TypedUtility
.
getTypeDefinitionReference
(
ecnType
);
...
...
@@ -112,7 +107,7 @@ public class ChangeOrderUtil
typeDefinitionRef
=
TypeDefinitionReference
.
newTypeDefinitionReference
();
}
changeOrder
.
setTypeDefinitionReference
(
typeDefinitionRef
);
if
(!
StringUtils
.
isEmpty
(
description
))
{
if
(!
StringUtils
.
isEmpty
(
description
))
{
changeOrder
.
setDescription
(
description
);
}
changeOrder
.
setChangeNoticeComplexity
(
ChangeNoticeComplexity
.
BASIC
);
...
...
@@ -139,19 +134,15 @@ public class ChangeOrderUtil
* @throws WTException
* @throws WTPropertyVetoException
*/
public
static
WTChangeOrder2
createWTChangeOrder2
(
WTChangeOrder2
changeOrder
,
String
name
,
String
ecnType
,
Folder
folder
,
String
description
,
Map
<
String
,
Object
>
ibaMap
)
throws
WTException
,
WTPropertyVetoException
{
public
static
WTChangeOrder2
createWTChangeOrder2
(
WTChangeOrder2
changeOrder
,
String
name
,
String
ecnType
,
Folder
folder
,
String
description
,
Map
<
String
,
Object
>
ibaMap
)
throws
WTException
,
WTPropertyVetoException
,
RemoteException
{
if
(
ObjectsUtil
.
isNull
(
changeOrder
))
{
changeOrder
=
WTChangeOrder2
.
newWTChangeOrder2
(
name
);
TypeDefinitionReference
tydef
=
TypedUtilityServiceHelper
.
service
.
getTypeDefinitionReference
(
"wt.change2.WTChangeOrder2"
);
changeOrder
.
setTypeDefinitionReference
(
tydef
);
}
TypeDefinitionReference
typeDefinitionRef
=
TypedUtility
.
getTypeDefinitionReference
(
ecnType
);
if
(
typeDefinitionRef
==
null
)
{
typeDefinitionRef
=
TypeDefinitionReference
.
newTypeDefinitionReference
();
}
changeOrder
.
setTypeDefinitionReference
(
typeDefinitionRef
);
if
(!
StringUtils
.
isEmpty
(
description
)){
if
(!
StringUtils
.
isEmpty
(
description
))
{
changeOrder
.
setDescription
(
description
);
}
changeOrder
.
setChangeNoticeComplexity
(
ChangeNoticeComplexity
.
BASIC
);
...
...
@@ -177,11 +168,8 @@ public class ChangeOrderUtil
* @throws WTException
* @throws WTPropertyVetoException
*/
public
static
WTChangeActivity2
createECA
(
WTChangeOrder2
changeOrder
)
throws
WTException
,
WTPropertyVetoException
{
public
static
WTChangeActivity2
createECA
(
WTChangeOrder2
changeOrder
)
throws
WTException
,
WTPropertyVetoException
{
WTPrincipalReference
sessioner
=
wt
.
session
.
SessionHelper
.
manager
.
getPrincipalReference
();
// return createECA(changeOrder, "EC LoadSheet_" + docName + "_" +
// changeOrder.getName(), sessioner, sessioner);
return
createECA
(
changeOrder
,
changeOrder
.
getName
(),
sessioner
,
sessioner
);
}
...
...
@@ -198,33 +186,25 @@ public class ChangeOrderUtil
* @throws WTPropertyVetoException
*/
public
static
WTChangeActivity2
createECA
(
WTChangeOrder2
changeOrder
,
String
econame
,
WTPrincipalReference
sessioner1
,
WTPrincipalReference
sessioner2
)
throws
WTException
,
WTPropertyVetoException
{
WTPrincipalReference
sessioner1
,
WTPrincipalReference
sessioner2
)
throws
WTException
{
WTChangeActivity2
changeActivity
=
null
;
try
{
ChangeOrderIfc
co
=
(
ChangeOrderIfc
)
changeOrder
;
try
{
changeActivity
=
WTChangeActivity2
.
newWTChangeActivity2
(
econame
);
changeActivity
.
setDescription
(
econame
);
changeActivity
.
setContainer
(
changeOrder
.
getContainer
());
WTContainer
container
=
changeOrder
.
getContainer
();
WTContainerRef
containerRef
=
WTContainerRef
.
newWTContainerRef
(
container
);
Folder
folder
=
FolderHelper
.
service
.
getFolder
(
"/Default/"
,
containerRef
);
ChangeActivityIfc
ca
=
(
ChangeActivityIfc
)
changeActivity
;
ChangeActivityIfc
ca
=
changeActivity
;
FolderHelper
.
assignLocation
((
FolderEntry
)
ca
,
folder
);
// FolderHelper.assignLocation((FolderEntry)ca,
// FolderHelper.getFolder(changeOrder));
ca
=
(
ChangeActivityIfc
)
PersistenceHelper
.
manager
.
save
(
ca
);
IncludedIn2Delegate
del
=
new
IncludedIn2Delegate
();
IncludedInIfc
inc
=
(
IncludedInIfc
)
del
.
getBinaryLink
(
(
ChangeItemIfc
)
co
,
ca
);
inc
=
(
IncludedInIfc
)
PersistenceHelper
.
manager
.
save
(
inc
);
changeActivity
=
(
WTChangeActivity2
)
ca
;
IncludedInIfc
inc
=
(
IncludedInIfc
)
del
.
getBinaryLink
(
changeOrder
,
ca
);
PersistenceHelper
.
manager
.
save
(
inc
);
changeActivity
=
(
WTChangeActivity2
)
PersistenceHelper
.
manager
.
refresh
(
ca
)
;
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
e
.
getLocalizedMessage
(),
e
);
throw
new
WTException
(
e
,
e
.
getLocalizedMessage
());
}
...
...
@@ -241,16 +221,13 @@ public class ChangeOrderUtil
* @throws WTPropertyVetoException
*/
public
static
boolean
inChangeablesAfter
(
Persistable
persistable
,
WTChangeActivity2
ca
)
throws
WTException
,
WTPropertyVetoException
{
WTPropertyVetoException
{
boolean
flag
=
false
;
QueryResult
caResult
=
ChangeHelper2
.
service
.
getChangeablesAfter
(
ca
);
while
(
caResult
.
hasMoreElements
())
{
while
(
caResult
.
hasMoreElements
())
{
Persistable
persistableAfter
=
(
Persistable
)
caResult
.
nextElement
();
flag
=
persistable
.
equals
(
persistableAfter
);
if
(
flag
)
{
if
(
flag
)
{
break
;
}
}
...
...
@@ -267,16 +244,13 @@ public class ChangeOrderUtil
* @throws WTPropertyVetoException
*/
public
static
boolean
inChangeablesBefore
(
Persistable
persistable
,
WTChangeActivity2
ca
)
throws
WTException
,
WTPropertyVetoException
{
WTPropertyVetoException
{
boolean
flag
=
false
;
QueryResult
caResult
=
ChangeHelper2
.
service
.
getChangeablesBefore
(
ca
);
while
(
caResult
.
hasMoreElements
())
{
while
(
caResult
.
hasMoreElements
())
{
Persistable
persistableAfter
=
(
Persistable
)
caResult
.
nextElement
();
flag
=
persistable
.
equals
(
persistableAfter
);
if
(
flag
)
{
if
(
flag
)
{
break
;
}
}
...
...
@@ -290,45 +264,37 @@ public class ChangeOrderUtil
* @return
* @throws WTException
*/
public
static
boolean
hasEcnRunning
(
Changeable2
changeable
)
throws
WTException
{
public
static
boolean
hasEcnRunning
(
Changeable2
changeable
)
throws
WTException
{
boolean
result
=
false
;
if
(
changeable
==
null
)
{
if
(
changeable
==
null
)
{
return
result
;
}
String
ecnTypes
=
"CTO_Change,CTO_MFGReady_Release,CTO_OB,CTO_Planning_Release"
;
String
states
=
"OPEN,UNDERREVIEW"
;
try
{
try
{
// get ECA
QueryResult
qrr
=
ChangeHelper2
.
service
.
getChangingChangeActivities
(
changeable
);
while
(
qrr
.
hasMoreElements
())
{
while
(
qrr
.
hasMoreElements
())
{
WTChangeActivity2
eca
=
(
WTChangeActivity2
)
qrr
.
nextElement
();
// get ecn
QueryResult
qr1
=
ChangeHelper2
.
service
.
getChangeOrder
(
eca
);
if
(
qr1
!=
null
&&
qr1
.
hasMoreElements
())
{
if
(
qr1
!=
null
&&
qr1
.
hasMoreElements
())
{
WTChangeOrder2
ecn
=
(
WTChangeOrder2
)
qr1
.
nextElement
();
String
type
=
TypedUtilityServiceHelper
.
service
.
getExternalTypeIdentifier
(
ecn
);
LOGGER
.
debug
(
"====ecntype:"
+
type
);
if
(
type
!=
null
&&
ecnTypes
.
contains
(
type
.
substring
(
type
.
lastIndexOf
(
"."
)
+
1
)))
{
if
(
type
!=
null
&&
ecnTypes
.
contains
(
type
.
substring
(
type
.
lastIndexOf
(
"."
)
+
1
)))
{
String
ecnState
=
ecn
.
getState
().
getState
().
toString
();
LOGGER
.
debug
(
"====ecnState:"
+
ecnState
);
if
(
states
.
contains
(
ecnState
))
{
if
(
states
.
contains
(
ecnState
))
{
return
true
;
}
}
}
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
e
.
getMessage
(),
e
);
throw
new
WTException
(
e
);
}
...
...
@@ -342,30 +308,24 @@ public class ChangeOrderUtil
* @return
* @throws Exception
*/
public
static
boolean
hasProcessSingle
(
Persistable
p
)
throws
WTException
{
public
static
boolean
hasProcessSingle
(
Persistable
p
)
throws
WTException
{
boolean
result
=
false
;
QueryResult
qrProcs
=
WfEngineHelper
.
service
.
getAssociatedProcesses
(
p
,
null
,
null
);
while
(
qrProcs
.
hasMoreElements
())
{
while
(
qrProcs
.
hasMoreElements
())
{
WfProcess
proc
=
(
WfProcess
)
qrProcs
.
nextElement
();
if
(
proc
.
getState
().
equals
(
WfState
.
OPEN_RUNNING
))
{
if
(
proc
.
getState
().
equals
(
WfState
.
OPEN_RUNNING
))
{
return
true
;
}
}
if
(
p
instanceof
Promotable
)
{
if
(
p
instanceof
Promotable
)
{
WTCollection
col
=
new
WTHashSet
();
col
.
add
((
Promotable
)
p
);
WTCollection
pns
=
MaturityHelper
.
service
.
getPromotionNotices
(
col
);
Iterator
itr
=
pns
.
iterator
();
while
(
itr
.
hasNext
())
{
while
(
itr
.
hasNext
())
{
ObjectReference
or
=
(
ObjectReference
)
itr
.
next
();
if
(
hasProcessSingle
(
or
.
getObject
()))
{
if
(
hasProcessSingle
(
or
.
getObject
()))
{
return
true
;
}
}
...
...
@@ -392,25 +352,20 @@ public class ChangeOrderUtil
/**
* This method is used to get ECN by it's name or number.
*
* @param name
* ECN name or number
* @param name ECN name or number
* @return Engineering Change Notice
*/
public
static
WTChangeOrder2
getECN
(
String
name
)
{
try
{
public
static
WTChangeOrder2
getECN
(
String
name
)
{
try
{
QuerySpec
criteria
=
new
QuerySpec
(
WTChangeOrder2
.
class
);
criteria
.
appendSearchCondition
(
new
SearchCondition
(
WTChangeOrder2
.
class
,
WTChangeOrder2
.
NAME
,
SearchCondition
.
EQUAL
,
name
,
false
));
QueryResult
results
=
PersistenceHelper
.
manager
.
find
(
criteria
);
if
(
results
.
hasMoreElements
())
{
if
(
results
.
hasMoreElements
())
{
return
(
WTChangeOrder2
)
results
.
nextElement
();
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
e
.
getMessage
(),
e
);
}
return
null
;
...
...
@@ -419,24 +374,19 @@ public class ChangeOrderUtil
/**
* This method is used to get ECN by it's number.
*
* @param number
* ECN name or number
* @param number ECN name or number
* @return Engineering Change Notice
*/
public
static
WTChangeOrder2
getECNByNumber
(
String
number
)
{
try
{
public
static
WTChangeOrder2
getECNByNumber
(
String
number
)
{
try
{
QuerySpec
criteria
=
new
QuerySpec
(
WTChangeOrder2
.
class
);
criteria
.
appendSearchCondition
(
new
SearchCondition
(
WTChangeOrder2
.
class
,
WTChangeOrder2
.
NUMBER
,
SearchCondition
.
EQUAL
,
number
,
false
));
QueryResult
results
=
PersistenceHelper
.
manager
.
find
(
criteria
);
if
(
results
.
hasMoreElements
())
{
if
(
results
.
hasMoreElements
())
{
return
(
WTChangeOrder2
)
results
.
nextElement
();
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
e
.
getMessage
(),
e
);
}
return
null
;
...
...
@@ -448,46 +398,39 @@ public class ChangeOrderUtil
* @param ecrNumber
* @return
*/
public
static
WTChangeRequest2
getECRByNumber
(
String
ecrNumber
)
{
try
{
public
static
WTChangeRequest2
getECRByNumber
(
String
ecrNumber
)
{
try
{
QuerySpec
criteria
=
new
QuerySpec
(
WTChangeRequest2
.
class
);
criteria
.
appendSearchCondition
(
new
SearchCondition
(
WTChangeRequest2
.
class
,
WTChangeRequest2
.
NUMBER
,
SearchCondition
.
EQUAL
,
ecrNumber
,
false
));
QueryResult
results
=
PersistenceHelper
.
manager
.
find
(
criteria
);
if
(
results
.
hasMoreElements
())
{
if
(
results
.
hasMoreElements
())
{
return
(
WTChangeRequest2
)
results
.
nextElement
();
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
e
.
getMessage
(),
e
);
}
return
null
;
}
/**
* This method is used to get ECR by it's number.
*
* @param issueNumber
* @return
*/
public
static
WTChangeIssue
getIssueByNumber
(
String
issueNumber
)
{
try
{
public
static
WTChangeIssue
getIssueByNumber
(
String
issueNumber
)
{
try
{
QuerySpec
criteria
=
new
QuerySpec
(
WTChangeIssue
.
class
);
criteria
.
appendSearchCondition
(
new
SearchCondition
(
WTChangeIssue
.
class
,
WTChangeIssue
.
NUMBER
,
SearchCondition
.
EQUAL
,
issueNumber
,
false
));
QueryResult
results
=
PersistenceHelper
.
manager
.
find
(
criteria
);
if
(
results
.
hasMoreElements
())
{
if
(
results
.
hasMoreElements
())
{
return
(
WTChangeIssue
)
results
.
nextElement
();
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
e
.
getMessage
(),
e
);
}
return
null
;
...
...
@@ -505,8 +448,7 @@ public class ChangeOrderUtil
public
static
List
<
WTObject
>
getChangeBefore
(
WTChangeRequest2
ecr
)
throws
ChangeException2
,
WTException
{
List
<
WTObject
>
list
=
new
ArrayList
<
WTObject
>();
QueryResult
res
=
ChangeHelper2
.
service
.
getChangeables
(
ecr
);
while
(
res
.
hasMoreElements
())
{
while
(
res
.
hasMoreElements
())
{
WTObject
object
=
(
WTObject
)
res
.
nextElement
();
list
.
add
(
object
);
}
...
...
@@ -524,8 +466,7 @@ public class ChangeOrderUtil
public
static
List
<
WTObject
>
getChangeBefore
(
WTChangeIssue
issue
)
throws
ChangeException2
,
WTException
{
List
<
WTObject
>
list
=
new
ArrayList
<
WTObject
>();
QueryResult
res
=
ChangeHelper2
.
service
.
getChangeables
(
issue
);
while
(
res
.
hasMoreElements
())
{
while
(
res
.
hasMoreElements
())
{
WTObject
object
=
(
WTObject
)
res
.
nextElement
();
list
.
add
(
object
);
}
...
...
@@ -543,12 +484,10 @@ public class ChangeOrderUtil
public
static
List
<
WTObject
>
getChangeBefore
(
WTChangeOrder2
ecn
)
throws
ChangeException2
,
WTException
{
List
<
WTObject
>
list
=
new
ArrayList
<
WTObject
>();
QueryResult
result
=
ChangeHelper2
.
service
.
getChangeActivities
(
ecn
);
while
(
result
.
hasMoreElements
())
{
while
(
result
.
hasMoreElements
())
{
WTChangeActivity2
activity
=
(
WTChangeActivity2
)
result
.
nextElement
();
QueryResult
res
=
ChangeHelper2
.
service
.
getChangeablesBefore
(
activity
);
while
(
res
.
hasMoreElements
())
{
while
(
res
.
hasMoreElements
())
{
WTObject
object
=
(
WTObject
)
res
.
nextElement
();
list
.
add
(
object
);
}
...
...
@@ -563,16 +502,13 @@ public class ChangeOrderUtil
* @return
* @throws WTException
*/
public
static
List
<
WTObject
>
getChangeAfter
(
WTChangeOrder2
ecn
)
throws
WTException
{
public
static
List
<
WTObject
>
getChangeAfter
(
WTChangeOrder2
ecn
)
throws
WTException
{
List
<
WTObject
>
list
=
new
ArrayList
<
WTObject
>();
QueryResult
result
=
ChangeHelper2
.
service
.
getChangeActivities
(
ecn
);
while
(
result
.
hasMoreElements
())
{
while
(
result
.
hasMoreElements
())
{
WTChangeActivity2
activity
=
(
WTChangeActivity2
)
result
.
nextElement
();
QueryResult
res
=
ChangeHelper2
.
service
.
getChangeablesAfter
(
activity
);
while
(
res
.
hasMoreElements
())
{
while
(
res
.
hasMoreElements
())
{
WTObject
object
=
(
WTObject
)
res
.
nextElement
();
list
.
add
(
object
);
}
...
...
@@ -587,21 +523,37 @@ public class ChangeOrderUtil
* @return
* @throws WTException
*/
public
static
List
<
WTChangeRequest2
>
getChangeRequestByChangeNotice
(
WTChangeOrder2
cn
)
throws
WTException
{
public
static
List
<
WTChangeRequest2
>
getChangeRequestByChangeNotice
(
WTChangeOrder2
cn
)
throws
WTException
{
List
<
WTChangeRequest2
>
results
=
new
ArrayList
<
WTChangeRequest2
>();
QueryResult
qr
=
ChangeHelper2
.
service
.
getChangeRequest
(
cn
);
while
(
qr
.
hasMoreElements
())
{
while
(
qr
.
hasMoreElements
())
{
WTChangeRequest2
cr
=
(
WTChangeRequest2
)
qr
.
nextElement
();
if
(!
results
.
contains
(
cr
))
{
if
(!
results
.
contains
(
cr
))
{
results
.
add
(
cr
);
}
}
return
results
;
}
/**
* get all ChangeIssues of ChangeRequest
*
* @param cr
* @return
* @throws WTException
*/
public
static
List
<
WTChangeIssue
>
getChangeIssueByChangeRequest
(
WTChangeRequest2
cr
)
throws
WTException
{
List
<
WTChangeIssue
>
results
=
new
ArrayList
<
WTChangeIssue
>();
QueryResult
qr
=
ChangeHelper2
.
service
.
getChangeIssues
(
cr
);
while
(
qr
.
hasMoreElements
())
{
WTChangeIssue
issue
=
(
WTChangeIssue
)
qr
.
nextElement
();
if
(!
results
.
contains
(
issue
))
{
results
.
add
(
issue
);
}
}
return
results
;
}
/**
* add Changeable Before To ChangeNotice
*
...
...
@@ -612,34 +564,37 @@ public class ChangeOrderUtil
* @throws WTException
* @throws
*/
public
static
WTChangeOrder2
addAffectedDataToChangeNotice
(
WTChangeOrder2
cn
,
List
<
Changeable2
>
changeables
,
String
caName
)
throws
WTException
{
public
static
WTChangeOrder2
addAffectedDataToChangeNotice
(
WTChangeOrder2
cn
,
Vector
<
Changeable2
>
changeables
,
String
caName
)
throws
WTException
,
WTPropertyVetoException
{
boolean
enforced
=
SessionServerHelper
.
manager
.
setAccessEnforced
(
false
);
try
{
QueryResult
qr
=
ChangeHelper2
.
service
.
getChangeActivities
(
cn
);
WTChangeActivity2
toBeAddedCA
=
null
;
while
(
qr
.
hasMoreElements
())
{
while
(
qr
.
hasMoreElements
())
{
WTChangeActivity2
ca
=
(
WTChangeActivity2
)
qr
.
nextElement
();
if
(
caName
==
null
||
caName
.
equals
(
""
))
{
if
(
caName
==
null
||
caName
.
equals
(
""
))
{
toBeAddedCA
=
ca
;
break
;
}
else
{
if
(
caName
.
trim
().
equals
(
ca
.
getName
()))
{
}
else
{
if
(
caName
.
trim
().
equals
(
ca
.
getName
()))
{
toBeAddedCA
=
ca
;
break
;
}
}
toBeAddedCA
=
ca
;
}
if
(
toBeAddedCA
!=
null
)
{
ChangeHelper2
.
service
.
storeAssociations
(
AffectedActivityData
.
class
,
toBeAddedCA
,
ObjectsUtil
.
toVector
(
changeables
));
if
(
ObjectsUtil
.
isNull
(
toBeAddedCA
))
{
toBeAddedCA
=
ChangeOrderUtil
.
createECA
(
cn
);
}
LOGGER
.
error
(
"toBeAddedCA======"
+
toBeAddedCA
);
LOGGER
.
error
(
"changeables======"
+
changeables
.
size
());
Vector
vector
=
ChangeHelper2
.
service
.
storeAssociations
(
AffectedActivityData
.
class
,
toBeAddedCA
,
changeables
);
LOGGER
.
error
(
"changeables vector======"
+
vector
.
size
());
cn
=
(
WTChangeOrder2
)
PersistenceHelper
.
manager
.
refresh
(
cn
);
}
finally
{
SessionServerHelper
.
manager
.
setAccessEnforced
(
enforced
);
}
return
cn
;
}
...
...
@@ -653,33 +608,28 @@ public class ChangeOrderUtil
* @throws WTException
* @throws
*/
public
static
WTChangeOrder2
addChangeableAfterToChangeNotice
(
WTChangeOrder2
cn
,
List
<
Changeable2
>
changeables
,
String
caName
)
throws
WTException
{
public
static
WTChangeOrder2
addChangeableAfterToChangeNotice
(
WTChangeOrder2
cn
,
Vector
<
Changeable2
>
changeables
,
String
caName
)
throws
WTException
,
WTPropertyVetoException
{
QueryResult
qr
=
ChangeHelper2
.
service
.
getChangeActivities
(
cn
);
WTChangeActivity2
toBeAddedCA
=
null
;
while
(
qr
.
hasMoreElements
())
{
while
(
qr
.
hasMoreElements
())
{
WTChangeActivity2
ca
=
(
WTChangeActivity2
)
qr
.
nextElement
();
if
(
caName
==
null
||
caName
.
equals
(
""
))
{
if
(
caName
==
null
||
caName
.
equals
(
""
))
{
toBeAddedCA
=
ca
;
break
;
}
else
{
if
(
caName
.
trim
().
equals
(
ca
.
getName
()))
{
}
else
{
if
(
caName
.
trim
().
equals
(
ca
.
getName
()))
{
toBeAddedCA
=
ca
;
break
;
}
}
toBeAddedCA
=
ca
;
}
if
(
toBeAddedCA
!=
null
)
{
ChangeHelper2
.
service
.
storeAssociations
(
ChangeRecord2
.
class
,
toBeAddedCA
,
ObjectsUtil
.
toVector
(
changeables
));
if
(
ObjectsUtil
.
isNull
(
toBeAddedCA
))
{
toBeAddedCA
=
ChangeOrderUtil
.
createECA
(
cn
);
}
ChangeHelper2
.
service
.
storeAssociations
(
ChangeRecord2
.
class
,
toBeAddedCA
,
changeables
);
cn
=
(
WTChangeOrder2
)
PersistenceHelper
.
manager
.
refresh
(
cn
);
return
cn
;
}
...
...
@@ -691,21 +641,35 @@ public class ChangeOrderUtil
* @return
*/
public
static
WTChangeOrder2
addChangeNoticeToChangeRequest
(
WTChangeOrder2
cn
,
WTChangeRequest2
cr
)
throws
WTException
{
try
{
throws
WTException
{
try
{
ChangeHelper2
.
service
.
saveAddressedBy
(
cr
,
cn
);
cn
=
(
WTChangeOrder2
)
PersistenceHelper
.
manager
.
refresh
(
cn
);
}
catch
(
WTException
e
)
{
}
catch
(
WTException
e
)
{
LOGGER
.
error
(
e
.
getMessage
(),
e
);
throw
new
WTException
(
e
,
e
.
getMessage
());
}
return
cn
;
}
/**
* add ChangeRequest To WTChangeIssue
*
* @param issue
* @return
*/
public
static
WTChangeRequest2
addChangeRequestToChangeIssue
(
WTChangeIssue
issue
,
WTChangeRequest2
cr
)
throws
WTException
{
try
{
ChangeHelper2
.
service
.
saveFormalizedBy
(
cr
,
issue
);
cr
=
(
WTChangeRequest2
)
PersistenceHelper
.
manager
.
refresh
(
cr
);
}
catch
(
WTException
e
)
{
LOGGER
.
error
(
e
.
getMessage
(),
e
);
throw
new
WTException
(
e
,
e
.
getMessage
());
}
return
cr
;
}
/**
* check ChangeNotice is have a ChangeRequest
*
...
...
@@ -713,25 +677,19 @@ public class ChangeOrderUtil
* @param changeRequestNumber
* @return
*/
public
static
boolean
checkChangeNoticeHasChangeRequest
(
WTChangeOrder2
cn
,
String
changeRequestNumber
)
{
try
{
public
static
boolean
checkChangeNoticeHasChangeRequest
(
WTChangeOrder2
cn
,
String
changeRequestNumber
)
{
try
{
QueryResult
qr
=
ChangeHelper2
.
service
.
getChangeRequest
(
cn
);
while
(
qr
.
hasMoreElements
())
{
while
(
qr
.
hasMoreElements
())
{
WTChangeRequest2
cr
=
(
WTChangeRequest2
)
qr
.
nextElement
();
if
(
changeRequestNumber
==
null
||
changeRequestNumber
.
trim
().
equals
(
""
))
{
if
(
changeRequestNumber
==
null
||
changeRequestNumber
.
trim
().
equals
(
""
))
{
return
true
;
}
if
(
cr
.
getNumber
().
equalsIgnoreCase
(
changeRequestNumber
))
{
if
(
cr
.
getNumber
().
equalsIgnoreCase
(
changeRequestNumber
))
{
return
true
;
}
}
}
catch
(
WTException
e
)
{
}
catch
(
WTException
e
)
{
LOGGER
.
error
(
e
.
getMessage
(),
e
);
}
return
false
;
...
...
@@ -741,31 +699,90 @@ public class ChangeOrderUtil
* @param changeOrder
* @throws WTException
*/
public
static
void
deleteChangeAfter
(
WTChangeOrder2
changeOrder
)
throws
WTException
{
public
static
void
deleteChangeAfter
(
WTChangeOrder2
changeOrder
)
throws
WTException
{
QueryResult
ecas
=
ChangeHelper2
.
service
.
getChangeActivities
(
changeOrder
);
while
(
ecas
.
hasMoreElements
())
{
while
(
ecas
.
hasMoreElements
())
{
WTChangeActivity2
eca
=
(
WTChangeActivity2
)
ecas
.
nextElement
();
QueryResult
afterItems
=
ChangeHelper2
.
service
.
getChangeablesAfter
(
eca
);
while
(
afterItems
.
hasMoreElements
())
{
while
(
afterItems
.
hasMoreElements
())
{
WTObject
object
=
(
WTObject
)
afterItems
.
nextElement
();
QueryResult
qrt
=
PersistenceHelper
.
manager
.
find
(
ChangeRecord2
.
class
,
eca
,
ChangeRecord2
.
CHANGE_ACTIVITY2_ROLE
,
object
);
Vector
<
Persistable
>
vector
=
new
Vector
<
Persistable
>();
if
(
qrt
.
hasMoreElements
())
{
if
(
qrt
.
hasMoreElements
())
{
vector
=
qrt
.
getObjectVector
().
getVector
();
for
(
int
i
=
0
;
i
<
vector
.
size
();
i
++)
{
PersistenceHelper
.
manager
.
delete
((
Persistable
)
vector
.
get
(
i
));
for
(
int
i
=
0
;
i
<
vector
.
size
();
i
++)
{
PersistenceHelper
.
manager
.
delete
(
vector
.
get
(
i
));
}
}
}
}
}
/**
* @param changeOrder
* @throws WTException
*/
public
static
void
deleteChangeBefore
(
WTChangeOrder2
changeOrder
)
throws
WTException
{
QueryResult
ecas
=
ChangeHelper2
.
service
.
getChangeActivities
(
changeOrder
);
while
(
ecas
.
hasMoreElements
())
{
WTChangeActivity2
eca
=
(
WTChangeActivity2
)
ecas
.
nextElement
();
QueryResult
afterItems
=
ChangeHelper2
.
service
.
getChangeablesBefore
(
eca
);
while
(
afterItems
.
hasMoreElements
())
{
WTObject
object
=
(
WTObject
)
afterItems
.
nextElement
();
QueryResult
qrt
=
PersistenceHelper
.
manager
.
find
(
AffectedActivityData
.
class
,
eca
,
AffectedActivityData
.
CHANGE_ACTIVITY2_ROLE
,
object
);
Vector
<
Persistable
>
vector
=
new
Vector
<
Persistable
>();
if
(
qrt
.
hasMoreElements
())
{
vector
=
qrt
.
getObjectVector
().
getVector
();
for
(
int
i
=
0
;
i
<
vector
.
size
();
i
++)
{
PersistenceHelper
.
manager
.
delete
(
vector
.
get
(
i
));
}
}
}
}
}
/**
* @param issue
* @throws WTException
*/
public
static
void
deletePrData
(
WTChangeIssue
issue
)
throws
WTException
{
QueryResult
items
=
ChangeHelper2
.
service
.
getChangeables
(
issue
);
while
(
items
.
hasMoreElements
())
{
WTObject
object
=
(
WTObject
)
items
.
nextElement
();
QueryResult
qrt
=
PersistenceHelper
.
manager
.
find
(
ReportedAgainst
.
class
,
issue
,
ReportedAgainst
.
CHANGEABLE2_ROLE
,
object
);
Vector
<
Persistable
>
vector
=
new
Vector
<
Persistable
>();
if
(
qrt
.
hasMoreElements
())
{
vector
=
qrt
.
getObjectVector
().
getVector
();
for
(
int
i
=
0
;
i
<
vector
.
size
();
i
++)
{
PersistenceHelper
.
manager
.
delete
(
vector
.
get
(
i
));
}
}
}
}
/**
* @param changeRequest2
* @throws WTException
*/
public
static
void
deleteEcrData
(
WTChangeRequest2
changeRequest2
)
throws
WTException
{
QueryResult
items
=
ChangeHelper2
.
service
.
getChangeables
(
changeRequest2
);
while
(
items
.
hasMoreElements
())
{
WTObject
object
=
(
WTObject
)
items
.
nextElement
();
QueryResult
qrt
=
PersistenceHelper
.
manager
.
find
(
RelevantRequestData2
.
class
,
changeRequest2
,
RelevantRequestData2
.
CHANGEABLE2_ROLE
,
object
);
Vector
<
Persistable
>
vector
=
new
Vector
<
Persistable
>();
if
(
qrt
.
hasMoreElements
())
{
vector
=
qrt
.
getObjectVector
().
getVector
();
for
(
int
i
=
0
;
i
<
vector
.
size
();
i
++)
{
PersistenceHelper
.
manager
.
delete
(
vector
.
get
(
i
));
}
}
}
}
public
static
void
setStateOfPartAfter
(
ChangeOrder2
order
,
State
state
)
throws
WTException
{
QueryResult
qr
=
ChangeHelper2
.
service
.
getChangeablesAfter
(
order
);
WTList
changeables
=
new
WTArrayList
(
qr
);
...
...
@@ -786,7 +803,7 @@ public class ChangeOrderUtil
SearchCondition
searchCondi
=
new
SearchCondition
(
WTChangeOrder2
.
class
,
WTChangeOrder2
.
NUMBER
,
SearchCondition
.
LIKE
,
numberPrefix
+
"%"
);
querySpec
.
appendWhere
(
searchCondi
,
new
int
[]
{
0
});
querySpec
.
appendWhere
(
searchCondi
,
new
int
[]{
0
});
QueryResult
qr
=
PersistenceHelper
.
manager
.
find
((
StatementSpec
)
querySpec
);
...
...
@@ -813,6 +830,7 @@ public class ChangeOrderUtil
}
return
eca
;
}
/**
* query eca by ecn
*
...
...
@@ -831,8 +849,10 @@ public class ChangeOrderUtil
return
null
;
}
/**
* getECNByECA
*
* @param eca
* @return
*/
...
...
@@ -909,7 +929,7 @@ public class ChangeOrderUtil
* @param ecr
* @param affectedData
*/
@SuppressWarnings
({
"rawtypes"
,
"null"
})
@SuppressWarnings
({
"rawtypes"
,
"null"
})
public
static
void
setECRAffectedData
(
WTChangeRequest2
ecr
,
Vector
affectedData
)
{
String
user
=
""
;
try
{
...
...
@@ -941,7 +961,7 @@ public class ChangeOrderUtil
* @param issue
* @param affectedData
*/
@SuppressWarnings
({
"rawtypes"
,
"null"
})
@SuppressWarnings
({
"rawtypes"
,
"null"
})
public
static
void
setIssueAffectedData
(
WTChangeIssue
issue
,
Vector
affectedData
)
{
String
user
=
""
;
try
{
...
...
@@ -950,7 +970,7 @@ public class ChangeOrderUtil
}
catch
(
Exception
e
)
{
}
try
{
Vector
vector
=
ChangeHelper2
.
service
.
storeAssociations
(
Re
levantAnalysisData
.
class
,
issue
,
Vector
vector
=
ChangeHelper2
.
service
.
storeAssociations
(
Re
portedAgainst
.
class
,
issue
,
affectedData
);
if
(
vector
!=
null
)
System
.
out
.
println
(
"\t==after adding affected data, return vector="
+
vector
.
toString
());
...
...
@@ -977,7 +997,7 @@ public class ChangeOrderUtil
* @throws RemoteException
* @throws ChangeException2
*/
@SuppressWarnings
({
"rawtypes"
})
@SuppressWarnings
({
"rawtypes"
})
private
static
WTChangeRequest2
createECR
(
DxChangeRequestVo
entityVO
,
WTContainer
container
)
throws
WTException
,
WTPropertyVetoException
,
RemoteException
{
WTChangeRequest2
ecr
=
null
;
...
...
@@ -1007,7 +1027,7 @@ public class ChangeOrderUtil
//设置ecr的文件夹路径
Folder
location
=
DxCommonUtils
.
makeFolder
(
folderPath
,
container
.
getContainerReference
());
//String changeFolder = FolderUtil.getFolderString(FolderUtil.CHANGE_FOLDER);
if
(
location
!=
null
)
{
if
(
location
!=
null
)
{
WTValuedHashMap
loacationMap
=
new
WTValuedHashMap
();
loacationMap
.
put
(
ecr
,
location
);
FolderHelper
.
assignLocations
(
loacationMap
);
...
...
@@ -1048,6 +1068,37 @@ public class ChangeOrderUtil
return
ecr
;
}
/**
* 更改改名
* @param changeItem
* @param name
* @throws Exception
*/
public
static
void
updateChangeItemName
(
VersionableChangeItem
changeItem
,
String
name
)
throws
Exception
{
Mastered
master
=
changeItem
.
getMaster
();
if
(
master
instanceof
WTChangeOrder2Master
)
{
WTChangeOrder2Master
changeOrder2Master
=
(
WTChangeOrder2Master
)
master
;
WTChangeOrder2MasterIdentity
identity
=
(
WTChangeOrder2MasterIdentity
)
changeOrder2Master
.
getIdentificationObject
();
identity
.
setName
(
name
);
IdentityHelper
.
service
.
changeIdentity
(
changeOrder2Master
,
identity
);
return
;
}
if
(
master
instanceof
WTChangeIssueMaster
)
{
WTChangeIssueMaster
issueMaster
=
(
WTChangeIssueMaster
)
master
;
WTChangeIssueMasterIdentity
identity
=
(
WTChangeIssueMasterIdentity
)
issueMaster
.
getIdentificationObject
();
identity
.
setName
(
name
);
IdentityHelper
.
service
.
changeIdentity
(
issueMaster
,
identity
);
return
;
}
if
(
master
instanceof
WTChangeRequest2Master
)
{
WTChangeRequest2Master
changeRequest2Master
=
(
WTChangeRequest2Master
)
master
;
WTChangeRequest2MasterIdentity
identity
=
(
WTChangeRequest2MasterIdentity
)
changeRequest2Master
.
getIdentificationObject
();
identity
.
setName
(
name
);
IdentityHelper
.
service
.
changeIdentity
(
changeRequest2Master
,
identity
);
return
;
}
}
/**
* retrive a not-null value of a given string
*
...
...
src/com/yonde/common/CommonUtil.java
View file @
52e269b4
...
...
@@ -612,13 +612,12 @@ public class CommonUtil implements RemoteAccess {
* @throws WTException
*/
public
static
WTPart
getPreviousVersion
(
WTPart
part
)
{
WTPart
result
=
null
;
WTPart
result
=
part
;
try
{
String
vid
=
VersionControlHelper
.
getVersionIdentifier
((
Versioned
)
part
).
getValue
();
WTPartMaster
partMaster
=
(
WTPartMaster
)
part
.
getMaster
();
QueryResult
qr
=
VersionControlHelper
.
service
.
allVersionsOf
(
partMaster
);
while
(
qr
.
hasMoreElements
())
{
result
=
(
WTPart
)
qr
.
nextElement
();
String
vid2
=
VersionControlHelper
.
getVersionIdentifier
((
Versioned
)
result
).
getValue
();
//modified by luofeng on 20160818 获取前一个版本必须是相同视图的版本
String
currView
=
part
.
getViewName
()
==
null
?
""
:
part
.
getViewName
();
...
...
@@ -626,6 +625,7 @@ public class CommonUtil implements RemoteAccess {
if
(
vid2
.
compareTo
(
vid
)
<
0
&&
preView
.
equals
(
currView
)){
break
;
}
result
=
(
WTPart
)
qr
.
nextElement
();
}
}
catch
(
WTException
wte
){
log
.
error
(
wte
.
getMessage
());
...
...
@@ -838,6 +838,4 @@ public class CommonUtil implements RemoteAccess {
}
return
folder
;
}
}
src/com/yonde/common/DxPartUtil.java
View file @
52e269b4
...
...
@@ -164,6 +164,9 @@ public class DxPartUtil implements RemoteAccess, Serializable {
WTPart
latestVersionPart
=
part
;
if
(
qr
.
hasMoreElements
())
{
latestVersionPart
=
(
WTPart
)
qr
.
nextElement
();
while
(!
latestVersionPart
.
getViewName
().
equals
(
part
.
getViewName
()))
{
latestVersionPart
=
(
WTPart
)
qr
.
nextElement
();
}
}
for
(
int
i
=
1
;
i
<
count
;
i
++)
{
VersionControlHelper
.
setVersionIdentifier
(
latestVersionPart
,
VersionControlHelper
.
nextVersionId
(
latestVersionPart
));
...
...
src/com/yonde/common/DxSearchUtil.java
View file @
52e269b4
...
...
@@ -5,6 +5,7 @@ import com.yonde.basedata.search.SearchItem;
import
com.yonde.basedata.search.SearchItems
;
import
com.yonde.basedata.search.SearchOperatorEnumUtil
;
import
com.yonde.basedata.search.SearchQueryCondition
;
import
com.yonde.change.service.DXChangeOrderService
;
import
com.yonde.change.vo.ecn.DxChangeNoticeVo
;
import
com.yonde.change.vo.ecr.DxChangeRequestVo
;
import
com.yonde.change.vo.pr.DxProblemReportVo
;
...
...
@@ -80,10 +81,15 @@ public class DxSearchUtil implements RemoteAccess, Serializable {
return
DxPageImpl
.
fromPage
(
ts
);
}
/**
* 通用查询接口
* @param searchQueryCondition
* @return
* @throws Exception
*/
public
static
PagingQueryResult
findByConfigSpecSelect
(
SearchQueryCondition
searchQueryCondition
)
throws
Exception
{
CommonUtil
.
initSessionContext
(
null
);
boolean
enforce
=
SessionServerHelper
.
manager
.
setAccessEnforced
(
false
);
List
partList
;
List
<
String
>
indices
=
searchQueryCondition
.
getIndices
();
Class
cls
=
WTPart
.
class
;
if
(
StringUtils
.
isNotEmpty
(
searchQueryCondition
.
getName
()))
{
...
...
@@ -107,6 +113,7 @@ public class DxSearchUtil implements RemoteAccess, Serializable {
WorkInProgressHelper
.
getSearchCondition
(
cls
,
WorkInProgressState
.
WORKING
,
false
),
new
int
[]{
0
});
// Case 2:最新版
if
(
CollectionUtils
.
isNotEmpty
(
indices
))
{
if
(
querySpec
.
getConditionCount
()
>
0
)
{
querySpec
.
appendAnd
();
...
...
@@ -133,7 +140,6 @@ public class DxSearchUtil implements RemoteAccess, Serializable {
bpqs
.
setRange
(
pageSize
);
bpqs
.
setBackgroundThreadEnabled
(
false
);
bpqs
.
setLimitModeEnabled
(
true
);
//bpqs.setAdvancedQueryEnabled();
PagingQueryResult
qr
=
(
PagingQueryResult
)
PersistenceHelper
.
manager
.
find
(
bpqs
);
return
qr
;
}
finally
{
...
...
@@ -149,6 +155,7 @@ public class DxSearchUtil implements RemoteAccess, Serializable {
* @throws Exception
*/
public
static
void
buildQueryResult
(
WTObject
o
,
List
objList
,
List
<
String
>
indices
)
throws
Exception
{
long
id
=
PersistenceHelper
.
getObjectIdentifier
(
o
).
getId
();
if
(
o
instanceof
WTPart
)
{
WTPart
wtPart
=
(
WTPart
)
o
;
DxPartVO
dxPartVO
=
new
DxPartVO
(
wtPart
);
...
...
@@ -161,21 +168,27 @@ public class DxSearchUtil implements RemoteAccess, Serializable {
objList
.
add
(
dxPartVO
);
return
;
}
List
before
=
DXChangeOrderService
.
getChangeDataLink
(
id
,
"before"
);
if
(
o
instanceof
WTChangeOrder2
)
{
WTChangeOrder2
changeOrder2
=
(
WTChangeOrder2
)
o
;
DxChangeNoticeVo
changeNoticeVo
=
new
DxChangeNoticeVo
(
changeOrder2
);
List
after
=
DXChangeOrderService
.
getChangeDataLink
(
id
,
"after"
);
changeNoticeVo
.
setSourceDxCMReferenceLink
(
after
);
changeNoticeVo
.
setChangeAffectedDatas
(
before
);
objList
.
add
(
changeNoticeVo
);
return
;
}
if
(
o
instanceof
WTChangeRequest2
)
{
WTChangeRequest2
changeRequest2
=
(
WTChangeRequest2
)
o
;
DxChangeRequestVo
changeRequestVo
=
new
DxChangeRequestVo
(
changeRequest2
);
changeRequestVo
.
setChangeAffectedDatas
(
before
);
objList
.
add
(
changeRequestVo
);
return
;
}
if
(
o
instanceof
WTChangeIssue
)
{
WTChangeIssue
issue
=
(
WTChangeIssue
)
o
;
DxProblemReportVo
problemReportVo
=
new
DxProblemReportVo
(
issue
);
problemReportVo
.
setReportedAgainsts
(
before
);
objList
.
add
(
problemReportVo
);
return
;
}
...
...
@@ -184,6 +197,13 @@ public class DxSearchUtil implements RemoteAccess, Serializable {
}
}
/**
* 构建查询条件
* @param searchItems
* @param clazz
* @return
* @throws Exception
*/
public
static
QuerySpec
buildQuerySpec
(
SearchItems
searchItems
,
Class
<?
extends
WTObject
>
clazz
)
throws
Exception
{
Map
<
String
,
String
>
typeSearchMap
=
SearchOperatorEnumUtil
.
typeSearchItemMap
.
get
(
clazz
);
if
(
typeSearchMap
==
null
||
typeSearchMap
.
size
()
==
0
)
{
...
...
@@ -229,8 +249,8 @@ public class DxSearchUtil implements RemoteAccess, Serializable {
/* if (fieldName.equals("masterId")) {
return null;
}*/
// TODO fieldName.equals(SearchOperatorEnumUtil.DX_ID)||
if
(
fieldName
.
equals
(
"checkOuted"
)
||
fieldName
.
equals
(
"creatorId"
))
{
// TODO fieldName.equals(SearchOperatorEnumUtil.DX_ID)||
latest
if
(
fieldName
.
equals
(
"checkOuted"
)
||
fieldName
.
equals
(
"creatorId"
)
||
fieldName
.
equals
(
"latest"
)
)
{
continue
;
}
//视图
...
...
src/com/yonde/common/ObjectsUtil.java
View file @
52e269b4
...
...
@@ -27,7 +27,7 @@ public class ObjectsUtil {
public
static
Vector
toVector
(
List
vote
)
{
Vector
vector
=
new
Vector
();
if
(
CollectionUtils
.
isEmpty
(
vote
))
{
if
(
!
CollectionUtils
.
isEmpty
(
vote
))
{
vector
.
addAll
(
vote
);
}
return
vector
;
...
...
src/com/yonde/common/PartUtil.java
View file @
52e269b4
...
...
@@ -9,7 +9,9 @@ import org.apache.log4j.Logger;
import
wt.fc.*
;
import
wt.fc.collections.WTValuedHashMap
;
import
wt.folder.Folder
;
import
wt.folder.FolderEntry
;
import
wt.folder.FolderHelper
;
import
wt.inf.container.WTContainer
;
import
wt.inf.container.WTContainerRef
;
import
wt.log4j.LogR
;
import
wt.method.RemoteAccess
;
...
...
@@ -23,6 +25,7 @@ import wt.query.QuerySpec;
import
wt.query.SearchCondition
;
import
wt.session.SessionHelper
;
import
wt.session.SessionServerHelper
;
import
wt.team.TeamReference
;
import
wt.type.TypedUtility
;
import
wt.util.WTException
;
import
wt.vc.VersionControlHelper
;
...
...
@@ -547,4 +550,49 @@ public class PartUtil implements RemoteAccess {
}
return
childs
;
}
/**
* revise WTDocument
*
* @param document
* WTDocument
* @return WTDocument
* @throws WTException
*/
public
static
WTPart
reviseWTPart
(
WTPart
document
,
String
comment
)
throws
WTException
{
WTPart
wtPart
=
document
;
try
{
if
(
wtPart
==
null
)
{
return
null
;
}
WTContainer
container
=
wtPart
.
getContainer
();
WTContainerRef
containerRef
=
WTContainerRef
.
newWTContainerRef
(
container
);
// container.getContainerReference();//
TeamReference
teamReference
=
wtPart
.
getTeamId
();
Folder
oldFoler
=
FolderHelper
.
getFolder
(
wtPart
);
if
(
oldFoler
==
null
)
{
String
strLocation
=
wtPart
.
getLocation
();
oldFoler
=
FolderHelper
.
service
.
getFolder
(
strLocation
,
containerRef
);
}
wtPart
=
(
WTPart
)
wt
.
vc
.
VersionControlHelper
.
service
.
newVersion
(
wtPart
);
if
(
teamReference
!=
null
)
{
wtPart
.
setTeamId
(
teamReference
);
}
VersionControlHelper
.
setNote
(
wtPart
,
comment
==
null
?
""
:
comment
);
wtPart
.
setContainer
(
container
);
FolderHelper
.
assignLocation
((
FolderEntry
)
wtPart
,
oldFoler
);
wtPart
=
(
WTPart
)
PersistenceHelper
.
manager
.
save
(
wtPart
);
wtPart
=
(
WTPart
)
PersistenceHelper
.
manager
.
refresh
(
wtPart
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"Auto Revise Failed :"
+
e
);
logger
.
error
(
"Original comment :"
+
comment
);
throw
new
WTException
(
e
);
}
return
wtPart
;
}
}
src/com/yonde/common/RfUtil.java
View file @
52e269b4
package
com
.
yonde
.
common
;
import
com.yonde.basedata.search.SearchOperatorEnumUtil
;
import
org.apache.log4j.Logger
;
import
wt.doc.WTDocument
;
import
wt.fc.*
;
import
wt.lifecycle.LifeCycleHelper
;
import
wt.method.RemoteMethodServer
;
import
wt.fc.PersistenceHelper
;
import
wt.fc.ReferenceFactory
;
import
wt.fc.WTObject
;
import
wt.fc.WTReference
;
import
wt.log4j.LogR
;
import
wt.part.WTPart
;
import
wt.session.SessionContext
;
import
wt.session.SessionHelper
;
...
...
@@ -16,11 +19,10 @@ import wt.vc.VersionControlHelper;
import
java.lang.reflect.InvocationTargetException
;
import
java.rmi.RemoteException
;
import
java.util.List
;
import
static
org
.
apache
.
commons
.
lang
.
StringUtils
.
isNotBlank
;
public
class
RfUtil
{
public
static
final
ReferenceFactory
rf
=
new
ReferenceFactory
();
private
static
final
Logger
log
=
LogR
.
getLogger
(
RfUtil
.
class
.
getName
());
public
static
WTDocument
getDoc
(
String
oid
){
//checkArgument(isNotBlank(oid));
try
{
...
...
@@ -122,14 +124,15 @@ public class RfUtil {
public
static
WTObject
getWTObjectById
(
Long
id
,
String
prefix
)
{
WTObject
p
=
null
;
try
{
String
oid
=
prefix
+
id
;
try
{
WTReference
wtreference
=
rf
.
getReference
(
oid
);
if
(
wtreference
!=
null
)
{
wtreference
.
refresh
();
p
=
(
WTObject
)
wtreference
.
getObject
();
}
}
catch
(
WTException
e
)
{
log
.
error
(
"get wtobj WTException===="
+
e
.
getMessage
());
}
return
p
;
}
...
...
src/com/yonde/part/service/DxPartService.java
View file @
52e269b4
...
...
@@ -192,15 +192,20 @@ public class DxPartService implements RemoteAccess, Serializable {
}
SessionContext
previous
=
SessionContext
.
newContext
();
DxPartVO
dxPartVO
=
null
;
boolean
enforced
=
false
;
try
{
SessionHelper
.
manager
.
setAdministrator
();
logger
.
error
(
"getCopyOf ===="
+
id
);
enforced
=
SessionServerHelper
.
manager
.
setAccessEnforced
(
false
);
WTPart
partById
=
DxPartUtil
.
getPartById
(
id
);
logger
.
error
(
"get partById===="
+
partById
);
if
(
CommonUtil
.
isCheckedOut
(
partById
))
{
WTPart
partByIdCp
=
(
WTPart
)
CommonUtil
.
getWorkingCopyVersion
(
partById
);
logger
.
error
(
"getCopyOfPart ===="
+
partByIdCp
);
dxPartVO
=
new
DxPartVO
(
partByIdCp
);
if
(
ObjectsUtil
.
isNull
(
dxPartVO
.
getLocker
()))
{
dxPartVO
.
setLockerVO
(
CommonUtil
.
getPreviousVersion
(
partById
));
logger
.
error
(
"dxPartVO.getLocker() ===="
+
dxPartVO
.
getLocker
());
dxPartVO
.
setLockerVO
(
partById
);
}
}
else
{
dxPartVO
=
new
DxPartVO
(
partById
);
...
...
@@ -213,6 +218,7 @@ public class DxPartService implements RemoteAccess, Serializable {
}
finally
{
SessionContext
.
setContext
(
previous
);
SessionServerHelper
.
manager
.
setAccessEnforced
(
enforced
);
}
return
dxPartVO
;
}
...
...
src/com/yonde/wfc/service/WfcProcessService.java
View file @
52e269b4
...
...
@@ -2,6 +2,9 @@ package com.yonde.wfc.service;
import
com.yonde.basedata.search.SearchOperatorEnumUtil
;
import
com.yonde.basedata.vo.IdVO
;
import
com.yonde.change.vo.ecn.DxChangeNoticeVo
;
import
com.yonde.change.vo.ecr.DxChangeRequestVo
;
import
com.yonde.change.vo.pr.DxProblemReportVo
;
import
com.yonde.common.ObjectsUtil
;
import
com.yonde.common.RfUtil
;
import
com.yonde.common.WTUserUtil
;
...
...
@@ -13,6 +16,9 @@ import com.yonde.wfc.vo.DxWfProcessTaskVO;
import
com.yonde.wfc.vo.DxWfProcessVO
;
import
com.yonde.wfc.vo.DxWfTaskOperationArgsVO
;
import
org.apache.commons.lang.StringUtils
;
import
wt.change2.WTChangeIssue
;
import
wt.change2.WTChangeOrder2
;
import
wt.change2.WTChangeRequest2
;
import
wt.doc.WTDocument
;
import
wt.fc.Persistable
;
import
wt.fc.QueryResult
;
...
...
@@ -119,13 +125,34 @@ public class WfcProcessService implements RemoteAccess {
if
(
pbo
instanceof
WTDocument
)
{
WTDocument
document
=
(
WTDocument
)
pbo
;
objVO
=
new
DxDocumentVO
(
document
);
}
else
if
(
pbo
instanceof
WTPart
)
{
return
objVO
;
}
if
(
pbo
instanceof
WTPart
)
{
WTPart
part
=
(
WTPart
)
pbo
;
objVO
=
new
DxPartVO
(
part
);
}
else
{
// TODO 其他类型
return
objVO
;
}
if
(
pbo
instanceof
WTChangeOrder2
)
{
WTChangeOrder2
changeOrder2
=
(
WTChangeOrder2
)
pbo
;
objVO
=
new
DxChangeNoticeVo
(
changeOrder2
);
return
objVO
;
}
if
(
pbo
instanceof
WTChangeOrder2
)
{
WTChangeOrder2
changeOrder2
=
(
WTChangeOrder2
)
pbo
;
objVO
=
new
DxChangeNoticeVo
(
changeOrder2
);
return
objVO
;
}
if
(
pbo
instanceof
WTChangeRequest2
)
{
WTChangeRequest2
changeRequest2
=
(
WTChangeRequest2
)
pbo
;
objVO
=
new
DxChangeRequestVo
(
changeRequest2
);
return
objVO
;
}
if
(
pbo
instanceof
WTChangeIssue
)
{
WTChangeIssue
changeIssue
=
(
WTChangeIssue
)
pbo
;
objVO
=
new
DxProblemReportVo
(
changeIssue
);
return
objVO
;
}
// TODO 其他类型
}
}
}
finally
{
...
...
src/com/yonde/wfc/vo/DxWfBizExtInfo.java
View file @
52e269b4
package
com
.
yonde
.
wfc
.
vo
;
import
com.yonde.common.WorkflowUtil
;
import
wt.change2.WTChangeIssue
;
import
wt.change2.WTChangeOrder2
;
import
wt.change2.WTChangeRequest2
;
import
wt.doc.WTDocument
;
import
wt.fc.Persistable
;
import
wt.part.WTPart
;
import
wt.vc.baseline.ManagedBaseline
;
import
wt.workflow.engine.WfProcess
;
import
wt.workflow.engine.WfTemplateProcessor
;
import
java.io.Serializable
;
import
java.util.Map
;
...
...
@@ -39,8 +42,25 @@ public class DxWfBizExtInfo implements Serializable {
WTPart
part
=
(
WTPart
)
pbo
;
taskTitle
=
part
.
getName
()
+
"_"
+
part
.
getNumber
();
this
.
bizObjectState
=
part
.
getState
().
toString
();
}
else
{
// TODO 更改单 等
}
else
if
(
pbo
instanceof
WTChangeOrder2
)
{
WTChangeOrder2
changeOrder2
=
(
WTChangeOrder2
)
pbo
;
taskTitle
=
changeOrder2
.
getName
()
+
"_"
+
changeOrder2
.
getNumber
();
this
.
bizObjectState
=
changeOrder2
.
getState
().
toString
();
}
else
if
(
pbo
instanceof
WTChangeRequest2
)
{
WTChangeRequest2
changeRequest2
=
(
WTChangeRequest2
)
pbo
;
taskTitle
=
changeRequest2
.
getName
()
+
"_"
+
changeRequest2
.
getNumber
();
this
.
bizObjectState
=
changeRequest2
.
getState
().
toString
();
}
else
if
(
pbo
instanceof
WTChangeIssue
)
{
WTChangeIssue
changeIssue
=
(
WTChangeIssue
)
pbo
;
taskTitle
=
changeIssue
.
getName
()
+
"_"
+
changeIssue
.
getNumber
();
this
.
bizObjectState
=
changeIssue
.
getState
().
toString
();
}
else
if
(
pbo
instanceof
ManagedBaseline
)
{
ManagedBaseline
baseline
=
(
ManagedBaseline
)
pbo
;
taskTitle
=
baseline
.
getName
()
+
"_"
+
baseline
.
getNumber
();
this
.
bizObjectState
=
baseline
.
getState
().
toString
();
}
else
{
// TODO 其他类型 等
}
this
.
taskTitle
=
taskTitle
;
String
processName
=
process
.
getTemplate
().
getName
();
...
...
src/com/yonde/wfc/vo/DxWfProcessTaskVO.java
View file @
52e269b4
...
...
@@ -60,7 +60,7 @@ public class DxWfProcessTaskVO implements Serializable {
private
String
instruction
;
private
String
layoutId
=
"defaultInfo"
;
private
List
<
String
>
lastComments
;
private
DxWfBizExtInfo
bizExtInfo
;
private
DxWfBizExtInfo
bizExtInfo
;
//待办详情显示
//private DxWfTaskExtRelationInfoVO DxWfTaskExtRelationInfoVO;
private
String
parentTaskId
;
private
boolean
forwardFlag
;
...
...
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