epc流程编号处理
This commit is contained in:
parent
d3ae4612fc
commit
66527ad69d
Binary file not shown.
@ -232,6 +232,10 @@ public class EpcGraphTree {
|
|||||||
return no <= 0 ? (no + "") : no < 10 ? ("0" + no) : (no + "");
|
return no <= 0 ? (no + "") : no < 10 ? ("0" + no) : (no + "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新的排序
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public JSONObject sort5() {
|
public JSONObject sort5() {
|
||||||
int columnIndex = 1;
|
int columnIndex = 1;
|
||||||
sort6(headerShapes, columnIndex);
|
sort6(headerShapes, columnIndex);
|
||||||
@ -239,6 +243,7 @@ public class EpcGraphTree {
|
|||||||
EpcGraphModel model = entry.getValue();
|
EpcGraphModel model = entry.getValue();
|
||||||
columnIndex = columnIndex > model.getColumn() ? columnIndex : model.getColumn();
|
columnIndex = columnIndex > model.getColumn() ? columnIndex : model.getColumn();
|
||||||
}
|
}
|
||||||
|
int no = 1;
|
||||||
for (int i = 1; i <= columnIndex; i++) {
|
for (int i = 1; i <= columnIndex; i++) {
|
||||||
List<EpcGraphModel> list = new ArrayList<>();
|
List<EpcGraphModel> list = new ArrayList<>();
|
||||||
for (Map.Entry<String, EpcGraphModel> entry : graphShapeMap.entrySet()) {
|
for (Map.Entry<String, EpcGraphModel> entry : graphShapeMap.entrySet()) {
|
||||||
@ -251,7 +256,6 @@ public class EpcGraphTree {
|
|||||||
list.sort((e1, e2)-> {
|
list.sort((e1, e2)-> {
|
||||||
return shapeObjMap.get(e1.getId()).getJSONObject("props").getInteger("x") - shapeObjMap.get(e2.getId()).getJSONObject("props").getInteger("x");
|
return shapeObjMap.get(e1.getId()).getJSONObject("props").getInteger("x") - shapeObjMap.get(e2.getId()).getJSONObject("props").getInteger("x");
|
||||||
});
|
});
|
||||||
int no = 1;
|
|
||||||
// 赋值编号,兼具串联的处理
|
// 赋值编号,兼具串联的处理
|
||||||
for (EpcGraphModel model : list) {
|
for (EpcGraphModel model : list) {
|
||||||
if (model.getNo() != 0) {// 编号计算过的忽略
|
if (model.getNo() != 0) {// 编号计算过的忽略
|
||||||
@ -259,15 +263,46 @@ public class EpcGraphTree {
|
|||||||
}
|
}
|
||||||
// 设置当前编号为no
|
// 设置当前编号为no
|
||||||
model.setNo(no++);
|
model.setNo(no++);
|
||||||
|
//System.out.println("当前节点:" + model.getName());
|
||||||
|
//System.out.println("开始查找串联节点");
|
||||||
// 寻找串联特征的节点,依次进行串联编号
|
// 寻找串联特征的节点,依次进行串联编号
|
||||||
// if (model.)
|
if (model.getPrevShapes().size() <= 1 && model.getNextShapes().size() == 1) {
|
||||||
|
EpcGraphModel tmp = graphShapeMap.get(model.getNextShapes().get(0));
|
||||||
|
while (tmp != null && tmp.getPrevShapes().size() == 1 && tmp.getNextShapes().size() <= 1) {
|
||||||
|
if (tmp.getNo() != 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
// System.out.println("查找到了串联节点:" + tmp.getName());
|
||||||
|
tmp.setNo(no++);
|
||||||
|
if (tmp.getNextShapes().size() > 0) {
|
||||||
|
tmp = graphShapeMap.get(tmp.getNextShapes().get(0));
|
||||||
|
} else {
|
||||||
|
tmp = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
no = graphShapeMap.size() + 1;
|
||||||
|
List<EpcGraphModel> list = new ArrayList<>();
|
||||||
|
for (Map.Entry<String, EpcGraphModel> entry : graphShapeMap.entrySet()) {
|
||||||
return null;
|
EpcGraphModel model = entry.getValue();
|
||||||
|
if (model.getNo() == 0) {
|
||||||
|
model.setNo(no++);
|
||||||
|
}
|
||||||
|
if (model.isHasNum()) {
|
||||||
|
list.add(model);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
list.sort((e1, e2)-> {return e1.getNo() - e2.getNo();});
|
||||||
|
JSONObject result = new JSONObject();
|
||||||
|
int no2 = 1;
|
||||||
|
for (EpcGraphModel model : list) {
|
||||||
|
result.put(model.getId(), getNoStr(no2));
|
||||||
|
// System.out.println("【" + model.getName() + "】的编号是【" + getNoStr(no2) + "】");
|
||||||
|
no2++;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sort6(List<String> headerShapes, int columnIndex) {
|
private void sort6(List<String> headerShapes, int columnIndex) {
|
||||||
@ -283,136 +318,6 @@ public class EpcGraphTree {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public JSONObject sort3() {
|
|
||||||
int index = 1;
|
|
||||||
Set<String> ids = new HashSet<>();
|
|
||||||
sort4(headerShapes, index, ids);
|
|
||||||
index = graphShapeMap.size() + 1;
|
|
||||||
List<EpcGraphModel> list = new ArrayList<>();
|
|
||||||
for (Map.Entry<String, EpcGraphModel> entry : graphShapeMap.entrySet()) {
|
|
||||||
EpcGraphModel model = entry.getValue();
|
|
||||||
if (model.getNo() == 0) {
|
|
||||||
model.setNo(index++);
|
|
||||||
}
|
|
||||||
if (model.isHasNum()) {
|
|
||||||
list.add(model);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
list.sort((e1, e2)-> {return e1.getNo() - e2.getNo();});
|
|
||||||
JSONObject result = new JSONObject();
|
|
||||||
int no = 1;
|
|
||||||
for (EpcGraphModel model : list) {
|
|
||||||
result.put(model.getId(), getNoStr(no));
|
|
||||||
System.out.println("【" + model.getName() + "】的编号是【" + getNoStr(no) + "】");
|
|
||||||
no++;
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void sort4(List<String> nextStartList, int index, Set<String> ids) {
|
|
||||||
for (int i = 0; i < nextStartList.size(); i++) {
|
|
||||||
EpcGraphModel model = graphShapeMap.get(nextStartList.get(i));
|
|
||||||
System.out.println("处理节点:" + model.getName());
|
|
||||||
while ("a".equalsIgnoreCase("b")) {
|
|
||||||
System.out.println("节点" + model.getName() + " 进入查找串联循环");
|
|
||||||
List<String> nextList = model.getNextShapes();
|
|
||||||
boolean flag = false;
|
|
||||||
if (nextList.size() == 0) {
|
|
||||||
flag = true;
|
|
||||||
nextList.set(i, null);
|
|
||||||
if (!ids.contains(model.getId())) {
|
|
||||||
model.setNo(index++);
|
|
||||||
model.setPrevShapes(new ArrayList<>());
|
|
||||||
model.setNextShapes(new ArrayList<>());
|
|
||||||
ids.add(model.getId());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (nextList.size() == 1) {
|
|
||||||
if (nextList.get(0).equals(nextStartList.get(i))) {
|
|
||||||
nextStartList.remove(i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
String nextId = null;
|
|
||||||
if (model.getNextShapes().size() == 1) {
|
|
||||||
nextId = model.getNextShapes().get(0);
|
|
||||||
graphShapeMap.get(model.getNextShapes().get(0)).getPrevShapes().remove(model.getId());
|
|
||||||
}
|
|
||||||
nextStartList.set(i, nextId);
|
|
||||||
if (!ids.contains(model.getId())) {
|
|
||||||
model.setNo(index++);
|
|
||||||
model.setPrevShapes(new ArrayList<>());
|
|
||||||
model.setNextShapes(new ArrayList<>());
|
|
||||||
ids.add(model.getId());
|
|
||||||
}
|
|
||||||
if (nextId == null) {
|
|
||||||
model = null;
|
|
||||||
} else {
|
|
||||||
model = graphShapeMap.get(nextId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// nextStartList 处理,寻找真正的nextStartList
|
|
||||||
// for (int i = 0; i < nextStartList.size(); i++) {
|
|
||||||
// EpcGraphModel model = graphShapeMap.get(nextStartList.get(i));
|
|
||||||
// System.out.println("处理节点:" + model.getName());
|
|
||||||
// while (model != null && model.isSinglePrevAndNext()) {
|
|
||||||
// System.out.println("节点" + model.getName() + " 进入查找串联循环");
|
|
||||||
// String nextId = null;
|
|
||||||
// if (model.getNextShapes().size() == 1) {
|
|
||||||
// nextId = model.getNextShapes().get(0);
|
|
||||||
// graphShapeMap.get(model.getNextShapes().get(0)).getPrevShapes().remove(model.getId());
|
|
||||||
// }
|
|
||||||
// nextStartList.set(i, nextId);
|
|
||||||
// if (!ids.contains(model.getId())) {
|
|
||||||
// model.setNo(index++);
|
|
||||||
// model.setPrevShapes(new ArrayList<>());
|
|
||||||
// model.setNextShapes(new ArrayList<>());
|
|
||||||
// ids.add(model.getId());
|
|
||||||
// }
|
|
||||||
// if (nextId == null) {
|
|
||||||
// model = null;
|
|
||||||
// } else {
|
|
||||||
// model = graphShapeMap.get(nextId);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// 对nextStartList处理编号,处理前后关系置空
|
|
||||||
List<String> tmpList = new ArrayList<>();
|
|
||||||
for (String id : nextStartList) {
|
|
||||||
if (!UtilString.isEmpty(id) && !tmpList.contains(id)) {
|
|
||||||
tmpList.add(id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
nextStartList = tmpList;
|
|
||||||
for (String id : nextStartList) {
|
|
||||||
if (!ids.contains(id)) {
|
|
||||||
ids.add(id);
|
|
||||||
EpcGraphModel model = graphShapeMap.get(id);
|
|
||||||
model.setNo(index++);
|
|
||||||
model.setPrevShapes(new ArrayList<>());
|
|
||||||
for (String next : model.getNextShapes()) {
|
|
||||||
graphShapeMap.get(next).getPrevShapes().remove(model.getId());
|
|
||||||
}
|
|
||||||
model.setNextShapes(new ArrayList<>());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 寻找下一次的nextStartList
|
|
||||||
initHeaderData();
|
|
||||||
if (headerShapes.size() > 0) {
|
|
||||||
sort4(headerShapes, index, ids);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 编号
|
* 编号
|
||||||
* 1.标记路径访问次数
|
* 1.标记路径访问次数
|
||||||
|
|||||||
@ -62,9 +62,7 @@ public class EpcGraphWeb extends ActionWeb {
|
|||||||
tree.initData(hasNumShapeNames, elements);
|
tree.initData(hasNumShapeNames, elements);
|
||||||
JSONObject result = new JSONObject();
|
JSONObject result = new JSONObject();
|
||||||
result.put("attrId", "activity_number");
|
result.put("attrId", "activity_number");
|
||||||
result.put("data", new JSONObject());
|
result.put("data", tree.sort5());
|
||||||
tree.sort5();
|
|
||||||
tree.testColumn();
|
|
||||||
ResponseObject ro = ResponseObject.newOkResponse();
|
ResponseObject ro = ResponseObject.newOkResponse();
|
||||||
ro.setData(result);
|
ro.setData(result);
|
||||||
return ro.toString();
|
return ro.toString();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user