端到端功能 子流程节点关联的源文件节点发生变动 端到端总图收到通知
This commit is contained in:
parent
e5d4d4a1df
commit
73f340ccee
Binary file not shown.
@ -182,4 +182,16 @@ public class SubProcessController {
|
||||
return processWeb.shapeExpandAndCloseIconShow(repositoryId, elements);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将当前总图中关于 源文件节点变动的提示信息删除
|
||||
* @param uc
|
||||
* @param repositoryId
|
||||
* @return
|
||||
*/
|
||||
@Mapping("com.actionsoft.apps.coe.method.process.subprocess_source_node_diff_msg_clear")
|
||||
public String sourceNodeDiffMsgClear(UserContext uc, String repositoryId){
|
||||
SubProcessWeb processWeb = new SubProcessWeb(uc);
|
||||
return processWeb.sourceNodeDiffMsgClear(repositoryId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -391,7 +391,12 @@ public class SubProcessWeb extends ActionWeb {
|
||||
return ro.toString();
|
||||
}
|
||||
|
||||
// 判断一键展开与闭合的快捷操作按钮是否显示
|
||||
/**
|
||||
* 判断一键展开与闭合的快捷操作按钮是否显示
|
||||
* @param repositoryId
|
||||
* @param elements
|
||||
* @return
|
||||
*/
|
||||
public String shapeExpandAndCloseIconShow(String repositoryId, String elements){
|
||||
|
||||
boolean showExpandFlag = false;
|
||||
@ -426,4 +431,21 @@ public class SubProcessWeb extends ActionWeb {
|
||||
return ro.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 将当前总图中关于 源文件节点变动的提示信息删除
|
||||
* @param repositoryId
|
||||
* @return
|
||||
*/
|
||||
public String sourceNodeDiffMsgClear(String repositoryId){
|
||||
BaseModel baseModel = CoeDesignerAPIManager.getInstance().getDefinition(repositoryId, 0);
|
||||
String definition = baseModel.getDefinition();
|
||||
JSONObject defineObj = JSONObject.parseObject(definition);
|
||||
if (defineObj.containsKey("sourceNodeDiffMsg")){
|
||||
defineObj.remove("sourceNodeDiffMsg");
|
||||
}
|
||||
baseModel.setDefinition(defineObj.toJSONString());
|
||||
CoeDesignerAPIManager.getInstance().storeDefinition(baseModel);
|
||||
return ResponseObject.newOkResponse().toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -46,4 +46,7 @@
|
||||
<param name="repositoryId"/>
|
||||
<param name="elements"/>
|
||||
</cmd-bean>
|
||||
<cmd-bean name="com.actionsoft.apps.coe.method.process.subprocess_source_node_diff_msg_clear">
|
||||
<param name="repositoryId"/>
|
||||
</cmd-bean>
|
||||
</aws-actions>
|
||||
Binary file not shown.
@ -466,6 +466,17 @@ public class DesignerShapeRelationDao extends DaoObject<DesignerShapeRelationMod
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据指定属性及被关联的文件查询源文件
|
||||
* @param relationFileId
|
||||
* @param attrId
|
||||
* @return
|
||||
*/
|
||||
public List<DesignerShapeRelationModel> getModelListByRelationFileIdAndAttrId(String relationFileId, String attrId){
|
||||
String sql = "SELECT * FROM " + entityName() + " WHERE RELATIONFILEID = ? AND ATTRID = ?";
|
||||
return DBSql.query(sql, rowMapper(), relationFileId, attrId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据指定属性及被关联的文件查询源文件
|
||||
* @param relationFileId
|
||||
|
||||
@ -6116,6 +6116,63 @@ public class CoeProcessLevelWeb extends ActionWeb {
|
||||
}
|
||||
}
|
||||
}
|
||||
}else if (repositoryModel.getMethodId().equals("process.epc") || repositoryModel.getMethodId().equals("process.flowchart")){
|
||||
// 判断当前模型是否被某一个总图引用
|
||||
DesignerShapeRelationDao shapeRelationDao = new DesignerShapeRelationDao();
|
||||
List<DesignerShapeRelationModel> subProcessModelList = shapeRelationDao.getModelListByRelationFileIdAndAttrId(uuid, "child_process");
|
||||
if (subProcessModelList.size() > 0){ // 说明当前文件作为子流程节点存在若干端到端总图中
|
||||
// 获取当前文件存储前的信息
|
||||
BaseModel historyDefineModel = CoeDesignerAPIManager.getInstance().getDefinition(uuid, 0);
|
||||
StringBuffer resultMsg = new StringBuffer();
|
||||
if (historyDefineModel != null){
|
||||
String historyDefine = historyDefineModel.getDefinition();
|
||||
JSONObject historyDefineObj = JSONObject.parseObject(historyDefine);
|
||||
// 之前保存的信息
|
||||
JSONObject historyElements = historyDefineObj.getJSONObject("elements");
|
||||
List<String> historyEleKeyList = historyElements.keySet().stream().filter(key -> !"linker".equals(historyElements.getJSONObject(key).getString("name"))).collect(Collectors.toList());
|
||||
// 当前要保存的信息
|
||||
JSONObject currentElements = definition.getJSONObject("elements");
|
||||
List<String> currentEleKeyList = currentElements.keySet().stream().filter(key -> !"linker".equals(currentElements.getJSONObject(key).getString("name"))).collect(Collectors.toList());
|
||||
// 对比之前保存的信息
|
||||
StringBuffer scopeMsg = new StringBuffer();
|
||||
for (String key : currentEleKeyList) {
|
||||
if (!historyEleKeyList.contains(key)){ // 增加节点信息
|
||||
scopeMsg.append("<br>");
|
||||
scopeMsg.append("新增节点【" + currentElements.getJSONObject(key).getString("text") + "】");
|
||||
}else {
|
||||
historyEleKeyList.remove(key);
|
||||
}
|
||||
}
|
||||
if (historyEleKeyList.size() > 0){
|
||||
for (String key : historyEleKeyList) {
|
||||
scopeMsg.append("<br>");
|
||||
scopeMsg.append("删除节点【" + historyElements.getJSONObject(key).getString("text") + "】");
|
||||
}
|
||||
}
|
||||
if (UtilString.isNotEmpty(scopeMsg.toString())){
|
||||
resultMsg.append("源文件【"+repositoryModel.getName() + "】").append(scopeMsg);
|
||||
}
|
||||
}
|
||||
if (UtilString.isNotEmpty(resultMsg.toString())){
|
||||
// 将当前文件节点变动的信息 存放到所有引用当前文件的端到端总图中
|
||||
for (DesignerShapeRelationModel subProcessNode : subProcessModelList) {
|
||||
BaseModel subProcessBaseModel = CoeDesignerAPIManager.getInstance().getDefinition(subProcessNode.getFileId(), 0);
|
||||
if (subProcessBaseModel == null) continue;
|
||||
String subProcessDefine = subProcessBaseModel.getDefinition();
|
||||
JSONObject subProcessDefineObj = JSONObject.parseObject(subProcessDefine);
|
||||
|
||||
JSONObject subProcessSourceNodeDiffMsg = new JSONObject();
|
||||
if (subProcessDefineObj.containsKey("sourceNodeDiffMsg")){
|
||||
subProcessSourceNodeDiffMsg = subProcessDefineObj.getJSONObject("sourceNodeDiffMsg");
|
||||
}
|
||||
subProcessSourceNodeDiffMsg.put(subProcessNode.getShapeId(), resultMsg.toString());
|
||||
subProcessDefineObj.put("sourceNodeDiffMsg", subProcessSourceNodeDiffMsg);
|
||||
|
||||
subProcessBaseModel.setDefinition(subProcessDefineObj.toJSONString());
|
||||
CoeDesignerAPIManager.getInstance().storeDefinition(subProcessBaseModel);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
define = definition.toString();
|
||||
|
||||
@ -2,9 +2,6 @@ $(function(){
|
||||
if (methodId != 'process.subprocess') { // 如果当前打开的模型不是端到端总图 那么整个js也没有执行的必要
|
||||
return;
|
||||
}
|
||||
// 1. 子流程展开 事件:获取当前子流程所代表的模型文件
|
||||
// (function (Model, ruuid, sid) {
|
||||
// })(Model, ruuid, sid);
|
||||
|
||||
const subProcess = new SubProcess(Model, ruuid, sid);
|
||||
|
||||
@ -28,7 +25,9 @@ class SubProcess {
|
||||
this.shapeIconRender();
|
||||
this.handleScopeShapeEvent();
|
||||
this.linkerBoxPointerEvent();
|
||||
this.scopeShapeRenderTitle(this.Model.define.elements)
|
||||
this.scopeShapeRenderTitle(this.Model.define.elements);
|
||||
|
||||
this.sourceNodeDiffMsgHandle();
|
||||
}
|
||||
|
||||
linkerBoxPointerEvent(){
|
||||
@ -416,5 +415,50 @@ class SubProcess {
|
||||
leadNodeArr.push(fromId);
|
||||
toShape.extendAttr.leadNodeArr = leadNodeArr;
|
||||
}
|
||||
|
||||
// 子流程节点关联的源文件中的节点发生变动 给出提示
|
||||
sourceNodeDiffMsgHandle(){
|
||||
if (definition.sourceNodeDiffMsg){
|
||||
let multipleMsg = "";
|
||||
let toDeleteMsgKey = [];
|
||||
for (let shapeKey in definition.sourceNodeDiffMsg) {
|
||||
if (Model.define.elements[shapeKey] != undefined){
|
||||
// 提示
|
||||
multipleMsg = multipleMsg.concat('<br><br>', definition.sourceNodeDiffMsg[shapeKey]);
|
||||
}
|
||||
toDeleteMsgKey.push(shapeKey);
|
||||
}
|
||||
if (toDeleteMsgKey.length){
|
||||
for (let shapeKey in toDeleteMsgKey) {
|
||||
delete definition.sourceNodeDiffMsg[shapeKey];
|
||||
}
|
||||
awsui.ajax.request({
|
||||
url: './jd',
|
||||
method: 'POST',
|
||||
data: {
|
||||
cmd: 'com.actionsoft.apps.coe.method.process.subprocess_source_node_diff_msg_clear',
|
||||
sid: this.sid,
|
||||
repositoryId: this.repositoryId
|
||||
},
|
||||
ok: function (r){
|
||||
|
||||
},
|
||||
err: function (r) {
|
||||
$.simpleAlert(r.msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (multipleMsg){
|
||||
$.notification({
|
||||
title:'源文件节点变动提示',
|
||||
description: multipleMsg,
|
||||
position: "topRight",
|
||||
delay: 0,
|
||||
distance: 100
|
||||
});
|
||||
$('.awsui-public-box-main').css('width', '325px');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user