增加流程模型连线校验功能,避免用户出现手工连线失误的情况 只是提示并不会影响保存

This commit is contained in:
Mr-wang 2023-06-25 13:55:10 +08:00
parent 3100ad5904
commit 0dbba648cd
2 changed files with 99 additions and 11 deletions

View File

@ -1001,6 +1001,44 @@ public class ShapeUtil {
return dest;
}
/**
* 得到流程文件中图形的json集合不排除连线
*
* @param messageJson 文件内容
* @return
*/
public static List<JSONObject> getShapeJsonToJsonObject2(String messageJson) {
List<JSONObject> list = new ArrayList<JSONObject>();
JSONObject definition = JSONObject.parseObject(messageJson);
JSONObject elements = definition.getJSONObject("elements");
Iterator<String> ite = elements.keySet().iterator();
while (ite.hasNext()) {
String key = ite.next();
JSONObject shape = elements.getJSONObject(key);
String name = shape.getString("name");
if ("linker".equals(name)){
JSONObject jsonObj = new JSONObject();
jsonObj.put("id", key);
jsonObj.put("name", shape.getString("name"));
jsonObj.put("from", shape.getString("from"));
jsonObj.put("to", shape.getString("to"));
list.add(jsonObj);
}
if (!"linker".equals(name) && shape.get("dataAttributes") != null) {
JSONObject jsonObj = new JSONObject();
jsonObj.put("id", key);
jsonObj.put("name", shape.getString("name"));
jsonObj.put("title", shape.getString("title"));
jsonObj.put("text", shape.getString("text"));
jsonObj.put("category", shape.getString("category"));
jsonObj.put("dataAttributes", getCustom(shape.getJSONArray("dataAttributes")));
list.add(jsonObj);
}
}
return list;
}
/**
* 得到流程文件中图形的json集合排除连线
*

View File

@ -9315,7 +9315,7 @@ public class CoeProcessLevelWeb extends ActionWeb {
* @param obj
* @return
*/
public String bindefineQualityCheck(String sid,String uuid,String obj){
public String bindefineQualityCheck(String sid,String uuid,String obj) {
PALRepositoryModel model = PALRepositoryCache.getCache().get(uuid);
/************************************文件属性校验************************************/
@ -9336,13 +9336,14 @@ public class CoeProcessLevelWeb extends ActionWeb {
List<PALRepositoryPropertyModel> propertys = dao.getPropertysByPlid(uuid, null);
Boolean flag1=true;
Boolean flag2=true;
Boolean flag1 = true;
Boolean flag2 = true;
StringBuilder sb = new StringBuilder();
StringBuffer sb1=new StringBuffer();
StringBuffer sb2=new StringBuffer();
StringBuffer sb3=new StringBuffer();
StringBuffer sb4 = new StringBuffer();;
StringBuffer sb1 = new StringBuffer();
StringBuffer sb2 = new StringBuffer();
StringBuffer sb3 = new StringBuffer();
StringBuffer sb4 = new StringBuffer();
;
sb.append("<span>质量校验<span><br/>");
/***************************************************文件属性校验*************************************************/
@ -9367,17 +9368,65 @@ public class CoeProcessLevelWeb extends ActionWeb {
flag1 = UtilString.isNotEmpty(property.getPropertyValue());
}
if (!flag1) {// 校验不通过
sb1.append("''"+attributeModel.getTitle()+"''").append(",");
sb1.append("''" + attributeModel.getTitle() + "''").append(",");
flag1 = false;
}
}
if(sb1.length()>0){
if (sb1.length() > 0) {
sb.append("<span>文件属性:<span><br/>");
sb.append(sb1.substring(0, sb1.length()-1));
sb.append(sb1.substring(0, sb1.length() - 1));
sb.append("未填写,请检查!").append("</br>");
}
List<String> list_linker = new LinkedList<>();
List<JSONObject> resultLists = new ArrayList<>();
List<JSONObject> elements_fei = ShapeUtil.getShapeJsonToJsonObject2(obj);
int ms=0;
for (JSONObject o : elements_fei) {
String shapeId = o.getString("id");
String shapeName = o.getString("name");
if (!shapeName.equals("linker")) {
list_linker.add(shapeId);
}
}
for (JSONObject o : elements_fei) {
String shapeId = o.getString("id");
String shapeName = o.getString("name");
System.out.println("这个名字是什么>>>>>>>" + shapeName);
if (shapeName.equals("linker")) {
JSONObject from = o.getJSONObject("from");
JSONObject to = o.getJSONObject("to");
String from_id = from.getString("id");
String to_id = to.getString("id");
if (UtilString.isNotEmpty(from_id)) {
list_linker.remove(from_id);
}
if (UtilString.isNotEmpty(to_id)) {
list_linker.remove(to_id);
}
ms++;
continue;
}
System.out.println("m的值>>>>>>>>>>>" + ms);
System.out.println("所有的数据的值>>>>>>>>>>>" + elements_fei.size());
if (ms == elements_fei.size() - 1) {
System.out.println("linker>>>>>>>>>>>>" + list_linker.size());
if (list_linker.size() > 0) {
ResponseObject ros = ResponseObject.newOkResponse();
for (String d :
list_linker) {
JSONObject tmp = new JSONObject();
tmp.put("shapeId", d);
}
sb.append("校验未通过,模型中含有未被连线的,请检查模型是否都已连线!");
}
}
ms++;
}
/***************************************************数据属性校验*************************************************/
@ -9437,7 +9486,8 @@ public class CoeProcessLevelWeb extends ActionWeb {
}
int index=sb.indexOf("未填写");
if(index==-1 ){
int indexs=sb.indexOf("未通过");
if(index==-1&&indexs==-1){
ro.put("result","ok");
}else{
ro.put("result","error");