2024-10-11 13:47:24 +08:00

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)
}
}