Aris流程数据迁移日志记录处理

This commit is contained in:
446052889@qq.com 2022-07-03 01:35:37 +08:00
parent 13b80bf501
commit a0e9f5354a
7 changed files with 306 additions and 145 deletions

View File

@ -215,7 +215,7 @@ public class ArisXmlHandleWeb {
String modifyUser = e.attributeValue("LastModifier");
ModelModel modelModel = new ModelModel();
modelModel.setId(id);
modelModel.setName(name);
modelModel.setName(name.trim());// 去除两边空白
modelModel.setPid(pid);
modelModel.setType(type);
modelModel.setCreateTime(createTime);

View File

@ -40,6 +40,8 @@ import org.apache.commons.lang.StringUtils;
import java.io.File;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@ -133,19 +135,22 @@ public class ArisXmlImportRun {
int importingCount = i + 1;// 当前是导入的第几个
LogRealTimeCountCache.getCache().get(logId).setImportingCount(importingCount);// 当前记录缓存
// 当前正在导入的流程全部日志记录方便对照
LogUtil.appendLog("-----------------【" + importingCount + "/" + totalArisCount + "】-----------------", simpleLogFile, fullLogFile, warnLogFile);
// LogUtil.appendLog("************-----[" + importingCount + "/" + totalArisCount + "]************-----", simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog("\n************[执行进度]当前执行第[" + importingCount + "]条,共["+ totalArisCount +"]条************", simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog("\n" + Constant.LOG_START + "************[执行阶段][流程匹配阶段]PAL过程链图与ARIS流程进行匹配************", simpleLogFile, fullLogFile);
// 校验Aris是否空模型
List<ObjOccModel> objOccModels = modelObjOccMap.get(arisModel.getId());
if (objOccModels == null || objOccModels.size() == 0) {
// 空模型当作警告处理全部记录
LogUtil.appendLog(Constant.LOG_WARNING + "Aris流程" + "" + arisModel.getName() + "】内容为空,导入忽略", simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog(Constant.LOG_WARNING + "ARIS流程" + "[" + arisModel.getName() + "]内容为空,忽略导入", simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog(Constant.LOG_DESC + "该流程所属路径:" + arisPath);
LogRealTimeCountCache.getCache().get(logId).setArisBlankCount(LogRealTimeCountCache.getCache().get(logId).getArisBlankCount() + 1);
continue;
}
// PAL流程与Aris流程进行匹配
// PAL过程链图与ARIS流程进行匹配
boolean flag = false;
PALRepositoryModel palModel = null;
for (Map.Entry<String, String> entry : palArisPropValMap.entrySet()) {
@ -156,21 +161,21 @@ public class ArisXmlImportRun {
palModel = plModel;
flag = true;
// 匹配成功不记录到警告日志中
LogUtil.appendLog(Constant.LOG_SUCCESS + "Aris流程" + "" + arisModel.getName() + "】与PAL流程" + "" + palModel.getName() + "", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_DESC + "Aris流程所属路径:" + arisPath);
LogUtil.appendLog(Constant.LOG_DESC + "PAL流程所属路径:" + ProcessUtil.getRepositoryPath(palModel.getId()));
LogUtil.appendLog(Constant.LOG_END + "ARIS流程" + "[" + arisModel.getName() + "]与PAL过程链图" + "[" + palModel.getName() + "]匹配", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_DESC + "ARIS流程所属路径:" + arisPath, simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_DESC + "PAL过程链图所属路径:" + ProcessUtil.getRepositoryPath(palModel.getId()), simpleLogFile, fullLogFile);
break;
}
}
}
// 未匹配成功
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(Constant.LOG_WARNING + "ARIS流程" + "[" + arisModel.getName() + "]未匹配到PAL过程链图", simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog(Constant.LOG_DESC + "ARIS流程所属路径:" + arisPath, simpleLogFile, fullLogFile, warnLogFile);
LogRealTimeCountCache.getCache().get(logId).setMatchFieldCount(LogRealTimeCountCache.getCache().get(logId).getMatchFieldCount() + 1);
continue;
}
// 判断计划导入到的PAL流程是否已经存在数据
// 判断计划导入到的PAL过程链图是否已经存在数据
String plId = palModel.getId();
// 模型是否可导入
BaseModel defineModel = CoeDesignerAPIManager.getInstance().getDefinition(plId, 0);
@ -184,66 +189,130 @@ public class ArisXmlImportRun {
JSONObject definition = JSONObject.parseObject(define);
JSONObject elements = definition.getJSONObject("elements");
if (elements != null && !elements.isEmpty()) {
LogUtil.appendLog(Constant.LOG_WARNING + "匹配到的PAL流程模型已存在数据不允许导入忽略", simpleLogFile, fullLogFile, warnLogFile);
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);
LogRealTimeCountCache.getCache().get(logId).setPalExistsCount(LogRealTimeCountCache.getCache().get(logId).getPalExistsCount() + 1);
continue;
}
LogUtil.appendLog(Constant.LOG_START + "导入Aris流程" + "" + arisModel.getName() + "", simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog(Constant.LOG_END + "[执行阶段][流程匹配阶段]", simpleLogFile, fullLogFile);
LogUtil.appendLog("\n" + Constant.LOG_START + "************[执行阶段][调整过程链图基本信息阶段]同步ARIS流程的创建人、创建时间、修改人、修改时间到PAL过程链图************", simpleLogFile, fullLogFile);
String createUser = getBpmUser(arisModel.getCreateUser());
String modifyUser = getBpmUser(arisModel.getModifyUser());
Timestamp createDate = getTimeStampDate("创建时间", arisModel.getCreateTime());
if (createDate == null) {
LogUtil.appendLog(Constant.LOG_WARNING + "ARIS流程[" + arisModel.getName() + "][创建时间]转换异常,忽略[创建时间]变更", simpleLogFile, fullLogFile, warnLogFile);
}
Timestamp modifyDate = getTimeStampDate("修改时间", arisModel.getModifyTime());
if (modifyDate == null) {
LogUtil.appendLog(Constant.LOG_WARNING + "ARIS流程[" + arisModel.getName() + "][修改时间]转换异常,忽略[修改时间]变更", simpleLogFile, fullLogFile, warnLogFile);
}
int r = coeProcessLevel.updateRepositoryUserAndDate(plId, createUser, modifyUser, createDate, modifyDate);
if (r > 0) {
LogUtil.appendLog(Constant.LOG_END + "PAL过程链图[" + arisModel.getName() + "]创建人[" + createUser + "]、创建时间[" + createDate + "]、修改人[" + modifyUser + "]、修改时间["+ modifyDate +"]修改", simpleLogFile, fullLogFile);
} else {
LogUtil.appendLog(Constant.LOG_WARNING + "PAL过程链图[" + arisModel.getName() + "]创建人[" + createUser + "]、创建时间[" + createDate + "]、修改人[" + modifyUser + "]、修改时间["+ modifyDate +"]修改", simpleLogFile, fullLogFile, warnLogFile);
}
LogUtil.appendLog(Constant.LOG_END + "[执行阶段][调整过程链图基本信息阶段]", simpleLogFile, fullLogFile);
LogUtil.appendLog("\n" + Constant.LOG_START + "导入ARIS流程" + "[" + arisModel.getName() + "]", simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog("\n" + Constant.LOG_START + "************[执行阶段][创建角色图阶段]创建PAL角色图和角色元素设置角色的岗位属性内容************", simpleLogFile, fullLogFile);
Map<String, String> arisFunIdRelationPalRoleMap = new HashMap<>();// aris功能模型与aris角色模型的id映射keyaris fun shape idvaluepal role id
Map<String, String> palRoleIdRelationNameMap = new HashMap<>();// key pal role shape id ,value:pal role shape text
// 创建角色模型和角色元素并且获取aris角色与pal角色映射关系
String roleMdoelId = createRoleModelAndElements(coeProcessLevel, rolefolderId, wsId, palModel, arisModel, modelObjOccMap, objDefMap, objOccMap, cxnOccMap, objDefLinkerMap, arisFunIdRelationPalRoleMap, methodAttrsMap, palRoleIdRelationNameMap);
LogUtil.appendLog(Constant.LOG_END + "[执行阶段][创建角色图阶段]", simpleLogFile, fullLogFile);
LogUtil.appendLog("\n" + Constant.LOG_START + "************[执行阶段][创建" + I18nRes.findValue(CoEConstant.APP_ID, Constant.PROCESS_EPC) + "阶段]创建"+ I18nRes.findValue(CoEConstant.APP_ID, Constant.PROCESS_EPC) + "形状及连线,并设置编号、描述属性内容************", simpleLogFile, fullLogFile);
// 存储当前模型下ARIS图形ID与PAL图形ID映射关系
Map<String, String> idRelationMap = new HashMap<>();
Map<String, String> palShapeIdRelationArisOccIdMap = new HashMap<>();
// 创建形状和连线
JSONObject newElements = createShapeElement(wsId, idRelationMap, palModel, arisModel, modelObjOccMap, objDefMap, objOccMap, cxnOccMap, palShapeIdRelationArisOccIdMap);
LogUtil.appendLog(Constant.LOG_END + "[执行阶段][创建" + I18nRes.findValue(CoEConstant.APP_ID, Constant.PROCESS_EPC) + "阶段]", simpleLogFile, fullLogFile);
LogUtil.appendLog("\n" + Constant.LOG_START + "************[执行阶段][设置活动输入输出属性内容阶段]删除过程链图中的输入输出形状及相关连线,并设置输入、输出文本属性内容************", simpleLogFile, fullLogFile);
// 处理输入输出活动属性
this.handleShapeInputOutAttr(palModel, newElements);
LogUtil.appendLog(Constant.LOG_END + "[执行阶段][设置活动输入输出属性内容阶段]", simpleLogFile, fullLogFile);
LogUtil.appendLog("\n" + Constant.LOG_START + "************[执行阶段][设置活动角色属性内容阶段]删除过程链图中的角色形状及相关连线,并设置角色关联属性内容************", simpleLogFile, fullLogFile);
// 处理角色属性与流程相应的活动节点关联
this.handleProcessAttrRoleRelation(wsId, palModel.getId(), arisFunIdRelationPalRoleMap, palShapeIdRelationArisOccIdMap, newElements, arisModel, modelObjOccMap, objDefMap, roleMdoelId, palRoleIdRelationNameMap);
LogUtil.appendLog(Constant.LOG_END + "[执行阶段][设置活动角色属性内容阶段]", simpleLogFile, fullLogFile);
LogUtil.appendLog("\n" + Constant.LOG_START + "************[执行阶段][设置活动信息系统属性内容阶段]设置信息系统关联属性内容************", simpleLogFile, fullLogFile);
// 处理流程关联属性IT系统
this.handleProcessAttrItSystemRelation(wsId, idRelationMap, palModel.getId(), newElements, arisModel, modelObjOccMap, objDefMap, objDefLinkerMap, itShapeMap);
LogUtil.appendLog(Constant.LOG_END + "[执行阶段][设置活动信息系统属性内容阶段]", simpleLogFile, fullLogFile);
LogUtil.appendLog("\n" + Constant.LOG_START + "************[执行阶段][设置前后置属性内容阶段]设置过程链图前置流程、后置流程关联属性内容************", simpleLogFile, fullLogFile);
// 前后置流程处理
this.handleProcessAttrLeadOrRearProcess(wsId, idRelationMap, palModel.getId(), newElements, arisModel, modelObjOccMap, objDefMap);
LogUtil.appendLog(Constant.LOG_END + "[执行阶段][设置前后置属性内容阶段]", simpleLogFile, fullLogFile);
LogUtil.appendLog("\n" + Constant.LOG_START + "************[执行阶段][完善过程链图形状的默认属性阶段]完善过程链图所有形状的已配置属性************", simpleLogFile, fullLogFile);
// 增加其他默认的属性值默认为空 by孙连辉 20220626
this.handleShapeDefaultAttr(wsId, palModel, newElements, methodAttrsMap);
LogUtil.appendLog(Constant.LOG_END + "[执行阶段][完善过程链图形状的默认属性阶段]", simpleLogFile, fullLogFile);
definition.put("elements", newElements);
// 设置画布大小
setDiagramHeightWidth(definition, newElements);
defineModel.setDefinition(definition.toString());
LogUtil.appendLog("\n" + Constant.LOG_START + "************[执行阶段][保存过程链图形状/连线]保存过程链图所有形状和连线************", simpleLogFile, fullLogFile);
// 保存文件
CoeDesignerAPIManager.getInstance().storeDefinition(defineModel);// dao操作
// 记录结束日志
endTime = System.currentTimeMillis();
Timestamp endDate = new Timestamp(System.currentTimeMillis());
LogRealTimeCountCache.getCache().get(logId).setSuccessCount(LogRealTimeCountCache.getCache().get(logId).getSuccessCount() + 1);
LogUtil.appendLog(Constant.LOG_END + "保存PAL过程链图[" + palModel.getName() + "]的形状和连线", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "[执行阶段][保存过程链图形状/连线]", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "保存PAL流程【" + palModel.getName() + "】的形状和连线", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "导入Aris流程" + "" + arisModel.getName() + "", simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog("\n" + Constant.LOG_END + "导入ARIS流程" + "[" + arisModel.getName() + "]", simpleLogFile, fullLogFile, warnLogFile);
}
Timestamp endDate = new Timestamp(System.currentTimeMillis());
LogRealTimeCountModel model = LogRealTimeCountCache.getCache().get(logId);
String takeTimeText = takeTime(endTime, startTime);
String resultMsg = "导入完成,总耗时【" + takeTimeText + "ArisXML流程总共【" + model.getTotalCount() + "】,导入成功【" + model.getSuccessCount() + "】条,导入失败【" + (model.getTotalCount() - model.getSuccessCount())
+ "】条PAL已存在的数据【" + model.getPalExistsCount() + "】条Aris流程为空模型的数据【" + model.getArisBlankCount() + "】条Aris与PAL匹配失败的数据【" + model.getMatchFieldCount() + "】条)";
LogUtil.appendLog(Constant.LOG_END + "" + resultMsg, simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog("Aris XML流程导入 End " + UtilDate.datetimeFormat(endDate), simpleLogFile, fullLogFile, warnLogFile);
String resultMsg = "导入完成,总耗时" + takeTimeText + "ArisXML流程总共[" + model.getTotalCount() + "],导入成功[" + model.getSuccessCount() + "]条,导入失败[" + (model.getTotalCount() - model.getSuccessCount())
+ "]条PAL已存在的数据[" + model.getPalExistsCount() + "]条ARIS流程为空模型的数据[" + model.getArisBlankCount() + "]条Aris与PAL匹配失败的数据[" + model.getMatchFieldCount() + "]条)";
LogUtil.updateLog(logId, endDate, Constant.LOG_RESULT_StATUS_SUCCESS, resultMsg);
LogUtil.appendLog("\n" + Constant.LOG_END + resultMsg, simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog("\n" + "Aris XML流程导入 End " + UtilDate.datetimeFormat(endDate), simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog("--------------------------------", simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog(Constant.END_LOG, simpleLogFile, fullLogFile, warnLogFile);
} catch (Exception e) {
e.printStackTrace();
// 记录结束日志
@ -251,13 +320,48 @@ public class ArisXmlImportRun {
Timestamp endDate = new Timestamp(System.currentTimeMillis());
LogRealTimeCountModel model = LogRealTimeCountCache.getCache().get(logId);
String takeTimeText = takeTime(endTime, startTime);
String resultMsg = "导入失败,报错信息:" + e.getMessage() + ",总耗时" + takeTimeText + "】,导入成功【" + model.getSuccessCount() + "】条,导入失败【" + (model.getTotalCount() - model.getSuccessCount())
+ "】条PAL已存在的数据【" + model.getPalExistsCount() + "】条Aris流程为空模型的数据【" + model.getArisBlankCount() + "】条Aris与PAL匹配失败的数据【" + model.getMatchFieldCount() + "条)";
String resultMsg = "导入失败,报错信息:" + e.getMessage() + ",总耗时" + takeTimeText + ",导入成功[" + model.getSuccessCount() + "]条,导入失败[" + (model.getTotalCount() - model.getSuccessCount())
+ "]条PAL已存在的数据[" + model.getPalExistsCount() + "]条ARIS流程为空模型的数据[" + model.getArisBlankCount() + "]条Aris与PAL匹配失败的数据[" + model.getMatchFieldCount() + "]条)";
LogUtil.updateLog(logId, endDate, Constant.LOG_RESULT_StATUS_ERROR, resultMsg);
LogUtil.appendLog(Constant.LOG_ERROR + "" + resultMsg, simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog(Constant.LOG_ERROR + resultMsg, simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog(Constant.END_LOG, simpleLogFile, fullLogFile, warnLogFile);
}
}
/**
* 时间转换
* @param type
* @param timeStr
* @return
*/
private Timestamp getTimeStampDate(String type, String timeStr) {
timeStr = timeStr.replaceAll(".000;", ";");
DateFormat format = new SimpleDateFormat("HH:mm:ss;MM/dd/yyyy");
try {
Timestamp time = new Timestamp(format.parse(timeStr).getTime());
return time;
} catch (ParseException e) {
e.printStackTrace();
LogUtil.appendLog(Constant.LOG_WARNING + "[" + type + "]转换异常,异常信息" + e.getMessage(), simpleLogFile, fullLogFile, warnLogFile);
}
return null;
}
/**
* 用户转换
* @param createUser
* @return
*/
private String getBpmUser(String createUser) {
if ("system".equalsIgnoreCase(createUser)) {
return "admin";
}
if (SDK.getORGAPI().getUser(createUser) == null) {
return "admin";
}
return createUser;
}
/**
* 计算使用时间
* @param endTime
@ -268,11 +372,11 @@ public class ArisXmlImportRun {
long time = endTime - startTime;
String timeMsg = "";
if (time > 1000 * 60) {
timeMsg = "" + (time / 1000 / 60) + "分钟";
timeMsg = "[" + (time / 1000 / 60) + "]分钟";
} else if (time > 1000) {
timeMsg = "" + (time / 1000) + "";
timeMsg = "[" + (time / 1000) + "]";
} else {
timeMsg = "" + time + "毫秒";
timeMsg = "[" + time + "]毫秒";
}
return timeMsg;
}
@ -316,7 +420,7 @@ public class ArisXmlImportRun {
* @return 已经存在的或新创建的角色模型ID
*/
private String checkAndCreatePalRoleFolderModel(PALRepository coeProcessLevel, String wsId) {
// 组织下创建角色模型文件夹
// 组织下创建[角色模型]文件夹
List<PALRepositoryModel> defaultModels = PALRepositoryQueryAPIManager.getInstance().getPalRepositoryModelsByWsIdAndMethodId(wsId, "org");
defaultModels = defaultModels.stream()
.filter(model -> "default".equals(model.getMethodId()))
@ -331,7 +435,7 @@ public class ArisXmlImportRun {
null, null, null, null, null, -1);
coeProcessLevel.insert(defaultModel);
defaultModels.add(defaultModel);
LogUtil.appendLog(Constant.LOG_SUCCESS + "角色模型文件夹创建", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "角色模型文件夹创建", simpleLogFile, fullLogFile);
return defaultModel.getId();
} else {
LogUtil.appendLog(Constant.LOG_WARNING + "角色模型文件夹已存在,不再重复创建", simpleLogFile, fullLogFile, warnLogFile);
@ -347,7 +451,7 @@ public class ArisXmlImportRun {
* @param methodAttrsMap
*/
private void handleShapeDefaultAttr(String wsId, PALRepositoryModel palModel, JSONObject elements, Map<String, Map<String, JSONObject>> methodAttrsMap) {
LogUtil.appendLog(Constant.LOG_START + "PAL" + I18nRes.findValue(CoEConstant.APP_ID, palModel.getMethodId()) + "" + palModel.getName() + "中形状属性按照属性配置进行属性完善", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_START + "PAL" + I18nRes.findValue(CoEConstant.APP_ID, palModel.getMethodId()) + "[" + palModel.getName() + "]中形状属性按照属性配置进行属性完善", simpleLogFile, fullLogFile);
for (String key : elements.keySet()) {
JSONObject shape = elements.getJSONObject(key);
if ("linker".equals(shape.getString("name"))) {
@ -383,7 +487,7 @@ public class ArisXmlImportRun {
for (String attrId : attrs.keySet()) {
if (!attrIds.contains(attrId)) {
JSONObject eleAttrObj = getDefaultAttrObj(attrs.getJSONObject(attrId));
LogUtil.appendLog(Constant.LOG_END + "PAL" + I18nRes.findValue(CoEConstant.APP_ID, palModel.getMethodId()) + "" + palModel.getName() + "】中形状【" + shape.getString("text") + "】完善【" + eleAttrObj.getString("name") + "】属性配置", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "PAL" + I18nRes.findValue(CoEConstant.APP_ID, palModel.getMethodId()) + "[" + palModel.getName() + "]中形状[" + shape.getString("title") + "][" + shape.getString("text") + "]完善[" + eleAttrObj.getString("name") + "]属性配置", fullLogFile);
attributesJsonArray.add(eleAttrObj);
}
}
@ -391,7 +495,7 @@ public class ArisXmlImportRun {
}
}
}
LogUtil.appendLog(Constant.LOG_END + "PAL" + I18nRes.findValue(CoEConstant.APP_ID, palModel.getMethodId()) + "" + palModel.getName() + "中形状属性按照属性配置进行属性完善", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "PAL" + I18nRes.findValue(CoEConstant.APP_ID, palModel.getMethodId()) + "[" + palModel.getName() + "]中形状属性按照属性配置进行属性完善", simpleLogFile, fullLogFile);
}
/**
@ -404,7 +508,7 @@ public class ArisXmlImportRun {
* @return
*/
private JSONObject createShapeElement(String wsId, Map<String, String> idRelationMap, PALRepositoryModel palModel, ModelModel arisModel, Map<String, List<ObjOccModel>> modelObjOccMap, Map<String, ObjDefModel> objDefMap, Map<String, ObjOccModel> objOccMap, Map<String, List<CxnOccModel>> cxnOccMap, Map<String, String> palShapeIdRelationArisOccIdMap) {
LogUtil.appendLog(Constant.LOG_START + "创建PAL流程【" + arisModel.getName() + "】相关形状", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_START + "创建PAL过程链图[" + arisModel.getName() + "]相关形状/连线", simpleLogFile, fullLogFile);
// aris中该模型所有形状
List<ObjOccModel> objOccModels = modelObjOccMap.get(arisModel.getId());
int zindex = 1;
@ -443,14 +547,14 @@ public class ArisXmlImportRun {
// 定义位置大小
if (shape == null) {
// pal形状不存在记录日志
LogUtil.appendLog(Constant.LOG_WARNING + "Aris流程" + "" + arisModel.getName() + " 】的形状【 " + objDefModel.getName() + "形状类型在PAL中缺失忽略导入该形状", simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog(Constant.LOG_WARNING + "ARIS流程" + "[" + arisModel.getName() + "]的形状[" + objDefModel.getName() + "]形状类型在PAL中缺失忽略导入该形状", simpleLogFile, fullLogFile, warnLogFile);
continue;
}
String shapeId = UUIDGener.getObjectId();
palShapeIdRelationArisOccIdMap.put(shapeId, objOccModel.getId());
idRelationMap.put(objOccModel.getId(), shapeId);// 记录形状aris形状id与pal形状id
shape.put("id", shapeId);
// 处理当前图形节点的关联属性编号问题
// 处理当前图形节点的关联属性[编号]问题
if (objDefModel.getAttrData().containsKey("AT_PROC_CODE")) {
List<PALMethodAttributeModel> attributeModels = CoeDesignerShapeAPIManager.getInstance().getValidAttributeModels(wsId, objDefMappingModel.getShapeMethod(), shapeName, objDefMappingModel.getShapeMethod());
attributeModels = attributeModels.stream().filter(item -> Constant.METHOD_NUMBER.equals(item.getKey())).collect(Collectors.toList());
@ -478,7 +582,7 @@ public class ArisXmlImportRun {
}
}
}
LogUtil.appendLog(Constant.LOG_END + "创建PAL流程【" + palModel.getName() + "】的形状【" + shape.getString("text") + "】的编号属性内容【" + objDefModel.getAttrData().getString("AT_PROC_CODE") + "", fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "创建PAL过程链图[" + palModel.getName() + "]的形状[" + shape.getString("text") + "]的编号属性内容[" + objDefModel.getAttrData().getString("AT_PROC_CODE") + "]", fullLogFile);
}
// 处理活动节点描述 --by shang
@ -515,7 +619,7 @@ public class ArisXmlImportRun {
}
}
}
LogUtil.appendLog(Constant.LOG_START + "创建PAL流程【" + palModel.getName() + "】的形状【" + shape.getString("text") + "】的描述属性内容【" + objDefModel.getAttrData().getString("AT_DESC") + "", fullLogFile);
LogUtil.appendLog(Constant.LOG_START + "创建PAL过程链图[" + palModel.getName() + "]的形状[" + shape.getString("text") + "]的描述属性内容[" + objDefModel.getAttrData().getString("AT_DESC") + "]", fullLogFile);
}
@ -533,10 +637,10 @@ public class ArisXmlImportRun {
props.put("w", objOccModel.getW());
props.put("h", objOccModel.getH());
elements.put(shapeId, shape);
LogUtil.appendLog(Constant.LOG_END + "创建PAL流程" + "" + palModel.getName() + " 】的形状【 " + shape.getString("text") + "", fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "创建PAL过程链图" + "[" + palModel.getName() + "]的形状[" + shape.getString("text") + "]", fullLogFile);
} else {
// pal缺少对应的形状
LogUtil.appendLog(Constant.LOG_WARNING + "Aris流程" + "" + arisModel.getName() + " 】的形状【" + objDefModel.getName() + "在PAL中缺失忽略导入该形状", simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog(Constant.LOG_WARNING + "ARIS流程" + "[" + arisModel.getName() + "]的形状[" + objDefModel.getName() + "]在PAL中缺失忽略导入该形状", simpleLogFile, fullLogFile, warnLogFile);
}
}
// 形状连线处理
@ -569,14 +673,14 @@ public class ArisXmlImportRun {
String fromName = UtilString.isEmpty(elements.getJSONObject(from.getString("id")).getString("text")) ? elements.getJSONObject(from.getString("id")).getString("title") : elements.getJSONObject(from.getString("id")).getString("text");
String toName = UtilString.isEmpty(elements.getJSONObject(to.getString("id")).getString("text")) ? elements.getJSONObject(to.getString("id")).getString("title") : elements.getJSONObject(to.getString("id")).getString("text");
LogUtil.appendLog(Constant.LOG_END + "创建PAL流程" + "" + arisModel.getName() + " 】的形状连线,从【 " + fromName + " 】到【 " + toName + "", fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "创建PAL过程链图" + "[" + arisModel.getName() + "]的形状连线,从[" + fromName + "]到[" + toName + "]", fullLogFile);
} else {
// 不包含的连线
}
}
}
}
LogUtil.appendLog(Constant.LOG_END + "创建PAL流程【" + arisModel.getName() + "相关形状/连线", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "创建PAL过程链图[" + arisModel.getName() + "]相关形状/连线", simpleLogFile, fullLogFile);
return elements;
}
@ -584,7 +688,7 @@ public class ArisXmlImportRun {
* 在现有输出的图形结构上转化输入 输出活动属性并将图上输入输出及连线删除
*/
private void handleShapeInputOutAttr(PALRepositoryModel palModel, JSONObject elements) {
LogUtil.appendLog(Constant.LOG_START + "创建PAL流程【" + palModel.getName() + "】相关形状的输入输出属性", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_START + "创建PAL过程链图[" + palModel.getName() + "]相关形状的[输入][输出]属性", simpleLogFile, fullLogFile);
// 存放待删除图形的KEY
List<String> removeKey = new ArrayList<>();
@ -673,7 +777,7 @@ public class ArisXmlImportRun {
}
// 删除画布上的输入输出和其连线
removeKey.stream().forEach(key -> elements.remove(key));
LogUtil.appendLog(Constant.LOG_END + "删除PAL流程【" + palModel.getName() + "相关输入输出形状和其连线", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "删除PAL过程链图[" + palModel.getName() + "]相关输入输出形状和其连线", simpleLogFile, fullLogFile);
Map<String, JSONObject> attrMap = new HashMap<>();
JSONObject attrs1 = ShapeUtil.getProcessUseShapeMethodAttrByShapeName(palModel.getWsId(), palModel.getMethodId(), palModel.getMethodId(), "method_service_node");
attrMap.put("method_service_node", attrs1);
@ -703,12 +807,12 @@ public class ArisXmlImportRun {
if (obj.containsKey("attributesJsonArray")) {
JSONArray attributesJsonArray = obj.getJSONArray("attributesJsonArray");
attributesJsonArray.add(attrObj);
LogUtil.appendLog(Constant.LOG_END + "PAL流程【" + palModel.getName() + "】形状【" + shapeObj.getString("text") + "】的输入属性内容是【" + attrObj.getString("value") + "", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "PAL过程链图[" + palModel.getName() + "]形状[" + shapeObj.getString("text") + "]的[输入]属性属性值为[" + attrObj.getString("value") + "]", simpleLogFile, fullLogFile);
}
}
}
} else {
LogUtil.appendLog(Constant.LOG_END + "PAL流程【" + palModel.getName() + "】形状【" + shapeObj.getString("text") + "】没有配置输入属性,忽略输入属性赋值", simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog(Constant.LOG_WARNING + "PAL过程链图[" + palModel.getName() + "]形状[" + shapeObj.getString("text") + "]没有配置[输入]属性,忽略输入属性赋值", simpleLogFile, fullLogFile, warnLogFile);
}
}
if (shapeOutMap.containsKey(key)) {// 有输出属性
@ -725,19 +829,19 @@ public class ArisXmlImportRun {
if (obj.containsKey("attributesJsonArray")) {
JSONArray attributesJsonArray = obj.getJSONArray("attributesJsonArray");
attributesJsonArray.add(attrObj);
LogUtil.appendLog(Constant.LOG_END + "PAL流程【" + palModel.getName() + "】形状【" + shapeObj.getString("text") + "】没有配置输出属性,忽略输出属性赋值", simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog(Constant.LOG_END + "PAL过程链图[" + palModel.getName() + "]形状[" + shapeObj.getString("text") + "]的[输出]属性内容是[" + attrObj.getString("value") + "]", simpleLogFile, fullLogFile);
}
}
}
} else {
LogUtil.appendLog(Constant.LOG_END + "PAL流程【" + palModel.getName() + "】形状【" + shapeObj.getString("text") + "】没有配置输出属性,忽略输出属性赋值", simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog(Constant.LOG_WARNING + "PAL过程链图[" + palModel.getName() + "]形状[" + shapeObj.getString("text") + "]没有配置[输出]属性,忽略输出属性赋值", simpleLogFile, fullLogFile, warnLogFile);
}
}
}
}
}
LogUtil.appendLog(Constant.LOG_END + "创建PAL流程【" + palModel.getName() + "】相关形状的输入输出属性", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "创建PAL过程链图[" + palModel.getName() + "]相关形状的[输入][输出]属性", simpleLogFile, fullLogFile);
}
/**
@ -753,7 +857,7 @@ public class ArisXmlImportRun {
*/
private void handleProcessAttrLeadOrRearProcess(String wsId, Map<String, String> idRelationMap, String repositoryModelId, JSONObject elements, ModelModel arisModel,
Map<String, List<ObjOccModel>> modelObjOccMap, Map<String, ObjDefModel> objDefMap) {
LogUtil.appendLog(Constant.LOG_START + "PAL流程【" + arisModel.getName() + "相关前置流程/后置流程进行处理关联", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_START + "PAL过程链图[" + arisModel.getName() + "]相关前置流程/后置流程进行处理关联", simpleLogFile, fullLogFile);
// 如果当前流程下无图形信息 直接返回
List<ObjOccModel> objOccModels = modelObjOccMap.get(arisModel.getId());
// 获取ARIS图形定义与PAL图形定义关系
@ -805,7 +909,7 @@ public class ArisXmlImportRun {
propertyDao.insert(propertyModel);
removeKey.add(key);
removeKey.add(shapeId);
LogUtil.appendLog(Constant.LOG_END + "PAL流程【" + arisModel.getName() + "】相关前置流程进行处理关联,前置属性内容【" + repositoryModels.get(0).getName() + "", fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "PAL过程链图[" + arisModel.getName() + "]相关前置流程进行处理关联,前置属性内容[" + repositoryModels.get(0).getName() + "]", fullLogFile);
break;
} else if (tempShapeObj.getJSONObject("to").getString("id").equals(shapeId)) {
// rear_process
@ -834,7 +938,7 @@ public class ArisXmlImportRun {
propertyDao.insert(propertyModel);
removeKey.add(key);
removeKey.add(shapeId);
LogUtil.appendLog(Constant.LOG_END + "PAL流程【" + arisModel.getName() + "】相关后置流程进行处理关联,后置属性内容【" + repositoryModels.get(0).getName() + "", fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "PAL过程链图[" + arisModel.getName() + "]相关后置流程进行处理关联,后置属性内容[" + repositoryModels.get(0).getName() + "]", fullLogFile);
break;
} else {
continue;
@ -844,7 +948,7 @@ public class ArisXmlImportRun {
}
}
removeKey.stream().forEach(key -> elements.remove(key));
LogUtil.appendLog(Constant.LOG_END + "PAL流程【" + arisModel.getName() + "相关前置流程/后置流程进行处理关联", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "PAL过程链图[" + arisModel.getName() + "]相关前置流程/后置流程进行处理关联", simpleLogFile, fullLogFile);
}
/**
@ -862,7 +966,7 @@ public class ArisXmlImportRun {
private void handleProcessAttrItSystemRelation(String wsId, Map<String, String> idRelationMap, String repositoryModelId, JSONObject elements, ModelModel arisModel,
Map<String, List<ObjOccModel>> modelObjOccMap,
Map<String, ObjDefModel> objDefMap, Map<String, Set<String>> objDefLinkerMap, Map<String, JSONObject> itShapeMap) {
LogUtil.appendLog(Constant.LOG_START + "PAL流程【" + arisModel.getName() + "】相关信息系统与形状进行关联", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_START + "PAL过程链图[" + arisModel.getName() + "]相关形状与信息系统进行关联", simpleLogFile, fullLogFile);
// 获取ARIS图形定义与PAL图形定义关系
Map<String, ObjDefMappingModel> objDefMappingMap = ModelMappingAPIManager.getInstance().getObjDefMappingMap();
ObjDefMappingModel objDefMappingModel = objDefMappingMap.get("OT_APPL_SYS_TYPE-ST_APPL_SYS_TYPE");
@ -907,21 +1011,21 @@ public class ArisXmlImportRun {
relationList.add(m);
} else {
LogUtil.appendLog(Constant.LOG_WARNING + "流程【" + arisModel.getName() + "】中的活动节点【" + elements.getJSONObject(shapeId).getString("text") + "】未找到IT系统【" + itShapeName + "", simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog(Constant.LOG_WARNING + "PAL过程链图[" + arisModel.getName() + "]中的活动节点[" + elements.getJSONObject(shapeId).getString("text") + "]未找到IT系统[" + itShapeName + "]", simpleLogFile, fullLogFile, warnLogFile);
}
}
}
// 保存关联关系
if (relationList.size() > 0) {
DesignerShapeRelationDao relationDao = new DesignerShapeRelationDao();
relationList.stream().forEach(item -> LogUtil.appendLog(Constant.LOG_END + "流程【" + arisModel.getName() + "】中的活动节点【" + item.getShapeText() + "】关联IT系统【" + item.getRelationShapeText() + "", simpleLogFile, fullLogFile));
relationList.stream().forEach(item -> LogUtil.appendLog(Constant.LOG_END + "PAL过程链图[" + arisModel.getName() + "]中的活动节点[" + item.getShapeText() + "]关联IT系统[" + item.getRelationShapeText() + "]", simpleLogFile, fullLogFile));
relationDao.barchInsert(relationList);
LogUtil.appendLog(Constant.LOG_END + "PAL流程【" + arisModel.getName() + "】相关信息系统与形状进行关联", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "PAL过程链图[" + arisModel.getName() + "]相关形状与信息系统进行关联", simpleLogFile, fullLogFile);
}
}
/**
* 处理关联属性角色与流程关联
* 处理关联属性[角色]与流程关联
* @param wsId
* @param repositoryModelId
* @param arisFunIdRelationPalRoleMap
@ -937,7 +1041,7 @@ public class ArisXmlImportRun {
private void handleProcessAttrRoleRelation(String wsId, String repositoryModelId, Map<String, String> arisFunIdRelationPalRoleMap, Map<String, String> palShapeIdRelationArisOccIdMap, JSONObject elements, ModelModel arisModel,
Map<String, List<ObjOccModel>> modelObjOccMap, Map<String, ObjDefModel> objDefMap, String roleMdoelId, Map<String, String> palRoleIdRelationNameMap) throws AWSException {
LogUtil.appendLog(Constant.LOG_START + "PAL流程【" + arisModel.getName() + "相关角色与形状进行关联,并删除流程图上多余的角色和连线", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_START + "PAL过程链图[" + arisModel.getName() + "]相关角色与形状进行关联,并删除流程图上多余的角色和连线", simpleLogFile, fullLogFile);
// 获取ARIS图形定义与PAL图形定义关系
Map<String, ObjDefMappingModel> objDefMappingMap = ModelMappingAPIManager.getInstance().getObjDefMappingMap();
ObjDefMappingModel objDefMappingModel = objDefMappingMap.get("OT_PERS_TYPE-ST_EMPL_TYPE");
@ -983,13 +1087,15 @@ public class ArisXmlImportRun {
// 删除图形与连线
removeKey.add(key);
removeKey.add(tempShapeObj.getJSONObject("from").getString("id"));
LogUtil.appendLog(Constant.LOG_END + "删除PAL过程链图[" + arisModel.getName() + "]" + "角色形状[" +text + "]和其连线", fullLogFile);
} else if (roleIdSet.contains(tempShapeObj.getJSONObject("to").getString("id"))) {
text = elements.getJSONObject(tempShapeObj.getJSONObject("to").getString("id")).getString("text");
// 删除图形与连线
// 删除图形与连线x
removeKey.add(key);
removeKey.add(tempShapeObj.getJSONObject("to").getString("id"));
LogUtil.appendLog(Constant.LOG_END + "删除PAL过程链图[" + arisModel.getName() + "]" + "角色形状[" +text + "]和其连线", fullLogFile);
}
LogUtil.appendLog(Constant.LOG_END + "删除PAL流程【" + arisModel.getName() + "" + "角色形状【" +text + "】和其连线", fullLogFile);
}
}
@ -998,19 +1104,19 @@ public class ArisXmlImportRun {
JSONObject tempShapeObj = elements.getJSONObject(key);
if ("role".equals(tempShapeObj.getString("name")) && !removeKey.contains(tempShapeObj.getString("id"))) {
removeKey.add(key);
LogUtil.appendLog(Constant.LOG_END + "删除PAL流程【" + arisModel.getName() + "" + "角色形状【" + tempShapeObj.getString("text") + ",该角色无连线连接到活动(角色图中已包含该角色图标)", fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "删除PAL过程链图[" + arisModel.getName() + "]" + "角色形状[" + tempShapeObj.getString("text") + "],该角色无连线连接到活动(角色图中已包含该角色图标)", fullLogFile);
}
}
// 保存关联关系
if (relationList.size() > 0) {
DesignerShapeRelationDao relationDao = new DesignerShapeRelationDao();
relationList.stream().forEach(item -> LogUtil.appendLog(Constant.LOG_END + "保存PAL流程【" + arisModel.getName() + "】中的活动节点【" + item.getShapeText() + "】关联当前流程下角色【" + item.getRelationShapeText() + ""));
relationList.stream().forEach(item -> LogUtil.appendLog(Constant.LOG_END + "保存PAL过程链图[" + arisModel.getName() + "]中的活动节点[" + item.getShapeText() + "]关联当前流程下角色[" + item.getRelationShapeText() + "]"));
relationDao.barchInsert(relationList);
}
removeKey.stream().forEach(key -> elements.remove(key));
LogUtil.appendLog(Constant.LOG_END + "删除PAL流程【" + arisModel.getName() + "的相关角色形状和其连线", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "PAL流程【" + arisModel.getName() + "相关角色与形状进行关联,并删除流程图上多余的角色和连线", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "删除PAL过程链图[" + arisModel.getName() + "]的相关角色形状和其连线", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "PAL过程链图[" + arisModel.getName() + "]相关角色与形状进行关联,并删除流程图上多余的角色和连线", simpleLogFile, fullLogFile);
}
/**
@ -1136,7 +1242,7 @@ public class ArisXmlImportRun {
* @return
*/
private String createRoleModelAndElements(PALRepository coeProcessLevel, String parentId, String wsId, PALRepositoryModel palModel, ModelModel arisModel, Map<String, List<ObjOccModel>> modelObjOccMap, Map<String, ObjDefModel> objDefMap, Map<String, ObjOccModel> objOccMap, Map<String, List<CxnOccModel>> cxnOccMap, Map<String, Set<String>> objDefLinkerMap, Map<String, String> arisFunIdRelationPalRoleMap, Map<String, Map<String, JSONObject>> methodAttrsMap, Map<String, String> palRoleIdRelationNameMap) {
LogUtil.appendLog(Constant.LOG_START + "创建流程模型对应的角色模型", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_START + "创建"+ I18nRes.findValue(CoEConstant.APP_ID, Constant.PROCESS_EPC) + "对应的" + I18nRes.findValue(CoEConstant.APP_ID, Constant.ORG_ROLE), simpleLogFile, fullLogFile);
// 统计模型内的角色信息创建角色与形状的关联关系提前创建活动与角色的id关联关系建立角色的角色图角色图中处理岗位为文本属性内容
@ -1151,7 +1257,7 @@ public class ArisXmlImportRun {
}
}
if (roleObjOccModels.size() == 0) {
LogUtil.appendLog(Constant.LOG_WARNING + "Aris流程【" + arisModel.getName() + "无任何角色模型,忽略角色与岗位导入", simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog(Constant.LOG_WARNING + "ARIS流程[" + arisModel.getName() + "]无任何角色模型,忽略角色与岗位导入", simpleLogFile, fullLogFile, warnLogFile);
return null;
}
@ -1164,7 +1270,7 @@ public class ArisXmlImportRun {
List<CxnOccModel> list = cxnOccMap.get(roleOccModel.getId());
// list为null该角色在该模型中没有连接任何的活动忽略导入该角色
if (list == null) {
LogUtil.appendLog(Constant.LOG_WARNING + "Aris流程【" + arisModel.getName() + "】检测到角色" + objDefMap.get(roleOccModel.getDefId()).getName() + "尚未连接到任何活动上,该角色可能不与任何流程活动相关联", simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog(Constant.LOG_WARNING + "ARIS流程[" + arisModel.getName() + "]角色" + objDefMap.get(roleOccModel.getDefId()).getName() + "尚未连接到任何活动上,该角色可能不与任何流程活动相关联", simpleLogFile, fullLogFile, warnLogFile);
noneRelationRole.add(objDefMap.get(roleOccModel.getDefId()).getName());
continue;
}
@ -1175,7 +1281,7 @@ public class ArisXmlImportRun {
}
}
if (roleCxnOccModels.size() == 0) {
LogUtil.appendLog(Constant.LOG_WARNING + "Aris流程【" + arisModel.getName() + "】检测到无任何角色模型与流程活动进行连接,该流程与对应的角色图没有关联关系", simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog(Constant.LOG_WARNING + "ARIS流程[" + arisModel.getName() + "]无任何角色模型与流程活动进行连接,该流程与对应的角色图没有关联关系", simpleLogFile, fullLogFile, warnLogFile);
}
// 记录重复的角色根据名称进行记录
@ -1221,11 +1327,11 @@ public class ArisXmlImportRun {
ObjDefModel roleObjDefModel = objDefMap.get(roleOccModel.getDefId());
String linkedModelIds = roleObjDefModel.getLinkedModelIds();
if (UtilString.isEmpty(linkedModelIds)) {// 角色无关联角色图
LogUtil.appendLog(Constant.LOG_WARNING + "Aris流程【" + arisModel.getName() + "】检测到角色【" + roleObjDefModel.getName() + "角色无任何关联岗位,忽略该角色的岗位", simpleLogFile, fullLogFile, warnLogFile);
// LogUtil.appendLog(Constant.LOG_WARNING + "ARIS流程[" + arisModel.getName() + "]角色[" + roleObjDefModel.getName() + "]角色无任何关联岗位,忽略该角色的岗位", simpleLogFile, fullLogFile, warnLogFile);
} else {// 角色有关联角色图
List<ObjOccModel> relationPositonList = modelObjOccMap.get(linkedModelIds);// linkedModelIds按照单个值对待暂无发现多值
if (relationPositonList == null || relationPositonList.size() == 0) {// 角色有关联图但是关联的角色图查询不到
LogUtil.appendLog(Constant.LOG_WARNING + "Aris流程【" + arisModel.getName() + "】检测到角色【" + roleObjDefModel.getName() + "】角色存在关联的角色图【" + linkedModelIds + ",但无法查询对应角色图内容,忽略该角色的岗位", simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog(Constant.LOG_WARNING + "ARIS流程[" + arisModel.getName() + "]角色[" + roleObjDefModel.getName() + "]角色存在关联的角色图[" + linkedModelIds + "],但无法查询对应角色图内容,忽略该角色的岗位", simpleLogFile, fullLogFile, warnLogFile);
} else {
for (ObjOccModel objOccModel: relationPositonList) {
ObjDefModel positionDefModel = objDefMap.get(objOccModel.getDefId());
@ -1250,7 +1356,7 @@ public class ArisXmlImportRun {
id, false, "org.role", "0", 1, null, null, uc.getUID(), uc.getUID(), nowTime, null, null, null, null,
null, null, null, null, null, -1);
coeProcessLevel.insert(model);
LogUtil.appendLog(Constant.LOG_END + "创建与Aris流程同名的角色图【" + arisModel.getName() + "】【" + model.getId() + "", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "创建与ARIS流程同名的角色图[" + arisModel.getName() + "][" + model.getId() + "]", simpleLogFile, fullLogFile);
BaseModel baseModel = CoeDesignerAPIManager.getInstance().getDefinition(model.getId(), 0);
if (baseModel == null) {
baseModel = CoeDesignerUtil.createModel(model.getId(), 0);
@ -1281,14 +1387,15 @@ public class ArisXmlImportRun {
for (int i = 0; i < newShapes.size(); i++) {
JSONObject shapeObj = newShapes.getJSONObject(i);
elements.put(shapeObj.getString("id"), shapeObj);
LogUtil.appendLog(Constant.LOG_END + "创建角色图【" + arisModel.getName() + "】角色形状图标【" + shapeObj.getString("text") + "", simpleLogFile);
LogUtil.appendLog(Constant.LOG_END + "创建PAL角色图[" + arisModel.getName() + "]角色[" + shapeObj.getString("text") + "]", simpleLogFile, fullLogFile);
}
LogUtil.appendLog(Constant.LOG_END + "创建角色图【" + arisModel.getName() + "】角色形状图标【" + elements.size() + "", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "创建PAL角色图[" + arisModel.getName() + "]角色[" + elements.size() + "]", simpleLogFile, fullLogFile);
// 设置角色图形状默认属性配置
this.handleShapeDefaultAttr(wsId, palModel, elements, methodAttrsMap);
// 完善岗位属性
LogUtil.appendLog(Constant.LOG_START + "PAL角色图[" + arisModel.getName() + "]角色关联岗位内容完善", simpleLogFile, fullLogFile);
for (String key : elements.keySet()) {
JSONObject shape = elements.getJSONObject(key);
if ("linker".equals(shape.getString("name"))) {
@ -1313,28 +1420,28 @@ public class ArisXmlImportRun {
if (attrId.equals(attributesJsonArray.getJSONObject(i).getString("id"))) {
flag = true;
attributesJsonArray.getJSONObject(i).put("value", postTextVal);
LogUtil.appendLog(Constant.LOG_END + "设置角色图【" + arisModel.getName() + "】角色形状图标【" + shapeText + "】的岗位属性值为" + "" + postTextVal + "", fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "PAL角色图[" + arisModel.getName() + "]角色[" + shapeText + "]的岗位属性值为" + "[" + postTextVal + "]", fullLogFile);
}
}
}
if (!flag) {
LogUtil.appendLog(Constant.LOG_WARNING + "角色图【" + arisModel.getName() + "】角色形状图标【" + shapeText + "没有岗位属性配置", simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog(Constant.LOG_WARNING + "PAL角色图[" + arisModel.getName() + "]角色[" + shapeText + "]没有岗位属性配置", simpleLogFile, fullLogFile, warnLogFile);
}
}
}
}
} else {
LogUtil.appendLog(Constant.LOG_WARNING + "角色图【" + arisModel.getName() + "】角色形状图标【" + shapeText + "】无岗位属性内容值", simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog(Constant.LOG_WARNING + "PAL角色图[" + arisModel.getName() + "]角色[" + shapeText + "]没有岗位相关内容", simpleLogFile, fullLogFile, warnLogFile);
}
}
LogUtil.appendLog(Constant.LOG_END + "角色图【" + arisModel.getName() + "】角色形状图标关联岗位内容", simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog(Constant.LOG_END + "PAL角色图[" + arisModel.getName() + "]角色关联岗位内容完善", simpleLogFile, fullLogFile);
definition.put("elements", elements);
// 设置画布大小
setDiagramHeightWidth(definition, elements);
baseModel.setDefinition(definition.toString());
// 保存文件
CoeDesignerAPIManager.getInstance().storeDefinition(baseModel);// dao操作
LogUtil.appendLog(Constant.LOG_END + "角色图【" + arisModel.getName() + "】新增保存", simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog(Constant.LOG_END + "创建"+ I18nRes.findValue(CoEConstant.APP_ID, Constant.PROCESS_EPC) + "对应的" + I18nRes.findValue(CoEConstant.APP_ID, Constant.ORG_ROLE), simpleLogFile, fullLogFile);
return id;
}

View File

@ -150,10 +150,15 @@ public class ArisXmlImportWeb extends ActionWeb {
LogUtil.appendLog("注:该日志文件存储详细日志信息", fullLogFile);
LogUtil.appendLog("注:该日志文件记录警告、出错日志信息", warnLogFile);
LogUtil.appendLog("Aris XML流程导入 Begin " + UtilDate.datetimeFormat(startDate), simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog("\n[信息]操作人:" + _uc.getUserName() + "<" + _uc.getUID() + ">", simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog("[信息]操作时间:" + UtilDate.datetimeFormat(startDate), simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog("[信息]ARIS流程文件" + fileName, simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog("[信息]ARIS流程文件路径" + filePath, simpleLogFile, fullLogFile, warnLogFile);
LogUtil.appendLog("\nAris XML流程导入 Begin " + UtilDate.datetimeFormat(startDate), simpleLogFile, fullLogFile, warnLogFile);
String msg;
LogUtil.appendLog("\n" + Constant.LOG_START + "************[执行阶段][校验阶段]校验导入文件、属性配置等基础事项************", simpleLogFile, fullLogFile);
// 校验资产库是否存在可用
boolean isActive = PALRepositoryQueryAPIManager.getInstance().isActiveWorkSpace(wsId);
if (!isActive) {
@ -161,7 +166,7 @@ public class ArisXmlImportWeb extends ActionWeb {
updateErrLog(msg, msg);
return ResponseObject.newErrResponse("资产库不存在或已停用").toString();
}
LogUtil.appendLog(Constant.LOG_SUCCESS + "校验资产库存在并可用", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "校验资产库存在并可用", simpleLogFile, fullLogFile);
// 校验文件/形状属性配置是否正常
ResponseObject checkRo = checkMethodConfig(wsId);
@ -175,14 +180,14 @@ public class ArisXmlImportWeb extends ActionWeb {
updateErrLog(msg, msg);
return ResponseObject.newErrResponse("上传文件不存在").toString();
}
LogUtil.appendLog(Constant.LOG_SUCCESS + "校验上传文件是否存在", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "校验上传文件是否存在", simpleLogFile, fullLogFile);
if (!".xml".equals(fileName.substring(fileName.lastIndexOf(".")))) {
msg = Constant.LOG_ERROR + "上传文件名称格式不正确," + Constant.IMPORT_STOP_MSG;
updateErrLog(msg, msg);
return ResponseObject.newErrResponse("上传文件名称格式不正确请上传XML文件").toString();
}
LogUtil.appendLog(Constant.LOG_SUCCESS + "校验上传文件是否为XML格式", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "校验上传文件是否为XML格式", simpleLogFile, fullLogFile);
// 校验xml文档是否能够正常解析
Document doc = analysisXMLFile(file.getPath(), true);
@ -194,9 +199,9 @@ public class ArisXmlImportWeb extends ActionWeb {
updateErrLog(msg, msg);
return ResponseObject.newErrResponse("解析XML文件错误详情见日志").toString();
}
LogUtil.appendLog(Constant.LOG_SUCCESS + "解析XML文件结构", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "解析XML文件结构", simpleLogFile, fullLogFile);
ArisXmlHandleWeb handleWeb = new ArisXmlHandleWeb();
// 解析Aris流程内容
// 解析ARIS流程内容
try {
handleWeb.handleXmlDoc(doc);
} catch (Exception e) {
@ -204,7 +209,7 @@ public class ArisXmlImportWeb extends ActionWeb {
msg = Constant.LOG_ERROR + "解析XML文件内容异常异常信息" + e.getMessage() + "" + Constant.IMPORT_STOP_MSG;
updateErrLog(msg, msg);
}
LogUtil.appendLog(Constant.LOG_SUCCESS + "解析XML文件内容", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "解析XML文件内容", simpleLogFile, fullLogFile);
// 统计epc流程图的个数用以进度展示
int totalEpcCount = countProcessMainInfo(handleWeb.modelMap);
@ -223,7 +228,9 @@ public class ArisXmlImportWeb extends ActionWeb {
countModel.setMatchFieldCount(0);
LogRealTimeCountCache.getCache().put(logId, countModel, true);
LogUtil.appendLog(Constant.LOG_START + "导入" + I18nRes.findValue(CoEConstant.APP_ID, Constant.PROCESS_EPC + ",共【" + totalEpcCount + "】条流程"));
LogUtil.appendLog(Constant.LOG_END + "[执行阶段][校验阶段]", simpleLogFile, fullLogFile, simpleLogFile, fullLogFile);
LogUtil.appendLog("\n" + Constant.LOG_START + "预计导入[" + fileName + "]" + I18nRes.findValue(CoEConstant.APP_ID, Constant.PROCESS_EPC + ",共[" + totalEpcCount + "]条流程"));
// 开始执行导入
new Thread(()->{new ArisXmlImportRun(_uc, wsId, logId, logPath, simpleLogFile, fullLogFile, warnLogFile, this.filePath, this.fileName, startTime).execute(handleWeb);}) .start();
@ -326,9 +333,9 @@ public class ArisXmlImportWeb extends ActionWeb {
if (UtilString.isNotEmpty(shapeName)) {
JSONObject shape = ShapeUtil.getProcessShapeDefinitionByName(methodId, shapeName);
if (isEmptyJsonOject(shape)) {
String msg = Constant.LOG_ERROR + "模型" + methodName + "】中的形状【" + shapeName + "不存在," + Constant.IMPORT_STOP_MSG;
String msg = Constant.LOG_ERROR + "模型[" + methodName + "]中的形状[" + shapeName + "]不存在," + Constant.IMPORT_STOP_MSG;
updateErrLog(msg, msg);
return ResponseObject.newErrResponse("模型" + methodName + "】中的形状【" + shapeName + "不存在");
return ResponseObject.newErrResponse("模型[" + methodName + "]中的形状[" + shapeName + "]不存在");
}
String shapeText = shape.getString("text");
List<PALMethodAttributeModel> list = CoeDesignerShapeAPIManager.getInstance().getValidAndUseAttributeModels(wsId, methodId, shapeName, methodId);
@ -336,13 +343,19 @@ public class ArisXmlImportWeb extends ActionWeb {
for (PALMethodAttributeModel attrModel : list) {
attrMap.put(attrModel.getKey(), attrModel);
}
List<PALMethodAttributeModel> list2 = CoeDesignerShapeAPIManager.getInstance().getValidAttributeModels(wsId, methodId, shapeName, methodId);
Map<String, PALMethodAttributeModel> attrMap2 = new HashMap<>();
for (PALMethodAttributeModel attrModel : list2) {
attrMap2.put(attrModel.getKey(), attrModel);
}
for (String attrId : attrs) {
String text = attrMap2.containsKey(attrId) ? attrMap2.get(attrId).getNewTitle() : attrId;
if (!attrMap.containsKey(attrId)) {
String msg = Constant.LOG_ERROR + "模型【" + methodName + "】中的形状【" + shapeText + "】属性【" + attrId + "】不存在,请检查相应属性配置," + Constant.IMPORT_STOP_MSG;
String msg = Constant.LOG_ERROR + "[" + methodName + "]中的形状[" + shapeText + "]属性[" + text + "]不存在,请检查相应属性配置," + Constant.IMPORT_STOP_MSG;
updateErrLog(msg, msg);
return ResponseObject.newErrResponse("模型【" + methodName + "】中的形状【" + shapeText + "】属性【" + attrId + "】不存在");
return ResponseObject.newErrResponse("[" + methodName + "]中的形状[" + shapeText + "]属性[" + text + "]不存在");
}
LogUtil.appendLog(Constant.LOG_SUCCESS + "模型【" + methodName + "】中的形状【" + shapeText + "】属性【" + attrId + "", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "校验[" + methodName + "]中的形状[" + shapeText + "]属性[" + text + "]", simpleLogFile, fullLogFile);
}
} else {
// 文件属性校验
@ -351,13 +364,20 @@ public class ArisXmlImportWeb extends ActionWeb {
for (PALMethodAttributeModel attrModel : list) {
attrMap.put(attrModel.getKey(), attrModel);
}
List<PALMethodAttributeModel> list2 = PALRepositoryAPIManager.getInstance().getValidAttributeModels(wsId, methodId);
Map<String, PALMethodAttributeModel> attrMap2 = new HashMap<>();
for (PALMethodAttributeModel attrModel : list2) {
attrMap2.put(attrModel.getKey(), attrModel);
}
for (String attrId : attrs) {
String text = attrMap2.containsKey(attrId) ? attrMap2.get(attrId).getNewTitle() : attrId;
if (!attrMap.containsKey(attrId)) {
String msg = Constant.LOG_ERROR + "模型【" + methodName + "】的文件属性【" + attrId + "】不存在,请检查相应属性配置," + Constant.IMPORT_STOP_MSG;
String msg = Constant.LOG_ERROR + "[" + methodName + "]的文件属性[" + text + "]不存在,请检查相应属性配置," + Constant.IMPORT_STOP_MSG;
updateErrLog(msg, msg);
return ResponseObject.newErrResponse("模型【" + methodName + "】的文件属性【" + attrId + "】不存在");
return ResponseObject.newErrResponse("[" + methodName + "]的文件属性[" + text + "]不存在");
}
LogUtil.appendLog(Constant.LOG_SUCCESS + "模型【" + methodName + "】的文件属性【" + attrId + "", simpleLogFile, fullLogFile);
LogUtil.appendLog(Constant.LOG_END + "校验[" + methodName + "]的文件属性[" + text + "]", simpleLogFile, fullLogFile);
}
}
return ResponseObject.newOkResponse();

View File

@ -61,14 +61,14 @@ public class Constant {
// 日志常量记录
public static final String LOG_SUCCESS = "【成功】";
public static final String LOG_WARNING = "【警告】";
public static final String LOG_ERROR = "【错误】";
public static final String LOG_SUCCESS = "[成功]";
public static final String LOG_WARNING = "[警告]";
public static final String LOG_ERROR = "[错误]";
// 日志导入开始节点
public static final String LOG_START = "【开始】";
public static final String LOG_START = "[开始]";
// 日志导入完成节点
public static final String LOG_END = "【完成】";
public static final String LOG_DESC = "【说明】";
public static final String LOG_END = "[完成]";
public static final String LOG_DESC = "[说明]";
// 日志表resultType字段常量code

View File

@ -54,7 +54,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
public PALRepositoryModel getInstance(String uuid) {
String sql = "select * from " + PALRepositoryModelImpl.DATABASE_ENTITY + " where " + PALRepositoryModelImpl.FIELD_UUID + "= ?";
return DBSql.getObject(sql, new PALRespositoryModelMapper(), new Object[]{uuid});
return DBSql.getObject(sql, new PALRespositoryModelMapper(), uuid);
}
/**
@ -68,7 +68,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
private class PALRespositoryModelMapper implements RowMapper<PALRepositoryModel> {
public PALRepositoryModel mapRow(ResultSet rs, int arg1) throws SQLException {
return (PALRepositoryModel) record2Model(rs);
return record2Model(rs);
}
}
@ -488,7 +488,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
@Override
public int update(PALRepositoryModel obj) {
PALRepositoryModel model = (PALRepositoryModel) obj;
PALRepositoryModel model = obj;
String sql = "UPDATE " + PALRepositoryModelImpl.DATABASE_ENTITY
+ " set "
+ PALRepositoryModelImpl.FIELD_WS_ID + "=?, "
@ -670,7 +670,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
* @return
*/
public int updatePALRepositoryModel(PALRepositoryModel obj, Connection conn) {
PALRepositoryModel model = (PALRepositoryModel) obj;
PALRepositoryModel model = obj;
String sql = "UPDATE " + PALRepositoryModelImpl.DATABASE_ENTITY
+ " set "
+ PALRepositoryModelImpl.FIELD_WS_ID + "=?, "
@ -871,7 +871,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
int r = DBSql.update(sql, args);
if (r > 0) {
plModel.setLockUser(lockUser);
plModel.setModifyDate(nowTime);;
plModel.setModifyDate(nowTime);
plModel.setModifyUser(userId);
PALRepositoryCache.getCache().put(uuid, plModel);
}
@ -972,7 +972,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
} else {
sql = "select * from " + PALRepositoryModelImpl.DATABASE_ENTITY + " where " + PALRepositoryModelImpl.FIELD_PL_PARENT_ID + " in (" + "select r1.ID from " + PALRepositoryModelImpl.DATABASE_ENTITY + " r1, " + PALRepositoryModelImpl.DATABASE_ENTITY + " r2 where r2.ID=? and r1." + PALRepositoryModelImpl.FIELD_PL_VERSION_UUID + " = r2." + PALRepositoryModelImpl.FIELD_PL_VERSION_UUID + ")" + " AND " + PALRepositoryModelImpl.FIELD_WS_ID + "=? AND " + PALRepositoryModelImpl.FIELD_IS_USE + "=1 ORDER BY " + PALRepositoryModelImpl.FIELD_PL_ORDERINDEX + " ASC";
}
return DBSql.query(sql, new PALRespositoryModelMapper(), new Object[] { pid, wsId });
return DBSql.query(sql, new PALRespositoryModelMapper(), pid, wsId);
}
/**
@ -983,7 +983,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
*/
public List<PALRepositoryModel> getCoeProcessLevelAllByPid(String pid, String wsId) {
String sql = "select * from " + PALRepositoryModelImpl.DATABASE_ENTITY + " where " + PALRepositoryModelImpl.FIELD_PL_PARENT_ID + "=? AND " + PALRepositoryModelImpl.FIELD_WS_ID + "=? ORDER BY " + PALRepositoryModelImpl.FIELD_PL_ORDERINDEX + " ASC";
return DBSql.query(sql, new PALRespositoryModelMapper(), new Object[] { pid, wsId });
return DBSql.query(sql, new PALRespositoryModelMapper(), pid, wsId);
}
/**
@ -1124,7 +1124,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
*/
public List<PALRepositoryModel> getCoeProcessLevelByAWSProcessId(String awsProcessId) {
String sql = "SELECT * FROM " + PALRepositoryModelImpl.DATABASE_ENTITY + " WHERE " + PALRepositoryModelImpl.FIELD_PL_AWS_PID + "=? ";
return DBSql.query(sql, new PALRespositoryModelMapper(), new Object[] { awsProcessId });
return DBSql.query(sql, new PALRespositoryModelMapper(), awsProcessId);
}
/**
@ -1208,7 +1208,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
Map<String, Object> map = new HashMap<String, Object>();
if (f) {
if (ids.indexOf(",") > 0) {
String strs[] = ids.toString().split(",");
String[] strs = ids.toString().split(",");
for (String str : strs) {
PALRepositoryCache.getCache().remove(str);
CoeDesignerShapeCache.getCache().remove(str);// 移除缓存中文件对应的图形
@ -1239,7 +1239,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
// 递归删除该节点下的子节点
public Map<String, Object> removeTreeNodes(String ids, String uuid, String wsId) {
List<String> filePathList = findFilePath(ids);
boolean f = removeProcessLevel(ids.toString());
boolean f = removeProcessLevel(ids);
Map<String, Object> map = new HashMap<String, Object>();
if (f) {
map.put("list", filePathList);
@ -1253,7 +1253,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
private List<String> findFilePath(String ids) {
List<String> list = null;
if (ids.indexOf(",") > 0) {
String strs[] = ids.split(",");
String[] strs = ids.split(",");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < strs.length; i++) {
sb.append("'").append(strs[i]).append("',");
@ -1288,7 +1288,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
*/
public String getChildNodes(String pid, String wsId, String str) {
StringBuffer result = new StringBuffer();
PALRepositoryModel model = (PALRepositoryModel) getInstance(pid);
PALRepositoryModel model = getInstance(pid);
if (model != null) {
if (model.isBottomLevel() == 0) {
List<PALRepositoryModel> childrenNodes = getCoeProcessLevelAllByPid(pid, wsId);
@ -1316,7 +1316,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
String sql = "DELETE FROM " + PALRepositoryModelImpl.DATABASE_ENTITY + " where " + PALRepositoryModelImpl.FIELD_UUID + "=?";
ps = conn.prepareStatement(sql);
for (int i = 0; i < v.size(); i++) {
String id = (String) v.get(i);
String id = v.get(i);
ps.setString(1, id);
ps.addBatch();
PALRepositoryCache.getCache().remove(id);
@ -1370,7 +1370,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
public String mapRow(ResultSet rs, int arg1) throws SQLException {
return rs.getString(1);
}
}, new Object[] { model.getVersionId() });
}, model.getVersionId());
if (usedIds != null && usedIds.size() > 0) {
usedId = usedIds.get(0);
}
@ -1469,7 +1469,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
if (isPaging) {
sql = SQLPagination.getPaginitionSQL(sql, start, limit);
}
list = DBSql.query(sql.toString(), new PALRespositoryModelMapper(), args.toArray());
list = DBSql.query(sql, new PALRespositoryModelMapper(), args.toArray());
} catch (Exception sqle) {
sqle.printStackTrace();
}
@ -1524,15 +1524,15 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
if (AWSServerConf.isPostgreSQL()) {
sql.append(" AND " + PALRepositoryModelImpl.FIELD_PL_M).append(" = '").append(plM).append("'");
} else {
sql.append(" AND " + PALRepositoryModelImpl.FIELD_PL_M).append(" = ").append(plM).append("");
sql.append(" AND " + PALRepositoryModelImpl.FIELD_PL_M).append(" = ").append(plM);
}
}
if (execType != -1) {
sql.append(" AND " + PALRepositoryModelImpl.FIELD_PL_EXEC_TYPE).append(" = ").append(execType).append("");
sql.append(" AND " + PALRepositoryModelImpl.FIELD_PL_EXEC_TYPE).append(" = ").append(execType);
}
if (!plevel.equals("-1") && !plevel.equals("")) {
int level = Integer.parseInt(plevel);
sql.append(" AND " + PALRepositoryModelImpl.FIELD_PL_IS_BOTTOM_LEVEL).append(" = ").append(level).append("");
sql.append(" AND " + PALRepositoryModelImpl.FIELD_PL_IS_BOTTOM_LEVEL).append(" = ").append(level);
}
if (!plNodeId.equals("") && !wsId.equals("")) {
List<PALRepositoryModel> list = new ArrayList<PALRepositoryModel>();
@ -1578,7 +1578,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
}
public int getChildrenIndex(String id) {
PALRepositoryModel model = (PALRepositoryModel) getInstance(id);
PALRepositoryModel model = getInstance(id);
List<PALRepositoryModel> list = getCoeProcessLevelByPid(model.getParentId(), model.getWsId());
for (int i = 0; i < list.size(); i++) {
PALRepositoryModel m = list.get(i);
@ -1590,7 +1590,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
}
public PALRepositoryModel getChildrenModelByIndex(String id, int idx) {
PALRepositoryModel model = (PALRepositoryModel) getInstance(id);
PALRepositoryModel model = getInstance(id);
List<PALRepositoryModel> list = getCoeProcessLevelByPid(model.getParentId(), model.getWsId());
for (int i = 0; i < list.size(); i++) {
if (i == idx) {
@ -2103,7 +2103,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
} else if ("published".equals(type)) {
sql.append(" AND ISPUBLISH=1");
}
return DBSql.getObject(sql.toString(), new PALRespositoryModelMapper(), new Object[] { plVersionId });
return DBSql.getObject(sql.toString(), new PALRespositoryModelMapper(), plVersionId);
}
/**
@ -2162,7 +2162,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
*/
public boolean isExistShapeGroup(String shapeId) {
String sql = "select count(" + DesignerShapeCopyModel.FIELD_SHAPE_ID + ") from " + DesignerShapeCopyModel.DATABASE_ENTITY + " where " + DesignerShapeCopyModel.FIELD_SHAPE_GROUPT_ID + "='" + shapeId + "'";
return DBSql.getInt(sql, new Object[] {}) == 0 ? false : true;
return DBSql.getInt(sql, new Object[]{}) != 0;
}
/**
@ -2173,7 +2173,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
*/
public boolean isExistShape(String shapeId) {
String sql = "select count(" + DesignerShapeCopyModel.FIELD_SHAPE_ID + ") from " + DesignerShapeCopyModel.DATABASE_ENTITY + " where " + DesignerShapeCopyModel.FIELD_SHAPE_ID + "='" + shapeId + "'";
return DBSql.getInt(sql, new Object[] {}) == 0 ? false : true;
return DBSql.getInt(sql, new Object[]{}) != 0;
}
/**
@ -2251,7 +2251,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
map.put("shapeId", rs.getString(2));
return map;
}
}, new Object[] { shapeGroupId });
}, shapeGroupId);
} catch (Exception e) {
e.printStackTrace();
@ -2268,7 +2268,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
map.put("shapeId", rs.getString(2));
return map;
}
}, new Object[] { shapeGroupId });
}, shapeGroupId);
} catch (Exception e) {
e.printStackTrace();
@ -2305,7 +2305,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
model.setShapeType(rs.getString("SHAPETYPE"));
return model;
}
}, new Object[] { repositoryId });
}, repositoryId);
}
/**
@ -2330,7 +2330,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
model.setShapeType(rs.getString("SHAPETYPE"));
return model;
}
}, new Object[] { repositoryId });
}, repositoryId);
}
/**
@ -2678,9 +2678,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
if (map.get("WSDM") != null && map.get("WSDM").contains(uid)) {
return true;
}
if ("admin".equals(uid))
return true;
return false;
return "admin".equals(uid);
}
public List<String> getRelationValue(String id) {
@ -2847,7 +2845,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
sql += " order by pal.PUBLISHDATE DESC, pal.PLLEVEL, pal.PLORDERINDEX ";
try {
// 分页
sql = SQLPagination.getPaginitionSQL(sql.toString(), start, pageLimit);
sql = SQLPagination.getPaginitionSQL(sql, start, pageLimit);
} catch (Exception e) {
e.printStackTrace();
}
@ -2952,7 +2950,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
sql += " order by comm.SORT, pal.PUBLISHDATE DESC, pal.PLLEVEL, pal.PLORDERINDEX ";
try {
// 分页
sql = SQLPagination.getPaginitionSQL(sql.toString(), start, pageLimit);
sql = SQLPagination.getPaginitionSQL(sql, start, pageLimit);
} catch (Exception e) {
e.printStackTrace();
}
@ -3020,7 +3018,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
sql += " order by fre.COUNT DESC, pal.PUBLISHDATE DESC, pal.PLLEVEL, pal.PLORDERINDEX ";
try {
// 分页
sql = SQLPagination.getPaginitionSQL(sql.toString(), start, pageLimit);
sql = SQLPagination.getPaginitionSQL(sql, start, pageLimit);
} catch (Exception e) {
e.printStackTrace();
}
@ -3259,7 +3257,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
*/
public List<PALRepositoryModel> getPublishedRepositoryVersionListByRid(String repositoryId) {
String sql = "SELECT r1.* FROM APP_ACT_COE_PAL_REPOSITORY r1, APP_ACT_COE_PAL_REPOSITORY r2 WHERE r1.PLVERSIONID = r2.PLVERSIONID AND r2.ID=? AND r1.ID<>r2.ID AND r1.ISPUBLISH=0";
return DBSql.query(sql, new PALRespositoryModelMapper(), new Object[] { repositoryId });
return DBSql.query(sql, new PALRespositoryModelMapper(), repositoryId);
}
/**
@ -3283,10 +3281,10 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
String sql = "";
if (pid.length() < 36) {
sql = "SELECT * FROM APP_ACT_COE_PAL_REPOSITORY WHERE PLPARENTID=? AND WSID=? ORDER BY PLORDERINDEX";
return DBSql.query(sql, new PALRespositoryModelMapper(), new Object[] { pid, wsId });
return DBSql.query(sql, new PALRespositoryModelMapper(), pid, wsId);
} else {
sql = "SELECT * FROM " + PALRepositoryModelImpl.DATABASE_ENTITY + " WHERE PLPARENTID IN " + "(SELECT r1.id FROM " + PALRepositoryModelImpl.DATABASE_ENTITY + " r1, " + PALRepositoryModelImpl.DATABASE_ENTITY + " r2 WHERE r1.PLVERSIONID = r2.PLVERSIONID AND r2.id=?)" + " ORDER BY PLORDERINDEX";
return DBSql.query(sql, new PALRespositoryModelMapper(), new Object[] { pid });
return DBSql.query(sql, new PALRespositoryModelMapper(), pid);
}
}
@ -3298,7 +3296,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
*/
public List<PALRepositoryModel> getUsedPalRepositoryModelsByPid(String pid) {
String sql = "SELECT * FROM " + PALRepositoryModelImpl.DATABASE_ENTITY + " WHERE PLPARENTID IN " + "(SELECT r1.id FROM " + PALRepositoryModelImpl.DATABASE_ENTITY + " r1, " + PALRepositoryModelImpl.DATABASE_ENTITY + " r2 WHERE r1.PLVERSIONID = r2.PLVERSIONID AND r2.id=?)" + " AND ISUSE='1' ORDER BY PLORDERINDEX";
return DBSql.query(sql, new PALRespositoryModelMapper(), new Object[] { pid });
return DBSql.query(sql, new PALRespositoryModelMapper(), pid);
}
/**
@ -3451,7 +3449,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
map.put("name", rs.getString(2));
return map;
}
}, new Object[] { roleId });
}, roleId);
}
/**
@ -3472,7 +3470,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
map.put("name", rs.getString(2));
return map;
}
}, new Object[] { roleId });
}, roleId);
}
/**
@ -3661,7 +3659,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
result.put("relationShapeText", rs.getString(8));
return result;
}
}, new Object[] { wsId, wsId });
}, wsId, wsId);
}
/**
@ -3695,7 +3693,7 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
sql.append(" AND PLMETHODID IN (" + modelMethodId + ")");
}
return DBSql.query(sql.toString(), new PALRespositoryModelMapper(), new Object[] { wsId });
return DBSql.query(sql.toString(), new PALRespositoryModelMapper(), wsId);
}
/**
@ -3951,8 +3949,8 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
}
if (paramMap != null && paramMap.size() > 0) {
boolean flag = false;
StringBuilder tables = new StringBuilder("");
StringBuilder wheres = new StringBuilder("");
StringBuilder tables = new StringBuilder();
StringBuilder wheres = new StringBuilder();
for (int i = 0; i < paramMap.size(); i++) {
JSONObject param = paramMap.getJSONObject(i);
if (flag) {
@ -4231,8 +4229,8 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
}
if (paramMap != null && paramMap.size() > 0) {
boolean flag = false;
StringBuilder tables = new StringBuilder("");
StringBuilder wheres = new StringBuilder("");
StringBuilder tables = new StringBuilder();
StringBuilder wheres = new StringBuilder();
for (int i = 0; i < paramMap.size(); i++) {
JSONObject param = paramMap.getJSONObject(i);
if (flag) {
@ -4384,4 +4382,40 @@ public class PALRepository extends DaoObject<PALRepositoryModel> {
return r;
}
/**
* 更新创建人修改人创建时间修改时间字段内容
* @param uuid
* @param createUser
* @param modifyUser
* @param createDate
* @param modifyDate
* @return
*/
public int updateRepositoryUserAndDate(String uuid, String createUser, String modifyUser, Timestamp createDate, Timestamp modifyDate) {
PALRepositoryModelImpl plModel = (PALRepositoryModelImpl) PALRepositoryCache.getCache().get(uuid);
String sql = "UPDATE " + PALRepositoryModelImpl.DATABASE_ENTITY + " set " + PALRepositoryModelImpl.FIELD_PL_CREATEUSER + "=?," + PALRepositoryModelImpl.FIELD_PL_MODIFYUSER + "=?," + PALRepositoryModelImpl.FIELD_PL_CREATEDATE + "=?," + PALRepositoryModelImpl.FIELD_PL_MODIFYDATE + "=? WHERE " + PALRepositoryModelImpl.FIELD_UUID + "=?";
if (UtilString.isEmpty(createUser)) {
createUser = plModel.getCreateUser();
}
if (UtilString.isEmpty(modifyUser)) {
modifyUser = plModel.getModifyUser();
}
if (createDate == null) {
createDate = plModel.getCreateDate();
}
if (modifyDate == null) {
modifyDate = plModel.getModifyDate();
}
Object[] args = {createUser, modifyUser, createDate, modifyDate, uuid};
int r = DBSql.update(sql, args);
if (r > 0) {
plModel.setCreateUser(createUser);
plModel.setModifyUser(modifyUser);
plModel.setCreateDate(createDate);
plModel.setModifyDate(modifyDate);
PALRepositoryCache.getCache().put(uuid, plModel);
}
return r;
}
}