|
@@ -1,6 +1,5 @@
|
|
|
package com.miniframe.tools.file;
|
|
|
|
|
|
-import com.google.gson.Gson;
|
|
|
import com.miniframe.core.ext.UtilTools;
|
|
|
import com.miniframe.model.mdo.MdoProAdflow;
|
|
|
import com.miniframe.model.mdo.MdoProAdflowSQLBuilder;
|
|
@@ -8,7 +7,7 @@ import com.miniframe.model.mdo.MdoProComval;
|
|
|
import com.miniframe.model.mdo.MdoProComvalSQLBuilder;
|
|
|
import com.miniframe.model.mdo.dao.MdoProAdflowMapper;
|
|
|
import com.miniframe.model.mdo.dao.MdoProComvalMapper;
|
|
|
-import com.miniframe.websocket.WebsocketEndPoint;
|
|
|
+import com.miniframe.modo.temp.workflow.AdflowVo;
|
|
|
|
|
|
import java.io.BufferedReader;
|
|
|
import java.io.File;
|
|
@@ -40,9 +39,14 @@ public class AdflowFileRead {
|
|
|
String line;
|
|
|
// 使用try-with-resources语句确保资源被正确关闭
|
|
|
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
|
|
|
- int size=0;
|
|
|
+ int size=0;//节点
|
|
|
+ int eles=0;//拓扑
|
|
|
int tel =0;//多个zone
|
|
|
int zoneid =0;
|
|
|
+ List<MdoProComval> comvals2 = new ArrayList<>();
|
|
|
+ List<MdoProComval> comvals3 = new ArrayList<>();
|
|
|
+
|
|
|
+ List<AdflowTopVo> vos = new ArrayList<>();
|
|
|
// 逐行读取,直到文件末尾
|
|
|
while ((line = br.readLine()) != null) {
|
|
|
line=line.trim().replaceAll("\\s+"," ").trim();//替换多个空格为一个空格
|
|
@@ -57,28 +61,65 @@ public class AdflowFileRead {
|
|
|
continue;
|
|
|
}
|
|
|
if(line.startsWith("Zone")){
|
|
|
+ save(comvals2,comvals3,vos,zoneid);
|
|
|
+ comvals2.clear();
|
|
|
+ comvals3.clear();
|
|
|
+ vos.clear();
|
|
|
continue;
|
|
|
}
|
|
|
if(line.startsWith("Nodes")){
|
|
|
+
|
|
|
line=line.trim().replace("Nodes = ","");
|
|
|
size =Integer.valueOf(line.split(" ")[0]);
|
|
|
- tel=tel+1000000;
|
|
|
i=0;
|
|
|
zoneid++;
|
|
|
+// line =line.split(" ")[1].replace("Elements=","");
|
|
|
+ eles=Integer.valueOf(line.split(" ")[2]);
|
|
|
continue;
|
|
|
}
|
|
|
if(line.startsWith("DATAPACKING")){
|
|
|
continue;
|
|
|
}
|
|
|
- if(i>=size){
|
|
|
+ if(i>=size&&i<(size+eles)){
|
|
|
+ //拓扑关系保存
|
|
|
+ int s =Integer.valueOf(line.split(" ")[0])-1;
|
|
|
+ int e =Integer.valueOf(line.split(" ")[1])-1;
|
|
|
+ AdflowTopVo vo =new AdflowTopVo();
|
|
|
+ vo.setS(s);
|
|
|
+ vo.setE(e);
|
|
|
+ vos.add(vo);
|
|
|
+// step++;
|
|
|
+// MdoProComval comval2_1 =comvals2.get(s);
|
|
|
+// comval2_1.setStep(tel+step);
|
|
|
+// comval2_1.setId(UtilTools.getUUid());
|
|
|
+// comvalDao.insert(comval2_1);
|
|
|
+//
|
|
|
+// MdoProComval comval3_1 =comvals3.get(s);
|
|
|
+// comval3_1.setStep(tel+step);
|
|
|
+// comval3_1.setId(UtilTools.getUUid());
|
|
|
+// comvalDao.insert(comval3_1);
|
|
|
+//
|
|
|
+// step++;
|
|
|
+// MdoProComval comval2_2 =comvals2.get(e);
|
|
|
+// comval2_2.setStep(tel+step);
|
|
|
+// comval2_2.setId(UtilTools.getUUid());
|
|
|
+// comvalDao.insert(comval2_2);
|
|
|
+//
|
|
|
+// MdoProComval comval3_2 =comvals3.get(e);
|
|
|
+// comval3_2.setStep(tel+step);
|
|
|
+// comval3_2.setId(UtilTools.getUUid());
|
|
|
+// comvalDao.insert(comval3_2);
|
|
|
+// i++;
|
|
|
continue;
|
|
|
}
|
|
|
+ if(i>=(size+eles)){
|
|
|
+ continue;
|
|
|
+
|
|
|
+ }
|
|
|
if(i<size){
|
|
|
String[] vals = line.split(" ");
|
|
|
MdoProComval comval =new MdoProComval();
|
|
|
- comval.setId(UtilTools.getUUid());
|
|
|
comval.setPid(pid);
|
|
|
- comval.setStep(tel+i);
|
|
|
comval.setVars("v1 v2");
|
|
|
if(1==adflow.getLiftindex()){//x
|
|
|
comval.setVals(vals[4]+" "+vals[5]);
|
|
@@ -91,30 +132,88 @@ public class AdflowFileRead {
|
|
|
}
|
|
|
comval.setType(2);//"1-列表数据 2-几何数据 3-压力数据"
|
|
|
comval.setGser(zoneid);
|
|
|
- comvalDao.insert(comval);
|
|
|
+ comvals2.add(comval);
|
|
|
+// comvalDao.insert(comval);
|
|
|
|
|
|
-// WebsocketEndPoint webs = (WebsocketEndPoint) UtilTools.getBean("websocketEndPoint");
|
|
|
-// Gson gson = new Gson();
|
|
|
-// webs.sendMessageToUser(String.valueOf(pid),gson.toJson(comval));
|
|
|
|
|
|
MdoProComval comval2 =new MdoProComval();
|
|
|
- comval2.setId(UtilTools.getUUid());
|
|
|
comval2.setPid(pid);
|
|
|
- comval2.setStep(tel+i);
|
|
|
comval2.setVars("x cp");
|
|
|
- comval2.setVals(vals[6]+" "+vals[9]);
|
|
|
+ comval2.setVals(vals[3]+" "+vals[9]);
|
|
|
comval2.setType(3);//"1-列表数据 2-几何数据 3-压力数据"
|
|
|
comval2.setGser(zoneid);
|
|
|
- comvalDao.insert(comval2);
|
|
|
-// webs.sendMessageToUser(String.valueOf(pid),gson.toJson(comval2));
|
|
|
+ comvals3.add(comval2);
|
|
|
+// comvalDao.insert(comval2);
|
|
|
}
|
|
|
i++;
|
|
|
|
|
|
-
|
|
|
}
|
|
|
+ save(comvals2,comvals3,vos,zoneid);
|
|
|
} catch (IOException e) {
|
|
|
// 异常处理
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private static void save(List<MdoProComval> comvals2, List<MdoProComval> comvals3, List<AdflowTopVo> vos,Integer zoneid) {
|
|
|
+ List<List<AdflowTopVo>> lvos=fz(vos);
|
|
|
+ MdoProComvalMapper comvalDao = UtilTools.getBean(MdoProComvalMapper.class);
|
|
|
+ int i = 0;
|
|
|
+ int g=0;
|
|
|
+ for (List<AdflowTopVo> vs:lvos) {
|
|
|
+ g++;
|
|
|
+ int gser= zoneid*100000+g;
|
|
|
+ for (AdflowTopVo vo:vs) {
|
|
|
+ i++;
|
|
|
+ MdoProComval comval2_1 =comvals2.get(vo.getS());
|
|
|
+ comval2_1.setStep((zoneid*100000)+i);
|
|
|
+ comval2_1.setId(UtilTools.getUUid());
|
|
|
+ comval2_1.setGser(gser);
|
|
|
+ comvalDao.insert(comval2_1);
|
|
|
+
|
|
|
+ MdoProComval comval3_1 =comvals3.get(vo.getS());
|
|
|
+ comval3_1.setStep((zoneid*100000)+i);
|
|
|
+ comval3_1.setGser(gser);
|
|
|
+ comval3_1.setId(UtilTools.getUUid());
|
|
|
+ comvalDao.insert(comval3_1);
|
|
|
+ }
|
|
|
+ i++;
|
|
|
+ MdoProComval comval2_1 =comvals2.get(vs.get(vs.size()-1).getE());
|
|
|
+ comval2_1.setStep((zoneid*100000)+i);
|
|
|
+ comval2_1.setId(UtilTools.getUUid());
|
|
|
+ comval2_1.setGser(gser);
|
|
|
+ comvalDao.insert(comval2_1);
|
|
|
+ MdoProComval comval3_1 =comvals3.get(vs.get(vs.size()-1).getE());
|
|
|
+ comval3_1.setStep((zoneid*100000)+i);
|
|
|
+ comval3_1.setGser(gser);
|
|
|
+ comval3_1.setId(UtilTools.getUUid());
|
|
|
+ comvalDao.insert(comval3_1);
|
|
|
+ }
|
|
|
+ comvals2.clear();
|
|
|
+ comvals3.clear();
|
|
|
+ lvos.clear();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //分组逻辑
|
|
|
+ public static List<List<AdflowTopVo>> fz(List<AdflowTopVo> vos){
|
|
|
+ List<List<AdflowTopVo>> lvos = new ArrayList<>();
|
|
|
+ List<AdflowTopVo> tmp = new ArrayList<>();
|
|
|
+ for (AdflowTopVo vo:vos) {
|
|
|
+ if(tmp.isEmpty()){
|
|
|
+ tmp.add(vo);
|
|
|
+ lvos.add(tmp);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if(tmp.get(tmp.size()-1).getE()==vo.getS()){
|
|
|
+ tmp.add(vo);
|
|
|
+ }else{
|
|
|
+ tmp =new ArrayList<>();
|
|
|
+ tmp.add(vo);
|
|
|
+ lvos.add(tmp);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return lvos;
|
|
|
+ }
|
|
|
+
|
|
|
}
|