From ae290f9a3dd1f189569c55504ddba2cd63a5e2b8 Mon Sep 17 00:00:00 2001 From: lidongyang <506508008@qq.com> Date: Tue, 10 Feb 2026 21:09:22 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=90=8C=E6=AD=A5=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E4=BF=9D=E5=AD=98=E9=83=A8=E5=88=86=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=BD=9C=E4=B8=BA=E9=A1=B9=E7=9B=AE=E6=8B=93=E5=B1=95?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E4=BF=A1=E6=81=AF=E8=BF=9B=E8=A1=8C=E4=BF=9D?= =?UTF-8?q?=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../outbridge/entity/LyricVProjectToDM.java | 2 +- .../impl/LyricInternalServiceImpl.java | 136 +++++++++++++++++- 2 files changed, 135 insertions(+), 3 deletions(-) diff --git a/outbridge/src/main/java/com/sdm/outbridge/entity/LyricVProjectToDM.java b/outbridge/src/main/java/com/sdm/outbridge/entity/LyricVProjectToDM.java index cada4cbb..cd8a243b 100644 --- a/outbridge/src/main/java/com/sdm/outbridge/entity/LyricVProjectToDM.java +++ b/outbridge/src/main/java/com/sdm/outbridge/entity/LyricVProjectToDM.java @@ -40,7 +40,7 @@ public class LyricVProjectToDM { @TableField(value = "client_name") private String clientName; - @Schema(description = "项目类型") + @Schema(description = "难度类型") @TableField(value = "difficultyType") private String difficultyType; diff --git a/project/src/main/java/com/sdm/project/service/impl/LyricInternalServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/LyricInternalServiceImpl.java index a1885505..2a7547be 100644 --- a/project/src/main/java/com/sdm/project/service/impl/LyricInternalServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/LyricInternalServiceImpl.java @@ -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 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 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 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 projectStationList = new ArrayList<>(); @@ -2721,6 +2737,122 @@ public class LyricInternalServiceImpl implements ILyricInternalService { return ; } + // 保存拓展字段 + List 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);