|
|
@ -3,7 +3,8 @@ const { QueryTypes } = require('sequelize'); |
|
|
|
const moment = require('moment'); |
|
|
|
const xlsxDownload = require('../../../../utils/xlsxDownload.js'); |
|
|
|
const fs = require('fs'); |
|
|
|
async function reportList (ctx) { |
|
|
|
const data = require('../../routes/data/index.js'); |
|
|
|
async function reportList(ctx) { |
|
|
|
try { |
|
|
|
const models = ctx.fs.dc.models; |
|
|
|
const { limit, page, startTime, endTime, keyword, userId, reportType, isTop, asc, projectType, handleState = '', performerId = '', codeRoad } = ctx.query |
|
|
@ -149,7 +150,7 @@ async function reportList (ctx) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
async function reportPosition (ctx) { |
|
|
|
async function reportPosition(ctx) { |
|
|
|
try { |
|
|
|
const models = ctx.fs.dc.models; |
|
|
|
const { startTime, endTime, userId, reportType } = ctx.query |
|
|
@ -199,7 +200,7 @@ async function reportPosition (ctx) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
async function reportDetail (ctx) { |
|
|
|
async function reportDetail(ctx) { |
|
|
|
try { |
|
|
|
const models = ctx.fs.dc.models; |
|
|
|
const { reportId } = ctx.params |
|
|
@ -228,7 +229,7 @@ async function reportDetail (ctx) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
async function reportHandle (ctx) { |
|
|
|
async function reportHandle(ctx) { |
|
|
|
try { |
|
|
|
const { models } = ctx.fs.dc; |
|
|
|
|
|
|
@ -258,7 +259,7 @@ async function reportHandle (ctx) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
async function createReport (ctx) { |
|
|
|
async function createReport(ctx) { |
|
|
|
try { |
|
|
|
const { userId } = ctx.fs.api |
|
|
|
const models = ctx.fs.dc.models; |
|
|
@ -280,7 +281,7 @@ async function createReport (ctx) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
async function deleteReport (ctx) { |
|
|
|
async function deleteReport(ctx) { |
|
|
|
try { |
|
|
|
const models = ctx.fs.dc.models; |
|
|
|
const { reportId } = ctx.params; |
|
|
@ -302,7 +303,7 @@ async function deleteReport (ctx) { |
|
|
|
} |
|
|
|
|
|
|
|
// TODO 小程序填写道路名称的时候的道路筛选 是一起都返回 还是不断传关键字搜索返回
|
|
|
|
async function spotPrepare (ctx) { |
|
|
|
async function spotPrepare(ctx) { |
|
|
|
try { |
|
|
|
const { models } = ctx.fs.dc; |
|
|
|
const sequelize = ctx.fs.dc.orm; |
|
|
@ -374,7 +375,7 @@ async function spotPrepare (ctx) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
async function spotCheck (ctx) { |
|
|
|
async function spotCheck(ctx) { |
|
|
|
const transaction = await ctx.fs.dc.orm.transaction(); |
|
|
|
try { |
|
|
|
const { models } = ctx.fs.dc; |
|
|
@ -476,7 +477,7 @@ async function spotCheck (ctx) { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
async function spotCheckDetail (ctx) { |
|
|
|
async function spotCheckDetail(ctx) { |
|
|
|
const { models } = ctx.fs.dc |
|
|
|
const { startTime, endTime } = ctx.query |
|
|
|
try { |
|
|
@ -515,7 +516,7 @@ async function spotCheckDetail (ctx) { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
async function roadSpotPrepare (ctx) { |
|
|
|
async function roadSpotPrepare(ctx) { |
|
|
|
try { |
|
|
|
const { models } = ctx.fs.dc; |
|
|
|
const sequelize = ctx.fs.dc.orm; |
|
|
@ -592,7 +593,7 @@ async function roadSpotPrepare (ctx) { |
|
|
|
'乡': `route_code LIKE 'Y%'`, |
|
|
|
'村': `route_code LIKE 'C%'` |
|
|
|
} |
|
|
|
async function getRoadTotalMileage (key, otherWhere = [], spot) { |
|
|
|
async function getRoadTotalMileage(key, otherWhere = [], spot) { |
|
|
|
let res = await sequelize.query(` |
|
|
|
SELECT |
|
|
|
SUM(COALESCE(CAST(chainage_mileage AS DOUBLE PRECISION), 0)) AS total_mileage |
|
|
@ -604,7 +605,7 @@ async function roadSpotPrepare (ctx) { |
|
|
|
return res[0][0].total_mileage || 0 |
|
|
|
} |
|
|
|
|
|
|
|
async function getRoadSpot (key, lastRoadIds = [], inOrNot, otherWhere = []) { |
|
|
|
async function getRoadSpot(key, lastRoadIds = [], inOrNot, otherWhere = []) { |
|
|
|
if (!lastRoadIds.length && !inOrNot) { |
|
|
|
return [] |
|
|
|
} |
|
|
@ -623,11 +624,11 @@ async function roadSpotPrepare (ctx) { |
|
|
|
`, { type: QueryTypes.SELECT });
|
|
|
|
} |
|
|
|
|
|
|
|
async function spotRoadId (key, lastRoadIds, targetMileage, otherWhere = [], villageIdList = []) { |
|
|
|
async function spotRoadId(key, lastRoadIds, targetMileage, otherWhere = [], villageIdList = []) { |
|
|
|
let spotRoadIds = [] |
|
|
|
let accumulationMileage = 0 |
|
|
|
|
|
|
|
async function filterRoad (otherWhere, getRepeat = true) { |
|
|
|
async function filterRoad(otherWhere, getRepeat = true) { |
|
|
|
|
|
|
|
if (key == '村' && getRepeat == true) { |
|
|
|
|
|
|
@ -859,7 +860,7 @@ async function roadSpotPrepare (ctx) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
async function confirmRoadSpot (ctx) { |
|
|
|
async function confirmRoadSpot(ctx) { |
|
|
|
const transaction = await ctx.fs.dc.orm.transaction(); |
|
|
|
try { |
|
|
|
const { models } = ctx.fs.dc; |
|
|
@ -919,7 +920,7 @@ async function confirmRoadSpot (ctx) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
async function roadSpotList (ctx) { |
|
|
|
async function roadSpotList(ctx) { |
|
|
|
try { |
|
|
|
const { models } = ctx.fs.dc; |
|
|
|
const { startTime, endTime, page, limit } = ctx.query |
|
|
@ -973,7 +974,7 @@ async function roadSpotList (ctx) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
async function roadSpotDetail (ctx) { |
|
|
|
async function roadSpotDetail(ctx) { |
|
|
|
try { |
|
|
|
const { models } = ctx.fs.dc; |
|
|
|
const { previewId, keyword } = ctx.query |
|
|
@ -1010,7 +1011,7 @@ async function roadSpotDetail (ctx) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
async function roadSpotChange (ctx) { |
|
|
|
async function roadSpotChange(ctx) { |
|
|
|
const transaction = await ctx.fs.dc.orm.transaction(); |
|
|
|
try { |
|
|
|
const { models } = ctx.fs.dc; |
|
|
@ -1032,7 +1033,7 @@ async function roadSpotChange (ctx) { |
|
|
|
} |
|
|
|
|
|
|
|
let previewUpdated = false |
|
|
|
async function updatePreview (key) { |
|
|
|
async function updatePreview(key) { |
|
|
|
if (previewUpdated) return |
|
|
|
|
|
|
|
if (previewRes[key] && previewRes[key].includes(originRoadId)) { |
|
|
@ -1074,6 +1075,24 @@ async function roadSpotChange (ctx) { |
|
|
|
let content = '' |
|
|
|
let curOriginRoad = roadRes.find(item => item.id == originRoadId) |
|
|
|
let curChangeRoad = roadRes.find(item => item.id == changeRoadId) |
|
|
|
const level = curChangeRoad.level; |
|
|
|
let milData = {} |
|
|
|
if (level == '县') { |
|
|
|
milData = { countryMil: previewRes.countryMil + parseFloat(curChangeRoad.chainageMileage) - parseFloat(curOriginRoad.chainageMileage) } |
|
|
|
} else if (level == '乡') { |
|
|
|
milData = { townMil: previewRes.townMil + parseFloat(curChangeRoad.chainageMileage) - parseFloat(curOriginRoad.chainageMileage) } |
|
|
|
} else if (level == '村') { |
|
|
|
milData = { villageMil: previewRes.villageMil + parseFloat(curChangeRoad.chainageMileage) - parseFloat(curOriginRoad.chainageMileage) } |
|
|
|
} |
|
|
|
|
|
|
|
await models.RoadSpotCheckPreview.update({ |
|
|
|
...milData |
|
|
|
}, { |
|
|
|
where: { |
|
|
|
id: previewId |
|
|
|
}, |
|
|
|
transaction |
|
|
|
}) |
|
|
|
|
|
|
|
content = `将${curOriginRoad.routeName}从${curOriginRoad.startingPlaceName}到${curOriginRoad.stopPlaceName}改为${curChangeRoad.routeName}从${curChangeRoad.startingPlaceName}到${curChangeRoad.stopPlaceName}` |
|
|
|
|
|
|
@ -1117,7 +1136,7 @@ async function roadSpotChange (ctx) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
async function roadSpotChangList (ctx) { |
|
|
|
async function roadSpotChangList(ctx) { |
|
|
|
try { |
|
|
|
const { models } = ctx.fs.dc; |
|
|
|
const { startTime, endTime, page, limit } = ctx.query |
|
|
@ -1170,7 +1189,7 @@ async function roadSpotChangList (ctx) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
async function exportSpotRode (ctx) { |
|
|
|
async function exportSpotRode(ctx) { |
|
|
|
try { |
|
|
|
const { models } = ctx.fs.dc; |
|
|
|
const { previewId } = ctx.query |
|
|
|