From 6923200e0f321666c953fcf2da99926b64f5913b Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Sat, 11 Nov 2023 16:31:47 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E9=A1=B9=E4=B9=8B=E5=89=8D=EF=BC=8C=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E9=85=8D=E7=BD=AE=E9=A1=B9=E6=98=AF=E5=90=A6=E5=8F=91?= =?UTF-8?q?=E7=94=9F=E6=94=B9=E5=8F=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1022431949455360]同步配置项之前,校验配置项是否发生改变 http://192.168.0.96:8090/demo/rdm.html#/task-detail/939050947543040/939050947543050/1022431949455360 --- .../stephandler/CmdbSyncProcessComponent.java | 45 ++++++++++++++++++- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/src/main/java/neatlogic/module/cmdb/process/stephandler/CmdbSyncProcessComponent.java b/src/main/java/neatlogic/module/cmdb/process/stephandler/CmdbSyncProcessComponent.java index 62ddf2bd..f6eac1ec 100644 --- a/src/main/java/neatlogic/module/cmdb/process/stephandler/CmdbSyncProcessComponent.java +++ b/src/main/java/neatlogic/module/cmdb/process/stephandler/CmdbSyncProcessComponent.java @@ -163,10 +163,12 @@ public class CmdbSyncProcessComponent extends ProcessStepHandlerBase { // 获取工单当前步骤配置信息 String config = selectContentByHashMapper.getProcessTaskStepConfigByHash(configHash); if (StringUtils.isBlank(config)) { + myAutoComplete(currentProcessTaskStepVo); return 0; } JSONObject ciEntityConfig = (JSONObject) JSONPath.read(config, "ciEntityConfig"); if (MapUtils.isEmpty(ciEntityConfig)) { + myAutoComplete(currentProcessTaskStepVo); return 0; } Map processTaskFormAttributeDataMap = new HashMap<>(); @@ -218,6 +220,7 @@ public class CmdbSyncProcessComponent extends ProcessStepHandlerBase { /* 重新构建configList配置信息 */ configList = rebuildConfigList(configList, formAttributeMap, processTaskFormAttributeDataMap); if (CollectionUtils.isEmpty(configList)) { + myAutoComplete(currentProcessTaskStepVo); return 1; } /* 遍历configList, 找出起始模型配置列表,根据id和uuid的值判断是新增还是更新 */ @@ -252,6 +255,7 @@ public class CmdbSyncProcessComponent extends ProcessStepHandlerBase { ciEntityTransactionMap.put(uuid, ciEntityTransactionVo); } if (CollectionUtils.isEmpty(startConfigList)) { + myAutoComplete(currentProcessTaskStepVo); return 0; } /* 遍历起始模型配置信息列表,生成CiEntityTransactionVo列表 */ @@ -264,10 +268,16 @@ public class CmdbSyncProcessComponent extends ProcessStepHandlerBase { } } } - if (CollectionUtils.isNotEmpty(ciEntityTransactionList)) { - for (CiEntityTransactionVo t : ciEntityTransactionList) { + for (int i = ciEntityTransactionList.size() - 1; i >= 0; i--) { + CiEntityTransactionVo t = ciEntityTransactionList.get(i); + boolean hasChange = ciEntityService.validateCiEntityTransaction(t); + if (hasChange) { t.setAllowCommit(true); + } else { + ciEntityTransactionList.remove(i); } + } + if (CollectionUtils.isNotEmpty(ciEntityTransactionList)) { EscapeTransactionJob.State s = new EscapeTransactionJob(() -> { InputFromContext.init(InputFrom.ITSM); Long transactionGroupId = ciEntityService.saveCiEntity(ciEntityTransactionList); @@ -613,6 +623,37 @@ public class CmdbSyncProcessComponent extends ProcessStepHandlerBase { } } } + } else if (Objects.equals(formAttributeVo.getHandler(), FormHandler.FORMRADIO.getHandler()) + || Objects.equals(formAttributeVo.getHandler(), FormHandler.FORMCHECKBOX.getHandler()) + || Objects.equals(formAttributeVo.getHandler(), FormHandler.FORMSELECT.getHandler())) { + if (dataObj instanceof JSONArray) { + JSONArray valueArray = (JSONArray) dataObj; + for (int j = 0; j < valueArray.size(); j++) { + String valueStr = valueArray.getString(j); + if (valueStr.contains("&=&")) { + String[] split = valueStr.split("&=&"); + newValueList.add(split[0]); + } else { + newValueList.add(valueStr); + } + } + } else if (dataObj instanceof String) { + String valueStr = (String) dataObj; + if (valueStr.contains("&=&")) { + String[] split = valueStr.split("&=&"); + newValueList.add(split[0]); + } else { + newValueList.add(valueStr); + } + } else { + String valueStr = dataObj.toString(); + if (valueStr.contains("&=&")) { + String[] split = valueStr.split("&=&"); + newValueList.add(split[0]); + } else { + newValueList.add(valueStr); + } + } } else { if (dataObj instanceof JSONObject) { -- Gitee