72 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import FileUtil from './File'
 | |
| import {getCurrentTime} from './tools'
 | |
| import {uploadHarmonyLiCheng} from '../../api/judge'
 | |
| 
 | |
| const LOGTAG = 'GetDistance'
 | |
| export default class GetDistance {
 | |
| 
 | |
|   //后续文件路径待替换
 | |
|   private fileUtil: FileUtil
 | |
|   public folderPath: string
 | |
|   public timeStr: string
 | |
|   public totalDistance: number
 | |
|   public totalTime:number
 | |
|   public date: string
 | |
| 
 | |
|   constructor(context) {
 | |
|     const fileUtil = new FileUtil(context)
 | |
|     this.fileUtil = fileUtil;
 | |
|     // this.uploadData()
 | |
|   }
 | |
| 
 | |
|   // 设置文件夹
 | |
|   public initFolder= async () => {
 | |
|     const {fileUtil} = this
 | |
|     const time = await getCurrentTime()
 | |
|     const folderPath = await fileUtil.initFolder(`/车辆行驶距离统计`);
 | |
|     console.info('surenjun folderPath=>' ,folderPath);
 | |
|     const date = time.split(' ')[0].split('-').join('_')
 | |
|     const timeStr = time.split(' ')[1]
 | |
|     this.timeStr = timeStr
 | |
|     this.folderPath = folderPath;
 | |
|     this.totalDistance = 0;
 | |
|     this.totalTime = 0;
 | |
|     this.date = date;
 | |
|     await fileUtil.editFile(
 | |
|       `${folderPath}/${date}.txt`,`程序启动时间:${timeStr} 累计行驶距离:${this.totalDistance}m 累计运行时常:${this.totalTime}min`
 | |
|     );
 | |
|     return folderPath
 | |
|   }
 | |
| 
 | |
|   // 过程文件数据
 | |
|   public setTimeData = async (str:number) => {
 | |
|     const {fileUtil,folderPath,timeStr,date,totalDistance} = this;
 | |
|     const content = await fileUtil.readFile(`${folderPath}/${date}.txt`) || '';
 | |
|     const contentArr = content.split('\n').filter(item => item)
 | |
|     console.info('surenjun contentArr',JSON.stringify(contentArr))
 | |
|     this.totalDistance += (str * 1 > 200 ? 200 : str*1)
 | |
|     this.totalTime += 1;
 | |
|     contentArr[contentArr.length - 1] = `程序启动时间:${timeStr} 累计行驶距离:${(this.totalDistance).toFixed(2)}m 累计运行时常:${Math.ceil(this.totalTime/60)}min`+ '\n'
 | |
|     console.info('surenjun',contentArr.join('\n'))
 | |
|     await fileUtil.addFile(
 | |
|       `${folderPath}/${date}.txt`,contentArr.join('\n')
 | |
|     );
 | |
|   }
 | |
| 
 | |
|   //上传行驶里程数据
 | |
|   uploadData = async () => {
 | |
|     setInterval(()=>{
 | |
|       const { carId } = globalThis.carInfo;
 | |
|       const {date,timeStr,totalDistance}= this;
 | |
|       //"carid":"1001","startTime":"2024-08-24 08:09:01","time":"111233", "mileage":"1222"
 | |
|       uploadHarmonyLiCheng({
 | |
|         carid:carId,
 | |
|         startTime:`${date.split('_').join('-')} ${timeStr}`,
 | |
|         time:timeStr,
 | |
|         mileage:totalDistance
 | |
|       })
 | |
|     },5000)
 | |
|   }
 | |
| 
 | |
| }
 |