四好公路
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

60 lines
2.1 KiB

'use strict';
'use strict';
const moment = require('moment');
const { QueryTypes } = require('sequelize');
async function getLastMonthCost(ctx) {
let rslt = [];
try {
const startTime = new Date(moment().startOf('year')), endTime = new Date(moment().endOf('year').valueOf());
const models = ctx.fs.dc.models;
const costList = await models.RoadMaintenanceCost.findAll({
where: {
maintenanceDate: { '$between': [startTime, endTime] }
}
})
if (!costList || !costList.length) {
const dataList = await models.RoadMaintenance.findAll();
for (var i = 0; i < 12; i++) {
dataList.map(item => {
const { countyHighway, townshipRoad, villageRoad, responsibleUnitForManagementAndMaintenance } = item;
const randomNum = 0.1 * (0.8 + Math.random() / 2);
const dateTime = new Date(moment().month(i));
let data = {
countyName: responsibleUnitForManagementAndMaintenance,
roadLengthCounty: countyHighway ? countyHighway * randomNum : 0,
roadLengthTownship: townshipRoad ? townshipRoad * randomNum : 0,
roadLengthVillage: villageRoad ? villageRoad * randomNum : 0,
maintenanceDate: dateTime
}
data.roadCostCounty = data.roadLengthCounty * 15000 / 12,
data.roadCostTownship = data.roadLengthTownship * 7500 / 12,
data.roadCostVillage = data.roadLengthVillage * 3900 / 12;
rslt.push(data)
models.RoadMaintenanceCost.create(data)
})
}
} else {
rslt = costList
}
ctx.status = 200;
ctx.body = rslt;
} catch (error) {
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`);
ctx.status = 400;
ctx.body = {
message: typeof error == 'string' ? error : undefined
}
}
}
module.exports = {
getLastMonthCost,
}