diff --git a/com.actionsoft.apps.coe.pal.datamigration/lib/com.actionsoft.apps.coe.pal.datamigration.jar b/com.actionsoft.apps.coe.pal.datamigration/lib/com.actionsoft.apps.coe.pal.datamigration.jar index f85fd461..153de592 100644 Binary files a/com.actionsoft.apps.coe.pal.datamigration/lib/com.actionsoft.apps.coe.pal.datamigration.jar and b/com.actionsoft.apps.coe.pal.datamigration/lib/com.actionsoft.apps.coe.pal.datamigration.jar differ diff --git a/com.actionsoft.apps.coe.pal.datamigration/src/com/actionsoft/apps/coe/pal/datamigration/aris/web/ArisXmlImportRun.java b/com.actionsoft.apps.coe.pal.datamigration/src/com/actionsoft/apps/coe/pal/datamigration/aris/web/ArisXmlImportRun.java index 9d67a67a..c39a1ac1 100644 --- a/com.actionsoft.apps.coe.pal.datamigration/src/com/actionsoft/apps/coe/pal/datamigration/aris/web/ArisXmlImportRun.java +++ b/com.actionsoft.apps.coe.pal.datamigration/src/com/actionsoft/apps/coe/pal/datamigration/aris/web/ArisXmlImportRun.java @@ -51,18 +51,18 @@ import java.util.stream.Collectors; public class ArisXmlImportRun { - private UserContext uc; - private String wsId; - private String logId; - private String logPath; - private File simpleLogFile; - private File fullLogFile; - private File warnLogFile; - private File successLogFile;// 客户特殊需要,记录成功日志 - private File matchErrImportFile;// 匹配失败记录 - private String filePath; - private String fileName; - private long startTime; + private final UserContext uc; + private final String wsId; + private final String logId; + private final String logPath; + private final File simpleLogFile; + private final File fullLogFile; + private final File warnLogFile; + private final File successLogFile;// 客户特殊需要,记录成功日志 + private final File matchErrImportFile;// 匹配失败记录 + private final String filePath; + private final String fileName; + private final long startTime; private long endTime; @@ -142,12 +142,12 @@ public class ArisXmlImportRun { // 获取所有PAL EPC的模型 Map palArisPropValMap = ProcessUtil.getPalRepositoryArisPathMap(wsId); - LogUtil.appendLog("\n" + Constant.LOG_START + "开始查询PAL流程清单的所有ARIS地址属性内容", fullLogFile); + LogUtil.appendLog("\n" + Constant.LOG_START + "开始查询PAL流程清单的所有ARIS地址+名称属性内容", fullLogFile); for (Map.Entry entry : palArisPropValMap.entrySet()) { - LogUtil.appendLog("名称:---" + PALRepositoryCache.getCache().get(entry.getKey()).getName() + "---,ARIS地址:----" + entry.getValue() + "----", fullLogFile); + LogUtil.appendLog("名称:---" + PALRepositoryCache.getCache().get(entry.getKey()).getName() + "---,ARIS地址+名称:----" + entry.getValue() + "----", fullLogFile); } - LogUtil.appendLog("\n" + Constant.LOG_END + "开始查询PAL流程清单的所有ARIS地址属性内容", fullLogFile); + LogUtil.appendLog("\n" + Constant.LOG_END + "开始查询PAL流程清单的所有ARIS地址+名称属性内容", fullLogFile); @@ -161,7 +161,7 @@ public class ArisXmlImportRun { int totalCount = LogRealTimeCountCache.getCache().get(logId).getTotalCount(); for (int i = 0; i < arisEpcModelList.size(); i++) { ModelModel arisModel = arisEpcModelList.get(i); - String arisPath = ArisConstant.ARIS_ROOT_PATH + arisModel.getModelPath(); + String arisPath = ArisConstant.ARIS_ROOT_PATH + arisModel.getModelPath() + "\\" + arisModel.getName(); int importingCount = i + 1;// 当前是导入的第几个 LogRealTimeCountCache.getCache().get(logId).setImportingCount(importingCount);// 当前记录缓存 // 当前正在导入的流程全部日志记录,方便对照 @@ -176,7 +176,7 @@ public class ArisXmlImportRun { // 空模型当作警告处理,全部记录 LogUtil.appendLog(Constant.LOG_WARNING + "ARIS流程" + "[" + arisModel.getName() + "]内容为空,忽略导入", simpleLogFile, fullLogFile, warnLogFile); LogUtil.appendLog(Constant.LOG_DESC + "该流程所属路径:" + arisPath); - LogUtil.appendLog("[ARIS流程为空]ARIS流程" + "[" + arisModel.getName() + "],ARIS地址[" + arisPath + "]", matchErrImportFile); + LogUtil.appendLog("[ARIS流程为空]ARIS流程" + "[" + arisModel.getName() + "],ARIS地址+名称[" + arisPath + "]", matchErrImportFile); LogRealTimeCountCache.getCache().get(logId).setArisBlankCount(LogRealTimeCountCache.getCache().get(logId).getArisBlankCount() + 1); continue; } @@ -200,7 +200,7 @@ public class ArisXmlImportRun { if (!flag) { LogUtil.appendLog(Constant.LOG_WARNING + "ARIS流程" + "[" + arisModel.getName() + "]未匹配到PAL过程链图", simpleLogFile, fullLogFile, warnLogFile); LogUtil.appendLog(Constant.LOG_DESC + "ARIS流程所属路径:" + arisPath, simpleLogFile, fullLogFile, warnLogFile); - LogUtil.appendLog("[未匹配到]ARIS流程" + "[" + arisModel.getName() + "],ARIS地址[" + arisPath + "]", matchErrImportFile); + LogUtil.appendLog("[未匹配到]ARIS流程" + "[" + arisModel.getName() + "],ARIS地址+名称[" + arisPath + "]", matchErrImportFile); LogRealTimeCountCache.getCache().get(logId).setMatchFieldCount(LogRealTimeCountCache.getCache().get(logId).getMatchFieldCount() + 1); continue; } @@ -221,7 +221,7 @@ public class ArisXmlImportRun { LogUtil.appendLog(Constant.LOG_WARNING + "匹配到的PAL过程链图模型已存在数据,不允许导入,忽略", simpleLogFile, fullLogFile, warnLogFile); LogUtil.appendLog(Constant.LOG_DESC + "ARIS流程所属路径:" + arisPath, simpleLogFile, fullLogFile); LogUtil.appendLog(Constant.LOG_DESC + "PAL过程链图所属路径:" + ProcessUtil.getRepositoryPath(palModel.getId()), simpleLogFile, fullLogFile); - LogUtil.appendLog("[PAL已存在内容]PAL流程["+ palModel.getName() + "]ARIS流程" + "[" + arisModel.getName() + "],ARIS地址[" + arisPath + "]", matchErrImportFile); + LogUtil.appendLog("[PAL已存在内容]PAL流程["+ palModel.getName() + "]ARIS流程" + "[" + arisModel.getName() + "],ARIS地址+名称[" + arisPath + "]", matchErrImportFile); LogRealTimeCountCache.getCache().get(logId).setPalExistsCount(LogRealTimeCountCache.getCache().get(logId).getPalExistsCount() + 1); continue; } @@ -330,7 +330,7 @@ public class ArisXmlImportRun { LogUtil.appendLog("\n" + Constant.LOG_END + "导入ARIS流程" + "[" + arisModel.getName() + "]", simpleLogFile, fullLogFile, warnLogFile); - LogUtil.appendLog(Constant.LOG_END + "导入成功的PAL流程" + "[" + palModel.getName() + "],ARIS地址[ " + palArisPropValMap.get(palModel.getId()) + " ]", successLogFile); + LogUtil.appendLog(Constant.LOG_END + "导入成功的PAL流程" + "[" + palModel.getName() + "],ARIS地址+名称[ " + palArisPropValMap.get(palModel.getId()) + " ]", successLogFile); } endTime = System.currentTimeMillis(); Timestamp endDate = new Timestamp(endTime); diff --git a/com.actionsoft.apps.coe.pal.datamigration/src/com/actionsoft/apps/coe/pal/datamigration/aris/web/ArisXmlImportWeb.java b/com.actionsoft.apps.coe.pal.datamigration/src/com/actionsoft/apps/coe/pal/datamigration/aris/web/ArisXmlImportWeb.java index cc1458af..5b9852e3 100644 --- a/com.actionsoft.apps.coe.pal.datamigration/src/com/actionsoft/apps/coe/pal/datamigration/aris/web/ArisXmlImportWeb.java +++ b/com.actionsoft.apps.coe.pal.datamigration/src/com/actionsoft/apps/coe/pal/datamigration/aris/web/ArisXmlImportWeb.java @@ -57,7 +57,7 @@ public class ArisXmlImportWeb extends ActionWeb { private File warnLogFile; private String filePath; private String fileName; - private long startTime = System.currentTimeMillis(); + private final long startTime = System.currentTimeMillis(); // Timestamp startDate = new Timestamp(System.currentTimeMillis()); @@ -249,28 +249,28 @@ public class ArisXmlImportWeb extends ActionWeb { arisEpcPathMap.get(model.getModelPath()).add(model.getId()); } - LogUtil.appendLog("\n" + Constant.LOG_START + "************[执行阶段][校验ARIS EPC流程路径唯一性]Aris xml EPC流程所属目录唯一性************", simpleLogFile, fullLogFile); - +// LogUtil.appendLog("\n" + Constant.LOG_START + "************[执行阶段][校验ARIS EPC流程路径唯一性]Aris xml EPC流程所属目录唯一性************", simpleLogFile, fullLogFile); +// boolean flag = false; - for (Map.Entry> entry : arisEpcPathMap.entrySet()) { - if (entry.getValue().size() > 1) { - Set modelIds = entry.getValue(); - for (String arisModelId : modelIds) { - ModelModel model = handleWeb.modelMap.get(arisModelId); - String name = model.getName(); - String path = ArisConstant.ARIS_ROOT_PATH + model.getModelPath(); - LogUtil.appendLog(Constant.LOG_ERROR + "ARIS XML中流程[" + name + "]所属目录重复,所属目录[" + path + "]", simpleLogFile, fullLogFile, warnLogFile); - } - flag = true; - } - } - if (flag) { - msg = "Aris xml文件中存在多个流程同属于一个架构路径,详情查看日志"; - updateErrLog(msg, msg); - ro.err(msg); - return ro.toString(); - } - LogUtil.appendLog(Constant.LOG_END + "[执行阶段][校验Aris EPC流程路径唯一性]", simpleLogFile, fullLogFile); +// for (Map.Entry> entry : arisEpcPathMap.entrySet()) { +// if (entry.getValue().size() > 1) { +// Set modelIds = entry.getValue(); +// for (String arisModelId : modelIds) { +// ModelModel model = handleWeb.modelMap.get(arisModelId); +// String name = model.getName(); +// String path = ArisConstant.ARIS_ROOT_PATH + model.getModelPath(); +// LogUtil.appendLog(Constant.LOG_ERROR + "ARIS XML中流程[" + name + "]所属目录重复,所属目录[" + path + "]", simpleLogFile, fullLogFile, warnLogFile); +// } +// flag = true; +// } +// } +// if (flag) { +// msg = "Aris xml文件中存在多个流程同属于一个架构路径,详情查看日志"; +// updateErrLog(msg, msg); +// ro.err(msg); +// return ro.toString(); +// } +// LogUtil.appendLog(Constant.LOG_END + "[执行阶段][校验Aris EPC流程路径唯一性]", simpleLogFile, fullLogFile); // 校验pal aris地址属性路径是否存在重复问题 // 获取所有PAL EPC的模型 @@ -284,7 +284,7 @@ public class ArisXmlImportWeb extends ActionWeb { palEpcArisPathMap.get(entry.getValue()).add(entry.getKey()); } - LogUtil.appendLog("\n" + Constant.LOG_START + "************[执行阶段][校验PAL EPC文件属性ARIS地址唯一性]PAL EPC流程文件属性ARIS地址唯一性************", simpleLogFile, fullLogFile); + LogUtil.appendLog("\n" + Constant.LOG_START + "************[执行阶段][校验PAL EPC文件属性ARIS地址+名称唯一性]PAL EPC流程文件属性ARIS地址+名称唯一性************", simpleLogFile, fullLogFile); flag = false; for (Map.Entry> entry : palEpcArisPathMap.entrySet()) { @@ -294,18 +294,18 @@ public class ArisXmlImportWeb extends ActionWeb { PALRepositoryModel plModel = PALRepositoryCache.getCache().get(id); String name = plModel.getName(); String path = ProcessUtil.getRepositoryPath(id); - LogUtil.appendLog(Constant.LOG_ERROR + "PAL中流程[" + name + "][V" + plModel.getVersion() + "]文件属性ARIS地址属性内容重复,属性内容[" + path + "]", simpleLogFile, fullLogFile, warnLogFile); + LogUtil.appendLog(Constant.LOG_ERROR + "PAL中流程[" + name + "][V" + plModel.getVersion() + "]文件属性ARIS地址+名称属性内容重复,属性内容[" + path + "]", simpleLogFile, fullLogFile, warnLogFile); } flag = true; } } if (flag) { - msg = "PAL 文件属性ARIS地址内容存在重复,详情查看日志"; + msg = "PAL 文件属性ARIS地址+名称内容存在重复,详情查看日志"; updateErrLog(msg, msg); ro.err(msg); return ro.toString(); } - LogUtil.appendLog(Constant.LOG_END + "[执行阶段][校验PAL EPC文件属性ARIS地址唯一性]", simpleLogFile, fullLogFile); + LogUtil.appendLog(Constant.LOG_END + "[执行阶段][校验PAL EPC文件属性ARIS地址+名称唯一性]", simpleLogFile, fullLogFile); // 存储缓存,导入计数 @@ -374,7 +374,7 @@ public class ArisXmlImportWeb extends ActionWeb { private ResponseObject checkMethodConfig(String wsId) { // 校验EPC图的文件属性 // 校验前置流程、后置流程 - ResponseObject checkRo = checkMethodAttrExist(wsId, Constant.PROCESS_EPC, null, Constant.METHOD_PRE_PROCESS, Constant.METHOD_NEXT_PROCESS, Constant.METHOD_ARIS_URL); + ResponseObject checkRo = checkMethodAttrExist(wsId, Constant.PROCESS_EPC, null, Constant.METHOD_PRE_PROCESS, Constant.METHOD_NEXT_PROCESS, Constant.METHOD_ARIS_URL, Constant.METHOD_ARIS_NAME); if (checkRo.isErr()) { return checkRo; } diff --git a/com.actionsoft.apps.coe.pal.datamigration/src/com/actionsoft/apps/coe/pal/datamigration/constant/Constant.java b/com.actionsoft.apps.coe.pal.datamigration/src/com/actionsoft/apps/coe/pal/datamigration/constant/Constant.java index 64c0fa19..e9223311 100644 --- a/com.actionsoft.apps.coe.pal.datamigration/src/com/actionsoft/apps/coe/pal/datamigration/constant/Constant.java +++ b/com.actionsoft.apps.coe.pal.datamigration/src/com/actionsoft/apps/coe/pal/datamigration/constant/Constant.java @@ -56,6 +56,8 @@ public class Constant { // public static final String METHOD_ARIS_URL = "ARISURL"; public static final String METHOD_ARIS_URL = "ARIS"; + public static final String METHOD_ARIS_NAME = "ARIS_process_name"; + // 建模属性代码--IT系统别名 public static final String METHOD_OTHER_NAME = "otherName"; diff --git a/com.actionsoft.apps.coe.pal.datamigration/src/com/actionsoft/apps/coe/pal/datamigration/util/ProcessUtil.java b/com.actionsoft.apps.coe.pal.datamigration/src/com/actionsoft/apps/coe/pal/datamigration/util/ProcessUtil.java index 9e696363..6a493c02 100644 --- a/com.actionsoft.apps.coe.pal.datamigration/src/com/actionsoft/apps/coe/pal/datamigration/util/ProcessUtil.java +++ b/com.actionsoft.apps.coe.pal.datamigration/src/com/actionsoft/apps/coe/pal/datamigration/util/ProcessUtil.java @@ -17,6 +17,7 @@ import com.actionsoft.apps.coe.pal.pal.repository.util.CoeProcessLevelUtil; import com.actionsoft.apps.lifecycle.api.AppsAPIManager; import com.actionsoft.apps.resource.AppContext; import com.actionsoft.bpms.server.UserContext; +import com.actionsoft.bpms.util.UtilString; import com.actionsoft.i18n.I18nRes; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -239,15 +240,31 @@ public class ProcessUtil { } } PALRepositoryPropertyDao dao = new PALRepositoryPropertyDao(); + // aris地址 List propertyModels = dao.queryByWsId(wsId); propertyModels = propertyModels.stream().filter(item -> Constant.METHOD_ARIS_URL.equals(item.getPropertyId())).collect(Collectors.toList()); - Map map = new HashMap<>(); + // aris流程名称 + List arisNameModels = dao.queryByWsId(wsId); + arisNameModels = arisNameModels.stream().filter(item -> Constant.METHOD_ARIS_NAME.equals(item.getPropertyId())).collect(Collectors.toList()); + + Map arisPathMap = new HashMap<>(); for (PALRepositoryPropertyModel prop : propertyModels) { - map.put(prop.getPlId(), StrUtil.removeAllBlack(prop.getPropertyValue()));// 去除空格 + arisPathMap.put(prop.getPlId(), StrUtil.removeAllBlack(prop.getPropertyValue()));// 去除空格 + } + Map arisNameMap = new HashMap<>(); + for (PALRepositoryPropertyModel prop : arisNameModels) { + arisNameMap.put(prop.getPlId(), StrUtil.removeAllBlack(prop.getPropertyValue()));// 去除空格 } for (PALRepositoryModel model : list) { - if (map.containsKey(model.getId())) { - propValMap.put(model.getId(), map.get(model.getId())); + if (arisPathMap.containsKey(model.getId()) && arisNameMap.containsKey(model.getId())) { + List pathList = new ArrayList<>(); + if (UtilString.isNotEmpty(arisPathMap.get(model.getId()))) { + pathList.add(arisPathMap.get(model.getId())); + } + if (UtilString.isNotEmpty(arisNameMap.get(model.getId()))) { + pathList.add(arisNameMap.get(model.getId())); + } + propValMap.put(model.getId(), StringUtils.join(pathList, "\\")); } } return propValMap;