From c076065270c795934da5dffbd7683e2bfb7cebfc Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Mon, 11 Dec 2023 15:11:45 +0800 Subject: [PATCH 1/6] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=90=8E=E7=AB=AF-I?= =?UTF-8?q?T=E6=9C=8D=E5=8A=A1=E8=B7=A8=E7=8E=AF=E5=A2=83=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E5=86=8D=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1031708374171648]后端-IT服务跨环境导出再导入 http://192.168.0.96:8090/demo/rdm.html#/task-detail/939050947543040/939050947543050/1031708374171648 --- .../handler/CiTypeImportExportHandler.java | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 src/main/java/neatlogic/module/cmdb/importexport/handler/CiTypeImportExportHandler.java diff --git a/src/main/java/neatlogic/module/cmdb/importexport/handler/CiTypeImportExportHandler.java b/src/main/java/neatlogic/module/cmdb/importexport/handler/CiTypeImportExportHandler.java new file mode 100644 index 00000000..c936ed28 --- /dev/null +++ b/src/main/java/neatlogic/module/cmdb/importexport/handler/CiTypeImportExportHandler.java @@ -0,0 +1,87 @@ +package neatlogic.module.cmdb.importexport.handler; + +import neatlogic.framework.cmdb.dto.ci.CiTypeVo; +import neatlogic.framework.cmdb.enums.CmdbImportExportHandlerType; +import neatlogic.framework.cmdb.exception.ci.CiTypeNotFoundException; +import neatlogic.framework.importexport.core.ImportExportHandlerBase; +import neatlogic.framework.importexport.core.ImportExportHandlerType; +import neatlogic.framework.importexport.dto.ImportExportBaseInfoVo; +import neatlogic.framework.importexport.dto.ImportExportPrimaryChangeVo; +import neatlogic.framework.importexport.dto.ImportExportVo; +import neatlogic.module.cmdb.dao.mapper.ci.CiTypeMapper; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.List; +import java.util.zip.ZipOutputStream; + +@Component +public class CiTypeImportExportHandler extends ImportExportHandlerBase { + + @Resource + private CiTypeMapper ciTypeMapper; + + @Override + public ImportExportHandlerType getType() { + return CmdbImportExportHandlerType.CI_TYPE; + } + + @Override + public boolean checkImportAuth(ImportExportVo importExportVo) { + return true; + } + + @Override + public boolean checkExportAuth(Object primaryKey) { + return true; + } + + @Override + public boolean checkIsExists(ImportExportBaseInfoVo importExportBaseInfoVo) { + return ciTypeMapper.getCiTypeByName(importExportBaseInfoVo.getName()) != null; + } + + @Override + public Object getPrimaryByName(ImportExportVo importExportVo) { + CiTypeVo ciType = ciTypeMapper.getCiTypeByName(importExportVo.getName()); + if (ciType == null) { + throw new CiTypeNotFoundException(importExportVo.getName()); + } + return ciType.getId(); + } + + @Override + public Object importData(ImportExportVo importExportVo, List primaryChangeList) { + CiTypeVo ciType = importExportVo.getData().toJavaObject(CiTypeVo.class); + CiTypeVo oldCiType = ciTypeMapper.getCiTypeByName(importExportVo.getName()); + if (oldCiType != null) { + ciType.setId(oldCiType.getId()); + ciTypeMapper.updateCiType(ciType); + } else { + if (ciTypeMapper.getCiTypeById(ciType.getId()) != null) { + ciType.setId(null); + } + Integer maxsort = ciTypeMapper.getMaxSort(); + if (maxsort == null) { + maxsort = 1; + } else { + maxsort += 1; + } + ciType.setSort(maxsort); + ciTypeMapper.insertCiType(ciType); + } + return ciType.getId(); + } + + @Override + protected ImportExportVo myExportData(Object primaryKey, List dependencyList, ZipOutputStream zipOutputStream) { + Long id = (Long) primaryKey; + CiTypeVo ciType = ciTypeMapper.getCiTypeById(id); + if (ciType == null) { + throw new CiTypeNotFoundException(id); + } + ImportExportVo importExportVo = new ImportExportVo(this.getType().getValue(), primaryKey, ciType.getName()); + importExportVo.setDataWithObject(ciType); + return importExportVo; + } +} -- Gitee From c8103488f2e095364c992a93f7eabd68dac66bf0 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Mon, 11 Dec 2023 15:13:35 +0800 Subject: [PATCH 2/6] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=90=8E=E7=AB=AF-I?= =?UTF-8?q?T=E6=9C=8D=E5=8A=A1=E8=B7=A8=E7=8E=AF=E5=A2=83=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E5=86=8D=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1031708374171648]后端-IT服务跨环境导出再导入 http://192.168.0.96:8090/demo/rdm.html#/task-detail/939050947543040/939050947543050/1031708374171648 --- .../cmdb/dao/mapper/ci/RelTypeMapper.java | 2 + .../cmdb/dao/mapper/ci/RelTypeMapper.xml | 10 +++ .../handler/CiRelTypeImportExportHandler.java | 80 +++++++++++++++++++ 3 files changed, 92 insertions(+) create mode 100644 src/main/java/neatlogic/module/cmdb/importexport/handler/CiRelTypeImportExportHandler.java diff --git a/src/main/java/neatlogic/module/cmdb/dao/mapper/ci/RelTypeMapper.java b/src/main/java/neatlogic/module/cmdb/dao/mapper/ci/RelTypeMapper.java index 4e9550c1..21fa4c84 100644 --- a/src/main/java/neatlogic/module/cmdb/dao/mapper/ci/RelTypeMapper.java +++ b/src/main/java/neatlogic/module/cmdb/dao/mapper/ci/RelTypeMapper.java @@ -27,6 +27,8 @@ public interface RelTypeMapper { RelTypeVo getRelTypeById(Long id); + RelTypeVo getRelTypeByName(String name); + List getAllRelType(); int insertRelType(RelTypeVo relTypeVo); diff --git a/src/main/java/neatlogic/module/cmdb/dao/mapper/ci/RelTypeMapper.xml b/src/main/java/neatlogic/module/cmdb/dao/mapper/ci/RelTypeMapper.xml index 49a96f3f..5c5acd26 100644 --- a/src/main/java/neatlogic/module/cmdb/dao/mapper/ci/RelTypeMapper.xml +++ b/src/main/java/neatlogic/module/cmdb/dao/mapper/ci/RelTypeMapper.xml @@ -43,6 +43,16 @@ WHERE id = #{value} + + + + + + UPDATE `cmdb_rel` @@ -510,4 +537,10 @@ WHERE rel_id = #{value} + + DELETE + from `cmdb_relgroup` + WHERE `ci_id` = #{value} + + diff --git a/src/main/java/neatlogic/module/cmdb/importexport/handler/CiImportExportHandler.java b/src/main/java/neatlogic/module/cmdb/importexport/handler/CiImportExportHandler.java new file mode 100644 index 00000000..271e47e1 --- /dev/null +++ b/src/main/java/neatlogic/module/cmdb/importexport/handler/CiImportExportHandler.java @@ -0,0 +1,329 @@ +package neatlogic.module.cmdb.importexport.handler; + +import neatlogic.framework.cmdb.dto.ci.*; +import neatlogic.framework.cmdb.enums.CmdbImportExportHandlerType; +import neatlogic.framework.cmdb.exception.ci.CiNotFoundException; +import neatlogic.framework.file.dao.mapper.FileMapper; +import neatlogic.framework.importexport.constvalue.FrameworkImportExportHandlerType; +import neatlogic.framework.importexport.core.ImportExportHandlerBase; +import neatlogic.framework.importexport.core.ImportExportHandlerType; +import neatlogic.framework.importexport.dto.ImportExportBaseInfoVo; +import neatlogic.framework.importexport.dto.ImportExportPrimaryChangeVo; +import neatlogic.framework.importexport.dto.ImportExportVo; +import neatlogic.module.cmdb.dao.mapper.ci.*; +import neatlogic.module.cmdb.service.attr.AttrService; +import neatlogic.module.cmdb.service.ci.CiService; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; +import java.util.zip.ZipOutputStream; + +@Component +public class CiImportExportHandler extends ImportExportHandlerBase { + + @Resource + private CiMapper ciMapper; + + @Resource + private FileMapper fileMapper; + + @Autowired + private AttrMapper attrMapper; + + @Autowired + private CiViewMapper ciViewMapper; + + @Resource + private RelMapper relMapper; + + @Autowired + private CiAuthMapper ciAuthMapper; + + @Resource + private CiService ciService; + + @Resource + private AttrService attrService; + + @Override + public ImportExportHandlerType getType() { + return FrameworkImportExportHandlerType.CMDB_CI; + } + + + @Override + public boolean checkImportAuth(ImportExportVo importExportVo) { + return true; + } + + @Override + public boolean checkExportAuth(Object primaryKey) { + return true; + } + + @Override + public boolean checkIsExists(ImportExportBaseInfoVo importExportBaseInfoVo) { + return ciMapper.getCiByName(importExportBaseInfoVo.getName()) != null + || ciMapper.getCiById((Long)importExportBaseInfoVo.getPrimaryKey()) != null; + } + + @Override + public Object getPrimaryByName(ImportExportVo importExportVo) { + CiVo ci = ciMapper.getCiByName(importExportVo.getName()); + if (ci == null) { + throw new CiNotFoundException(importExportVo.getName()); + } + return ci.getId(); + } + + @Override + public Object importData(ImportExportVo importExportVo, List primaryChangeList) { + CiVo ciVo = importExportVo.getData().toJavaObject(CiVo.class); + Long originalId = ciVo.getId(); + CiVo oldCi = ciMapper.getCiById(ciVo.getId()); + if (oldCi == null) { + oldCi = ciMapper.getCiByName(ciVo.getName()); + if (oldCi != null) { + ciVo.setId(oldCi.getId()); + } + } + importHandle(ciVo, primaryChangeList); + List relList = ciVo.getRelList(); + for (RelVo relVo : relList) { + if (Objects.equals(relVo.getFromCiId(), originalId)) { + relVo.setFromCiId(ciVo.getId()); + } + if (Objects.equals(relVo.getToCiId(), originalId)) { + relVo.setToCiId(ciVo.getId()); + } + } + List attrList = ciVo.getAttrList(); + for (AttrVo attr : attrList) { + attr.setCiId(ciVo.getId()); + } + if (oldCi == null) { + ciService.insertCi(ciVo); + List oldRelList = relMapper.getRelBaseInfoByCiId(ciVo.getId()); + List oldRelIdList = oldRelList.stream().map(RelVo::getId).collect(Collectors.toList()); + for (RelVo relVo : relList) { + if (oldRelIdList.contains(relVo.getId())) { + relMapper.updateRel(relVo); + relMapper.deleteRelativeRelByRelId(relVo.getId()); + } else { + relMapper.insertRel(relVo); + } + if (CollectionUtils.isNotEmpty(relVo.getRelativeRelList())) { + for (RelativeRelVo relativeRelVo : relVo.getRelativeRelList()) { + relativeRelVo.setRelId(relVo.getId()); + relMapper.insertRelativeRel(relativeRelVo); + } + } + } + for (AttrVo attr : attrList) { + attrService.insertAttr(attr); + } + } else { + ciService.updateCi(ciVo); + List oldRelList = relMapper.getRelBaseInfoByCiId(oldCi.getId()); + List oldRelIdList = oldRelList.stream().map(RelVo::getId).collect(Collectors.toList()); + for (RelVo relVo : relList) { + if (oldRelIdList.contains(relVo.getId())) { + relMapper.updateRel(relVo); + relMapper.deleteRelativeRelByRelId(relVo.getId()); + } else { + relMapper.insertRel(relVo); + } + if (CollectionUtils.isNotEmpty(relVo.getRelativeRelList())) { + for (RelativeRelVo relativeRelVo : relVo.getRelativeRelList()) { + relativeRelVo.setRelId(relVo.getId()); + relMapper.insertRelativeRel(relativeRelVo); + } + } + } + List oldAttrList = attrMapper.getAttrBaseInfoByCiId(oldCi.getId()); + List oldAttrIdList = oldAttrList.stream().map(AttrVo::getId).collect(Collectors.toList()); + for (AttrVo attr : attrList) { + if (oldAttrIdList.contains(attr.getId())) { + attrService.updateAttr(attr); + } else { + attrService.insertAttr(attr); + } + } + relMapper.deleteRelGroupByCiId(ciVo.getId()); + ciViewMapper.deleteCiViewByCiId(ciVo.getId()); + ciAuthMapper.deleteCiAuthByCiId(ciVo.getId()); + if (CollectionUtils.isNotEmpty(oldCi.getUniqueAttrIdList())) { + ciMapper.deleteCiUniqueByCiId(ciVo.getId()); + } + } + List relGroupList = ciVo.getRelGroupList(); + for (RelGroupVo relGroup : relGroupList) { + relGroup.setCiId(ciVo.getId()); + relMapper.insertRelGroup(relGroup); + } + List viewList = ciVo.getViewList(); + for (CiViewVo view : viewList) { + view.setCiId(ciVo.getId()); + ciViewMapper.insertCiView(view); + } + List authList = ciVo.getAuthList(); + for (CiAuthVo auth : authList) { + auth.setCiId(ciVo.getId()); + ciAuthMapper.insertCiAuth(auth); + } + List uniqueAttrIdList = ciVo.getUniqueAttrIdList(); + for (Long attrId : uniqueAttrIdList) { + ciMapper.insertCiUnique(ciVo.getId(), attrId); + } + return ciVo.getId(); + } + + @Override + protected ImportExportVo myExportData(Object primaryKey, List dependencyList, ZipOutputStream zipOutputStream) { + Long id = (Long) primaryKey; + CiVo ciVo = ciMapper.getCiById(id); + if (ciVo == null) { + throw new CiNotFoundException(id); + } + if (Objects.equals(ciVo.getIsVirtual(), 1) && ciVo.getFileId() != null) { + ciVo.setFileVo(fileMapper.getFileById(ciVo.getFileId())); + } + List attrList = attrMapper.getAttrBaseInfoByCiId(id); + List relList = relMapper.getRelBaseInfoByCiId(id); + for (RelVo rel : relList) { + List relativeRelList = relMapper.getRelativeRelByRelId(rel.getId()); + rel.setRelativeRelList(relativeRelList); + } + List relGroupList = relMapper.getRelGroupByCiId(id); + List viewList = ciViewMapper.getCiViewBaseInfoByCiId(id); + List authList = ciAuthMapper.getCiAuthByCiId(id); + List uniqueAttrIdList = ciMapper.getCiUniqueByCiId(id); + ciVo.setAttrList(attrList); + ciVo.setRelList(relList); + ciVo.setViewList(viewList); + ciVo.setAuthList(authList); + ciVo.setUniqueAttrIdList(uniqueAttrIdList); + ciVo.setRelGroupList(relGroupList); + exportHandle(ciVo, dependencyList, zipOutputStream); + ImportExportVo importExportVo = new ImportExportVo(this.getType().getValue(), primaryKey, ciVo.getName()); + importExportVo.setDataWithObject(ciVo); + return importExportVo; + } + + /** + * 导入处理,更新依赖组件的唯一标识 + * @param ciVo + * @param primaryChangeList + */ + private void importHandle(CiVo ciVo, List primaryChangeList) { + handleDependency(IMPORT, ciVo, null, null, primaryChangeList); + } + + /** + * 导出处理,先导出依赖组件 + * @param ciVo + * @param dependencyList + * @param zipOutputStream + */ + private void exportHandle(CiVo ciVo, List dependencyList, ZipOutputStream zipOutputStream) { + handleDependency(EXPORT, ciVo, dependencyList, zipOutputStream, null); + } + + private void handleDependency(String action, CiVo ciVo, List dependencyList, ZipOutputStream zipOutputStream, List primaryChangeList) { + if (ciVo.getParentCiId() != null) { + if (action == IMPORT) { + Object newPrimaryKey = getNewPrimaryKey(FrameworkImportExportHandlerType.CMDB_CI, ciVo.getParentCiId(), primaryChangeList); + if (newPrimaryKey != null) { + ciVo.setParentCiId((Long) newPrimaryKey); + } + } else if (action == EXPORT) { + doExportData(FrameworkImportExportHandlerType.CMDB_CI, ciVo.getParentCiId(), dependencyList, zipOutputStream); + } + } + if (ciVo.getTypeId() != null) { + if (action == IMPORT) { + Object newPrimaryKey = getNewPrimaryKey(CmdbImportExportHandlerType.CI_TYPE, ciVo.getTypeId(), primaryChangeList); + if (newPrimaryKey != null) { + ciVo.setTypeId((Long) newPrimaryKey); + } + } else if (action == EXPORT) { + doExportData(CmdbImportExportHandlerType.CI_TYPE, ciVo.getTypeId(), dependencyList, zipOutputStream); + } + } + if (Objects.equals(ciVo.getIsVirtual(), 1) && ciVo.getFileId() != null) { + if (action == IMPORT) { + Object newPrimaryKey = getNewPrimaryKey(FrameworkImportExportHandlerType.FILE, ciVo.getFileId(), primaryChangeList); + if (newPrimaryKey != null) { + ciVo.setFileId((Long) newPrimaryKey); + } + } else if (action == EXPORT) { + doExportData(FrameworkImportExportHandlerType.FILE, ciVo.getFileId(), dependencyList, zipOutputStream); + } + } + List attrList = ciVo.getAttrList(); + if (CollectionUtils.isNotEmpty(attrList)) { + for (AttrVo attr : attrList) { + if (attr.getTargetCiId() != null) { + if (action == IMPORT) { + Object newPrimaryKey = getNewPrimaryKey(FrameworkImportExportHandlerType.CMDB_CI, attr.getTargetCiId(), primaryChangeList); + if (newPrimaryKey != null) { + attr.setTargetCiId((Long) newPrimaryKey); + } + } else if (action == EXPORT) { + doExportData(FrameworkImportExportHandlerType.CMDB_CI, attr.getTargetCiId(), dependencyList, zipOutputStream); + } + } + if (attr.getValidatorId() != null) { + if (action == IMPORT) { + Object newPrimaryKey = getNewPrimaryKey(CmdbImportExportHandlerType.CI_VALIDATOR, attr.getValidatorId(), primaryChangeList); + if (newPrimaryKey != null) { + attr.setValidatorId((Long) newPrimaryKey); + } + } else if (action == EXPORT) { + doExportData(CmdbImportExportHandlerType.CI_VALIDATOR, attr.getValidatorId(), dependencyList, zipOutputStream); + } + } + } + } + List relList = ciVo.getRelList(); + if (CollectionUtils.isNotEmpty(relList)) { + for (RelVo rel : relList) { + if (rel.getTypeId() != null) { + if (action == IMPORT) { + Object newPrimaryKey = getNewPrimaryKey(CmdbImportExportHandlerType.CI_REL_TYPE, rel.getTypeId(), primaryChangeList); + if (newPrimaryKey != null) { + rel.setTypeId((Long) newPrimaryKey); + } + } else if (action == EXPORT) { + doExportData(CmdbImportExportHandlerType.CI_REL_TYPE, rel.getTypeId(), dependencyList, zipOutputStream); + } + } + if (rel.getFromCiId() != null && !Objects.equals(rel.getFromCiId(), ciVo.getId())) { + if (action == IMPORT) { + Object newPrimaryKey = getNewPrimaryKey(FrameworkImportExportHandlerType.CMDB_CI, rel.getFromCiId(), primaryChangeList); + if (newPrimaryKey != null) { + rel.setFromCiId((Long) newPrimaryKey); + } + } else if (action == EXPORT) { + doExportData(FrameworkImportExportHandlerType.CMDB_CI, rel.getFromCiId(), dependencyList, zipOutputStream); + } + } + if (rel.getToCiId() != null && !Objects.equals(rel.getToCiId(), ciVo.getId())) { + if (action == IMPORT) { + Object newPrimaryKey = getNewPrimaryKey(FrameworkImportExportHandlerType.CMDB_CI, rel.getToCiId(), primaryChangeList); + if (newPrimaryKey != null) { + rel.setToCiId((Long) newPrimaryKey); + } + } else if (action == EXPORT) { + doExportData(FrameworkImportExportHandlerType.CMDB_CI, rel.getToCiId(), dependencyList, zipOutputStream); + } + } + } + } + } +} -- Gitee From e1b52335ec79568a83c3e6f7ed34421fe45dbef6 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Mon, 11 Dec 2023 20:15:17 +0800 Subject: [PATCH 5/6] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=90=8E=E7=AB=AF-I?= =?UTF-8?q?T=E6=9C=8D=E5=8A=A1=E8=B7=A8=E7=8E=AF=E5=A2=83=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E5=86=8D=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1031708374171648]后端-IT服务跨环境导出再导入 http://192.168.0.96:8090/demo/rdm.html#/task-detail/939050947543040/939050947543050/1031708374171648 --- .../globalattr/GetGlobalAttrItemListApi.java | 52 ------------------- 1 file changed, 52 deletions(-) delete mode 100644 src/main/java/neatlogic/module/cmdb/api/globalattr/GetGlobalAttrItemListApi.java diff --git a/src/main/java/neatlogic/module/cmdb/api/globalattr/GetGlobalAttrItemListApi.java b/src/main/java/neatlogic/module/cmdb/api/globalattr/GetGlobalAttrItemListApi.java deleted file mode 100644 index 72df8063..00000000 --- a/src/main/java/neatlogic/module/cmdb/api/globalattr/GetGlobalAttrItemListApi.java +++ /dev/null @@ -1,52 +0,0 @@ -package neatlogic.module.cmdb.api.globalattr; - -import com.alibaba.fastjson.JSONObject; -import neatlogic.framework.auth.core.AuthAction; -import neatlogic.framework.cmdb.auth.label.CMDB; -import neatlogic.framework.cmdb.dto.globalattr.GlobalAttrItemVo; -import neatlogic.framework.cmdb.dto.globalattr.GlobalAttrVo; -import neatlogic.framework.common.constvalue.ApiParamType; -import neatlogic.framework.restful.annotation.*; -import neatlogic.framework.restful.constvalue.OperationTypeEnum; -import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; -import neatlogic.framework.util.TableResultUtil; -import neatlogic.module.cmdb.dao.mapper.globalattr.GlobalAttrMapper; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; - -@Service -@AuthAction(action = CMDB.class) -@OperationType(type = OperationTypeEnum.SEARCH) -public class GetGlobalAttrItemListApi extends PrivateApiComponentBase { - - @Resource - private GlobalAttrMapper globalAttrMapper; - - @Override - public String getName() { - return "获取全局属性选项列表"; - } - - @Input({ - @Param(name = "name", type = ApiParamType.STRING, desc = "common.name", isRequired = true) - }) - @Output({ - @Param(explode = GlobalAttrItemVo[].class) - }) - @Description(desc = "获取全局属性选项列表") - @Override - public Object myDoService(JSONObject paramObj) throws Exception { - String name = paramObj.getString("name"); - GlobalAttrVo globalAttrVo = globalAttrMapper.getGlobalAttrByName(name); - if (globalAttrVo == null) { -// throw new GlobalAttrNotFoundException(name); - } - return TableResultUtil.getResult(globalAttrVo.getItemList()); - } - - @Override - public String getToken() { - return "/cmdb/globalattr/itemlist/get"; - } -} -- Gitee From 447a71565a90fb864ffbb0ef320fe0601acbcb9b Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Tue, 12 Dec 2023 10:03:03 +0800 Subject: [PATCH 6/6] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=90=8E=E7=AB=AF-I?= =?UTF-8?q?T=E6=9C=8D=E5=8A=A1=E8=B7=A8=E7=8E=AF=E5=A2=83=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E5=86=8D=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1031708374171648]后端-IT服务跨环境导出再导入 http://192.168.0.96:8090/demo/rdm.html#/task-detail/939050947543040/939050947543050/1031708374171648 --- .../module/cmdb/importexport/handler/CiImportExportHandler.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/neatlogic/module/cmdb/importexport/handler/CiImportExportHandler.java b/src/main/java/neatlogic/module/cmdb/importexport/handler/CiImportExportHandler.java index 271e47e1..b6e61e46 100644 --- a/src/main/java/neatlogic/module/cmdb/importexport/handler/CiImportExportHandler.java +++ b/src/main/java/neatlogic/module/cmdb/importexport/handler/CiImportExportHandler.java @@ -106,6 +106,7 @@ public class CiImportExportHandler extends ImportExportHandlerBase { for (AttrVo attr : attrList) { attr.setCiId(ciVo.getId()); } + ciVo.setAttrList(null); if (oldCi == null) { ciService.insertCi(ciVo); List oldRelList = relMapper.getRelBaseInfoByCiId(ciVo.getId()); -- Gitee