123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- package com.miniframe.disaster.service;
- import com.miniframe.core.ext.UtilTools;
- import com.miniframe.model.system.DAccident;
- import com.miniframe.template.TemplateGenerator;
- import com.miniframe.tools.XIFileUtils;
- import com.miniframe.websocket.WebsocketEndPoint;
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.util.concurrent.CompletableFuture;
- /**
- * 日志存储
- */
- public class LogService {
- /**
- * 创建文件
- * @param accident
- * @return
- */
- public static File createLog(DAccident accident){
- String filePath =TemplateGenerator.BPATH+"/"+accident.getId()+"/"+accident.getJid()+"/"+accident.getStype().toLowerCase()+"/log.txt";
- XIFileUtils.mkdir(TemplateGenerator.BPATH);
- XIFileUtils.mkdir(TemplateGenerator.BPATH+"/"+accident.getId());
- XIFileUtils.mkdir(TemplateGenerator.BPATH+"/"+accident.getId()+"/"+accident.getJid());
- XIFileUtils.mkdir(TemplateGenerator.BPATH+"/"+accident.getId()+"/"+accident.getJid()+"/"+accident.getStype().toLowerCase());
- File file =new File(filePath);
- return file;
- }
- /**
- * 清空文件
- * @param accident
- */
- public static void clearLog(DAccident accident){
- String filePath =TemplateGenerator.BPATH+"/"+accident.getId()+"/"+accident.getJid()+"/"+accident.getStype().toLowerCase()+"/log.txt";
- FileWriter writer = null;
- try {
- writer = new FileWriter(filePath);
- writer.write(""); // 将内容设置为空字符串即可清空文件
- writer.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- /**
- * 文件内容追加
- * @param
- */
- public static void addLog(Integer aid,Integer jid,String stype,String log){
- if(log.indexOf("求解")>=0&&log.indexOf("成功")>=0) {
- savelog(aid, jid, stype, "Calculating................................100%");
- savelog(aid, jid, stype, log);
- }else{
- if(stype.equals("gass")){//排除其他日志
- gassAlllog(aid, jid, stype, log);
- if(log.indexOf("求解")>=0||log.indexOf("writting")>0){
- savelog(aid, jid, stype, log);
- }else if(log.indexOf("EHCO LOG")>=0){
- try{
- log.replace(" ","");
- String[] logt =log.split(":");
- Double t = Double.parseDouble(logt[1]);
- savelog(aid, jid, stype, "Calculating................................"+t*100+"%");
- }catch (Exception e){
- }
- }else if(log.indexOf("Calculating")>=0){
- try{
- savelog(aid, jid, stype, log);
- }catch (Exception e){
- }
- }
- }else{
- savelog(aid, jid, stype, log);
- }
- }
- }
- private static void gassAlllog(Integer aid, Integer jid, String stype, String log) {
- String filePath = TemplateGenerator.BPATH+"/"+ aid +"/"+ jid +"/"+ stype.toLowerCase()+"/alllog.txt";
- FileWriter writer = null;
- try {
- writer = new FileWriter(filePath,true);
- BufferedWriter bwriter = new BufferedWriter(writer);
- bwriter.write(log); // 将内容写入文件末尾
- bwriter.newLine();
- bwriter.close();
- writer.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- private static void savelog(Integer aid, Integer jid, String stype, String log) {
- String filePath =TemplateGenerator.BPATH+"/"+ aid +"/"+ jid +"/"+ stype.toLowerCase()+"/log.txt";
- FileWriter writer = null;
- try {
- writer = new FileWriter(filePath,true);
- BufferedWriter bwriter = new BufferedWriter(writer);
- bwriter.write(log); // 将内容写入文件末尾
- bwriter.newLine();
- bwriter.close();
- writer.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- CompletableFuture<Void> cf = CompletableFuture.supplyAsync(()->{
- WebsocketEndPoint webs = (WebsocketEndPoint) UtilTools.getBean("websocketEndPoint");
- webs.sendMessageToUser(String.valueOf(aid), log);
- return null;
- });
- }
- /**
- * 文件内容追加
- * @param
- */
- public static void addLog(DAccident accident,String log){
- addLog(accident.getId(),accident.getJid(),accident.getStype(),log);
- }
- }
|