Commit da34e8c1 by lixinming

no message

parent f7d6c767
import moment = require("moment")
import { get } from "../../util/request";
let 月里程数据 = [];//格式 [{key:"日期 格式是 2021.1", count:"测试里程", autoCount:"功能测试里程"}]
let 企业日里程数据 = {}; //格式 {"企业名称":{count:"测试里程", autoCount:"功能测试里程"} }
let lastMonths = "";
//数据库源数据接口
export async function getTestAnalysis() {
//在月里程数据集合中 从后往前拿20个月份的数据,动态的拿本月的数据 拼接好返回 不要改变源数据
}
//initData 在main方法中调用
export async function initData() {
await historyData();//初始化本月之前的必须数据
//设置每隔两小时检查更新
setInterval(async () => {
let months = moment().format("YYYY.MM")+'.01';
if (months != lastMonths) {
let key = moment(months).format('YYYY.MM');
let startTime = moment(lastMonths).format('YYMM') + '01';
let endTime = moment(months).format('YYMM') + '01';
//更新缓存
let list = await getInterfaceData(startTime, endTime, 1);
let count = 0;
list.forEach(info => {
let {time_day, enterprise, total_mileage} = info;
count += total_mileage;
if (!企业日里程数据[enterprise]) 企业日里程数据[enterprise] = {count:0, autoCount:0};
企业日里程数据[enterprise].count += total_mileage;
});
let testList = await getInterfaceData(startTime, endTime, 2);
let testCount = 0;
testList.forEach(info => {
let {time_day, enterprise, auto_mileage} = info;
testCount += auto_mileage;
if (!企业日里程数据[enterprise]) 企业日里程数据[enterprise] = {count:0, autoCount:0};
企业日里程数据[enterprise].autoCount += auto_mileage;
});
月里程数据.push( {count, autoCount:testCount, key} );
lastMonths = months;
}
}, 3600 *2 * 1000);
}
//获取本月之前的数据
async function historyData() {
let lastEt = "";
for (let i = 1; i <= 21; i++) {
let st = moment().subtract(i, 'months').format('YYMM') + '01';
let key = moment().subtract(i, 'months').format('YYYY.MM');
let et = moment().subtract(i-1, 'months').format('YYMM')+'01';
if (i == 21) lastEt = st;
let list = await getInterfaceData(st, et, 1);
let count = 0;
list.forEach(info => {
let {time_day, enterprise, total_mileage} = info;
count += total_mileage;
if (!企业日里程数据[enterprise]) 企业日里程数据[enterprise] = {count:0, autoCount:0};
企业日里程数据[enterprise].count += total_mileage;
});
let testList = await getInterfaceData(st, et, 2);
let testCount = 0;
testList.forEach(info => {
let {time_day, enterprise, auto_mileage} = info;
testCount += auto_mileage;
if (!企业日里程数据[enterprise]) 企业日里程数据[enterprise] = {count:0, autoCount:0};
企业日里程数据[enterprise].autoCount += auto_mileage;
});
月里程数据.push( {count, autoCount:testCount, key} );
}
//查找21个月以外的数据
let list = await getInterfaceData("", lastEt, 1);
list.forEach(info => {
let {time_day, enterprise, total_mileage} = info;
if (!企业日里程数据[enterprise]) 企业日里程数据[enterprise] = {count:0, autoCount:0};
企业日里程数据[enterprise].count += total_mileage;
});
let testList = await getInterfaceData("", lastEt, 2);
testList.forEach(info => {
let {time_day, enterprise, auto_mileage} = info;
if (!企业日里程数据[enterprise]) 企业日里程数据[enterprise] = {count:0, autoCount:0};
企业日里程数据[enterprise].autoCount += auto_mileage;
});
lastMonths = moment().format("YYYY.MM")+'.01';
}
//获取数据
const interfaceUrl = 'http://10.51.50.136:8090/sql/execute';
async function getInterfaceData(st, et, index) {
let result:any = await get(interfaceUrl, {st, et, index});
if (result && result.success) {
return result.result;
} else {
//报错
console.log();
return [];
}
}
\ No newline at end of file
//虚拟机上的数据
export async function getData() {
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment