@@ -103,6 +103,16 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
private static final String DATE_FORMAT_PATTERN = " yyyy-MM-dd HH:mm:ss " ;
private static final int UUID_LENGTH = 32 ;
private static final String PROJECT_STAGE = " PROJECT_STAGE " ;
private static final String SELF_DEVELOP = " self_develop " ;
private static final String DOMAIN = " domain " ;
private static final String CLIENT_NAME = " clientName " ;
private static final String DIFFICULT_TYPE = " difficultType " ;
private static final String PROGRAM_MANAGER = " programManager " ;
private static final String PROCESS_SECTION = " processSection " ;
private static final String PRODUCE_LINE = " produceLine " ;
private static final String PROGRAM_TEAM = " programTeam " ;
private static final String REFERENCE_ITEM = " referenceItem " ;
private static final String PROJECT_UNDERTAKER = " projectUndertaker " ;
// 同步待办锁
private final ReentrantLock syncTodoInfoLock = new ReentrantLock ( ) ;
@@ -2127,7 +2137,7 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
// 查询原始待办数据
// TODO 这里要确认是不是只拉取有限元仿真
List < LyricVTodoEmulationInfoDM > todoInfoList = lyricVTodoInfoService . lambdaQuery ( )
. in ( LyricVTodoEmulationInfoDM : : getRelevanceTask , Arrays . asList ( DemandTypeEnum. FINITE_ELEMENT_SIMULATION . getName ( ) ) )
. eq ( LyricVTodoEmulationInfoDM : : getRelevanceTask , DemandTypeEnum . FINITE_ELEMENT_SIMULATION . getName ( ) )
. ge ( LyricVTodoEmulationInfoDM : : getCreateTime , startTime )
. le ( LyricVTodoEmulationInfoDM : : getCreateTime , endTime )
. list ( ) ;
@@ -2136,6 +2146,12 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
return Collections . emptyList ( ) ;
}
List < LyricVTodoEmulationInfoDM > expTodoInfoList = todoInfoList . stream ( ) . filter ( todoInfo - > DemandTypeEnum . FINITE_ELEMENT_SIMULATION . getName ( ) . equals ( todoInfo . getRelevanceTask ( ) ) )
. toList ( ) ;
if ( CollectionUtils . isNotEmpty ( expTodoInfoList ) ) {
log . error ( " 同步到了异常类型的待办, id为: {} " , expTodoInfoList . stream ( ) . map ( LyricVTodoEmulationInfoDM : : getId ) . toList ( ) ) ;
}
// 过滤已同步的待办
Set < String > existDemandCodeSet = demandMapper . getAllCodeList ( ) ;
if ( CollectionUtils . isEmpty ( existDemandCodeSet ) ) {
@@ -2570,7 +2586,7 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
spdmProjectNodeEditReq . setTenantId ( tenantId ) ;
spdmProjectNodeEditReq . setProjectSource ( SYNC_PROJECT_SOURCE ) ;
spdmProjectNodeEditReq . setProjectId ( Math . toIntExact ( lyricVProjectToDM . getId ( ) ) ) ;
spdmProjectNodeEditReq . setNodeSubType ( " self_develop " ) ;
spdmProjectNodeEditReq . setNodeSubType ( SELF_DEVELOP ) ;
addNodeList . add ( spdmProjectNodeEditReq ) ;
// 根据projectId查询项目机台工位信息的视图
List < LyricVProjectStationToDM > projectStationList = new ArrayList < > ( ) ;
@@ -2721,6 +2737,122 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
return ;
}
// 保存拓展字段
List < SpdmNodeExtraReq > nodeExtraReqList = new ArrayList < > ( ) ;
// 项目领域
String domain = lyricVProjectToDM . getDomain ( ) ;
if ( StringUtils . isNotBlank ( domain ) ) {
SpdmNodeExtraReq spdmNodeExtraReq = new SpdmNodeExtraReq ( ) ;
spdmNodeExtraReq . setNodeId ( spdmProjectNodeEditReq . getUuid ( ) ) ;
spdmNodeExtraReq . setPropertyName ( DOMAIN ) ;
spdmNodeExtraReq . setPropertyValue ( domain ) ;
spdmNodeExtraReq . setCreator ( jobNumber ) ;
spdmNodeExtraReq . setCreateTime ( curDateStr ) ;
nodeExtraReqList . add ( spdmNodeExtraReq ) ;
}
// 客户名称
String clientName = lyricVProjectToDM . getClientName ( ) ;
if ( StringUtils . isNotBlank ( clientName ) ) {
SpdmNodeExtraReq spdmNodeExtraReq = new SpdmNodeExtraReq ( ) ;
spdmNodeExtraReq . setNodeId ( spdmProjectNodeEditReq . getUuid ( ) ) ;
spdmNodeExtraReq . setPropertyName ( CLIENT_NAME ) ;
spdmNodeExtraReq . setPropertyValue ( clientName ) ;
spdmNodeExtraReq . setCreator ( jobNumber ) ;
spdmNodeExtraReq . setCreateTime ( curDateStr ) ;
nodeExtraReqList . add ( spdmNodeExtraReq ) ;
}
// 难度类型
String difficultyType = lyricVProjectToDM . getDifficultyType ( ) ;
if ( StringUtils . isNotBlank ( difficultyType ) ) {
SpdmNodeExtraReq spdmNodeExtraReq = new SpdmNodeExtraReq ( ) ;
spdmNodeExtraReq . setNodeId ( spdmProjectNodeEditReq . getUuid ( ) ) ;
spdmNodeExtraReq . setPropertyName ( DIFFICULT_TYPE ) ;
spdmNodeExtraReq . setPropertyValue ( difficultyType ) ;
spdmNodeExtraReq . setCreator ( jobNumber ) ;
spdmNodeExtraReq . setCreateTime ( curDateStr ) ;
nodeExtraReqList . add ( spdmNodeExtraReq ) ;
}
// 方案管理人
String programManager = lyricVProjectToDM . getProgramManager ( ) ;
if ( StringUtils . isNotBlank ( programManager ) ) {
SpdmNodeExtraReq spdmNodeExtraReq = new SpdmNodeExtraReq ( ) ;
spdmNodeExtraReq . setNodeId ( spdmProjectNodeEditReq . getUuid ( ) ) ;
spdmNodeExtraReq . setPropertyName ( PROGRAM_MANAGER ) ;
spdmNodeExtraReq . setPropertyValue ( programManager ) ;
spdmNodeExtraReq . setCreator ( jobNumber ) ;
spdmNodeExtraReq . setCreateTime ( curDateStr ) ;
nodeExtraReqList . add ( spdmNodeExtraReq ) ;
}
// 产品组
String processSection = lyricVProjectToDM . getProcessSection ( ) ;
if ( StringUtils . isNotBlank ( processSection ) ) {
SpdmNodeExtraReq spdmNodeExtraReq = new SpdmNodeExtraReq ( ) ;
spdmNodeExtraReq . setNodeId ( spdmProjectNodeEditReq . getUuid ( ) ) ;
spdmNodeExtraReq . setPropertyName ( PROCESS_SECTION ) ;
spdmNodeExtraReq . setPropertyValue ( processSection ) ;
spdmNodeExtraReq . setCreator ( jobNumber ) ;
spdmNodeExtraReq . setCreateTime ( curDateStr ) ;
nodeExtraReqList . add ( spdmNodeExtraReq ) ;
}
// 产品线
String produceLine = lyricVProjectToDM . getProduceLine ( ) ;
if ( StringUtils . isNotBlank ( produceLine ) ) {
SpdmNodeExtraReq spdmNodeExtraReq = new SpdmNodeExtraReq ( ) ;
spdmNodeExtraReq . setNodeId ( spdmProjectNodeEditReq . getUuid ( ) ) ;
spdmNodeExtraReq . setPropertyName ( PRODUCE_LINE ) ;
spdmNodeExtraReq . setPropertyValue ( produceLine ) ;
spdmNodeExtraReq . setCreator ( jobNumber ) ;
spdmNodeExtraReq . setCreateTime ( curDateStr ) ;
nodeExtraReqList . add ( spdmNodeExtraReq ) ;
}
// 方案制作部门
String programTeam = lyricVProjectToDM . getProgramTeam ( ) ;
if ( StringUtils . isNotBlank ( domain ) ) {
SpdmNodeExtraReq spdmNodeExtraReq = new SpdmNodeExtraReq ( ) ;
spdmNodeExtraReq . setNodeId ( spdmProjectNodeEditReq . getUuid ( ) ) ;
spdmNodeExtraReq . setPropertyName ( PROGRAM_TEAM ) ;
spdmNodeExtraReq . setPropertyValue ( programTeam ) ;
spdmNodeExtraReq . setCreator ( jobNumber ) ;
spdmNodeExtraReq . setCreateTime ( curDateStr ) ;
nodeExtraReqList . add ( spdmNodeExtraReq ) ;
}
// 参考项目
String referenceItem = lyricVProjectToDM . getReferenceItem ( ) ;
if ( StringUtils . isNotBlank ( domain ) ) {
SpdmNodeExtraReq spdmNodeExtraReq = new SpdmNodeExtraReq ( ) ;
spdmNodeExtraReq . setNodeId ( spdmProjectNodeEditReq . getUuid ( ) ) ;
spdmNodeExtraReq . setPropertyName ( REFERENCE_ITEM ) ;
spdmNodeExtraReq . setPropertyValue ( referenceItem ) ;
spdmNodeExtraReq . setCreator ( jobNumber ) ;
spdmNodeExtraReq . setCreateTime ( curDateStr ) ;
nodeExtraReqList . add ( spdmNodeExtraReq ) ;
}
// 项目承接主体
String projectUndertaker = lyricVProjectToDM . getProjectUndertaker ( ) ;
if ( StringUtils . isNotBlank ( projectUndertaker ) ) {
SpdmNodeExtraReq spdmNodeExtraReq = new SpdmNodeExtraReq ( ) ;
spdmNodeExtraReq . setNodeId ( spdmProjectNodeEditReq . getUuid ( ) ) ;
spdmNodeExtraReq . setPropertyName ( PROJECT_UNDERTAKER ) ;
spdmNodeExtraReq . setPropertyValue ( projectUndertaker ) ;
spdmNodeExtraReq . setCreator ( jobNumber ) ;
spdmNodeExtraReq . setCreateTime ( curDateStr ) ;
nodeExtraReqList . add ( spdmNodeExtraReq ) ;
}
// 保存项目拓展信息
if ( CollectionUtils . isNotEmpty ( nodeExtraReqList ) ) {
nodeMapper . addNodeExtraBatch ( nodeExtraReqList ) ;
}
// 批量创建文件夹
batchCreateNodeDir ( addNodeList ) ;