1 Star 0 Fork 0

范禀坤/jjpachong

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
query.js 1.71 KB
一键复制 编辑 原始数据 按行查看 历史
范禀坤 提交于 2021-10-30 10:13 . 新加了
const ExcelJS = require('exceljs')
const fs = require('fs')
require('./db');
let Models = require('./db/model');
async function query(Models) {
let arr = await Models.find()
let obj = {}
arr.forEach(item => {
let list = item.list
if (list) {
for (let stock in list) {
if (!obj[stock]) {
obj[stock] = 0
}
obj[stock] += list[stock]*item.size
// obj[stock] += list[stock]
}
}
})
let newArr = Object.keys(obj)
.map(key => ({ name: key, value: obj[key] }))
.sort((a, b) => {
return b.value - a.value
})
// console.log(newArr.slice())
// exportExcel(newArr)
return newArr
}
async function duibi() {
console.time("query");
let [newArr, oldArr] = await Promise.all([query(Models.jjModel), query(Models.oldjjModel)])
console.timeEnd("query");
let oldObj = {}
oldArr.forEach((item, index) => {
oldObj[item.name] = index
})
newArr.forEach((item, index)=>{
// item.seq = oldObj[item.name] - index
item.seq = oldObj[item.name] ? (oldObj[item.name] - index) : 'new'
})
exportExcel(newArr, '排序对比')
}
async function exportExcel(data, name) {
const workbook = new ExcelJS.Workbook();
const worksheet = workbook.addWorksheet('My Sheet');
worksheet.columns = [
{ header: 'name', key: 'name', width: 20 },
{ header: '', key: 'value', width: 20 },
{ header: '之前排序', key: 'seq', width: 20 },
];
data.forEach(item => {
worksheet.addRow(item);
})
const buffer = await workbook.xlsx.writeBuffer();
let ws = fs.createWriteStream(name+'.xlsx')
ws.write(buffer, (err)=>{
console.log(err)
if(!err) {
console.log('写入成功')
ws.end()
}
})
}
// query()
duibi()
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/FanBingKun/jjpachong.git
git@gitee.com:FanBingKun/jjpachong.git
FanBingKun
jjpachong
jjpachong
master

搜索帮助