//获取当前页面的一个系统域名配置
var carAreaList=new Array();
var item = new Object();
item.areaId=1;
item.cardType=0;
item.timeLong=3600;
item.beginTime=1616346000;// 1-2
carAreaList.push(item);
item = new Object();
item.areaId=2;
item.cardType=1;
item.timeLong=3600;
item.beginTime=1616349600; //2-3
carAreaList.push(item);
item = new Object();
item.areaId=1;
item.cardType=0;
item.timeLong=3600;
item.beginTime=1616353200; // 3-4
carAreaList.push(item);
item = new Object();
item.areaId=2;
item.cardType=1;
item.timeLong=3600;
item.beginTime=1616356800; //4-5
carAreaList.push(item);
var timeInfo=new Array();
timeInfo.push("2021-03-22 10:00-2021-03-22 11:00");
timeInfo.push("2021-03-22 12:00-2021-03-22 13:00");
console.log(JSON.stringify(timeInfo,null));
console.log(JSON.stringify(carAreaList,null));
console.log("标准分段");
//#region 非标代码: 场中场合并计费
var nscarAreaList=new Array();
var nsbeginTime,nsendTime;
if (carAreaList != null && carAreaList.length >= 3) {
for (var i = 0; i < carAreaList.length; i++) {
if(nscarAreaList.length<=0 ||
nscarAreaList.filter(c=>c.areaId== carAreaList[i].areaId && c.cardType==carAreaList[i].cardType).length==0){
nscarAreaList.push(carAreaList[i]);
// var nsbeginTime = new Date( carAreaList[i].beginTime * 1000);
// var nsendTime = new Date(( carAreaList[i].beginTime + carAreaList[i].timeLong) * 1000);
nscarAreaList[nscarAreaList.length - 1].timeInfo = new Array();
nscarAreaList[nscarAreaList.length - 1].timeInfo.push(Format(new Date(carAreaList[i].beginTime * 1000)) + "-" + Format(new Date((carAreaList[i].beginTime + carAreaList[i].timeLong) * 1000)));
for (var j = nscarAreaList.length; j < carAreaList.length; j++) {
// console.log("j="+j);
if (carAreaList[j].areaId == nscarAreaList[nscarAreaList.length-1].areaId &&
carAreaList[j].cardType == nscarAreaList[nscarAreaList.length-1].cardType) {
//相同区域相同卡片类型的累计时长
nscarAreaList[nscarAreaList.length-1].timeLong = nscarAreaList[nscarAreaList.length-1].timeLong + carAreaList[j].timeLong;
nscarAreaList[nscarAreaList.length-1].timeInfo.push(Format(new Date( carAreaList[j].beginTime * 1000))+"-"+Format(new Date(( carAreaList[j].beginTime + carAreaList[j].timeLong) * 1000)));
}
}
}
}
//最后合并后修改下开始、结束时间
//入地面1-2点,地库2-3点,出地面3-4点。最后合并为地面1-3点,地库3-4点
for (var i = 1; i < nscarAreaList.length; i++) {
nscarAreaList[i].beginTime = nscarAreaList[i - 1].beginTime + nscarAreaList[i - 1].timeLong;
}
carAreaList = nscarAreaList;
//syslog.info("非标:区域模块(v1.7.6_1040086)===>非标最终分段结果:", cMode.ToJson(carAreaList));
}
//#endregion
function Format(date, fmt2 = "yyyy-MM-dd hh:mm:ss") { //author: meizz
var tmp = new Date(date);
var fmt = new String(fmt2);
var o = {
"M+": tmp.getMonth() + 1, //月份
"d+": tmp.getDate(), //日
"h+": tmp.getHours(), //小时
"m+": tmp.getMinutes(), //分
"s+": tmp.getSeconds(), //秒
"q+": Math.floor((tmp.getMonth() + 3) / 3), //季度
"S": tmp.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (tmp.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
};
//格式化输出 JSON
console.log("非标分段");
console.log(JSON.stringify(carAreaList,null));
//console.log(JSON.stringify(nscarAreaList,null));
console