From 648317abd1025e55ac713b7493b4b281e8ca3185 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Sun, 28 Jan 2024 14:23:14 +0800 Subject: [PATCH 1/4] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=90=8E=E7=AB=AF-?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E8=BD=AC=E6=8D=A2=E8=8A=82=E7=82=B9=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E6=B5=81=E8=BD=AC=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1077329307074560]后端-数据转换节点工单流转逻辑 http://192.168.0.96:8090/demo/rdm.html#/task-detail/939050947543040/939050947543050/1077329307074560 --- ...bstractCiTargetCiIdAttrNotFoundException.java | 4 ++++ .../DataConversionAppendPathException.java | 11 +++++++++++ .../service/cientity/CiEntityServiceImpl.java | 16 +++++++++++++--- 3 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 src/main/java/neatlogic/module/cmdb/process/exception/DataConversionAppendPathException.java diff --git a/src/main/java/neatlogic/module/cmdb/process/exception/AbstractCiTargetCiIdAttrNotFoundException.java b/src/main/java/neatlogic/module/cmdb/process/exception/AbstractCiTargetCiIdAttrNotFoundException.java index 29d1ceae..be6367a3 100644 --- a/src/main/java/neatlogic/module/cmdb/process/exception/AbstractCiTargetCiIdAttrNotFoundException.java +++ b/src/main/java/neatlogic/module/cmdb/process/exception/AbstractCiTargetCiIdAttrNotFoundException.java @@ -8,4 +8,8 @@ public class AbstractCiTargetCiIdAttrNotFoundException extends ApiRuntimeExcepti public AbstractCiTargetCiIdAttrNotFoundException(CiVo ciVo) { super("nmcpe.abstractcitargetciidattrnotfoundexception.abstractcitargetciidattrnotfoundexception", ciVo.getLabel(), ciVo.getName()); } + + public AbstractCiTargetCiIdAttrNotFoundException(CiVo ciVo, String configurationPath, String actualPath) { + super("抽象模型“{0}({1})”的“targetCiId(写入模型)”字段的值为空,配置路径:{2},实际路径:{3}", ciVo.getLabel(), ciVo.getName(), configurationPath, actualPath); + } } diff --git a/src/main/java/neatlogic/module/cmdb/process/exception/DataConversionAppendPathException.java b/src/main/java/neatlogic/module/cmdb/process/exception/DataConversionAppendPathException.java new file mode 100644 index 00000000..826b2967 --- /dev/null +++ b/src/main/java/neatlogic/module/cmdb/process/exception/DataConversionAppendPathException.java @@ -0,0 +1,11 @@ +package neatlogic.module.cmdb.process.exception; + +import neatlogic.framework.exception.core.ApiRuntimeException; +import neatlogic.framework.util.$; + +public class DataConversionAppendPathException extends ApiRuntimeException { + + public DataConversionAppendPathException(Exception e, String configurationPath, String actualPath) { + super($.t("配置路径:{0},实际路径:{1},异常:{2}", configurationPath, actualPath, e.getMessage()), e); + } +} diff --git a/src/main/java/neatlogic/module/cmdb/service/cientity/CiEntityServiceImpl.java b/src/main/java/neatlogic/module/cmdb/service/cientity/CiEntityServiceImpl.java index 49532e5b..2008766c 100644 --- a/src/main/java/neatlogic/module/cmdb/service/cientity/CiEntityServiceImpl.java +++ b/src/main/java/neatlogic/module/cmdb/service/cientity/CiEntityServiceImpl.java @@ -61,6 +61,7 @@ import neatlogic.module.cmdb.dao.mapper.globalattr.GlobalAttrMapper; import neatlogic.module.cmdb.dao.mapper.transaction.TransactionMapper; import neatlogic.module.cmdb.fulltextindex.enums.CmdbFullTextIndexType; import neatlogic.module.cmdb.group.CiEntityGroupManager; +import neatlogic.module.cmdb.process.exception.DataConversionAppendPathException; import neatlogic.module.cmdb.relativerel.RelativeRelManager; import neatlogic.module.cmdb.service.ci.CiAuthChecker; import neatlogic.module.cmdb.utils.CiEntityBuilder; @@ -582,9 +583,18 @@ public class CiEntityServiceImpl implements CiEntityService, ICiEntityCrossoverS } } for (CiEntityTransactionVo ciEntityTransactionVo : ciEntityTransactionList) { - Long transactionId = saveCiEntity(ciEntityTransactionVo, transactionGroupVo); - if (transactionId > 0L) { - transactionMapper.insertTransactionGroup(transactionGroupVo.getId(), transactionId); + try { + Long transactionId = saveCiEntity(ciEntityTransactionVo, transactionGroupVo); + if (transactionId > 0L) { + transactionMapper.insertTransactionGroup(transactionGroupVo.getId(), transactionId); + } + } catch (Exception e) { + if (CollectionUtils.isNotEmpty(ciEntityTransactionVo.getConfigurationPathList()) + || CollectionUtils.isNotEmpty(ciEntityTransactionVo.getActualPathList())) { + throw new DataConversionAppendPathException(e, String.join(",", ciEntityTransactionVo.getConfigurationPathList()), String.join(",", ciEntityTransactionVo.getActualPathList())); + } else { + throw e; + } } } } -- Gitee From 6b7a9b1f642e80b62db674046498e8accad67679 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Sun, 28 Jan 2024 17:02:19 +0800 Subject: [PATCH 2/4] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=90=8E=E7=AB=AF-?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E8=BD=AC=E6=8D=A2=E8=8A=82=E7=82=B9=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E6=B5=81=E8=BD=AC=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1077329307074560]后端-数据转换节点工单流转逻辑 http://192.168.0.96:8090/demo/rdm.html#/task-detail/939050947543040/939050947543050/1077329307074560 --- .../cmdb/service/cientity/CiEntityServiceImpl.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/neatlogic/module/cmdb/service/cientity/CiEntityServiceImpl.java b/src/main/java/neatlogic/module/cmdb/service/cientity/CiEntityServiceImpl.java index 2008766c..9a762884 100644 --- a/src/main/java/neatlogic/module/cmdb/service/cientity/CiEntityServiceImpl.java +++ b/src/main/java/neatlogic/module/cmdb/service/cientity/CiEntityServiceImpl.java @@ -591,7 +591,15 @@ public class CiEntityServiceImpl implements CiEntityService, ICiEntityCrossoverS } catch (Exception e) { if (CollectionUtils.isNotEmpty(ciEntityTransactionVo.getConfigurationPathList()) || CollectionUtils.isNotEmpty(ciEntityTransactionVo.getActualPathList())) { - throw new DataConversionAppendPathException(e, String.join(",", ciEntityTransactionVo.getConfigurationPathList()), String.join(",", ciEntityTransactionVo.getActualPathList())); + String configurationPath = ""; + if (CollectionUtils.isNotEmpty(ciEntityTransactionVo.getConfigurationPathList())) { + configurationPath = String.join(",", ciEntityTransactionVo.getConfigurationPathList()); + } + String actualPath = ""; + if (CollectionUtils.isNotEmpty(ciEntityTransactionVo.getActualPathList())) { + actualPath = String.join(",", ciEntityTransactionVo.getActualPathList()); + } + throw new DataConversionAppendPathException(e, configurationPath, actualPath); } else { throw e; } -- Gitee From 823c292700d18586722f09e6f9ae36a8c4c593fa Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Tue, 30 Jan 2024 16:42:05 +0800 Subject: [PATCH 3/4] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=90=8E=E7=AB=AF-?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E8=BD=AC=E6=8D=A2=E8=8A=82=E7=82=B9=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E6=B5=81=E8=BD=AC=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1077329307074560]后端-数据转换节点工单流转逻辑 http://192.168.0.96:8090/demo/rdm.html#/task-detail/939050947543040/939050947543050/1077329307074560 --- .../exception/AbstractCiTargetCiIdAttrNotFoundException.java | 2 +- .../process/exception/DataConversionAppendPathException.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/neatlogic/module/cmdb/process/exception/AbstractCiTargetCiIdAttrNotFoundException.java b/src/main/java/neatlogic/module/cmdb/process/exception/AbstractCiTargetCiIdAttrNotFoundException.java index be6367a3..1a4ca8ba 100644 --- a/src/main/java/neatlogic/module/cmdb/process/exception/AbstractCiTargetCiIdAttrNotFoundException.java +++ b/src/main/java/neatlogic/module/cmdb/process/exception/AbstractCiTargetCiIdAttrNotFoundException.java @@ -10,6 +10,6 @@ public class AbstractCiTargetCiIdAttrNotFoundException extends ApiRuntimeExcepti } public AbstractCiTargetCiIdAttrNotFoundException(CiVo ciVo, String configurationPath, String actualPath) { - super("抽象模型“{0}({1})”的“targetCiId(写入模型)”字段的值为空,配置路径:{2},实际路径:{3}", ciVo.getLabel(), ciVo.getName(), configurationPath, actualPath); + super("nmcpe.abstractcitargetciidattrnotfoundexception.abstractcitargetciidattrnotfoundexception_b", ciVo.getLabel(), ciVo.getName(), configurationPath, actualPath); } } diff --git a/src/main/java/neatlogic/module/cmdb/process/exception/DataConversionAppendPathException.java b/src/main/java/neatlogic/module/cmdb/process/exception/DataConversionAppendPathException.java index 826b2967..74d012ac 100644 --- a/src/main/java/neatlogic/module/cmdb/process/exception/DataConversionAppendPathException.java +++ b/src/main/java/neatlogic/module/cmdb/process/exception/DataConversionAppendPathException.java @@ -6,6 +6,6 @@ import neatlogic.framework.util.$; public class DataConversionAppendPathException extends ApiRuntimeException { public DataConversionAppendPathException(Exception e, String configurationPath, String actualPath) { - super($.t("配置路径:{0},实际路径:{1},异常:{2}", configurationPath, actualPath, e.getMessage()), e); + super($.t("nmcpe.dataconversionappendpathexception.dataconversionappendpathexception", configurationPath, actualPath, e.getMessage()), e); } } -- Gitee From 6ec65df31ec08867114b787bfd1023b65e8e9006 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Tue, 30 Jan 2024 18:34:17 +0800 Subject: [PATCH 4/4] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=90=8E=E7=AB=AF-?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E8=BD=AC=E6=8D=A2=E8=8A=82=E7=82=B9=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E6=B5=81=E8=BD=AC=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1077329307074560]后端-数据转换节点工单流转逻辑 http://192.168.0.96:8090/demo/rdm.html#/task-detail/939050947543040/939050947543050/1077329307074560 --- .../cmdb/service/cientity/CiEntityServiceImpl.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/neatlogic/module/cmdb/service/cientity/CiEntityServiceImpl.java b/src/main/java/neatlogic/module/cmdb/service/cientity/CiEntityServiceImpl.java index 9a762884..ea017112 100644 --- a/src/main/java/neatlogic/module/cmdb/service/cientity/CiEntityServiceImpl.java +++ b/src/main/java/neatlogic/module/cmdb/service/cientity/CiEntityServiceImpl.java @@ -930,14 +930,14 @@ public class CiEntityServiceImpl implements CiEntityService, ICiEntityCrossoverS if (/*ciEntityTransactionVo.getAction().equals(TransactionActionType.INSERT.getValue()) ||*/ ciEntityTransactionVo.getEditMode().equals(EditModeType.GLOBAL.getValue())) { if (attrEntityTransactionVo == null) { if (attrVo.getAllowEdit() == null || attrVo.getAllowEdit().equals(1)) { - throw new AttrEntityValueEmptyException(attrVo.getLabel()); + throw new AttrEntityValueEmptyException(ciVo, attrVo); } } else if (attrEntityTransactionVo.getSaveMode().equals(SaveModeType.REPLACE.getValue()) && CollectionUtils.isEmpty(attrEntityTransactionVo.getValueList())) { - throw new AttrEntityValueEmptyException(attrVo.getLabel()); + throw new AttrEntityValueEmptyException(ciVo, attrVo); } else if (attrEntityTransactionVo.getSaveMode().equals(SaveModeType.MERGE.getValue()) && attrVo.isNeedTargetCi() && CollectionUtils.isEmpty(attrEntityTransactionVo.getValueList())) { List oldList = ciEntityMapper.getAttrEntityByAttrIdAndFromCiEntityId(ciEntityTransactionVo.getCiEntityId(), attrVo.getId(), null); if (CollectionUtils.isEmpty(oldList)) { - throw new AttrEntityValueEmptyException(attrVo.getLabel()); + throw new AttrEntityValueEmptyException(ciVo, attrVo); } } } @@ -1414,7 +1414,7 @@ public class CiEntityServiceImpl implements CiEntityService, ICiEntityCrossoverS if (attrVo.getIsRequired().equals(1)) { if (attrEntityTransactionVo == null || CollectionUtils.isEmpty(attrEntityTransactionVo.getValueList())) { if (attrVo.getAllowEdit() == null || attrVo.getAllowEdit().equals(1)) { - throw new AttrEntityValueEmptyException(attrVo.getLabel()); + throw new AttrEntityValueEmptyException(ciVo, attrVo); } } } @@ -1558,7 +1558,7 @@ public class CiEntityServiceImpl implements CiEntityService, ICiEntityCrossoverS boolean isDelete = CollectionUtils.isEmpty(attrEntityTransactionVo.getValueList()) || (attrEntityTransactionVo.getValueList().size() == 1 && StringUtils.isBlank(attrEntityTransactionVo.getValueList().getString(0))); /*检查必填属性:*/ if (attrVo.getIsRequired().equals(1) && isDelete) { - throw new AttrEntityValueEmptyException(attrVo.getLabel()); + throw new AttrEntityValueEmptyException(ciVo, attrVo); } /* 校验值是否符合数据类型*/ -- Gitee