AdflowFileRead.java 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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. // 逐行读取,直到文件末尾
  40. while ((line = br.readLine()) != null) {
  41. line=line.trim().replaceAll("\\s+"," ").trim();//替换多个空格为一个空格
  42. if(line.startsWith("Title")){
  43. continue;
  44. }
  45. if(line.startsWith("Variables")){
  46. //Variables = "CoordinateX" "CoordinateY" "CoordinateZ" "XoC" "YoC" "ZoC" "VelocityX" "VelocityY" "VelocityZ" "CoefPressure" "Mach"
  47. // line=line.replace("\"","");
  48. // line=line.replace("Variables =","").trim();
  49. continue;
  50. }
  51. if(line.startsWith("Zone")){
  52. continue;
  53. }
  54. if(line.startsWith("Nodes")){
  55. line=line.trim().replace("Nodes = ","");
  56. size =Integer.valueOf(line.split(" ")[0]);
  57. tel=tel+100;
  58. i=0;
  59. continue;
  60. }
  61. if(line.startsWith("DATAPACKING")){
  62. continue;
  63. }
  64. if(i>=size){
  65. continue;
  66. }
  67. if(i<size){
  68. String[] vals = line.split(" ");
  69. MdoProComval comval =new MdoProComval();
  70. comval.setId(UtilTools.getUUid());
  71. comval.setPid(pid);
  72. comval.setStep(tel+i);
  73. comval.setVars("v1 v2");
  74. if(1==adflow.getLiftindex()){//x
  75. comval.setVals(vals[4]+" "+vals[5]);
  76. }
  77. if(2==adflow.getLiftindex()){//y
  78. comval.setVals(vals[3]+" "+vals[5]);
  79. }
  80. if(3==adflow.getLiftindex()){//z
  81. comval.setVals(vals[3]+" "+vals[4]);
  82. }
  83. comval.setType(2);//"1-列表数据 2-几何数据 3-压力数据"
  84. comvalDao.insert(comval);
  85. // WebsocketEndPoint webs = (WebsocketEndPoint) UtilTools.getBean("websocketEndPoint");
  86. // Gson gson = new Gson();
  87. // webs.sendMessageToUser(String.valueOf(pid),gson.toJson(comval));
  88. MdoProComval comval2 =new MdoProComval();
  89. comval2.setId(UtilTools.getUUid());
  90. comval2.setPid(pid);
  91. comval2.setStep(tel+i);
  92. comval2.setVars("x cp");
  93. comval2.setVals(vals[6]+" "+vals[9]);
  94. comval2.setType(3);//"1-列表数据 2-几何数据 3-压力数据"
  95. comvalDao.insert(comval2);
  96. // webs.sendMessageToUser(String.valueOf(pid),gson.toJson(comval2));
  97. }
  98. i++;
  99. }
  100. } catch (IOException e) {
  101. // 异常处理
  102. e.printStackTrace();
  103. }
  104. }
  105. }