Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dcs-doc-expand
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
INET-TWO
server
dcs-doc-expand
Commits
224ed2bb
Commit
224ed2bb
authored
Aug 15, 2024
by
pchxue
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
迁移问题处理
parent
16eab8bb
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
2011 additions
and
360 deletions
+2011
-360
ExtApplicantVO.java
...src/main/java/com/yonde/dcs/common/vo/ExtApplicantVO.java
+93
-54
ExtInterfaceVO.java
...src/main/java/com/yonde/dcs/common/vo/ExtInterfaceVO.java
+114
-74
pom.xml
dcs-doc-expand-core/pom.xml
+8
-3
ExtAutoTaskController.java
.../com/yonde/dcs/core/controller/ExtAutoTaskController.java
+29
-8
ContactListUtils.java
...ain/java/com/yonde/dcs/core/factory/ContactListUtils.java
+183
-0
DENUtils.java
...re/src/main/java/com/yonde/dcs/core/factory/DENUtils.java
+249
-0
DesignChangeUtils.java
...in/java/com/yonde/dcs/core/factory/DesignChangeUtils.java
+340
-0
DesignDocApplicatUtils.java
...va/com/yonde/dcs/core/factory/DesignDocApplicatUtils.java
+209
-0
DesignEnterUtils.java
...ain/java/com/yonde/dcs/core/factory/DesignEnterUtils.java
+87
-0
NCRUtils.java
...re/src/main/java/com/yonde/dcs/core/factory/NCRUtils.java
+318
-0
WorkContactListUtils.java
...java/com/yonde/dcs/core/factory/WorkContactListUtils.java
+126
-0
ExtAutoTaskServiceImpl.java
...m/yonde/dcs/core/service/impl/ExtAutoTaskServiceImpl.java
+117
-127
ExtDocServiceImpl.java
...va/com/yonde/dcs/core/service/impl/ExtDocServiceImpl.java
+1
-1
ExtDxDocumentServiceImpl.java
...cs/core/service/impl/expand/ExtDxDocumentServiceImpl.java
+1
-1
WordMarkUtil.java
...e/src/main/java/com/yonde/dcs/core/util/WordMarkUtil.java
+1
-1
WorkFlowUtil.java
...e/src/main/java/com/yonde/dcs/core/util/WorkFlowUtil.java
+19
-7
ExtApplicant.java
...y/src/main/java/com/yonde/dcs/entity/po/ExtApplicant.java
+50
-34
ExtInterface.java
...y/src/main/java/com/yonde/dcs/entity/po/ExtInterface.java
+66
-50
No files found.
dcs-doc-expand-common/src/main/java/com/yonde/dcs/common/vo/ExtApplicantVO.java
View file @
224ed2bb
package
com
.
yonde
.
dcs
.
common
.
vo
;
import
javax.validation.constraints.NotBlank
;
import
java.util.Date
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
cn.hutool.core.convert.Convert
;
import
com.yonde.dex.basedata.entity.annotation.XmlElementProperty
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.annotation.JsonUnwrapped
;
import
lombok.ToString
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter
;
import
java.math.BigInteger
;
import
org.springframework.data.annotation.Transient
;
import
lombok.experimental.Delegate
;
import
javax.xml.bind.annotation.*
;
import
javax.xml.bind.annotation.XmlAttribute
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.EqualsAndHashCode
;
import
javax.validation.constraints.NotNull
;
import
java.util.List
;
import
com.fasterxml.jackson.annotation.JsonTypeInfo
;
import
com.yonde.dex.basedata.entity.annotation.DexEmbedded
;
import
com.yonde.dex.basedata.entity.annotation.ReferenceProperty
;
import
com.yonde.dex.basedata.entity.annotation.RelationProperty
;
import
com.yonde.dex.basedata.entity.annotation.VersionProperty
;
import
com.yonde.dex.basedata.entity.xmladapters.LocalDateTimeXmlAdapter
;
import
lombok.Data
;
import
com.yonde.dex.basedata.entity.annotation.*
;
import
lombok.AllArgsConstructor
;
import
lombok.NoArgsConstructor
;
import
com.yonde.dex.basedata.entity.vo.IdOnlyVO
;
import
cn.hutool.core.convert.Convert
;
import
cn.hutool.core.lang.TypeReference
;
import
com.yonde.dex.basedata.entity.data.VersionRelationType
;
import
com.yonde.dcs.common.vo.ExtInterfaceVO
;
import
com.yonde.dex.basedata.entity.vo.DxIdVOEmbeddable
;
import
com.yonde.dex.basedata.entity.vo.IdOnlyVO
;
import
com.yonde.dex.basedata.entity.vo.IdVO
;
import
com.yonde.dex.dfs.objfilelink.plugin.common.entity.DxObjFileLinkVOEmbeddable
;
import
com.yonde.dex.context.plugin.common.entity.DxContextVOEmbeddable
;
import
com.yonde.dex.dfs.objfilelink.plugin.common.entity.DxObjFileLinkVOHolder
;
import
com.yonde.dex.lcycle.plugin.common.entity.DxLifecycleManageBaseVOEmbeddable
;
import
com.yonde.dex.context.plugin.common.entity.DxContextVOHolder
;
import
com.yonde.dex.container.folder.plugin.common.entity.DxObjFolderVOEmbeddable
;
import
com.yonde.dex.version.plugin.common.entity.DxIterationVOEmbeddable
;
import
com.yonde.dex.basedata.entity.users.DxUserVO
;
import
com.yonde.dcs.common.vo.ExtApplicantLinkVO
;
import
com.yonde.dex.lcycle.plugin.common.entity.DxLifecycleManageBaseVOHolder
;
import
com.yonde.dex.l
ogicdelete.plugin.common.entity.DxLogicDelet
eVOEmbeddable
;
import
com.yonde.dex.l
cycle.plugin.common.entity.DxLifecycleManageBas
eVOEmbeddable
;
import
com.yonde.dex.logicdelete.plugin.common.entity.DxLogicDeleteVOHolder
;
import
com.yonde.dex.logicdelete.plugin.common.entity.DxLogicDeleteVOEmbeddable
;
import
com.yonde.dex.basedata.entity.vo.IdVO
;
import
com.yonde.dex.user.common.vo.DxOrganizationVO
;
import
com.yonde.dex.version.plugin.common.entity.DxIterationVOEmbeddable
;
import
com.yonde.dex.container.folder.plugin.common.entity.DxObjFolderVOHolder
;
import
com.yonde.dex.dfs.objfilelink.plugin.common.entity.DxObjFileLinkVOEmbeddable
;
import
com.yonde.dex.version.plugin.common.entity.DxIterationVOHolder
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.ToString
;
import
java.time.LocalDateTime
;
import
java.util.List
;
/**
* @description: ExtApplicant-VO
* @author: dexadmin
* @version: V
* @date: 2024-7-15 15:32:39
**/
* @description: ExtApplicant-VO
* @author: dexadmin
* @version: V
* @date: 2024-8-15 16:14:30
**/
@JsonTypeInfo
(
use
=
JsonTypeInfo
.
Id
.
CLASS
,
property
=
"dxClassname"
,
visible
=
true
,
defaultImpl
=
ExtApplicantVO
.
class
)
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
@ToString
(
callSuper
=
true
)
public
class
ExtApplicantVO
extends
IdOnlyVO
implements
IdVO
,
Dx
LifecycleManageBaseVOHolder
,
DxObjFileLink
VOHolder
,
DxIterationVOHolder
<
ExtApplicantVO
>
,
DxLogicDeleteVOHolder
{
public
class
ExtApplicantVO
extends
IdOnlyVO
implements
IdVO
,
Dx
ContextVOHolder
,
DxLifecycleManageBaseVOHolder
,
DxObjFileLinkVOHolder
,
DxObjFolder
VOHolder
,
DxIterationVOHolder
<
ExtApplicantVO
>
,
DxLogicDeleteVOHolder
{
public
static
final
String
DX_CONTEXT_EMBEDDABLE_PROP_NAME
=
"dxContextEmbeddable"
;
public
static
final
String
DX_OBJ_FILE_LINK_EMBEDDABLE_PROP_NAME
=
"dxObjFileLinkEmbeddable"
;
public
static
final
String
DX_OBJ_FOLDER_EMBEDDABLE_PROP_NAME
=
"dxObjFolderEmbeddable"
;
public
static
final
String
DX_LIFECYCLE_MANAGE_BASE_EMBEDDABLE_PROP_NAME
=
"dxLifecycleManageBaseEmbeddable"
;
public
static
final
String
DX_ID_EMBEDDABLE_PROP_NAME
=
"dxIdEmbeddable"
;
public
static
final
String
DX_LOGIC_DELETE_EMBEDDABLE_PROP_NAME
=
"dxLogicDeleteEmbeddable"
;
...
...
@@ -56,101 +81,115 @@ public class ExtApplicantVO extends IdOnlyVO implements IdVO ,DxLifecycleManageB
public
static
final
String
TYPE_PROP_NAME
=
"type"
;
/**
* 扩展VO属性
*/
* 扩展VO属性
*/
@DexEmbedded
()
@JsonIgnore
private
DxContextVOEmbeddable
dxContextEmbeddable
;
/**
* 扩展VO属性
*/
@DexEmbedded
()
@JsonIgnore
private
DxObjFileLinkVOEmbeddable
dxObjFileLinkEmbeddable
;
/**
* 扩展VO属性
*/
* 扩展VO属性
*/
@DexEmbedded
()
@JsonIgnore
private
DxObjFolderVOEmbeddable
dxObjFolderEmbeddable
;
/**
* 扩展VO属性
*/
@DexEmbedded
()
@JsonIgnore
private
DxLifecycleManageBaseVOEmbeddable
dxLifecycleManageBaseEmbeddable
;
/**
* dao扩展对象
*/
* dao扩展对象
*/
@DexEmbedded
()
@JsonIgnore
private
DxIdVOEmbeddable
dxIdEmbeddable
;
/**
* 扩展VO属性
*/
* 扩展VO属性
*/
@DexEmbedded
()
@JsonIgnore
private
DxLogicDeleteVOEmbeddable
dxLogicDeleteEmbeddable
;
/**
* 扩展VO属性
*/
* 扩展VO属性
*/
@DexEmbedded
()
@JsonIgnore
private
DxIterationVOEmbeddable
<
ExtApplicantVO
>
dxIterationEmbeddable
;
/**
* 申请方
*/
* 申请方
*/
@ReferenceProperty
(
baseProperty
=
"applicantOrgId"
)
@VersionProperty
(
curVersion
=
VersionRelationType
.
ITERATION
,
refVersion
=
VersionRelationType
.
NONE
)
private
DxOrganizationVO
applicantOrg
;
/**
* 申请方
*/
* 申请方
*/
private
Long
applicantOrgId
;
/**
* 申请方
*/
* 申请方
*/
private
String
applicantOrgIdType
;
/**
* 申请内容
*/
* 申请内容
*/
private
String
applicatContent
;
/**
* 设计阶段
*/
* 设计阶段
*/
private
String
design
;
/**
* 接口单集合
*/
* 接口单集合
*/
@RelationProperty
(
refProperty
=
"extApplicant"
)
@VersionProperty
(
curVersion
=
VersionRelationType
.
ITERATION
,
refVersion
=
VersionRelationType
.
ITERATION
)
private
List
<
ExtInterfaceVO
>
extInterfaces
;
/**
* 提资方集合
*/
* 提资方集合
*/
private
String
providers
;
/**
* 申请内容link集合
*/
* 申请内容link集合
*/
@RelationProperty
(
refProperty
=
"source"
)
@VersionProperty
(
curVersion
=
VersionRelationType
.
ITERATION
,
refVersion
=
VersionRelationType
.
NONE
)
private
List
<
ExtApplicantLinkVO
>
sourceExtApplicantLink
;
/**
* 要求提交日期
*/
* 要求提交日期
*/
private
LocalDateTime
submitDate
;
/**
* 申请内容link集合
*/
* 申请内容link集合
*/
@RelationProperty
(
refProperty
=
"target"
)
@VersionProperty
(
curVersion
=
VersionRelationType
.
ITERATION
,
refVersion
=
VersionRelationType
.
NONE
)
private
List
<
ExtApplicantLinkVO
>
targetExtApplicantLink
;
/**
* 类型
*/
* 类型
*/
private
String
type
;
}
...
...
dcs-doc-expand-common/src/main/java/com/yonde/dcs/common/vo/ExtInterfaceVO.java
View file @
224ed2bb
package
com
.
yonde
.
dcs
.
common
.
vo
;
import
javax.validation.constraints.NotBlank
;
import
java.util.Date
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
cn.hutool.core.convert.Convert
;
import
com.yonde.dex.basedata.entity.annotation.XmlElementProperty
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.annotation.JsonUnwrapped
;
import
lombok.ToString
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter
;
import
java.math.BigInteger
;
import
org.springframework.data.annotation.Transient
;
import
lombok.experimental.Delegate
;
import
javax.xml.bind.annotation.*
;
import
javax.xml.bind.annotation.XmlAttribute
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.EqualsAndHashCode
;
import
javax.validation.constraints.NotNull
;
import
java.util.List
;
import
com.fasterxml.jackson.annotation.JsonTypeInfo
;
import
com.yonde.dex.basedata.entity.annotation.DexEmbedded
;
import
com.yonde.dex.basedata.entity.annotation.ReferenceProperty
;
import
com.yonde.dex.basedata.entity.annotation.RelationProperty
;
import
com.yonde.dex.basedata.entity.annotation.VersionProperty
;
import
com.yonde.dex.basedata.entity.xmladapters.LocalDateTimeXmlAdapter
;
import
lombok.Data
;
import
com.yonde.dex.basedata.entity.annotation.*
;
import
lombok.AllArgsConstructor
;
import
lombok.NoArgsConstructor
;
import
com.yonde.dex.basedata.entity.vo.IdOnlyVO
;
import
cn.hutool.core.convert.Convert
;
import
cn.hutool.core.lang.TypeReference
;
import
com.yonde.dex.basedata.entity.data.VersionRelationType
;
import
com.yonde.dex.basedata.entity.vo.DxIdVOEmbeddable
;
import
com.yonde.dex.basedata.entity.vo.IdOnlyVO
;
import
com.yonde.dex.basedata.entity.vo.IdVO
;
import
com.yonde.dex.dfs.objfilelink.plugin.common.entity.DxObjFileLinkVOEmbeddable
;
import
com.yonde.dex.context.plugin.common.entity.DxContextVOEmbeddable
;
import
com.yonde.dex.dfs.objfilelink.plugin.common.entity.DxObjFileLinkVOHolder
;
import
com.yonde.dex.lcycle.plugin.common.entity.DxLifecycleManageBaseVOEmbeddable
;
import
com.yonde.dex.context.plugin.common.entity.DxContextVOHolder
;
import
com.yonde.dex.container.folder.plugin.common.entity.DxObjFolderVOEmbeddable
;
import
com.yonde.dex.version.plugin.common.entity.DxIterationVOEmbeddable
;
import
com.yonde.dex.basedata.entity.users.DxUserVO
;
import
com.yonde.dex.lcycle.plugin.common.entity.DxLifecycleManageBaseVOHolder
;
import
com.yonde.dex.logicdelete.plugin.common.entity.DxLogicDeleteVOEmbeddable
;
import
com.yonde.dcs.common.vo.ExtInterfaceDocLinkVO
;
import
com.yonde.dex.lcycle.plugin.common.entity.DxLifecycleManageBaseVOEmbeddable
;
import
com.yonde.dex.logicdelete.plugin.common.entity.DxLogicDeleteVOHolder
;
import
com.yonde.dex.logicdelete.plugin.common.entity.DxLogicDeleteVOEmbeddable
;
import
com.yonde.dex.basedata.entity.vo.IdVO
;
import
com.yonde.dcs.common.vo.ExtApplicantVO
;
import
com.yonde.dcs.common.vo.ExtAuditInterfLinkVO
;
import
com.yonde.dex.user.common.vo.DxOrganizationVO
;
import
com.yonde.dex.container.folder.plugin.common.entity.DxObjFolderVOHolder
;
import
com.yonde.dex.user.common.vo.DxUserInfoVO
;
import
com.yonde.dex.
version.plugin.common.entity.DxIteration
VOEmbeddable
;
import
com.yonde.dex.
dfs.objfilelink.plugin.common.entity.DxObjFileLink
VOEmbeddable
;
import
com.yonde.dex.version.plugin.common.entity.DxIterationVOHolder
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.ToString
;
import
java.time.LocalDateTime
;
import
java.util.List
;
/**
* @description: ExtInterface-VO
* @author: dexadmin
* @version: V
* @date: 2024-7-15 15:32:3
9
**/
* @description: ExtInterface-VO
* @author: dexadmin
* @version: V
* @date: 2024-8-15 16:08:0
9
**/
@JsonTypeInfo
(
use
=
JsonTypeInfo
.
Id
.
CLASS
,
property
=
"dxClassname"
,
visible
=
true
,
defaultImpl
=
ExtInterfaceVO
.
class
)
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
@ToString
(
callSuper
=
true
)
public
class
ExtInterfaceVO
extends
IdOnlyVO
implements
DxIterationVOHolder
<
ExtInterfaceVO
>
,
IdVO
,
Dx
LifecycleManageBaseVOHolder
,
DxObjFileLink
VOHolder
,
DxLogicDeleteVOHolder
{
public
class
ExtInterfaceVO
extends
IdOnlyVO
implements
DxIterationVOHolder
<
ExtInterfaceVO
>
,
IdVO
,
Dx
ContextVOHolder
,
DxLifecycleManageBaseVOHolder
,
DxObjFileLinkVOHolder
,
DxObjFolder
VOHolder
,
DxLogicDeleteVOHolder
{
public
static
final
String
DX_CONTEXT_EMBEDDABLE_PROP_NAME
=
"dxContextEmbeddable"
;
public
static
final
String
DX_OBJ_FILE_LINK_EMBEDDABLE_PROP_NAME
=
"dxObjFileLinkEmbeddable"
;
public
static
final
String
DX_OBJ_FOLDER_EMBEDDABLE_PROP_NAME
=
"dxObjFolderEmbeddable"
;
public
static
final
String
DX_LIFECYCLE_MANAGE_BASE_EMBEDDABLE_PROP_NAME
=
"dxLifecycleManageBaseEmbeddable"
;
public
static
final
String
DX_ID_EMBEDDABLE_PROP_NAME
=
"dxIdEmbeddable"
;
public
static
final
String
DX_LOGIC_DELETE_EMBEDDABLE_PROP_NAME
=
"dxLogicDeleteEmbeddable"
;
...
...
@@ -67,155 +93,169 @@ public class ExtInterfaceVO extends IdOnlyVO implements DxIterationVOHolder<ExtI
public
static
final
String
TZRQ_PROP_NAME
=
"tzrq"
;
/**
* 扩展VO属性
*/
* 扩展VO属性
*/
@DexEmbedded
()
@JsonIgnore
private
DxContextVOEmbeddable
dxContextEmbeddable
;
/**
* 扩展VO属性
*/
@DexEmbedded
()
@JsonIgnore
private
DxObjFileLinkVOEmbeddable
dxObjFileLinkEmbeddable
;
/**
* 扩展VO属性
*/
* 扩展VO属性
*/
@DexEmbedded
()
@JsonIgnore
private
DxObjFolderVOEmbeddable
dxObjFolderEmbeddable
;
/**
* 扩展VO属性
*/
@DexEmbedded
()
@JsonIgnore
private
DxLifecycleManageBaseVOEmbeddable
dxLifecycleManageBaseEmbeddable
;
/**
* dao扩展对象
*/
* dao扩展对象
*/
@DexEmbedded
()
@JsonIgnore
private
DxIdVOEmbeddable
dxIdEmbeddable
;
/**
* 扩展VO属性
*/
* 扩展VO属性
*/
@DexEmbedded
()
@JsonIgnore
private
DxLogicDeleteVOEmbeddable
dxLogicDeleteEmbeddable
;
/**
* 扩展VO属性
*/
* 扩展VO属性
*/
@DexEmbedded
()
@JsonIgnore
private
DxIterationVOEmbeddable
<
ExtInterfaceVO
>
dxIterationEmbeddable
;
/**
* 申请方确认
*/
* 申请方确认
*/
private
String
applicantConfirm
;
/**
* 申请方确认意见
*/
* 申请方确认意见
*/
private
String
applicantConfirmView
;
/**
* 申请方
*/
* 申请方
*/
@ReferenceProperty
(
baseProperty
=
"applicantOrgId"
)
@VersionProperty
(
curVersion
=
VersionRelationType
.
ITERATION
,
refVersion
=
VersionRelationType
.
NONE
)
private
DxOrganizationVO
applicantOrg
;
/**
* 申请方
*/
* 申请方
*/
private
Long
applicantOrgId
;
/**
* 申请方
*/
* 申请方
*/
private
String
applicantOrgIdType
;
/**
* 要求提交日期
*/
* 要求提交日期
*/
private
LocalDateTime
applicatDate
;
/**
* 申请方接口申请
*/
* 申请方接口申请
*/
@ReferenceProperty
(
baseProperty
=
"extApplicantId"
)
@VersionProperty
(
curVersion
=
VersionRelationType
.
ITERATION
,
refVersion
=
VersionRelationType
.
ITERATION
)
private
ExtApplicantVO
extApplicant
;
/**
* 申请方接口申请
*/
* 申请方接口申请
*/
private
Long
extApplicantId
;
/**
* 申请方接口申请
*/
* 申请方接口申请
*/
private
String
extApplicantIdType
;
/**
* 签审接口单link集合
*/
* 签审接口单link集合
*/
@RelationProperty
(
refProperty
=
"target"
)
@VersionProperty
(
curVersion
=
VersionRelationType
.
ITERATION
,
refVersion
=
VersionRelationType
.
NONE
)
private
List
<
ExtAuditInterfLinkVO
>
extAuditInterfLinks
;
/**
* 接口单文档link集合
*/
* 接口单文档link集合
*/
@RelationProperty
(
refProperty
=
"source"
)
@VersionProperty
(
curVersion
=
VersionRelationType
.
ITERATION
,
refVersion
=
VersionRelationType
.
NONE
)
private
List
<
ExtInterfaceDocLinkVO
>
extInterfaceDocLinks
;
/**
* 接口单类型
*/
* 接口单类型
*/
private
String
jkdlx
;
/**
* 上一版本id
*/
* 上一版本id
*/
private
Long
previousId
;
/**
* 提资内容
*/
* 提资内容
*/
private
String
provideContent
;
/**
* 提资人
*/
* 提资人
*/
@ReferenceProperty
(
baseProperty
=
"providerId"
)
@VersionProperty
(
curVersion
=
VersionRelationType
.
ITERATION
,
refVersion
=
VersionRelationType
.
NONE
)
private
DxUserInfoVO
provider
;
/**
* 提资人
*/
* 提资人
*/
private
Long
providerId
;
/**
* 提资人
*/
* 提资人
*/
private
String
providerIdType
;
/**
* 提资方
*/
* 提资方
*/
@ReferenceProperty
(
baseProperty
=
"providerOrgId"
)
@VersionProperty
(
curVersion
=
VersionRelationType
.
ITERATION
,
refVersion
=
VersionRelationType
.
NONE
)
private
DxOrganizationVO
providerOrg
;
/**
* 提资方
*/
* 提资方
*/
private
Long
providerOrgId
;
/**
* 提资方
*/
* 提资方
*/
private
String
providerOrgIdType
;
/**
* 提资日期
*/
* 提资日期
*/
private
LocalDateTime
tzrq
;
}
...
...
dcs-doc-expand-core/pom.xml
View file @
224ed2bb
...
...
@@ -160,9 +160,14 @@
<version>
5.2.0
</version>
</dependency>
<dependency>
<groupId>
com.yonde.dex
</groupId>
<artifactId>
dex-wfc-common
</artifactId>
</dependency>
<groupId>
com.yonde.dex
</groupId>
<artifactId>
dex-wfc-common
</artifactId>
</dependency>
<dependency>
<groupId>
com.luhuiguo
</groupId>
<artifactId>
aspose-words
</artifactId>
<version>
23.1
</version>
</dependency>
</dependencies>
</project>
dcs-doc-expand-core/src/main/java/com/yonde/dcs/core/controller/ExtAutoTaskController.java
View file @
224ed2bb
...
...
@@ -10,12 +10,18 @@ import com.yonde.dcs.core.service.ExtSendFormLinkService;
import
com.yonde.dcs.core.util.ExtDocUtil
;
import
com.yonde.dcs.core.util.ExtWfcUtil
;
import
com.yonde.dcs.document.common.entity.vo.DxDocumentVO
;
import
com.yonde.dcs.esign.plugin.message.WfcSignMessage
;
import
com.yonde.dcs.plan.common.vo.ExtPlanVO
;
import
com.yonde.dex.basedata.entity.api.ApiResult
;
import
com.yonde.dex.basedata.entity.vo.IdVO
;
import
com.yonde.dex.taskmonitor.api.data.TaskMessage
;
import
com.yonde.dex.taskmonitor.api.data.TaskMessageContext
;
import
com.yonde.dex.taskmonitor.api.data.TaskMessageStatus
;
import
com.yonde.dex.taskmonitor.api.interfaces.TaskMessageBuilder
;
import
com.yonde.dex.taskmonitor.api.interfaces.TaskMessagePusher
;
import
com.yonde.dex.wfc.common.vo.DxWfProcessSearchVO
;
import
com.yonde.dex.wfc.common.vo.DxWfProcessVO
;
import
com.yonde.dex.wfc.common.vo.DxWfTaskContext
;
import
com.yonde.dex.wfc.feign.api.WfcProcessFeign
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
...
...
@@ -26,8 +32,8 @@ import org.springframework.transaction.annotation.Transactional;
import
org.springframework.web.bind.annotation.*
;
import
javax.validation.Valid
;
import
java.
util.Dat
e
;
import
java.util.
Map
;
import
java.
time.LocalDateTim
e
;
import
java.util.
*
;
/**
* @program: service
...
...
@@ -70,14 +76,29 @@ public class ExtAutoTaskController {
pboKey
=
"doc"
;
signNode
=
"Activity_0st1yf8"
;
}
// DxWfTaskContext dxWfTaskContext = new DxWfTaskContext(dxWfProcessVO.getBusinessKey(), dxWfProcessVO.getId(), dxWfProcessVO.getProcessDef().getId(), signNode, null, (Map) null);
//todo 在4.1中未找到WfcSignMessage 注释了71-74行
// WfcSignMessage wfcSignMessage = new WfcSignMessage(new HashMap());
// wfcSignMessage.setWfTaskContext(dxWfTaskContext);
// TODO: WfcSignMessageBuilder不存在,根据2.1代码 new TaskMessage();
// WfTaskContext wfTaskContext = new WfTaskContext(wfProcessInstVO.getBusinessKey(), wfProcessInstVO.getId(), wfProcessInstVO.getProcessDef().getId(), signNode, null, (Map) null);
// WfcSignMessage wfcSignMessage = new WfcSignMessage(new HashMap());
// wfcSignMessage.setWfTaskContext(wfTaskContext);
// wfcSignMessage.setSignType(pboKey);
// TaskMessage taskMessage = (new WfcSignMessageBuilder()).newTasks(wfcSignMessage);
// this.taskMessagePusher.sendMessage(taskMessage);
this
.
taskMessagePusher
.
sendMessage
(
null
);
DxWfTaskContext
dxWfTaskContext
=
new
DxWfTaskContext
();
dxWfTaskContext
.
setPboKey
(
dxWfProcessVO
.
getBusinessKey
());
dxWfTaskContext
.
setProcessId
(
dxWfProcessVO
.
getId
());
dxWfTaskContext
.
setProcessDefId
(
dxWfProcessVO
.
getProcDefId
());
dxWfTaskContext
.
setCurrentActivityId
(
signNode
);
WfcSignMessage
wfcSignMessage
=
new
WfcSignMessage
(
new
HashMap
<>());
wfcSignMessage
.
setWfTaskContext
(
dxWfTaskContext
);
wfcSignMessage
.
setSignType
(
pboKey
);
TaskMessage
taskMessage
=
new
TaskMessage
();
taskMessage
.
setStartTime
(
LocalDateTime
.
now
());
taskMessage
.
setFunKey
(
"sign"
);
taskMessage
.
setDetails
((
List
<
Map
<
String
,
Object
>>)
wfcSignMessage
.
getContext
());
taskMessage
.
setProcessKey
(
TaskMessageStatus
.
START
.
name
());
taskMessage
.
setStatus
(
TaskMessageStatus
.
START
);
taskMessage
.
setUpdateTime
(
taskMessage
.
getStartTime
());
this
.
taskMessagePusher
.
sendMessage
(
taskMessage
);
return
ApiResult
.
ok
(
"重新发送电子签名请求成功!"
);
}
else
{
return
ApiResult
.
ok
(
"该对象未走签审流程!"
);
...
...
dcs-doc-expand-core/src/main/java/com/yonde/dcs/core/factory/ContactListUtils.java
0 → 100644
View file @
224ed2bb
package
com
.
yonde
.
dcs
.
core
.
factory
;
import
cn.hutool.core.io.FileUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.yonde.dcs.core.constants.Constants
;
import
com.yonde.dcs.core.constants.SignConstants
;
import
com.yonde.dcs.core.service.ExtDocService
;
import
com.yonde.dcs.core.word.ImportWordService
;
import
com.yonde.dcs.document.common.entity.vo.DxDocumentVO
;
import
com.yonde.dex.dfs.vo.ObjFileLinkVO
;
import
com.yonde.dex.wfc.common.vo.DxWfActivityVO
;
import
com.yonde.dex.wfc.common.vo.DxWfProcessInfoVO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.StringUtils
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* @author xfchai
* @ClassName ContactListUtils.java
* @Description 技术联系单填充业务数据类
* @createTime 2021/11/22 14:20:00
*/
@Component
public
class
ContactListUtils
{
@Autowired
private
ExtDocService
extDocService
;
@Autowired
private
ImportWordService
importWordService
;
/**
* 填充数据
*
* @param
* @return
*/
public
void
settingData
(
DxDocumentVO
v
,
DxWfProcessInfoVO
wfProcessInfoVO
)
{
String
path
=
Constants
.
MTEMPLATE_ABSOLUTE_PATH
;
String
file
=
v
.
getSubTypeName
();
String
outFilePath
=
Constants
.
MERGER_FILE_ABSOLUTE_PATH
+
v
.
getSubTypeName
()
+
"\\"
+
v
.
getNumber
()
+
"\\"
;
//生成特定的文档目录,保存生成的word文件
FileUtil
.
mkdir
(
outFilePath
);
//获取动态属性
Map
<
String
,
Object
>
dynamicAttrs
=
v
.
getDynamicAttrs
();
String
category
=
Objects
.
isNull
(
dynamicAttrs
.
get
(
"category"
))
?
""
:
(
String
)
dynamicAttrs
.
get
(
"category"
);
String
content
=
Objects
.
isNull
(
dynamicAttrs
.
get
(
"content"
))
?
""
:
(
String
)
dynamicAttrs
.
get
(
"content"
);
String
recipient
=
Objects
.
isNull
(
dynamicAttrs
.
get
(
"recipient"
))
?
""
:
(
String
)
dynamicAttrs
.
get
(
"recipient"
);
JSONObject
jsonObject
=
new
JSONObject
();
//密级
String
secretCode
=
v
.
getSecretCode
();
jsonObject
.
put
(
"SecretCode"
,
extDocService
.
searchDictDataByDictCode
(
Constants
.
SECRET_CODE
,
secretCode
));
//项目代号
String
projectCode
=
ObjectUtils
.
isEmpty
(
v
.
getDxDocumentExpand
().
getProjectCode
())
?
""
:
v
.
getDxDocumentExpand
().
getProjectCode
();
jsonObject
.
put
(
"projectCode"
,
projectCode
);
//类别
jsonObject
.
put
(
"category"
,
extDocService
.
searchDictDataByDictCode
(
Constants
.
CATEGORY
,
category
));
//技术联系单编号
jsonObject
.
put
(
"number"
,
ObjectUtils
.
isEmpty
(
v
.
getNumber
())
?
""
:
v
.
getNumber
());
//技术联系单名称
jsonObject
.
put
(
"name"
,
ObjectUtils
.
isEmpty
(
v
.
getName
())
?
""
:
v
.
getName
());
//页数
jsonObject
.
put
(
"pages"
,
v
.
getDxDocumentExpand
().
getAttachPages
());
//判断类型为:内部外部
String
type
=
(
String
)
dynamicAttrs
.
get
(
"type"
);
//拼接字符
if
(
Constants
.
INTER_CONTACT
.
equals
(
type
))
{
List
<
String
>
proposingUnit
=
(
ArrayList
)
dynamicAttrs
.
get
(
"proposingUnit"
);
//内部-提出单位
jsonObject
.
put
(
"proposingUnit"
,
JoinUnitStr
(
proposingUnit
));
List
<
String
>
interReceiveUnit
=
(
ArrayList
)
dynamicAttrs
.
get
(
"interReceiveUnit"
);
//内部-收件人单位
jsonObject
.
put
(
"recipUnit"
,
JoinUnitStr
(
interReceiveUnit
));
}
else
{
//外部-提出单位
jsonObject
.
put
(
"proposingUnit"
,
"清华大学核研院"
);
//外部-收件人单位
jsonObject
.
put
(
"recipUnit"
,
this
.
generateProposer
((
String
)
dynamicAttrs
.
get
(
"extReceiveUnit"
)));
}
//收件人
jsonObject
.
put
(
"recipient"
,
recipient
);
//内容
jsonObject
.
put
(
"content"
,
content
);
//备注
jsonObject
.
put
(
"remark"
,
ObjectUtils
.
isEmpty
(
v
.
getNote
())
?
""
:
v
.
getNote
());
//校验技术联系单是否有内容附件
this
.
checkObjFileLinks
(
jsonObject
,
v
.
getObjFileLinks
(),
""
);
//获取参与者
List
<
DxWfActivityVO
>
activities
=
wfProcessInfoVO
.
getActivityInfo
();
if
(!
CollectionUtils
.
isEmpty
(
activities
))
{
//写入签名数据
jsonObject
.
put
(
"bz_photo"
,
extDocService
.
getSignImage
(
activities
,
SignConstants
.
SIGN_KEY_PREPARED
));
jsonObject
.
put
(
"bz_date"
,
extDocService
.
getEndDate
(
activities
,
SignConstants
.
SIGN_KEY_PREPARED
));
jsonObject
.
put
(
"sh_photo"
,
extDocService
.
getSignImage
(
activities
,
SignConstants
.
SIGN_KEY_SH
));
jsonObject
.
put
(
"sh_date"
,
extDocService
.
getEndDate
(
activities
,
SignConstants
.
SIGN_KEY_SH
));
//分系统总师审核
jsonObject
.
put
(
"fxtsh_photo"
,
extDocService
.
getSignImage
(
activities
,
SignConstants
.
SIGN_KEY_FXTZSSH
));
jsonObject
.
put
(
"fxtsh_date"
,
extDocService
.
getEndDate
(
activities
,
SignConstants
.
SIGN_KEY_FXTZSSH
));
jsonObject
.
put
(
"pz_photo"
,
extDocService
.
getSignImage
(
activities
,
SignConstants
.
SIGN_KEY_APPROVED
));
jsonObject
.
put
(
"pz_date"
,
extDocService
.
getEndDate
(
activities
,
SignConstants
.
SIGN_KEY_APPROVED
));
//总体室审核
jsonObject
.
put
(
"zts_photo"
,
extDocService
.
getSignImage
(
activities
,
SignConstants
.
SIGN_KEY_ZTSSH
));
jsonObject
.
put
(
"zts_date"
,
extDocService
.
getEndDate
(
activities
,
SignConstants
.
SIGN_KEY_ZTSSH
));
}
//模板名称
importWordService
.
getWordAllTable
(
jsonObject
,
path
+
file
+
".docx"
,
outFilePath
+
"outFile.docx"
);
}
/**
* 校验是否有内容附件
*
* @param jsonObject
* @param objFileLinks
* @param attach
*/
private
void
checkObjFileLinks
(
JSONObject
jsonObject
,
List
<
ObjFileLinkVO
>
objFileLinks
,
String
attach
)
{
if
(
CollectionUtils
.
isEmpty
(
objFileLinks
))
{
//对号
jsonObject
.
put
(
"noselect"
,
"\u0052"
);
//方框
jsonObject
.
put
(
"select"
,
"\u00A3"
);
}
else
{
List
<
ObjFileLinkVO
>
collect
=
objFileLinks
.
stream
().
filter
(
item
->
Constants
.
CONTACT_CONTENT_ATTACH
.
equals
(
item
.
getContentType
())
).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
collect
))
{
jsonObject
.
put
(
"noselect"
,
"\u00A3"
);
jsonObject
.
put
(
"select"
,
"\u0052"
);
}
else
{
//对号
jsonObject
.
put
(
"noselect"
,
"\u0052"
);
//方框
jsonObject
.
put
(
"select"
,
"\u00A3"
);
}
}
}
/**
* 获取内部技术联系单类型
*
* @param proposingUnit
* @return
*/
private
String
JoinUnitStr
(
List
<
String
>
proposingUnit
)
{
StringJoiner
joiner
=
new
StringJoiner
(
","
);
if
(!
CollectionUtils
.
isEmpty
(
proposingUnit
))
{
proposingUnit
.
stream
().
forEach
(
item
->
{
joiner
.
add
(
item
);
});
}
return
joiner
.
toString
();
}
/**
* 获取外部收文单位
*
* @param proposer
* @return
*/
private
String
generateProposer
(
String
proposer
)
{
if
(
StringUtils
.
isEmpty
(
proposer
))
{
return
""
;
}
//根据提出方获取提出方单位
String
[]
split
=
proposer
.
split
(
","
);
//拼接字符
StringJoiner
joiner
=
new
StringJoiner
(
","
);
for
(
String
proSplit
:
split
)
{
if
(
proSplit
.
length
()
>
0
)
{
//字典为外单位
String
s
=
extDocService
.
searchDictDataByDictCode
(
Constants
.
NCR_SUPPLIER
,
proSplit
);
joiner
.
add
(
s
);
}
}
return
joiner
.
toString
();
}
}
dcs-doc-expand-core/src/main/java/com/yonde/dcs/core/factory/DENUtils.java
0 → 100644
View file @
224ed2bb
This diff is collapsed.
Click to expand it.
dcs-doc-expand-core/src/main/java/com/yonde/dcs/core/factory/DesignChangeUtils.java
0 → 100644
View file @
224ed2bb
This diff is collapsed.
Click to expand it.
dcs-doc-expand-core/src/main/java/com/yonde/dcs/core/factory/DesignDocApplicatUtils.java
0 → 100644
View file @
224ed2bb
This diff is collapsed.
Click to expand it.
dcs-doc-expand-core/src/main/java/com/yonde/dcs/core/factory/DesignEnterUtils.java
0 → 100644
View file @
224ed2bb
package
com
.
yonde
.
dcs
.
core
.
factory
;
import
cn.hutool.core.io.FileUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.yonde.dcs.core.constants.Constants
;
import
com.yonde.dcs.core.constants.SignConstants
;
import
com.yonde.dcs.core.service.ExtDocService
;
import
com.yonde.dcs.core.word.ImportWordService
;
import
com.yonde.dcs.document.common.entity.vo.DxDocumentVO
;
import
com.yonde.dex.wfc.common.vo.DxWfActivityVO
;
import
com.yonde.dex.wfc.common.vo.DxWfProcessInfoVO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.ObjectUtils
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
/**
* @author xfchai
* @ClassName DesignInputUtils.java
* @Description 设计输入资料单
* @createTime 2021/11/24 14:35:00
*/
@Component
public
class
DesignEnterUtils
{
@Autowired
private
ExtDocService
extDocService
;
@Autowired
private
ImportWordService
importWordService
;
/**
* 填充数据
*
* @param
* @return
*/
public
Map
<
String
,
Object
>
settingData
(
DxDocumentVO
v
,
DxWfProcessInfoVO
wfProcessInfoVO
)
{
String
path
=
Constants
.
MTEMPLATE_ABSOLUTE_PATH
;
String
file
=
v
.
getSubTypeName
();
String
outFilePath
=
Constants
.
MERGER_FILE_ABSOLUTE_PATH
+
v
.
getSubTypeName
()
+
"\\"
+
v
.
getNumber
()
+
"\\"
;
//生成特定的文档目录,保存生成的word文件
FileUtil
.
mkdir
(
outFilePath
);
//获取动态属性
Map
<
String
,
Object
>
dynamicAttrs
=
v
.
getDynamicAttrs
();
String
content
=
Objects
.
isNull
(
dynamicAttrs
.
get
(
"content"
))
?
""
:
(
String
)
dynamicAttrs
.
get
(
"content"
);
String
designPhase
=
Objects
.
isNull
(
dynamicAttrs
.
get
(
"designPhase"
))
?
""
:
(
String
)
dynamicAttrs
.
get
(
"designPhase"
);
JSONObject
jsonObject
=
new
JSONObject
();
//项目代号
String
projectCode
=
ObjectUtils
.
isEmpty
(
v
.
getDxDocumentExpand
().
getProjectCode
())
?
""
:
v
.
getDxDocumentExpand
().
getProjectCode
();
// jsonObject.put("projectCode", extDocService.searchDictDataByDictCode(Constants.PROJECT_CODE, projectCode));
jsonObject
.
put
(
"projectCode"
,
projectCode
);
//设计阶段
jsonObject
.
put
(
"designPhase"
,
extDocService
.
searchDictDataByDictCode
(
Constants
.
DESIGN_STAGE
,
designPhase
));
//编号
jsonObject
.
put
(
"number"
,
ObjectUtils
.
isEmpty
(
v
.
getNumber
())
?
""
:
v
.
getNumber
());
//设计输入名称
jsonObject
.
put
(
"name"
,
ObjectUtils
.
isEmpty
(
v
.
getName
())
?
""
:
v
.
getName
());
//内容
jsonObject
.
put
(
"content"
,
content
);
//备注
jsonObject
.
put
(
"remark"
,
ObjectUtils
.
isEmpty
(
v
.
getNote
())
?
""
:
v
.
getNote
());
//页数
jsonObject
.
put
(
"pages"
,
v
.
getDxDocumentExpand
().
getAttachPages
());
//获取参与者
List
<
DxWfActivityVO
>
activities
=
wfProcessInfoVO
.
getActivityInfo
();
if
(!
CollectionUtils
.
isEmpty
(
activities
))
{
//写入签名数据
jsonObject
.
put
(
"bz_photo"
,
extDocService
.
getSignImage
(
activities
,
SignConstants
.
SIGN_KEY_PREPARED
));
jsonObject
.
put
(
"bz_date"
,
extDocService
.
getEndDate
(
activities
,
SignConstants
.
SIGN_KEY_PREPARED
));
jsonObject
.
put
(
"sh_photo"
,
extDocService
.
getSignImage
(
activities
,
SignConstants
.
SIGN_KEY_SH
));
jsonObject
.
put
(
"sh_date"
,
extDocService
.
getEndDate
(
activities
,
SignConstants
.
SIGN_KEY_SH
));
//总体室审核
jsonObject
.
put
(
"zts_photo"
,
extDocService
.
getSignImage
(
activities
,
SignConstants
.
SIGN_KEY_ZTSSH
));
jsonObject
.
put
(
"zts_date"
,
extDocService
.
getEndDate
(
activities
,
SignConstants
.
SIGN_KEY_ZTSSH
));
jsonObject
.
put
(
"pz_photo"
,
extDocService
.
getSignImage
(
activities
,
SignConstants
.
SIGN_KEY_APPROVED
));
jsonObject
.
put
(
"pz_date"
,
extDocService
.
getEndDate
(
activities
,
SignConstants
.
SIGN_KEY_APPROVED
));
}
//模板名称
importWordService
.
getWordAllTable
(
jsonObject
,
path
+
file
+
".docx"
,
outFilePath
+
"outFile.docx"
);
return
jsonObject
;
}
}
dcs-doc-expand-core/src/main/java/com/yonde/dcs/core/factory/NCRUtils.java
0 → 100644
View file @
224ed2bb
This diff is collapsed.
Click to expand it.
dcs-doc-expand-core/src/main/java/com/yonde/dcs/core/factory/WorkContactListUtils.java
0 → 100644
View file @
224ed2bb
package
com
.
yonde
.
dcs
.
core
.
factory
;
import
cn.hutool.core.io.FileUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.yonde.dcs.core.constants.Constants
;
import
com.yonde.dcs.core.constants.SignConstants
;
import
com.yonde.dcs.core.service.ExtDocService
;
import
com.yonde.dcs.core.util.DateUtils
;
import
com.yonde.dcs.core.word.ImportWordService
;
import
com.yonde.dcs.document.common.entity.vo.DxDocumentVO
;
import
com.yonde.dex.wfc.common.vo.DxWfActivityVO
;
import
com.yonde.dex.wfc.common.vo.DxWfProcessInfoVO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.ObjectUtils
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
/**
* @author xfchai
* @ClassName WorkContactListUtils.java
* @Description 工作联系单
* @createTime 2021/11/22 15:15:00
*/
@Component
public
class
WorkContactListUtils
{
@Autowired
private
ExtDocService
extDocService
;
@Autowired
private
ImportWordService
importWordService
;
/**
* 填充数据
*
* @param
* @return
*/
public
JSONObject
settingData
(
DxDocumentVO
v
,
DxWfProcessInfoVO
wfProcessInfoVO
)
{
String
path
=
Constants
.
MTEMPLATE_ABSOLUTE_PATH
;
String
file
=
v
.
getSubTypeName
();
String
outFilePath
=
Constants
.
MERGER_FILE_ABSOLUTE_PATH
+
v
.
getSubTypeName
()
+
"\\"
+
v
.
getNumber
()
+
"\\"
;
//生成特定的文档目录,保存生成的word文件
FileUtil
.
mkdir
(
outFilePath
);
//获取动态属性
Map
<
String
,
Object
>
dynamicAttrs
=
v
.
getDynamicAttrs
();
String
recipientFaxNo
=
Objects
.
isNull
(
dynamicAttrs
.
get
(
"recipientFaxNo"
))
?
""
:
(
String
)
dynamicAttrs
.
get
(
"recipientFaxNo"
);
String
sender
=
Objects
.
isNull
(
dynamicAttrs
.
get
(
"sender"
))
?
""
:
(
String
)
dynamicAttrs
.
get
(
"sender"
);
String
senderPeople
=
Objects
.
isNull
(
dynamicAttrs
.
get
(
"senderPeople"
))
?
""
:
(
String
)
dynamicAttrs
.
get
(
"senderPeople"
);
String
senderPhone
=
Objects
.
isNull
(
dynamicAttrs
.
get
(
"senderPhone"
))
?
""
:
(
String
)
dynamicAttrs
.
get
(
"senderPhone"
);
String
faxNumber
=
Objects
.
isNull
(
dynamicAttrs
.
get
(
"faxNumber"
))
?
""
:
(
String
)
dynamicAttrs
.
get
(
"faxNumber"
);
String
content
=
Objects
.
isNull
(
dynamicAttrs
.
get
(
"content"
))
?
""
:
(
String
)
dynamicAttrs
.
get
(
"content"
);
String
recipient
=
Objects
.
isNull
(
dynamicAttrs
.
get
(
"recipient"
))
?
""
:
(
String
)
dynamicAttrs
.
get
(
"recipient"
);
String
recipientPhone
=
Objects
.
isNull
(
dynamicAttrs
.
get
(
"recipientPhone"
))
?
""
:
(
String
)
dynamicAttrs
.
get
(
"recipientPhone"
);
String
sendTo
=
Objects
.
isNull
(
dynamicAttrs
.
get
(
"sentTo"
))
?
""
:
(
String
)
dynamicAttrs
.
get
(
"sentTo"
);
//是否需要回复
String
needReply
=
Objects
.
isNull
(
dynamicAttrs
.
get
(
"needReply"
))
?
""
:
(
String
)
dynamicAttrs
.
get
(
"needReply"
);
String
secretCode
=
v
.
getSecretCode
();
JSONObject
jsonObject
=
new
JSONObject
();
if
(
"false"
.
equals
(
needReply
))
{
//对号
jsonObject
.
put
(
"noselect"
,
"\u0052"
);
//方框
jsonObject
.
put
(
"select"
,
"\u00A3"
);
jsonObject
.
put
(
"urgent"
,
"\u00A3"
);
}
else
if
(
"true"
.
equals
(
needReply
))
{
//对号
jsonObject
.
put
(
"select"
,
"\u0052"
);
//方框
jsonObject
.
put
(
"noselect"
,
"\u00A3"
);
jsonObject
.
put
(
"urgent"
,
"\u00A3"
);
}
else
{
//对号
jsonObject
.
put
(
"urgent"
,
"\u0052"
);
//方框
jsonObject
.
put
(
"noselect"
,
"\u00A3"
);
jsonObject
.
put
(
"select"
,
"\u00A3"
);
}
//密级
jsonObject
.
put
(
"SecretCode"
,
extDocService
.
searchDictDataByDictCode
(
Constants
.
SECRET_CODE
,
secretCode
));
//发出方
jsonObject
.
put
(
"sender"
,
sender
);
//发出人
jsonObject
.
put
(
"senderPeople"
,
senderPeople
);
//发出人联系电话
jsonObject
.
put
(
"senderPhone"
,
senderPhone
);
//传真号码
jsonObject
.
put
(
"faxNumber"
,
faxNumber
);
//工作联系单编号
jsonObject
.
put
(
"number"
,
ObjectUtils
.
isEmpty
(
v
.
getNumber
())
?
""
:
v
.
getNumber
());
//发至
jsonObject
.
put
(
"sentToName"
,
extDocService
.
searchDictDataByDictCode
(
Constants
.
NCR_SUPPLIER
,
sendTo
));
//接收人、联系人
jsonObject
.
put
(
"recipient"
,
recipient
);
//联系电话
jsonObject
.
put
(
"recipientPhone"
,
recipientPhone
);
//发送时间
jsonObject
.
put
(
"sendDate"
,
DateUtils
.
converLocalDateToString
(
v
.
getCreateTime
()));
//传真号
jsonObject
.
put
(
"recipientFaxNo"
,
recipientFaxNo
);
//内容
jsonObject
.
put
(
"content"
,
content
);
//备注
jsonObject
.
put
(
"remark"
,
ObjectUtils
.
isEmpty
(
v
.
getNote
())
?
""
:
v
.
getNote
());
//页数
jsonObject
.
put
(
"pages"
,
v
.
getDxDocumentExpand
().
getAttachPages
());
//获取参与者
List
<
DxWfActivityVO
>
activities
=
wfProcessInfoVO
.
getActivityInfo
();
if
(!
CollectionUtils
.
isEmpty
(
activities
))
{
//写入签名数据
jsonObject
.
put
(
"bz_photo"
,
extDocService
.
getSignImage
(
activities
,
SignConstants
.
SIGN_KEY_PREPARED
));
jsonObject
.
put
(
"bz_date"
,
extDocService
.
getEndDate
(
activities
,
SignConstants
.
SIGN_KEY_PREPARED
));
jsonObject
.
put
(
"sh_photo"
,
extDocService
.
getSignImage
(
activities
,
SignConstants
.
SIGN_KEY_SH
));
jsonObject
.
put
(
"sh_date"
,
extDocService
.
getEndDate
(
activities
,
SignConstants
.
SIGN_KEY_SH
));
jsonObject
.
put
(
"qf_photo"
,
extDocService
.
getSignImage
(
activities
,
SignConstants
.
SIGN_KEY_QF
));
jsonObject
.
put
(
"qf_date"
,
extDocService
.
getEndDate
(
activities
,
SignConstants
.
SIGN_KEY_QF
));
}
//模板名称
importWordService
.
getWordAllTable
(
jsonObject
,
path
+
file
+
".docx"
,
outFilePath
+
"outFile.docx"
);
return
jsonObject
;
}
}
dcs-doc-expand-core/src/main/java/com/yonde/dcs/core/service/impl/ExtAutoTaskServiceImpl.java
View file @
224ed2bb
This diff is collapsed.
Click to expand it.
dcs-doc-expand-core/src/main/java/com/yonde/dcs/core/service/impl/ExtDocServiceImpl.java
View file @
224ed2bb
...
...
@@ -319,7 +319,7 @@ public class ExtDocServiceImpl implements ExtDocService {
newVersionVo
.
setMasterId
(
sourceDoc
.
getMasterId
());
newVersionVo
.
setPredecessorId
(
sourceDoc
.
getId
());
newVersionVo
=
(
DxVersionVO
)
versionService
.
save
((
IdVO
)
newVersionVo
,
true
);
// TODO: xpc D
xIterationVO
不存在,听同事说此方法已被弃用
// TODO: xpc D
csBuilder
不存在,听同事说此方法已被弃用
// newViewDoc = DcsBuilder.of(newViewDoc).with(IdVO::setSubTypeName, sourceDoc.getSubTypeName())
// .with(DxIterationVO::setMaster, sourceDoc.getMaster())
// .with(DxIterationVO::setLatest, true)
...
...
dcs-doc-expand-core/src/main/java/com/yonde/dcs/core/service/impl/expand/ExtDxDocumentServiceImpl.java
View file @
224ed2bb
...
...
@@ -41,7 +41,7 @@ public class ExtDxDocumentServiceImpl<V extends DxDocumentVO> extends DocumentSe
super
.
beforeSave
(
target
);
}
}
dcs-doc-expand-core/src/main/java/com/yonde/dcs/core/util/WordMarkUtil.java
View file @
224ed2bb
package
com
.
yonde
.
dcs
.
document
.
core
.
util
;
package
com
.
yonde
.
dcs
.
core
.
util
;
import
com.aspose.words.*
;
import
com.aspose.words.ParagraphAlignment
;
...
...
dcs-doc-expand-core/src/main/java/com/yonde/dcs/core/util/WorkFlowUtil.java
View file @
224ed2bb
...
...
@@ -7,10 +7,8 @@ import com.yonde.dex.user.common.vo.DxUserInfoVO;
import
com.yonde.dex.user.feign.DxUserInfoFeign
;
import
com.yonde.dex.version.plugin.common.entity.DxIterationVOHolder
;
import
com.yonde.dex.wfc.common.enums.TaskStateEnum
;
import
com.yonde.dex.wfc.common.vo.DxWfActivityVO
;
import
com.yonde.dex.wfc.common.vo.DxWfProcessSearchVO
;
import
com.yonde.dex.wfc.common.vo.DxWfProcessTaskVO
;
import
com.yonde.dex.wfc.common.vo.DxWfProcessVO
;
import
com.yonde.dex.wfc.common.vo.*
;
import
com.yonde.dex.wfc.feign.api.WfcActivityFeign
;
import
com.yonde.dex.wfc.feign.api.WfcProcessFeign
;
import
com.yonde.dex.wfc.feign.api.WfcTaskFeign
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -18,6 +16,7 @@ import org.springframework.data.domain.Page;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
...
...
@@ -33,7 +32,9 @@ import java.util.stream.Collectors;
public
class
WorkFlowUtil
{
@Autowired
private
WfcProcessFeign
instanceService
;
private
WfcProcessFeign
wfcProcessFeign
;
@Autowired
private
WfcActivityFeign
wfcActivityFeign
;
@Autowired
private
WfcTaskFeign
wfcTaskFeign
;
@Autowired
...
...
@@ -55,7 +56,7 @@ public class WorkFlowUtil {
DxWfProcessSearchVO
dxWfProcessSearchVO
=
new
DxWfProcessSearchVO
();
dxWfProcessSearchVO
.
setPboClass
(
iterationVO
.
getClass
().
getName
());
dxWfProcessSearchVO
.
setPboId
(
iterationVO
.
getVersionId
());
Page
<
DxWfProcessVO
>
processList
=
instanceService
.
getProcessList
(
dxWfProcessSearchVO
,
1
,
10
);
Page
<
DxWfProcessVO
>
processList
=
wfcProcessFeign
.
getProcessList
(
dxWfProcessSearchVO
,
1
,
10
);
if
(!
CollectionUtils
.
isEmpty
(
processList
.
getContent
()))
{
return
processList
.
getContent
().
get
(
0
);
}
...
...
@@ -78,7 +79,7 @@ public class WorkFlowUtil {
DxWfProcessSearchVO
dxWfProcessSearchVO
=
new
DxWfProcessSearchVO
();
dxWfProcessSearchVO
.
setPboClass
(
DxDocumentVO
.
class
.
getName
());
dxWfProcessSearchVO
.
setPboId
(
doc
.
getVersionId
());
Page
<
DxWfProcessVO
>
processList
=
instanceService
.
getProcessList
(
dxWfProcessSearchVO
,
1
,
10
);
Page
<
DxWfProcessVO
>
processList
=
wfcProcessFeign
.
getProcessList
(
dxWfProcessSearchVO
,
1
,
10
);
if
(!
CollectionUtils
.
isEmpty
(
processList
.
getContent
()))
{
return
processList
.
getContent
().
get
(
0
);
}
...
...
@@ -213,4 +214,15 @@ public class WorkFlowUtil {
}
return
date
;
}
//根据流程实例id获取组装信息
public
DxWfProcessInfoVO
getProcessInstDetail
(
DxWfProcessVO
dxWfProcessVO
)
{
DxWfProcessInfoVO
processInfoVO
=
new
DxWfProcessInfoVO
();
processInfoVO
.
setProcessVO
(
wfcProcessFeign
.
getProcessDetail
(
dxWfProcessVO
.
getId
()));
processInfoVO
.
setActivityInfo
(
wfcActivityFeign
.
getActivities
(
dxWfProcessVO
.
getId
(),
dxWfProcessVO
.
getProcDefId
()));
processInfoVO
.
setHistoryInfo
(
wfcTaskFeign
.
getHisTaskList
(
dxWfProcessVO
.
getId
(),
null
,
1
,
Integer
.
MAX_VALUE
).
getContent
());
return
processInfoVO
;
}
}
dcs-doc-expand-entity/src/main/java/com/yonde/dcs/entity/po/ExtApplicant.java
View file @
224ed2bb
...
...
@@ -23,88 +23,104 @@ import javax.persistence.Embedded;
import
javax.persistence.Entity
;
import
javax.persistence.Table
;
import
com.yonde.dex.lcycle.plugin.entities.DxLifecycleManageBaseEmbeddable
;
import
com.yonde.dex.
dao.entity.base.IdEntity
;
import
javax.persistence.Column
;
import
com.yonde.dex.
container.folder.plugin.entities.DxObjFolderEmbeddable
;
import
com.yonde.dex.context.plugin.entities.DxContextHolder
;
import
com.yonde.dex.dfs.objfilelink.plugin.entities.DxObjFileLinkHolder
;
import
com.yonde.dex.dfs.objfilelink.plugin.entities.DxObjFileLinkEmbeddable
;
import
com.yonde.dex.lcycle.plugin.entities.DxLifecycleManageBaseHolder
;
import
com.yonde.dex.dao.entity.base.DxIdEntityEmbeddable
;
import
com.yonde.dex.context.plugin.entities.DxContextEmbeddable
;
import
com.yonde.dex.dao.entity.base.IdOnlyEntity
;
import
com.yonde.dex.version.plugin.entities.DxIterationHolder
;
import
com.yonde.dex.logicdelete.plugin.entities.DxLogicDeleteHolder
;
import
com.yonde.dex.container.folder.plugin.entities.DxObjFolderHolder
;
import
com.yonde.dex.dao.entity.base.IdEntity
;
import
javax.persistence.Column
;
import
com.yonde.dex.lcycle.plugin.entities.DxLifecycleManageBaseHolder
;
import
com.yonde.dex.dao.entity.base.DxIdEntityEmbeddable
;
import
com.yonde.dex.logicdelete.plugin.entities.DxLogicDeleteEmbeddable
;
import
com.yonde.dex.version.plugin.entities.DxIterationEmbeddable
;
/**
* @description: ExtApplicant-PO实体
* @author: dexadmin
* @version: V
* @date: 2024-8-2 15:26:37
**/
* @description: ExtApplicant-PO实体
* @author: dexadmin
* @version: V
* @date: 2024-8-15 16:14:30
**/
@Entity
@EqualsAndHashCode
(
callSuper
=
true
)
@NoArgsConstructor
@Data
@Table
(
name
=
"EXT_APPLICANT"
)
public
class
ExtApplicant
extends
IdOnlyEntity
implements
Dx
ObjFileLink
Holder
,
DxLifecycleManageBaseHolder
,
IdEntity
,
DxLogicDeleteHolder
,
DxIterationHolder
{
public
class
ExtApplicant
extends
IdOnlyEntity
implements
Dx
ContextHolder
,
DxObjFileLinkHolder
,
DxObjFolder
Holder
,
DxLifecycleManageBaseHolder
,
IdEntity
,
DxLogicDeleteHolder
,
DxIterationHolder
{
/**
* 扩展PO属性
*/
* 扩展PO属性
*/
@DexEmbedded
()
@Embedded
()
private
DxContextEmbeddable
dxContextEmbeddable
;
/**
* 扩展PO属性
*/
@DexEmbedded
()
@Embedded
()
private
DxObjFileLinkEmbeddable
dxObjFileLinkEmbeddable
;
/**
* 扩展PO属性
*/
* 扩展PO属性
*/
@DexEmbedded
()
@Embedded
()
private
DxObjFolderEmbeddable
dxObjFolderEmbeddable
;
/**
* 扩展PO属性
*/
@DexEmbedded
()
@Embedded
()
private
DxLifecycleManageBaseEmbeddable
dxLifecycleManageBaseEmbeddable
;
/**
* dao扩展对象
*/
* dao扩展对象
*/
@DexEmbedded
()
@Embedded
()
private
DxIdEntityEmbeddable
dxIdEmbeddable
;
/**
* 扩展PO属性
*/
* 扩展PO属性
*/
@DexEmbedded
()
@Embedded
()
private
DxLogicDeleteEmbeddable
dxLogicDeleteEmbeddable
;
/**
* 扩展PO属性
*/
* 扩展PO属性
*/
@DexEmbedded
()
@Embedded
()
private
DxIterationEmbeddable
dxIterationEmbeddable
;
/**
* 申请方的id
*/
* 申请方的id
*/
private
Long
applicantOrgId
;
/**
* 申请方的类型
*/
* 申请方的类型
*/
private
String
applicantOrgIdType
;
/**
* 申请内容
*/
* 申请内容
*/
private
String
applicatContent
;
/**
* 设计阶段
*/
* 设计阶段
*/
private
String
design
;
/**
* 提资方集合
*/
* 提资方集合
*/
private
String
providers
;
/**
* 要求提交日期
*/
* 要求提交日期
*/
private
LocalDateTime
submitDate
;
/**
* 类型
*/
* 类型
*/
private
String
type
;
}
...
...
dcs-doc-expand-entity/src/main/java/com/yonde/dcs/entity/po/ExtInterface.java
View file @
224ed2bb
...
...
@@ -23,120 +23,136 @@ import javax.persistence.Embedded;
import
javax.persistence.Entity
;
import
javax.persistence.Table
;
import
com.yonde.dex.lcycle.plugin.entities.DxLifecycleManageBaseEmbeddable
;
import
com.yonde.dex.
dao.entity.base.IdEntity
;
import
javax.persistence.Column
;
import
com.yonde.dex.
container.folder.plugin.entities.DxObjFolderEmbeddable
;
import
com.yonde.dex.context.plugin.entities.DxContextHolder
;
import
com.yonde.dex.dfs.objfilelink.plugin.entities.DxObjFileLinkHolder
;
import
com.yonde.dex.dfs.objfilelink.plugin.entities.DxObjFileLinkEmbeddable
;
import
com.yonde.dex.lcycle.plugin.entities.DxLifecycleManageBaseHolder
;
import
com.yonde.dex.dao.entity.base.DxIdEntityEmbeddable
;
import
com.yonde.dex.context.plugin.entities.DxContextEmbeddable
;
import
com.yonde.dex.dao.entity.base.IdOnlyEntity
;
import
com.yonde.dex.version.plugin.entities.DxIterationHolder
;
import
com.yonde.dex.logicdelete.plugin.entities.DxLogicDeleteHolder
;
import
com.yonde.dex.container.folder.plugin.entities.DxObjFolderHolder
;
import
com.yonde.dex.dao.entity.base.IdEntity
;
import
javax.persistence.Column
;
import
com.yonde.dex.lcycle.plugin.entities.DxLifecycleManageBaseHolder
;
import
com.yonde.dex.dao.entity.base.DxIdEntityEmbeddable
;
import
com.yonde.dex.logicdelete.plugin.entities.DxLogicDeleteEmbeddable
;
import
com.yonde.dex.version.plugin.entities.DxIterationEmbeddable
;
/**
* @description: ExtInterface-PO实体
* @author: dexadmin
* @version: V
* @date: 2024-8-2 15:26:37
**/
* @description: ExtInterface-PO实体
* @author: dexadmin
* @version: V
* @date: 2024-8-15 16:08:09
**/
@Entity
@EqualsAndHashCode
(
callSuper
=
true
)
@NoArgsConstructor
@Data
@Table
(
name
=
"EXT_INTERFACE"
)
public
class
ExtInterface
extends
IdOnlyEntity
implements
Dx
ObjFileLink
Holder
,
DxLifecycleManageBaseHolder
,
IdEntity
,
DxLogicDeleteHolder
,
DxIterationHolder
{
public
class
ExtInterface
extends
IdOnlyEntity
implements
Dx
ContextHolder
,
DxObjFileLinkHolder
,
DxObjFolder
Holder
,
DxLifecycleManageBaseHolder
,
IdEntity
,
DxLogicDeleteHolder
,
DxIterationHolder
{
/**
* 扩展PO属性
*/
* 扩展PO属性
*/
@DexEmbedded
()
@Embedded
()
private
DxContextEmbeddable
dxContextEmbeddable
;
/**
* 扩展PO属性
*/
@DexEmbedded
()
@Embedded
()
private
DxObjFileLinkEmbeddable
dxObjFileLinkEmbeddable
;
/**
* 扩展PO属性
*/
* 扩展PO属性
*/
@DexEmbedded
()
@Embedded
()
private
DxObjFolderEmbeddable
dxObjFolderEmbeddable
;
/**
* 扩展PO属性
*/
@DexEmbedded
()
@Embedded
()
private
DxLifecycleManageBaseEmbeddable
dxLifecycleManageBaseEmbeddable
;
/**
* dao扩展对象
*/
* dao扩展对象
*/
@DexEmbedded
()
@Embedded
()
private
DxIdEntityEmbeddable
dxIdEmbeddable
;
/**
* 扩展PO属性
*/
* 扩展PO属性
*/
@DexEmbedded
()
@Embedded
()
private
DxLogicDeleteEmbeddable
dxLogicDeleteEmbeddable
;
/**
* 扩展PO属性
*/
* 扩展PO属性
*/
@DexEmbedded
()
@Embedded
()
private
DxIterationEmbeddable
dxIterationEmbeddable
;
/**
* 申请方确认
*/
* 申请方确认
*/
private
String
applicantConfirm
;
/**
* 申请方确认意见
*/
* 申请方确认意见
*/
private
String
applicantConfirmView
;
/**
* 申请方的id
*/
* 申请方的id
*/
private
Long
applicantOrgId
;
/**
* 申请方的类型
*/
* 申请方的类型
*/
private
String
applicantOrgIdType
;
/**
* 要求提交日期
*/
* 要求提交日期
*/
private
LocalDateTime
applicatDate
;
/**
* 申请方接口申请的id
*/
* 申请方接口申请的id
*/
private
Long
extApplicantId
;
/**
* 申请方接口申请的类型
*/
* 申请方接口申请的类型
*/
private
String
extApplicantIdType
;
/**
* 接口单类型
*/
* 接口单类型
*/
private
String
jkdlx
;
/**
* 上一版本id
*/
* 上一版本id
*/
private
Long
previousId
;
/**
* 提资内容
*/
* 提资内容
*/
private
String
provideContent
;
/**
* 提资人的id
*/
* 提资人的id
*/
private
Long
providerId
;
/**
* 提资人的类型
*/
* 提资人的类型
*/
private
String
providerIdType
;
/**
* 提资方的id
*/
* 提资方的id
*/
private
Long
providerOrgId
;
/**
* 提资方的类型
*/
* 提资方的类型
*/
private
String
providerOrgIdType
;
/**
* 提资日期
*/
* 提资日期
*/
private
LocalDateTime
tzrq
;
}
...
...
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