|  | @@ -0,0 +1,112 @@
 | 
	
		
			
				|  |  | +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;
 | 
	
		
			
				|  |  | +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 java.io.BufferedReader;
 | 
	
		
			
				|  |  | +import java.io.File;
 | 
	
		
			
				|  |  | +import java.io.FileReader;
 | 
	
		
			
				|  |  | +import java.io.IOException;
 | 
	
		
			
				|  |  | +import java.util.ArrayList;
 | 
	
		
			
				|  |  | +import java.util.List;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +public class AdflowFileRead {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static void readFile(File file, String pid) {
 | 
	
		
			
				|  |  | +        MdoProAdflowMapper adfdao =UtilTools.getBean(MdoProAdflowMapper.class);
 | 
	
		
			
				|  |  | +        MdoProAdflowSQLBuilder asb = new MdoProAdflowSQLBuilder();
 | 
	
		
			
				|  |  | +        MdoProAdflowSQLBuilder.Criteria asc = asb.createCriteria();
 | 
	
		
			
				|  |  | +        asc.andPidEqualTo(pid);
 | 
	
		
			
				|  |  | +        MdoProAdflow adflow = adfdao.selectOneByExample(asb);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        MdoProComvalMapper comvalDao = UtilTools.getBean(MdoProComvalMapper.class);
 | 
	
		
			
				|  |  | +        MdoProComvalSQLBuilder comvalsb = new MdoProComvalSQLBuilder();
 | 
	
		
			
				|  |  | +        MdoProComvalSQLBuilder.Criteria comvalsc = comvalsb.createCriteria();
 | 
	
		
			
				|  |  | +        comvalsc.andPidEqualTo(pid);
 | 
	
		
			
				|  |  | +        List<Integer> types = new ArrayList<>();
 | 
	
		
			
				|  |  | +        types.add(2);
 | 
	
		
			
				|  |  | +        types.add(3);
 | 
	
		
			
				|  |  | +        comvalsc.andTypeIn(types);
 | 
	
		
			
				|  |  | +        comvalDao.deleteByExample(comvalsb);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        int i= 0;
 | 
	
		
			
				|  |  | +        String line;
 | 
	
		
			
				|  |  | +        // 使用try-with-resources语句确保资源被正确关闭
 | 
	
		
			
				|  |  | +        try (BufferedReader br = new BufferedReader(new FileReader(file))) {
 | 
	
		
			
				|  |  | +            int size=0;
 | 
	
		
			
				|  |  | +            // 逐行读取,直到文件末尾
 | 
	
		
			
				|  |  | +            while ((line = br.readLine()) != null) {
 | 
	
		
			
				|  |  | +                line=line.trim().replaceAll("\\s+"," ").trim();//替换多个空格为一个空格
 | 
	
		
			
				|  |  | +                if(line.startsWith("Title")){
 | 
	
		
			
				|  |  | +                    continue;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                if(line.startsWith("Variables")){
 | 
	
		
			
				|  |  | +                    //Variables =  "CoordinateX"  "CoordinateY"  "CoordinateZ"  "XoC"  "YoC"  "ZoC" "VelocityX" "VelocityY" "VelocityZ" "CoefPressure" "Mach"
 | 
	
		
			
				|  |  | +//                    line=line.replace("\"","");
 | 
	
		
			
				|  |  | +//                    line=line.replace("Variables =","").trim();
 | 
	
		
			
				|  |  | +                    continue;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if(line.startsWith("Zone")){
 | 
	
		
			
				|  |  | +                    continue;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if(line.startsWith("Nodes")){
 | 
	
		
			
				|  |  | +                    line=line.trim().replace("Nodes = ","");
 | 
	
		
			
				|  |  | +                    size =i+Integer.valueOf(line.split(" ")[0]);
 | 
	
		
			
				|  |  | +                    continue;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if(line.startsWith("DATAPACKING")){
 | 
	
		
			
				|  |  | +                    continue;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if(i>=size){
 | 
	
		
			
				|  |  | +                    break;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if(i<size){
 | 
	
		
			
				|  |  | +                    String[] vals = line.split(" ");
 | 
	
		
			
				|  |  | +                    MdoProComval comval =new MdoProComval();
 | 
	
		
			
				|  |  | +                    comval.setId(UtilTools.getUUid());
 | 
	
		
			
				|  |  | +                    comval.setPid(pid);
 | 
	
		
			
				|  |  | +                    comval.setStep(i);
 | 
	
		
			
				|  |  | +                    comval.setVars("v1 v2");
 | 
	
		
			
				|  |  | +                    if("1".equals(adflow.getLiftindex())){//x
 | 
	
		
			
				|  |  | +                        comval.setVals(vals[4]+" "+vals[5]);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    if("2".equals(adflow.getLiftindex())){//y
 | 
	
		
			
				|  |  | +                        comval.setVals(vals[3]+" "+vals[4]);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    if("3".equals(adflow.getLiftindex())){//z
 | 
	
		
			
				|  |  | +                        comval.setVals(vals[3]+" "+vals[4]);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    comval.setType(2);//"1-列表数据 2-几何数据 3-压力数据"
 | 
	
		
			
				|  |  | +                    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(i);
 | 
	
		
			
				|  |  | +                    comval2.setVars("x cp");
 | 
	
		
			
				|  |  | +                    comval2.setVals(vals[6]+" "+vals[9]);
 | 
	
		
			
				|  |  | +                    comval2.setType(3);//"1-列表数据 2-几何数据 3-压力数据"
 | 
	
		
			
				|  |  | +                    comvalDao.insert(comval2);
 | 
	
		
			
				|  |  | +                    webs.sendMessageToUser(String.valueOf(pid),gson.toJson(comval2));
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                i++;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        } catch (IOException e) {
 | 
	
		
			
				|  |  | +            // 异常处理
 | 
	
		
			
				|  |  | +            e.printStackTrace();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +}
 |