AdflowFileRead.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. package com.miniframe.tools.file;
  2. import com.google.gson.Gson;
  3. import com.miniframe.core.ext.UtilTools;
  4. import com.miniframe.model.mdo.MdoProAdflow;
  5. import com.miniframe.model.mdo.MdoProAdflowSQLBuilder;
  6. import com.miniframe.model.mdo.MdoProComval;
  7. import com.miniframe.model.mdo.MdoProComvalSQLBuilder;
  8. import com.miniframe.model.mdo.dao.MdoProAdflowMapper;
  9. import com.miniframe.model.mdo.dao.MdoProComvalMapper;
  10. import com.miniframe.websocket.WebsocketEndPoint;
  11. import java.io.BufferedReader;
  12. import java.io.File;
  13. import java.io.FileReader;
  14. import java.io.IOException;
  15. import java.util.ArrayList;
  16. import java.util.List;
  17. public class AdflowFileRead {
  18. public static void readFile(File file, String pid) {
  19. MdoProAdflowMapper adfdao =UtilTools.getBean(MdoProAdflowMapper.class);
  20. MdoProAdflowSQLBuilder asb = new MdoProAdflowSQLBuilder();
  21. MdoProAdflowSQLBuilder.Criteria asc = asb.createCriteria();
  22. asc.andPidEqualTo(pid);
  23. MdoProAdflow adflow = adfdao.selectOneByExample(asb);
  24. MdoProComvalMapper comvalDao = UtilTools.getBean(MdoProComvalMapper.class);
  25. MdoProComvalSQLBuilder comvalsb = new MdoProComvalSQLBuilder();
  26. MdoProComvalSQLBuilder.Criteria comvalsc = comvalsb.createCriteria();
  27. comvalsc.andPidEqualTo(pid);
  28. List<Integer> types = new ArrayList<>();
  29. types.add(2);
  30. types.add(3);
  31. comvalsc.andTypeIn(types);
  32. comvalDao.deleteByExample(comvalsb);
  33. int i= 0;
  34. String line;
  35. // 使用try-with-resources语句确保资源被正确关闭
  36. try (BufferedReader br = new BufferedReader(new FileReader(file))) {
  37. int size=0;
  38. int tel =0;//多个zone
  39. int zoneid =0;
  40. // 逐行读取,直到文件末尾
  41. while ((line = br.readLine()) != null) {
  42. line=line.trim().replaceAll("\\s+"," ").trim();//替换多个空格为一个空格
  43. if(line.startsWith("Title")){
  44. continue;
  45. }
  46. if(line.startsWith("Variables")){
  47. //Variables = "CoordinateX" "CoordinateY" "CoordinateZ" "XoC" "YoC" "ZoC" "VelocityX" "VelocityY" "VelocityZ" "CoefPressure" "Mach"
  48. // line=line.replace("\"","");
  49. // line=line.replace("Variables =","").trim();
  50. continue;
  51. }
  52. if(line.startsWith("Zone")){
  53. continue;
  54. }
  55. if(line.startsWith("Nodes")){
  56. line=line.trim().replace("Nodes = ","");
  57. size =Integer.valueOf(line.split(" ")[0]);
  58. tel=tel+1000000;
  59. i=0;
  60. zoneid++;
  61. continue;
  62. }
  63. if(line.startsWith("DATAPACKING")){
  64. continue;
  65. }
  66. if(i>=size){
  67. continue;
  68. }
  69. if(i<size){
  70. String[] vals = line.split(" ");
  71. MdoProComval comval =new MdoProComval();
  72. comval.setId(UtilTools.getUUid());
  73. comval.setPid(pid);
  74. comval.setStep(tel+i);
  75. comval.setVars("v1 v2");
  76. if(1==adflow.getLiftindex()){//x
  77. comval.setVals(vals[4]+" "+vals[5]);
  78. }
  79. if(2==adflow.getLiftindex()){//y
  80. comval.setVals(vals[3]+" "+vals[5]);
  81. }
  82. if(3==adflow.getLiftindex()){//z
  83. comval.setVals(vals[3]+" "+vals[4]);
  84. }
  85. comval.setType(2);//"1-列表数据 2-几何数据 3-压力数据"
  86. comval.setGser(zoneid);
  87. comvalDao.insert(comval);
  88. // WebsocketEndPoint webs = (WebsocketEndPoint) UtilTools.getBean("websocketEndPoint");
  89. // Gson gson = new Gson();
  90. // webs.sendMessageToUser(String.valueOf(pid),gson.toJson(comval));
  91. MdoProComval comval2 =new MdoProComval();
  92. comval2.setId(UtilTools.getUUid());
  93. comval2.setPid(pid);
  94. comval2.setStep(tel+i);
  95. comval2.setVars("x cp");
  96. comval2.setVals(vals[6]+" "+vals[9]);
  97. comval2.setType(3);//"1-列表数据 2-几何数据 3-压力数据"
  98. comval2.setGser(zoneid);
  99. comvalDao.insert(comval2);
  100. // webs.sendMessageToUser(String.valueOf(pid),gson.toJson(comval2));
  101. }
  102. i++;
  103. }
  104. } catch (IOException e) {
  105. // 异常处理
  106. e.printStackTrace();
  107. }
  108. }
  109. }