sqlite

var sqlite = require('./1').sqlite;
//console.log(sqlite)

let list=[];

for(let item in sqlite){
    //console.log(sqlite[item].DevSN)
    let mark = sqlite[item].Mark;
    
    //if(mark.indexOf("版本升级成功")>=0||mark.indexOf("Over1")>=0){}
    let row = sqlite[item];
    if(sqlite[item].Item=="升级版本"){
        //console.log(mark);
        //console.log(row)
        let dev={};
        //from thi thin 不初始化的时候为什么bug呢?
        dev.DevModel = row.DevModel;
        dev.mac=row.DevSN;
        dev.Result=row.Result;
        dev.Time=row.Time;
        dev.Item=row.Item;
        let  lDev=null
        for(let ii in list){
            if(dev.mac==list[ii].mac){
                //console.log("==")
                lDev=list[ii];
            }
        }
 

        let str = row.Mark.split("(");
        //console.log(str[1])
        let arr = str[1].split(",");
       
        if(str[0].substring(0, 5) == "Over1"){
           // console.log("over ",str[0])
            dev.version2=arr[0] 
            if(lDev!=null) lDev.version2=dev.version2

        }
        else{
            //console.log("not ",str[0])
            dev.version1=arr[0] 

            if(lDev!=null) {
                lDev.version1=dev.version1
                lDev.version2=""
                lDev.Result=dev.Result
                lDev.Time=dev.Time
            }
        }
        
        dev.sn=arr[1]
       // console.log(dev)
        //后续成功就成功,
       if(lDev==null){
           list.push(dev)
       }
    }
}

let succCount=0;

for(let ii in list){
    console.log(list[ii])
    let row = list[ii];
    if("成功"==row.Result)
        succCount++;
}


var fs = require('fs');


var npm = require('getmac');//获取mac地址
 
//获取机器mac地址
npm.getMac(function(err,macAddress){
    if (err)  throw err;
    var mac = macAddress; //获取mac地址
    console.log(mac);     

    fs.open('./'+mac+'.csv','w',function(err,fd){
        fs.writeSync(fd,"升级"+list.length+"个,成功"+succCount+"个,失败"
        +(list.length-succCount)+"个,成功率"+succCount/list.length*100+"%
");
        for(let ii in list){
            //console.log(list[ii])
            let row = list[ii];
            fs.writeSync(fd,row.DevModel+","+row.sn+","+row.mac+","+row.version1+","
            +row.version2+","+row.Result+","+row.Time+"
");
        }
    });
    
});
{
  "name": "sqllite",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "csv": "^5.1.1",
    "getmac": "^1.4.6"
  }
}
var sqlite= [ { ID: 1,
    Time: '2019-04-13 18:36:44',
    DevModel: 'E8820C',
    DevSN: '7c:39:53:a8:c7:e7',
    Result: '成功',
    Item: '升级版本',
    Mark:
     '版本升级成功!  (V2.0.4_JSDXT1,HN5RN78J2800001,V2.0.1,V2.0.4T2-JSDX,V2.0.0.0) ' },
  { ID: 2,
    Time: '2019-04-13 18:37:49',
    DevModel: 'E8820C',
    DevSN: '7c:39:53:a8:c7:e8',
    Result: '成功',
    Item: '升级配置',
    Mark:
     '配置升级成功!  (V2.0.4_JSDXT1,HN5RN78J2800001,V2.0.1,V2.0.4_T2-default,V2.0.0.0) ' },
  { ID: 3,
    Time: '2019-04-13 18:37:49',
    DevModel: 'E8820C',
    DevSN: '7c:39:53:a8:c7:e3',
    Result: '成功',
    Item: '',
    Mark:
     'Over1  (V2.0.4_JSDXT1,HN5RN78J2800001,V2.0.1,V2.0.4_T2-default,V2.0.0.0) ' },
  { ID: 4,
    Time: '2019-04-13 18:40:45',
    DevModel: 'E8820C',
    DevSN: '7c:39:53:a8:c7:e8',
    Result: '成功',
    Item: '升级配置',
    Mark:
     '配置升级成功!  (V2.0.4_JSDXT1,HN5RN78J2800001,V2.0.1,V2.0.4_T2-default,V2.0.0.0) ' },
  { ID: 5,
    Time: '2019-04-13 18:40:45',
    DevModel: 'E8820C',
    DevSN: '7c:39:53:a8:c7:e8',
    Result: '成功',
    Item: '',
    Mark:
     'Over1  (V2.0.4_JSDXT1,HN5RN78J2800001,V2.0.1,V2.0.4_T2-default,V2.0.0.0) ' },
  { ID: 6,
    Time: '2019-04-13 18:43:04',
    DevModel: 'E8820C',
    DevSN: '7c:39:53:a8:c7:e8',
    Result: '失败',
    Item: '升级配置',
    Mark:
     '文件下载失败!  (V2.0.4_JSDXT1,HN5RN78J2800001,V2.0.1,V2.0.4_T2-default,V2.0.0.0) ' },
  { ID: 7,
    Time: '2019-04-13 18:43:46',
    DevModel: 'E8820C',
    DevSN: '7c:39:53:a8:c7:e8',
    Result: '失败',
    Item: '升级配置',
    Mark:
     '文件下载失败!  (V2.0.4_JSDXT1,HN5RN78J2800001,V2.0.1,V2.0.4_T2-default,V2.0.0.0) ' },
  { ID: 8,
    Time: '2019-04-13 18:44:21',
    DevModel: 'E8820C',
    DevSN: '7c:39:53:a8:c7:e8',
    Result: '失败',
    Item: '升级配置',
    Mark:
     '文件下载失败!  (V2.0.4_JSDXT1,HN5RN78J2800001,V2.0.1,V2.0.4_T2-default,V2.0.0.0) ' },
  { ID: 9,
    Time: '2019-04-13 18:45:10',
    DevModel: 'E8820C',
    DevSN: '7c:39:53:a8:c7:e8',
    Result: '失败',
    Item: '升级配置',
    Mark:
     '文件下载失败!  (V2.0.4_JSDXT1,HN5RN78J2800001,V2.0.1,V2.0.4_T2-default,V2.0.0.0) ' },
  { ID: 10,
    Time: '2019-04-13 18:45:43',
    DevModel: 'E8820C',
    DevSN: '7c:39:53:a8:c7:e8',
    Result: '失败',
    Item: '升级配置',
    Mark:
     '文件下载失败!  (V2.0.4_JSDXT1,HN5RN78J2800001,V2.0.1,V2.0.4_T2-default,V2.0.0.0) ' },
  { ID: 11,
    Time: '2019-04-13 18:46:23',
    DevModel: 'E8820C',
    DevSN: '7c:39:53:a8:c7:e8',
    Result: '失败',
    Item: '升级配置',
    Mark:
     '未知错误!  (V2.0.4_JSDXT1,HN5RN78J2800001,V2.0.1,V2.0.4_T2-default,V2.0.0.0) ' },
  { ID: 12,
    Time: '2019-04-13 18:47:31',
    DevModel: 'E8820C',
    DevSN: '7c:39:53:a8:c7:e8',
    Result: '成功',
    Item: '升级配置',
    Mark:
     '配置升级成功!  (V2.0.4_JSDXT1,HN5RN78J2800001,V2.0.1,V2.0.4_T2-default,V2.0.0.0) ' },
  { ID: 13,
    Time: '2019-04-13 18:47:31',
    DevModel: 'E8820C',
    DevSN: '7c:39:53:a8:c7:e8',
    Result: '成功',
    Item: '',
    Mark:
     'Over1  (V2.0.4_JSDXT1,HN5RN78J2800001,V2.0.1,V2.0.4_T2-default,V2.0.0.0) ' },
  { ID: 14,
    Time: '2019-04-13 18:49:35',
    DevModel: 'E8820C',
    DevSN: '7c:39:53:a8:c7:e8',
    Result: '成功',
    Item: '升级版本',
    Mark:
     '版本升级成功!  (V2.0.4_JSDXT1,HN5RN78J2800001,V2.0.1,V2.0.4_T2-default,V2.0.0.0) ' },
  { ID: 15,
    Time: '2019-04-13 18:50:45',
    DevModel: 'E8820C',
    DevSN: '7c:39:53:a8:c7:e8',
    Result: '失败',
    Item: '升级配置',
    Mark:
     '未知错误!  (V2.0.3T1,HN5RN78J2800001,V2.0.1,V2.0.4T2-JSDX,V2.0.0.0) ' },
  { ID: 16,
    Time: '2019-04-13 18:54:34',
    DevModel: 'E8820C',
    DevSN: '7c:39:53:a8:c7:e8',
    Result: '失败',
    Item: '升级配置',
    Mark:
     '未知错误!  (V2.0.3T1,HN5RN78J2800001,V2.0.1,V2.0.4T2-JSDX,V2.0.0.0) ' },
  { ID: 17,
    Time: '2019-04-13 18:55:26',
    DevModel: 'E8820C',
    DevSN: '7c:39:53:a8:c7:e8',
    Result: '失败',
    Item: '升级配置',
    Mark:
     '文件下载失败!  (V2.0.3T1,HN5RN78J2800001,V2.0.1,V2.0.4T2-JSDX,V2.0.0.0) ' },
  { ID: 18,
    Time: '2019-04-13 18:55:45',
    DevModel: 'E8820C',
    DevSN: '7c:39:53:a8:c7:e8',
    Result: '失败',
    Item: '升级配置',
    Mark:
     '文件下载失败!  (V2.0.3T1,HN5RN78J2800001,V2.0.1,V2.0.4T2-JSDX,V2.0.0.0) ' },
  { ID: 19,
    Time: '2019-04-13 18:56:07',
    DevModel: 'E8820C',
    DevSN: '7c:39:53:a8:c7:e8',
    Result: '失败',
    Item: '升级配置',
    Mark:
     '文件下载失败!  (V2.0.3T1,HN5RN78J2800001,V2.0.1,V2.0.4T2-JSDX,V2.0.0.0) ' },
  { ID: 20,
    Time: '2019-04-13 18:57:46',
    DevModel: 'E8820C',
    DevSN: '7c:39:53:a8:c7:e8',
    Result: '失败',
    Item: '升级版本',
    Mark:
     '文件下载失败!  (V2.0.3T1,HN5RN78J2800001,V2.0.1,V2.0.4T2-JSDX,V2.0.0.0) ' },
  { ID: 21,
    Time: '2019-04-13 19:00:51',
    DevModel: 'E8820C',
    DevSN: '7c:39:53:a8:c7:e8',
    Result: '成功',
    Item: '升级版本',
    Mark:
     '版本升级成功!  (V2.0.3T1,HN5RN78J2800001,V2.0.1,V2.0.4T2-JSDX,V2.0.0.0) ' },
  { ID: 22,
    Time: '2019-04-13 19:01:51',
    DevModel: 'E8820C',
    DevSN: '7c:39:53:a8:c7:e8',
    Result: '成功',
    Item: '升级版本',
    Mark:
     'Over1  (V2.0.4_JSDXT1,HN5RN78J2800001,V2.0.1,V2.0.4T2-JSDX,V2.0.0.0) ' } ];

     module.exports.sqlite = sqlite;
原文地址:https://www.cnblogs.com/cnchengv/p/10707368.html