巴林闲侠
2 years ago
50 changed files with 690 additions and 4474 deletions
@ -1,71 +0,0 @@ |
|||||
'use strict'; |
|
||||
|
|
||||
/** |
|
||||
* 提交审批、驳回修改 |
|
||||
* body { |
|
||||
* action:1驳回修改 2审批通过 |
|
||||
* userRegionType:提交用户所属区域级别:3乡镇级,2区县级 |
|
||||
* userId:提交用户id |
|
||||
* rejectReasons:驳回意见 |
|
||||
* correctiveAction:采取措施。区县复核时提交内容 |
|
||||
* punishment:实施处罚,强制措施情况。区县复核时提交内容 |
|
||||
* } |
|
||||
*/ |
|
||||
const moment = require('moment'); |
|
||||
async function submitApproval (ctx) { |
|
||||
try { |
|
||||
const data = ctx.request.body; |
|
||||
const models = ctx.fs.dc.models; |
|
||||
let oldData = await models.UserPlaceSecurityRecord.findOne({ where: { id: data.id } }) |
|
||||
if (oldData == null) { |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { name: `message`, message: `该条填报数据不存在` }; |
|
||||
} else { |
|
||||
if ((data.action == 1 || data.action == 2) && (data.userRegionType == 3 || data.userRegionType == 2)) { |
|
||||
let dataSave = {} |
|
||||
if (data.action == 1) {//驳回
|
|
||||
dataSave = { |
|
||||
rejectManId: data.userId, |
|
||||
rejectReasons: data.rejectReasons, |
|
||||
type: false,//是否重新发起true默认false可以重新发起
|
|
||||
rejectTime: moment() |
|
||||
} |
|
||||
if (data.userRegionType == 2) {//区县复核,14、15项可修改
|
|
||||
dataSave.correctiveAction = data.correctiveAction; |
|
||||
dataSave.punishment = data.punishment; |
|
||||
} |
|
||||
} else {//通过
|
|
||||
if (data.userRegionType == 3) { |
|
||||
dataSave = { |
|
||||
audit1ManId: data.userId, |
|
||||
audit1ManIdTime: moment().format() |
|
||||
} |
|
||||
} else { |
|
||||
dataSave = {//区县复核,14、15项可修改
|
|
||||
correctiveAction: data.correctiveAction, |
|
||||
punishment: data.punishment, |
|
||||
audit2ManId: data.userId, |
|
||||
audit2ManIdTime: moment().format() |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
await models.UserPlaceSecurityRecord.update(dataSave, { where: { id: data.id } }); |
|
||||
ctx.status = 200; |
|
||||
ctx.body = { name: `message`, message: `提交成功` }; |
|
||||
} else { |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { name: `message`, message: `提交数据有误` }; |
|
||||
} |
|
||||
} |
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": { name: `message`, message: `提交审批、驳回修改数据失败` } |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
module.exports = { |
|
||||
submitApproval |
|
||||
}; |
|
@ -1,116 +0,0 @@ |
|||||
|
|
||||
function deepCompare(x, y) { |
|
||||
var i, l, leftChain, rightChain; |
|
||||
|
|
||||
function compare2Objects(x, y) { |
|
||||
var p; |
|
||||
|
|
||||
// remember that NaN === NaN returns false
|
|
||||
// and isNaN(undefined) returns true
|
|
||||
if (isNaN(x) && isNaN(y) && typeof x === 'number' && typeof y === 'number') { |
|
||||
return true; |
|
||||
} |
|
||||
|
|
||||
// Compare primitives and functions.
|
|
||||
// Check if both arguments link to the same object.
|
|
||||
// Especially useful on the step where we compare prototypes
|
|
||||
if (x === y) { |
|
||||
return true; |
|
||||
} |
|
||||
|
|
||||
// Works in case when functions are created in constructor.
|
|
||||
// Comparing dates is a common scenario. Another built-ins?
|
|
||||
// We can even handle functions passed across iframes
|
|
||||
if ((typeof x === 'function' && typeof y === 'function') || |
|
||||
(x instanceof Date && y instanceof Date) || |
|
||||
(x instanceof RegExp && y instanceof RegExp) || |
|
||||
(x instanceof String && y instanceof String) || |
|
||||
(x instanceof Number && y instanceof Number)) { |
|
||||
return x.toString() === y.toString(); |
|
||||
} |
|
||||
|
|
||||
// At last checking prototypes as good as we can
|
|
||||
if (!(x instanceof Object && y instanceof Object)) { |
|
||||
return false; |
|
||||
} |
|
||||
|
|
||||
if (x.isPrototypeOf(y) || y.isPrototypeOf(x)) { |
|
||||
return false; |
|
||||
} |
|
||||
|
|
||||
if (x.constructor !== y.constructor) { |
|
||||
return false; |
|
||||
} |
|
||||
|
|
||||
if (x.prototype !== y.prototype) { |
|
||||
return false; |
|
||||
} |
|
||||
|
|
||||
// Check for infinitive linking loops
|
|
||||
if (leftChain.indexOf(x) > -1 || rightChain.indexOf(y) > -1) { |
|
||||
return false; |
|
||||
} |
|
||||
|
|
||||
// Quick checking of one object being a subset of another.
|
|
||||
// todo: cache the structure of arguments[0] for performance
|
|
||||
for (p in y) { |
|
||||
if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) { |
|
||||
return false; |
|
||||
} else if (typeof y[p] !== typeof x[p]) { |
|
||||
return false; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
for (p in x) { |
|
||||
if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) { |
|
||||
return false; |
|
||||
} else if (typeof y[p] !== typeof x[p]) { |
|
||||
return false; |
|
||||
} |
|
||||
|
|
||||
switch (typeof (x[p])) { |
|
||||
case 'object': |
|
||||
case 'function': |
|
||||
|
|
||||
leftChain.push(x); |
|
||||
rightChain.push(y); |
|
||||
|
|
||||
if (!compare2Objects(x[p], y[p])) { |
|
||||
return false; |
|
||||
} |
|
||||
|
|
||||
leftChain.pop(); |
|
||||
rightChain.pop(); |
|
||||
break; |
|
||||
|
|
||||
default: |
|
||||
if (x[p] !== y[p]) { |
|
||||
return false; |
|
||||
} |
|
||||
break; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
return true; |
|
||||
} |
|
||||
|
|
||||
if (arguments.length < 1) { |
|
||||
return true; //Die silently? Don't know how to handle such case, please help...
|
|
||||
// throw "Need two or more arguments to compare";
|
|
||||
} |
|
||||
|
|
||||
for (i = 1, l = arguments.length; i < l; i++) { |
|
||||
|
|
||||
leftChain = []; //Todo: this can be cached
|
|
||||
rightChain = []; |
|
||||
|
|
||||
if (!compare2Objects(arguments[0], arguments[i])) { |
|
||||
return false; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
return true; |
|
||||
} |
|
||||
module.exports = { |
|
||||
deepCompare |
|
||||
} |
|
@ -1,63 +0,0 @@ |
|||||
//获取固化数据接口
|
|
||||
async function getDataDictionary(ctx) { |
|
||||
try { |
|
||||
const models = ctx.fs.dc.models; |
|
||||
const { model } = ctx.params; |
|
||||
const { where, attributes, order } = ctx.query; |
|
||||
let findObj = {}; |
|
||||
if (where) { |
|
||||
let whereJson = JSON.parse(where); |
|
||||
findObj.where = whereJson; |
|
||||
} |
|
||||
if (order) { |
|
||||
findObj.order = [JSON.parse(order)]; |
|
||||
} |
|
||||
if (attributes) { |
|
||||
attributes = attributes.split(','); |
|
||||
} |
|
||||
let rslt = await models[model].findAll(findObj); |
|
||||
ctx.status = 200; |
|
||||
ctx.body = rslt; |
|
||||
} catch (error) { |
|
||||
console.log(error) |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": "获取数据字典失败" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
//基础修改接口
|
|
||||
async function putDataDictionary(ctx) { |
|
||||
const transaction = await ctx.fs.dc.orm.transaction(); |
|
||||
try { |
|
||||
const models = ctx.fs.dc.models; |
|
||||
let errMsg = "修改失败"; |
|
||||
|
|
||||
const { model } = ctx.params; |
|
||||
const { where, dataToSave } = ctx.request.body; |
|
||||
|
|
||||
const oldData = await models[model].findOne({ where: where }); |
|
||||
if (oldData) { |
|
||||
await models[model].update(dataToSave, { where: where, transaction }); |
|
||||
} else { |
|
||||
errMsg = "未找到需要修改的数据"; |
|
||||
ctx.throw(400) |
|
||||
} |
|
||||
ctx.status = 204; |
|
||||
await transaction.commit(); |
|
||||
} catch (error) { |
|
||||
await transaction.rollback(); |
|
||||
console.log(error) |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": errMsg |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
module.exports = { |
|
||||
getDataDictionary, |
|
||||
putDataDictionary |
|
||||
}; |
|
@ -1,2 +1,26 @@ |
|||||
'use strict'; |
'use strict'; |
||||
|
|
||||
|
async function importIn (ctx) { |
||||
|
try { |
||||
|
const models = ctx.fs.dc.models; |
||||
|
const { level } = ctx.query; |
||||
|
const data = ctx.request.body; |
||||
|
|
||||
|
for (let d of data) { |
||||
|
d.level = level; |
||||
|
await models.User.create(d); |
||||
|
} |
||||
|
|
||||
|
ctx.status = 204 |
||||
|
} catch (error) { |
||||
|
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
||||
|
ctx.status = 400; |
||||
|
ctx.body = { |
||||
|
message: typeof error == 'string' ? error : undefined |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
module.exports = { |
||||
|
importIn |
||||
|
}; |
@ -1,25 +0,0 @@ |
|||||
'use strict'; |
|
||||
|
|
||||
//获取南昌市下所有区县
|
|
||||
async function getCountiesList(ctx) { |
|
||||
try { |
|
||||
const models = ctx.fs.dc.models; |
|
||||
let rslt = await models.Department.findAll({ |
|
||||
where: { type: 2 }, |
|
||||
order: [['id', 'asc']], |
|
||||
}); |
|
||||
ctx.status = 200; |
|
||||
ctx.body = rslt; |
|
||||
} catch (error) { |
|
||||
console.log(error) |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": "获取南昌市下所有区县失败" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
module.exports = { |
|
||||
getCountiesList, |
|
||||
}; |
|
@ -1,87 +0,0 @@ |
|||||
async function getResource(ctx, next) { |
|
||||
try { |
|
||||
const models = ctx.fs.dc.models; |
|
||||
|
|
||||
const res = await models.Resource.findAll({ |
|
||||
where: { parentResource: null }, |
|
||||
include: [{ |
|
||||
model: models.Resource, |
|
||||
}] |
|
||||
}) |
|
||||
|
|
||||
ctx.body = res; |
|
||||
ctx.status = 200; |
|
||||
|
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": "查询所有权限数据失败" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
async function getUserResource(ctx, next) { |
|
||||
try { |
|
||||
const models = ctx.fs.dc.models; |
|
||||
const { userId } = ctx.query; |
|
||||
|
|
||||
const res = await models.UserResource.findAll({ |
|
||||
where: { userId: userId }, |
|
||||
include: [{ |
|
||||
model: models.Resource, |
|
||||
}] |
|
||||
}) |
|
||||
|
|
||||
ctx.body = res; |
|
||||
ctx.status = 200; |
|
||||
|
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": "查询用户权限数据失败" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
async function updateUserRes(ctx, next) { |
|
||||
const transaction = await ctx.fs.dc.orm.transaction(); |
|
||||
try { |
|
||||
const models = ctx.fs.dc.models; |
|
||||
const { userId, resCode } = ctx.request.body; |
|
||||
|
|
||||
const res = await models.UserResource.findAll({ |
|
||||
attributes: ["resourceId"], |
|
||||
raw: true, |
|
||||
where: { userId: userId } |
|
||||
}) |
|
||||
|
|
||||
const addRes = resCode.filter(r => !res.some(rr => rr.resourceId == r)).map(r => { return { userId: userId, resourceId: r } }); |
|
||||
const delRes = res.filter(r => !resCode.includes(r.resourceId)).map(r => r.resourceId); |
|
||||
addRes.length && await models.UserResource.bulkCreate(addRes, { transaction: transaction }); |
|
||||
delRes.length && await models.UserResource.destroy({ |
|
||||
where: { |
|
||||
resourceId: { $in: delRes }, |
|
||||
userId: userId |
|
||||
}, |
|
||||
transaction: transaction |
|
||||
}) |
|
||||
|
|
||||
ctx.status = 204; |
|
||||
await transaction.commit(); |
|
||||
|
|
||||
} catch (error) { |
|
||||
await transaction.rollback(); |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": "更新用户权限数据失败" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
module.exports = { |
|
||||
getResource, |
|
||||
getUserResource, |
|
||||
updateUserRes |
|
||||
}; |
|
@ -1,612 +0,0 @@ |
|||||
'use strict'; |
|
||||
const moment = require('moment'); |
|
||||
|
|
||||
/** |
|
||||
* 提交填报信息/保存填报草稿 |
|
||||
* @requires.body { |
|
||||
* isDraft-是否草稿 |
|
||||
* userId-用户id,填报人 |
|
||||
* placeName-场所id |
|
||||
* placeType-场所性质 |
|
||||
* regionId-所属县/区 |
|
||||
* address-场所地址 |
|
||||
* placeOwner-场所负责人 |
|
||||
* phone-负责人手机号 |
|
||||
* dimension-面积 |
|
||||
* floors-多少层 |
|
||||
* numberOfPeople-常住人数 |
|
||||
* location-经纬度 |
|
||||
* isEnable-是否为合用场所 |
|
||||
* localtionDescribe-经纬度定位描述 |
|
||||
* hiddenDangerItem12-12项隐患信息,格式:[{ |
|
||||
* itemIndex-隐患项序号, |
|
||||
* value-是否存在隐患, |
|
||||
* description-隐患具体信息描述, |
|
||||
* photos-隐患图片(多张图片以 , 隔开)" |
|
||||
* }], |
|
||||
* description-存在具体问题描述 |
|
||||
* correctiveAction-采取整改措施 |
|
||||
* punishment-实施处罚,强制措施情况 |
|
||||
* } ctx |
|
||||
*/ |
|
||||
async function addPlaceSecurityRecord (ctx, next) { |
|
||||
const transaction = await ctx.fs.dc.orm.transaction(); |
|
||||
try { |
|
||||
const models = ctx.fs.dc.models; |
|
||||
const body = ctx.request.body; |
|
||||
let ifRightRegion = true; |
|
||||
if (body.regionId) { |
|
||||
//判断填报信息所属乡镇/区县是否存在
|
|
||||
let region = await models.Department.findOne({ where: { id: body.regionId } }); |
|
||||
if (!region) { |
|
||||
ifRightRegion = false; |
|
||||
} |
|
||||
} |
|
||||
if (ifRightRegion) { |
|
||||
let placeId = null; |
|
||||
if (body.placeName) { |
|
||||
//判断“场所名称”是否存在,不存在则“新建场所”
|
|
||||
let place = await models.Places.findOne({ where: { name: body.placeName, userId: ctx.fs.api.userId } }); |
|
||||
if (place) { |
|
||||
placeId = place.id |
|
||||
} else { |
|
||||
const newPlace = await models.Places.create({ |
|
||||
name: body.placeName, |
|
||||
userId: ctx.fs.api.userId |
|
||||
}, { transaction: transaction }); |
|
||||
placeId = newPlace.id; |
|
||||
} |
|
||||
} |
|
||||
//创建填报信息/填报草稿
|
|
||||
const userPlaceSecurityRecord = await models.UserPlaceSecurityRecord.create({ |
|
||||
isDraft: body.isDraft,//是否草稿
|
|
||||
userId: ctx.fs.api.userId,//用户id,填报人
|
|
||||
time: moment(),//录入时间
|
|
||||
placeId: placeId,//场所id
|
|
||||
placeType: body.placeType,//场所性质
|
|
||||
regionId: body.regionId,//所属县/区
|
|
||||
address: body.address,//场所地址
|
|
||||
placeOwner: body.placeOwner,//场所负责人
|
|
||||
phone: body.phone,//负责人手机号
|
|
||||
dimension: body.dimension,//面积
|
|
||||
floors: body.floors,//多少层
|
|
||||
numberOfPeople: body.numberOfPeople,//常住人数
|
|
||||
location: body.location,//经纬度
|
|
||||
isEnable: body.isEnable,//是否为合用场所
|
|
||||
localtionDescribe: body.localtionDescribe,//经纬度定位描述
|
|
||||
hiddenDangerItem12: body.hiddenDangerItem12,//12项隐患信息
|
|
||||
description: body.description,//存在具体问题描述
|
|
||||
correctiveAction: body.correctiveAction,//采取措施
|
|
||||
type: true,//是否重新发起true默认false可以重新发起
|
|
||||
punishment: body.punishment,//实施处罚,强制措施情况
|
|
||||
departmentId: body.departmentId |
|
||||
}, { transaction: transaction }); |
|
||||
ctx.body = { |
|
||||
id: userPlaceSecurityRecord.id, |
|
||||
"message": "新增填报信息成功" |
|
||||
}; |
|
||||
ctx.status = 200; |
|
||||
} else { |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": "所选地址不存在!" |
|
||||
} |
|
||||
} |
|
||||
await transaction.commit(); |
|
||||
} catch (error) { |
|
||||
await transaction.rollback(); |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": "新增填报信息失败" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 编辑填报信息 |
|
||||
* @param {id-填报信息ID} ctx |
|
||||
* @requires.body { |
|
||||
* isDraft-是否草稿 |
|
||||
* userId-用户id,填报人 |
|
||||
* placeName-场所id |
|
||||
* placeType-场所性质 |
|
||||
* regionId-所属县/区 |
|
||||
* address-场所地址 |
|
||||
* placeOwner-场所负责人 |
|
||||
* phone-负责人手机号 |
|
||||
* dimension-面积 |
|
||||
* floors-多少层 |
|
||||
* numberOfPeople-常住人数 |
|
||||
* location-经纬度 |
|
||||
* isEnable-是否为合用场所 |
|
||||
* localtionDescribe-经纬度定位描述 |
|
||||
* hiddenDangerItem12-12项隐患信息,格式:[{ |
|
||||
* itemIndex-隐患项序号, |
|
||||
* value-是否存在隐患, |
|
||||
* description-隐患具体信息描述, |
|
||||
* photos-隐患图片(多张图片以 , 隔开)" |
|
||||
* }], |
|
||||
* description-存在具体问题描述 |
|
||||
* correctiveAction-采取整改措施 |
|
||||
* punishment-实施处罚,强制措施情况 |
|
||||
* } ctx |
|
||||
*/ |
|
||||
async function editPlaceSecurityRecord (ctx, next) { |
|
||||
const transaction = await ctx.fs.dc.orm.transaction(); |
|
||||
try { |
|
||||
const models = ctx.fs.dc.models; |
|
||||
const { id } = ctx.params; |
|
||||
//判断该填报信息是否存在
|
|
||||
let userPlaceSecurityRecord = await models.UserPlaceSecurityRecord.findOne({ where: { id: id } }); |
|
||||
if (userPlaceSecurityRecord) { |
|
||||
const body = ctx.request.body; |
|
||||
let ifRightRegion = true; |
|
||||
if (body.regionId) { |
|
||||
//判断填报信息所属乡镇/区县是否存在
|
|
||||
let region = await models.Department.findOne({ where: { id: body.regionId } }); |
|
||||
if (!region) { |
|
||||
ifRightRegion = false; |
|
||||
} |
|
||||
} |
|
||||
if (ifRightRegion) { |
|
||||
let placeId = null; |
|
||||
if (body.placeName) { |
|
||||
//判断“场所名称”是否存在,不存在则“新建场所”
|
|
||||
let place = await models.Places.findOne({ where: { name: body.placeName, userId: ctx.fs.api.userId } }); |
|
||||
if (place) { |
|
||||
placeId = place.id |
|
||||
} else { |
|
||||
const newPlace = await models.Places.create({ |
|
||||
name: body.placeName, |
|
||||
userId: ctx.fs.api.userId |
|
||||
}, { transaction: transaction }); |
|
||||
placeId = newPlace.id; |
|
||||
} |
|
||||
} |
|
||||
//修改填报信息
|
|
||||
await models.UserPlaceSecurityRecord.update({ |
|
||||
isDraft: body.isDraft,//是否草稿
|
|
||||
userId: ctx.fs.api.userId,//用户id,填报人
|
|
||||
time: moment(),//录入时间
|
|
||||
placeId: placeId,//场所id
|
|
||||
placeType: body.placeType,//场所性质
|
|
||||
regionId: body.regionId,//所属县/区
|
|
||||
address: body.address,//场所地址
|
|
||||
placeOwner: body.placeOwner,//场所负责人
|
|
||||
phone: body.phone,//负责人手机号
|
|
||||
dimension: body.dimension,//面积
|
|
||||
floors: body.floors,//多少层
|
|
||||
numberOfPeople: body.numberOfPeople,//常住人数
|
|
||||
location: body.location,//经纬度
|
|
||||
isEnable: body.isEnable,//是否为合用场所
|
|
||||
localtionDescribe: body.localtionDescribe,//经纬度定位描述
|
|
||||
hiddenDangerItem12: body.hiddenDangerItem12,//12项隐患信息
|
|
||||
description: body.description,//存在具体问题描述
|
|
||||
correctiveAction: body.correctiveAction,//采取措施
|
|
||||
punishment: body.punishment,//实施处罚,强制措施情况
|
|
||||
departmentId: body.departmentId |
|
||||
}, { where: { id: id, }, transaction: transaction }); |
|
||||
ctx.body = { "message": "修改填报信息成功" }; |
|
||||
ctx.status = 200; |
|
||||
} else { |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "所选地址不存在!" } |
|
||||
} |
|
||||
} else { |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "该填报信息不存在!" } |
|
||||
} |
|
||||
await transaction.commit(); |
|
||||
} catch (error) { |
|
||||
await transaction.rollback(); |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "修改填报信息失败" } |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 修改type字段 |
|
||||
* @param {*} ctx |
|
||||
* @param {*} next |
|
||||
*/ |
|
||||
async function updateType (ctx, next) { |
|
||||
const models = ctx.fs.dc.models; |
|
||||
const { id } = ctx.params; |
|
||||
try { |
|
||||
await models.UserPlaceSecurityRecord.update({ |
|
||||
type: true,//是否重新发起true默认false可以重新发起
|
|
||||
}, { where: { id: id, } }) |
|
||||
ctx.body = { "message": "修改信息成功" }; |
|
||||
ctx.status = 200; |
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "修改信息失败" } |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 删除填报信息 |
|
||||
* @param {id-填报信息ID} ctx |
|
||||
*/ |
|
||||
async function deletePlaceSecurityRecord (ctx, next) { |
|
||||
const transaction = await ctx.fs.dc.orm.transaction(); |
|
||||
try { |
|
||||
const models = ctx.fs.dc.models; |
|
||||
const { id } = ctx.params; |
|
||||
//判断该填报信息是否存在
|
|
||||
let userPlaceSecurityRecord = await models.UserPlaceSecurityRecord.findOne({ where: { id: id } }); |
|
||||
if (userPlaceSecurityRecord) { |
|
||||
await models.UserPlaceSecurityRecord.destroy({ where: { id: id }, transaction: transaction }); |
|
||||
ctx.body = { "message": "删除填报信息成功" }; |
|
||||
ctx.status = 200; |
|
||||
} else { |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "该填报信息不存在!" } |
|
||||
} |
|
||||
await transaction.commit(); |
|
||||
} catch (error) { |
|
||||
await transaction.rollback(); |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "删除填报信息失败" } |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 根据填报信息ID查询填报信息 |
|
||||
* @param {id-填报信息ID} ctx |
|
||||
*/ |
|
||||
async function getPlaceSecurityRecordById (ctx, next) { |
|
||||
try { |
|
||||
const models = ctx.fs.dc.models; |
|
||||
const { id } = ctx.params; |
|
||||
//判断该填报信息是否存在
|
|
||||
let userPlaceSecurityRecord = await models.UserPlaceSecurityRecord.findOne({ where: { id: id } }); |
|
||||
if (userPlaceSecurityRecord) { |
|
||||
let userPlaceSecurityRecord = await models.UserPlaceSecurityRecord.findOne({ |
|
||||
where: { id: id }, |
|
||||
include: [{ |
|
||||
model: models.Places, |
|
||||
}, { |
|
||||
model: models.User, |
|
||||
as: 'user', |
|
||||
attributes: ['id', 'name', 'username', 'phone'] |
|
||||
}, { |
|
||||
model: models.User, |
|
||||
as: 'audit1ManUser', |
|
||||
attributes: ['id', 'name', 'username', 'phone'] |
|
||||
}, { |
|
||||
model: models.User, |
|
||||
as: 'audit2ManUser', |
|
||||
attributes: ['id', 'name', 'username', 'phone'] |
|
||||
}, { |
|
||||
model: models.User, |
|
||||
as: 'rejectManUser', |
|
||||
attributes: ['id', 'name', 'username', 'phone'] |
|
||||
}] |
|
||||
}); |
|
||||
ctx.body = userPlaceSecurityRecord; |
|
||||
ctx.status = 200; |
|
||||
} else { |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "该填报信息不存在!" } |
|
||||
} |
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "查询填报信息失败" } |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 根据场所ID获取该场所最近用户填报信息 |
|
||||
* @param {placeId-场所信息ID} ctx |
|
||||
*/ |
|
||||
async function getRecentlyPlaceSecurityRecordByPlaceId (ctx, next) { |
|
||||
try { |
|
||||
const models = ctx.fs.dc.models; |
|
||||
const { placeId } = ctx.params; |
|
||||
//判断该场所信息是否存在
|
|
||||
let place = await models.Places.findOne({ where: { id: placeId } }); |
|
||||
if (place) { |
|
||||
let userPlaceSecurityRecord = await models.UserPlaceSecurityRecord.findAll({ |
|
||||
where: { placeId: placeId, userId: place.userId }, |
|
||||
include: [{ |
|
||||
model: models.Places, |
|
||||
}], |
|
||||
limit: 1, |
|
||||
order: [["id", "desc"]], |
|
||||
}); |
|
||||
ctx.status = 200; |
|
||||
ctx.body = userPlaceSecurityRecord.length ? userPlaceSecurityRecord[0] : null; |
|
||||
} else { |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "该场所不存在!" } |
|
||||
} |
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "获取场所最近用户填报信息失败" } |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 根据筛选条件获取用户填报信息 |
|
||||
* @query { |
|
||||
* isDraft-是否草稿 |
|
||||
* userId-用户ID |
|
||||
* timeRange-录入时间范围 |
|
||||
* regionId-区域ID |
|
||||
* placeId-场所ID |
|
||||
* state-审批状态 |
|
||||
* pageIndex-页码 |
|
||||
* pageSize-页宽 |
|
||||
* } ctx |
|
||||
*/ |
|
||||
async function getPlaceSecurityRecords (ctx, next) { |
|
||||
try { |
|
||||
const models = ctx.fs.dc.models; |
|
||||
const { isDraft, userId, timeRange, regionId, placeId, state, pageIndex, pageSize } = ctx.query; |
|
||||
let whereCondition = {}; |
|
||||
if (userId) { |
|
||||
let user = await models.User.findOne({ where: { id: userId } }); |
|
||||
if (user) { |
|
||||
whereCondition.userId = userId; |
|
||||
} else { |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "用户不存在!" } |
|
||||
return; |
|
||||
} |
|
||||
} |
|
||||
if (regionId) { |
|
||||
let region = await models.Department.findOne({ where: { id: regionId } }); |
|
||||
if (region) { |
|
||||
whereCondition.regionId = regionId; |
|
||||
} else { |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "区域不存在!" } |
|
||||
return; |
|
||||
} |
|
||||
} |
|
||||
if (placeId) { |
|
||||
let place = await models.Places.findOne({ where: { id: placeId } }); |
|
||||
if (place) { |
|
||||
whereCondition.placeId = placeId; |
|
||||
} else { |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "场所不存在!" }; |
|
||||
return; |
|
||||
} |
|
||||
} |
|
||||
if (isDraft) { whereCondition.isDraft = isDraft; } |
|
||||
let times = timeRange; |
|
||||
if (timeRange && timeRange.indexOf(',')) { times = timeRange.split(',') } |
|
||||
if (times && times.length > 0) { |
|
||||
const len = times.length; |
|
||||
whereCondition.time = { |
|
||||
$between: [ |
|
||||
moment(times[0]).startOf('day').format('YYYY-MM-DD HH:mm:ss'), |
|
||||
moment(times[len - 1]).endOf('day').format('YYYY-MM-DD HH:mm:ss') |
|
||||
] |
|
||||
}; |
|
||||
} |
|
||||
switch (Number(state)) { |
|
||||
case 1: //待审批:未审核 或者 已审核+未复核
|
|
||||
whereCondition.$or = [ |
|
||||
{ '$audit1ManId$': null }, |
|
||||
{ '$audit2ManId$': null } |
|
||||
]; |
|
||||
whereCondition.rejectManId = null; |
|
||||
break; |
|
||||
case 2://已审批:已审批+已复核
|
|
||||
whereCondition.audit1ManId = { $not: null }; |
|
||||
whereCondition.audit2ManId = { $not: null }; |
|
||||
break; |
|
||||
case 3: //驳回
|
|
||||
whereCondition.rejectManId = { $not: null }; |
|
||||
break; |
|
||||
default: break; |
|
||||
} |
|
||||
let findObj = { |
|
||||
where: whereCondition, |
|
||||
order: [["id", "desc"]], |
|
||||
include: [{ |
|
||||
model: models.Places, |
|
||||
}, { |
|
||||
model: models.User, |
|
||||
as: 'user', |
|
||||
attributes: ['id', 'name', 'username', 'phone'] |
|
||||
}, { |
|
||||
model: models.User, |
|
||||
as: 'audit1ManUser', |
|
||||
attributes: ['id', 'name', 'username', 'phone'] |
|
||||
}, { |
|
||||
model: models.User, |
|
||||
as: 'audit2ManUser', |
|
||||
attributes: ['id', 'name', 'username', 'phone'] |
|
||||
}, { |
|
||||
model: models.User, |
|
||||
as: 'rejectManUser', |
|
||||
attributes: ['id', 'name', 'username', 'phone'] |
|
||||
}] |
|
||||
}; |
|
||||
if (Number(pageSize) > 0 && Number(pageIndex) >= 0) { |
|
||||
findObj.limit = Number(pageSize); |
|
||||
findObj.offset = Number(pageIndex) * Number(pageSize); |
|
||||
} |
|
||||
let userPlaceSecurityRecords = await models.UserPlaceSecurityRecord.findAndCountAll(findObj); |
|
||||
ctx.status = 200; |
|
||||
ctx.body = userPlaceSecurityRecords; |
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "获取用户填报信息失败" } |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 根据筛选条件获取用户审批填报信息 |
|
||||
* @query { |
|
||||
* approveUserId-审批人ID |
|
||||
* timeRange-录入时间范围 |
|
||||
* regionId-区域ID |
|
||||
* placeId-场所ID |
|
||||
* state-审批状态 |
|
||||
* pageIndex-页码 |
|
||||
* pageSize-页宽 |
|
||||
* } ctx |
|
||||
*/ |
|
||||
async function getApprovePlaceSecurityRecords (ctx, next) { |
|
||||
try { |
|
||||
const models = ctx.fs.dc.models; |
|
||||
const { approveUserId, timeRange, regionId, placeId, state, pageIndex, pageSize } = ctx.query; |
|
||||
let whereCondition = { isDraft: false }; |
|
||||
if (approveUserId) { |
|
||||
let approveUser = await models.User.findOne({ where: { id: approveUserId } }); |
|
||||
if (approveUser) { |
|
||||
//获取审批人管辖区域内所有用户ID(注:市级人员查看所有用户数据)
|
|
||||
const departmentRes = await models.Department.findOne({ where: { id: approveUser.departmentId } }); |
|
||||
if (departmentRes.dependence) { |
|
||||
let attentionRegionIds = [departmentRes.id]; |
|
||||
let regionType = departmentRes.type; |
|
||||
while (attentionRegionIds.length && regionType && regionType < 4) { |
|
||||
const departmentChilds = await models.Department.findAll({ where: { dependence: { $in: attentionRegionIds } } }); |
|
||||
regionType = departmentChilds.length ? departmentChilds[0].type : null; |
|
||||
attentionRegionIds = departmentChilds.map(d => d.id); |
|
||||
} |
|
||||
let users = await models.User.findAll({ where: { departmentId: { $in: attentionRegionIds } }, attributes: ['id'] }); |
|
||||
if (users.length) { |
|
||||
let userIds = users.map(u => u.id); |
|
||||
whereCondition.userId = { $in: userIds }; |
|
||||
} else { |
|
||||
ctx.status = 200; |
|
||||
ctx.body = { |
|
||||
"count": 0, |
|
||||
"rows": [] |
|
||||
} |
|
||||
return; |
|
||||
} |
|
||||
} |
|
||||
if (regionId) { |
|
||||
let region = await models.Department.findOne({ where: { id: regionId } }); |
|
||||
if (region) { |
|
||||
whereCondition.regionId = regionId; |
|
||||
} else { |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "区域不存在!" } |
|
||||
return; |
|
||||
} |
|
||||
} |
|
||||
if (placeId) { |
|
||||
let place = await models.Places.findOne({ where: { id: placeId } }); |
|
||||
if (place) { |
|
||||
whereCondition.placeId = placeId; |
|
||||
} else { |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "场所不存在!" }; |
|
||||
return; |
|
||||
} |
|
||||
} |
|
||||
let times = timeRange; |
|
||||
if (timeRange && timeRange.indexOf(',')) { times = timeRange.split(',') } |
|
||||
if (times && times.length > 0) { |
|
||||
const len = times.length; |
|
||||
whereCondition.time = { |
|
||||
$between: [ |
|
||||
moment(times[0]).startOf('day').format('YYYY-MM-DD HH:mm:ss'), |
|
||||
moment(times[len - 1]).endOf('day').format('YYYY-MM-DD HH:mm:ss') |
|
||||
] |
|
||||
}; |
|
||||
} |
|
||||
switch (Number(state)) { |
|
||||
case 1: //待审批
|
|
||||
if (departmentRes.type == 2) { |
|
||||
//区县待审:已审核+未复核
|
|
||||
whereCondition.audit1ManId = { $not: null }; |
|
||||
whereCondition.audit2ManId = null; |
|
||||
} else { |
|
||||
//乡镇待审:未审核+未复核
|
|
||||
whereCondition.audit1ManId = null; |
|
||||
whereCondition.audit2ManId = null; |
|
||||
} |
|
||||
whereCondition.rejectManId = null; |
|
||||
break; |
|
||||
case 2://已审批:
|
|
||||
if (departmentRes.type == 3) { |
|
||||
//乡镇已审:已审核
|
|
||||
whereCondition.audit1ManId = { $not: null }; |
|
||||
} else { |
|
||||
//区域已审:已审批+已复核
|
|
||||
whereCondition.audit1ManId = { $not: null }; |
|
||||
whereCondition.audit2ManId = { $not: null }; |
|
||||
} |
|
||||
whereCondition.rejectManId = null; |
|
||||
break; |
|
||||
case 3: //驳回
|
|
||||
whereCondition.rejectManId = { $not: null }; |
|
||||
break; |
|
||||
default: |
|
||||
if (departmentRes.type == 2) { |
|
||||
//区县查看数据:去除未审核
|
|
||||
whereCondition.audit1ManId = { $not: null }; |
|
||||
} |
|
||||
break; |
|
||||
} |
|
||||
let findObj = { |
|
||||
where: whereCondition, |
|
||||
include: [{ |
|
||||
model: models.Places, |
|
||||
}, { |
|
||||
model: models.User, |
|
||||
as: 'user', |
|
||||
attributes: ['id', 'name', 'username', 'phone'] |
|
||||
}, { |
|
||||
model: models.User, |
|
||||
as: 'audit1ManUser', |
|
||||
attributes: ['id', 'name', 'username', 'phone'] |
|
||||
}, { |
|
||||
model: models.User, |
|
||||
as: 'audit2ManUser', |
|
||||
attributes: ['id', 'name', 'username', 'phone'] |
|
||||
}, { |
|
||||
model: models.User, |
|
||||
as: 'rejectManUser', |
|
||||
attributes: ['id', 'name', 'username', 'phone'] |
|
||||
}], |
|
||||
order: [["id", "desc"]] |
|
||||
}; |
|
||||
if (Number(pageSize) > 0 && Number(pageIndex) >= 0) { |
|
||||
findObj.limit = Number(pageSize); |
|
||||
findObj.offset = Number(pageIndex) * Number(pageSize); |
|
||||
} |
|
||||
let userPlaceSecurityRecords = await models.UserPlaceSecurityRecord.findAndCountAll(findObj); |
|
||||
ctx.status = 200; |
|
||||
ctx.body = userPlaceSecurityRecords; |
|
||||
} else { |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "用户不存在!" } |
|
||||
} |
|
||||
} else { |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "请传用户参数!" } |
|
||||
} |
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "获取用户填报信息失败" } |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
module.exports = { |
|
||||
addPlaceSecurityRecord, |
|
||||
editPlaceSecurityRecord, |
|
||||
deletePlaceSecurityRecord, |
|
||||
getPlaceSecurityRecordById, |
|
||||
getRecentlyPlaceSecurityRecordByPlaceId, |
|
||||
getPlaceSecurityRecords, |
|
||||
getApprovePlaceSecurityRecords, |
|
||||
updateType |
|
||||
}; |
|
@ -1,91 +0,0 @@ |
|||||
'use strict'; |
|
||||
|
|
||||
/** |
|
||||
* 根据用户ID获取该用户创建的所有场所信息 |
|
||||
* @param {userId-用户ID} ctx |
|
||||
*/ |
|
||||
async function getPlacesByUserId(ctx, next) { |
|
||||
try { |
|
||||
const models = ctx.fs.dc.models; |
|
||||
const { userId } = ctx.params; |
|
||||
let places = await models.Places.findAll({ where: { userId: userId }, attributes: ['id', 'name'] }); |
|
||||
ctx.status = 200; |
|
||||
ctx.body = places; |
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "查询用户场所信息失败" } |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 根据审批用户ID获取该审批用户范围内填报人创建的场所信息 |
|
||||
* @param {approveUserId-审批用户ID} ctx |
|
||||
*/ |
|
||||
async function getPlacesByApproveUserId(ctx, next) { |
|
||||
try { |
|
||||
const models = ctx.fs.dc.models; |
|
||||
const { approveUserId } = ctx.params; |
|
||||
let approveUser = await models.User.findOne({ where: { id: approveUserId } }); |
|
||||
if (approveUser) { |
|
||||
let whereCondition = {}; |
|
||||
//获取审批人管辖区域内所有用户ID
|
|
||||
const departmentRes = await models.Department.findOne({ where: { id: approveUser.departmentId } }); |
|
||||
if (departmentRes.dependence) { |
|
||||
let regionType = departmentRes.type; |
|
||||
if (regionType == 4) { |
|
||||
whereCondition.userId = approveUserId; |
|
||||
} else { |
|
||||
let attentionRegionIds = [departmentRes.id]; |
|
||||
while (attentionRegionIds.length && regionType && regionType < 4) { |
|
||||
const departmentChilds = await models.Department.findAll({ where: { dependence: { $in: attentionRegionIds } } }); |
|
||||
regionType = departmentChilds.length ? departmentChilds[0].type : null; |
|
||||
attentionRegionIds = departmentChilds.map(d => d.id); |
|
||||
} |
|
||||
let users = await models.User.findAll({ where: { departmentId: { $in: attentionRegionIds } }, attributes: ['id'] }); |
|
||||
if (users.length) { |
|
||||
let userIds = users.map(u => u.id); |
|
||||
whereCondition.userId = { $in: userIds }; |
|
||||
} else { |
|
||||
ctx.status = 200; |
|
||||
ctx.body = []; |
|
||||
return; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
let places = await models.Places.findAll({ where: whereCondition, attributes: ['id', 'name'] }); |
|
||||
ctx.status = 200; |
|
||||
ctx.body = places; |
|
||||
} else { |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "用户不存在!" } |
|
||||
} |
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "查询用户区域内场所信息失败" } |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 获取所有场所信息 |
|
||||
*/ |
|
||||
async function getAllPlaces(ctx, next) { |
|
||||
try { |
|
||||
const models = ctx.fs.dc.models; |
|
||||
let places = await models.Places.findAll(); |
|
||||
ctx.status = 200; |
|
||||
ctx.body = places; |
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "获取场所信息失败" } |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
|
|
||||
module.exports = { |
|
||||
getPlacesByUserId, |
|
||||
getPlacesByApproveUserId, |
|
||||
getAllPlaces |
|
||||
}; |
|
@ -1,140 +0,0 @@ |
|||||
const moment = require('moment') |
|
||||
|
|
||||
async function getReportRectify(ctx, next) { |
|
||||
try { |
|
||||
const models = ctx.fs.dc.models; |
|
||||
const { fs: { api: { userInfo } } } = ctx |
|
||||
const { startTime, endTime } = ctx.query |
|
||||
// 查找自己所属的区县数据 type == 2
|
|
||||
|
|
||||
let userDepRes = await models.Department.findOne({ |
|
||||
order: [['id', 'asc']], |
|
||||
where: { |
|
||||
id: userInfo.departmentId |
|
||||
}, |
|
||||
}) |
|
||||
let depRes = [] |
|
||||
if (userDepRes.dataValues.type == 1) { |
|
||||
depRes = await models.Department.findAll({ |
|
||||
where: { |
|
||||
type: 2, |
|
||||
} |
|
||||
}) |
|
||||
} else if (userDepRes.dataValues.type == 2) { |
|
||||
depRes = [userDepRes] |
|
||||
} |
|
||||
|
|
||||
let rectifyReportList = [] |
|
||||
|
|
||||
let calDay = moment(startTime).startOf('day') |
|
||||
let endDay = moment(endTime).endOf('day') |
|
||||
let today = moment().endOf('day') |
|
||||
while (calDay.isBefore(endDay) && calDay.isBefore(today)) { |
|
||||
let curDay_ = calDay.clone(); |
|
||||
for (let d of depRes) { |
|
||||
let reportCount = await models.ReportRectify.count({ |
|
||||
where: { |
|
||||
regionId: d.dataValues.id, |
|
||||
userId:{$not:null}, |
|
||||
dateTime: { |
|
||||
$between: [ |
|
||||
curDay_.startOf('day').format('YYYY-MM-DD HH:mm:ss'), |
|
||||
curDay_.endOf('day').format('YYYY-MM-DD HH:mm:ss') |
|
||||
] |
|
||||
} |
|
||||
} |
|
||||
}) |
|
||||
let detailCount = await models.ReportRectify.count({ |
|
||||
where: { |
|
||||
regionId: d.dataValues.id, |
|
||||
dateTime: { |
|
||||
$between: [ |
|
||||
curDay_.startOf('day').format('YYYY-MM-DD HH:mm:ss'), |
|
||||
curDay_.endOf('day').format('YYYY-MM-DD HH:mm:ss') |
|
||||
] |
|
||||
} |
|
||||
} |
|
||||
}) |
|
||||
if (detailCount > 0) |
|
||||
rectifyReportList.push({ |
|
||||
day: calDay.format('YYYY-MM-DD'), |
|
||||
region: d.dataValues.name, |
|
||||
name: d.dataValues.name + '合用场所安全隐患排查整治汇总表', |
|
||||
reportBool: reportCount > 0, |
|
||||
depId: d.id, |
|
||||
}) |
|
||||
} |
|
||||
|
|
||||
calDay.add(1, 'day') |
|
||||
} |
|
||||
|
|
||||
ctx.body = rectifyReportList; |
|
||||
ctx.status = 200; |
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": "获取合用场所安全隐患排查整治汇总表列表失败" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
async function getReportRectifyDetail(ctx, next) { |
|
||||
try { |
|
||||
const models = ctx.fs.dc.models; |
|
||||
const { day, depId } = ctx.query |
|
||||
|
|
||||
let searchDay = moment(day) |
|
||||
let reportRes = await models.ReportRectify.findAll({ |
|
||||
where: { |
|
||||
regionId: depId, |
|
||||
dateTime: { |
|
||||
$between: [ |
|
||||
searchDay.startOf('day').format('YYYY-MM-DD HH:mm:ss'), |
|
||||
searchDay.endOf('day').format('YYYY-MM-DD HH:mm:ss') |
|
||||
] |
|
||||
} |
|
||||
} |
|
||||
}) |
|
||||
|
|
||||
ctx.body = reportRes; |
|
||||
ctx.status = 200; |
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": "获取合用场所安全隐患排查整治汇总表详情失败" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
async function compileReportRectifyDetail(ctx, next) { |
|
||||
const t = await ctx.fs.dc.orm.transaction(); |
|
||||
try { |
|
||||
const models = ctx.fs.dc.models; |
|
||||
const data = ctx.request.body |
|
||||
for (let d of data) { |
|
||||
await models.ReportRectify.update(d, { |
|
||||
transaction: t, |
|
||||
where: { |
|
||||
id: d.id |
|
||||
} |
|
||||
}) |
|
||||
} |
|
||||
await t.commit(); |
|
||||
ctx.status = 204; |
|
||||
} catch (error) { |
|
||||
await t.rollback(); |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": "保存合用场所安全隐患排查整治汇总表详情失败" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
module.exports = { |
|
||||
getReportRectify, |
|
||||
getReportRectifyDetail, |
|
||||
compileReportRectifyDetail, |
|
||||
}; |
|
@ -1,173 +0,0 @@ |
|||||
async function getAreas (ctx, next) { |
|
||||
try { |
|
||||
const { fs: { api: { userInfo } } } = ctx |
|
||||
const models = ctx.fs.dc.models; |
|
||||
|
|
||||
let userDepRes = await models.Department.findOne({ |
|
||||
order: [['id', 'asc']], |
|
||||
where: { |
|
||||
id: userInfo.departmentId |
|
||||
}, |
|
||||
}) |
|
||||
|
|
||||
let rslt = [] |
|
||||
if (userDepRes) { |
|
||||
if (userDepRes.dataValues.type == 1) { |
|
||||
rslt = await models.Department.findAll({ |
|
||||
order: [['id', 'asc']], |
|
||||
where: { |
|
||||
type: 2 |
|
||||
} |
|
||||
}) |
|
||||
} else if (userDepRes.dataValues.type == 2) { |
|
||||
rslt = [userDepRes.dataValues] |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
ctx.body = rslt; |
|
||||
ctx.status = 200; |
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": "查询区域数据失败" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
async function addReportConfig (ctx) { |
|
||||
let errMsg = "添加报表配置失败" |
|
||||
try { |
|
||||
const data = ctx.request.body |
|
||||
const models = ctx.fs.dc.models; |
|
||||
|
|
||||
const repeatRes = await models.ReportConfigition.find({ |
|
||||
where: { |
|
||||
regionId: data.regionId, |
|
||||
reportTypeId: data.reportTypeId, |
|
||||
excuteTime: data.excuteTime, |
|
||||
} |
|
||||
}) |
|
||||
|
|
||||
if (repeatRes) { |
|
||||
errMsg = '已有相同配置信息'; |
|
||||
throw errMsg |
|
||||
} |
|
||||
|
|
||||
const res = await models.ReportConfigition.create(data) |
|
||||
|
|
||||
ctx.body = res; |
|
||||
ctx.status = 200; |
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": errMsg |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
async function getReportConfig (ctx) { |
|
||||
try { |
|
||||
const { fs: { api: { userInfo } } } = ctx |
|
||||
const models = ctx.fs.dc.models; |
|
||||
|
|
||||
// 查找自己所属的区县数据 type == 2
|
|
||||
|
|
||||
let userDepRes = await models.Department.findOne({ |
|
||||
order: [['id', 'asc']], |
|
||||
where: { |
|
||||
id: userInfo.departmentId |
|
||||
}, |
|
||||
}) |
|
||||
let depRes = [] |
|
||||
if (userDepRes.dataValues.type == 1) { |
|
||||
depRes = await models.Department.findAll({ |
|
||||
where: { |
|
||||
type: 2, |
|
||||
} |
|
||||
}) |
|
||||
} else if (userDepRes.dataValues.type == 2) { |
|
||||
depRes = [userDepRes] |
|
||||
} |
|
||||
|
|
||||
const res = await models.ReportConfigition.findAll({ |
|
||||
where: { |
|
||||
regionId: { $in: depRes.map(d => d.dataValues.id) } |
|
||||
} |
|
||||
}) |
|
||||
|
|
||||
ctx.body = res; |
|
||||
ctx.status = 200; |
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": "获取报表配置失败" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
async function editReportConfig (ctx) { |
|
||||
try { |
|
||||
const models = ctx.fs.dc.models; |
|
||||
const data = ctx.request.body |
|
||||
const { reportId } = ctx.params |
|
||||
|
|
||||
const repeatRes = await models.ReportConfigition.find({ |
|
||||
where: { |
|
||||
id: { $ne: parseInt(reportId) }, |
|
||||
regionId: data.regionId, |
|
||||
reportTypeId: data.reportTypeId, |
|
||||
excuteTime: data.excuteTime, |
|
||||
} |
|
||||
}) |
|
||||
|
|
||||
if (repeatRes) { |
|
||||
errMsg = '已有相同配置信息'; |
|
||||
throw errMsg |
|
||||
} |
|
||||
|
|
||||
await models.ReportConfigition.update(data, { |
|
||||
where: { |
|
||||
id: parseInt(reportId) |
|
||||
} |
|
||||
}) |
|
||||
|
|
||||
ctx.status = 204; |
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": "编辑报表配置失败" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
async function delReportConfig (ctx) { |
|
||||
try { |
|
||||
const models = ctx.fs.dc.models; |
|
||||
const { reportId } = ctx.params |
|
||||
await models.ReportConfigition.destroy({ |
|
||||
where: { |
|
||||
id: parseInt(reportId) |
|
||||
} |
|
||||
}) |
|
||||
|
|
||||
ctx.status = 204; |
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": "删除报表配置失败" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
module.exports = { |
|
||||
getAreas, |
|
||||
addReportConfig, |
|
||||
getReportConfig, |
|
||||
editReportConfig, |
|
||||
delReportConfig, |
|
||||
}; |
|
@ -1,87 +0,0 @@ |
|||||
const moment = require('moment'); |
|
||||
async function getReportList (ctx, next) { |
|
||||
try { |
|
||||
const { fs: { api: { userInfo } } } = ctx |
|
||||
const models = ctx.fs.dc.models; |
|
||||
const { creatTime, reportName, regionName, limit, offset } = ctx.query; |
|
||||
|
|
||||
let where = { |
|
||||
$and: { |
|
||||
reportName: { $notLike: '%填报信息导出%' } |
|
||||
} |
|
||||
}; |
|
||||
if (creatTime) { |
|
||||
where.creatTime = { |
|
||||
$gte: moment(creatTime[0]).format('YYYY-MM-DD HH:mm:ss'), |
|
||||
$lte: moment(creatTime[1]).format('YYYY-MM-DD HH:mm:ss') |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
if (reportName) { |
|
||||
where.reportName = { |
|
||||
$iLike: `%${reportName}%` |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
if (regionName && regionName != -1) { |
|
||||
where.regionId = regionName |
|
||||
} else { |
|
||||
let userDepRes = await models.Department.findOne({ |
|
||||
order: [['id', 'asc']], |
|
||||
where: { |
|
||||
id: userInfo.departmentId |
|
||||
}, |
|
||||
}) |
|
||||
|
|
||||
let userDep = [] |
|
||||
if (userDepRes) { |
|
||||
if (userDepRes.dataValues.type == 1) { |
|
||||
userDep = await models.Department.findAll({ |
|
||||
order: [['id', 'asc']], |
|
||||
where: { |
|
||||
type: 2 |
|
||||
} |
|
||||
}) |
|
||||
} else if (userDepRes.dataValues.type == 2) { |
|
||||
userDep = [userDepRes] |
|
||||
} |
|
||||
} |
|
||||
where.regionId = { $in: userDep.map(u => u.dataValues.id) } |
|
||||
} |
|
||||
|
|
||||
let findObj = { |
|
||||
include: [{ |
|
||||
model: models.ReportType, |
|
||||
attributes: ['name'] |
|
||||
}, { |
|
||||
model: models.Department, |
|
||||
attributes: ['name'] |
|
||||
}], |
|
||||
where: where, |
|
||||
order: [['creatTime', 'desc']], |
|
||||
}; |
|
||||
|
|
||||
if (Number(limit) > 0 && Number(offset) >= 0) { |
|
||||
findObj.limit = Number(limit); |
|
||||
findObj.offset = Number(offset); |
|
||||
} |
|
||||
|
|
||||
const res = await models.ReportDownManage.findAndCountAll(findObj) |
|
||||
|
|
||||
ctx.body = res; |
|
||||
ctx.status = 200; |
|
||||
|
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": "查询报表数据失败" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
|
|
||||
|
|
||||
module.exports = { |
|
||||
getReportList, |
|
||||
}; |
|
@ -1,342 +0,0 @@ |
|||||
const moment = require('moment'); |
|
||||
const { QueryTypes } = require('sequelize'); |
|
||||
|
|
||||
async function reportDailyStatistic (ctx, next) { |
|
||||
const rslt = { |
|
||||
added: 0, //今日新增
|
|
||||
checked: 0, //今日已审填报
|
|
||||
unChecked: 0, //未审填报
|
|
||||
danger_place: 0, //隐患场所总数
|
|
||||
history: 0, //历史填报
|
|
||||
date: {} |
|
||||
}; |
|
||||
try { |
|
||||
const models = ctx.fs.dc.models; |
|
||||
const curDay_ = moment(); |
|
||||
const sequelize = ctx.fs.dc.orm; |
|
||||
|
|
||||
|
|
||||
rslt.added = await models.UserPlaceSecurityRecord.count({ |
|
||||
where: { |
|
||||
time: { |
|
||||
$between: [ |
|
||||
curDay_.startOf('day').format('YYYY-MM-DD HH:mm:ss'), |
|
||||
curDay_.endOf('day').format('YYYY-MM-DD HH:mm:ss') |
|
||||
] |
|
||||
} |
|
||||
} |
|
||||
}) |
|
||||
rslt.unChecked = await models.UserPlaceSecurityRecord.count({ |
|
||||
where: { |
|
||||
$or: [ |
|
||||
{ |
|
||||
audit2ManId: { $eq: null }, |
|
||||
rejectManId: { $eq: null }, |
|
||||
}, |
|
||||
// {
|
|
||||
// audit2ManId: { $ne: null },
|
|
||||
// rejectManId: { $eq: null },
|
|
||||
// },
|
|
||||
{ |
|
||||
audit1ManId: { $eq: null }, |
|
||||
rejectManId: { $eq: null }, |
|
||||
} |
|
||||
] |
|
||||
} |
|
||||
}); |
|
||||
|
|
||||
rslt.checked = await models.UserPlaceSecurityRecord.count({ |
|
||||
where: { |
|
||||
$or: [ |
|
||||
{ |
|
||||
audit2ManId: { $ne: null }, |
|
||||
audit2ManIdTime: { |
|
||||
$between: [ |
|
||||
curDay_.startOf('day').format('YYYY-MM-DD HH:mm:ss'), |
|
||||
curDay_.endOf('day').format('YYYY-MM-DD HH:mm:ss') |
|
||||
] |
|
||||
} |
|
||||
}, |
|
||||
{ |
|
||||
rejectManId: { $ne: null }, |
|
||||
rejectTime: { |
|
||||
$between: [ |
|
||||
curDay_.startOf('day').format('YYYY-MM-DD HH:mm:ss'), |
|
||||
curDay_.endOf('day').format('YYYY-MM-DD HH:mm:ss') |
|
||||
] |
|
||||
} |
|
||||
} |
|
||||
] |
|
||||
} |
|
||||
}); |
|
||||
|
|
||||
const list = await sequelize.query(`SELECT count(*) AS "count" FROM "user_placeSecurityRecord" AS "userPlaceSecurityRecord"
|
|
||||
WHERE ("userPlaceSecurityRecord"."correctiveAction" IS NOT NULL AND "userPlaceSecurityRecord"."punishment" IS NOT NULL) AND "audit2ManId" IS NOT NULL GROUP BY "placeId";`, { type: QueryTypes.SELECT })
|
|
||||
rslt.danger_place = list.length; |
|
||||
|
|
||||
rslt.history = await models.UserPlaceSecurityRecord.count(); |
|
||||
|
|
||||
// seven days data
|
|
||||
|
|
||||
const startDay = moment().startOf('day'); |
|
||||
for (let d = 1; d <= 7; d++) { |
|
||||
const START_DAY = moment(startDay).add(-d, 'day'); |
|
||||
const date = START_DAY.format('YYYY-MM-DD'); |
|
||||
const num = await models.UserPlaceSecurityRecord.count({ |
|
||||
where: { |
|
||||
time: { |
|
||||
$between: [ |
|
||||
START_DAY.startOf('day').format('YYYY-MM-DD HH:mm:ss'), |
|
||||
START_DAY.endOf('day').format('YYYY-MM-DD HH:mm:ss') |
|
||||
] |
|
||||
} |
|
||||
} |
|
||||
}) |
|
||||
|
|
||||
rslt.date[date] = num; |
|
||||
} |
|
||||
|
|
||||
ctx.status = 200; |
|
||||
ctx.body = rslt; |
|
||||
|
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": "获取数据中台数据失败" |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
} |
|
||||
|
|
||||
async function reportAreaStatistic (ctx, next) { |
|
||||
let rslt = [], relationRegion = {}; |
|
||||
try { |
|
||||
const { startDate, endDate } = ctx.query; |
|
||||
const models = ctx.fs.dc.models; |
|
||||
const sequelize = ctx.fs.dc.orm; |
|
||||
|
|
||||
const list = await sequelize.query(`select "regionId", count("regionId") from "user_placeSecurityRecord" WHERE "time" BETWEEN '${moment(startDate).startOf('day').format('YYYY-MM-DD HH:mm:ss')}' AND '${moment(endDate).endOf('day').format('YYYY-MM-DD HH:mm:ss')}' AND "hiddenDangerItem12" IS NOT NULL GROUP BY "regionId" `, { type: QueryTypes.SELECT }) |
|
||||
// let regionIds = []
|
|
||||
// list.map(item => {
|
|
||||
// if (item.regionId && item.regionId != '') {
|
|
||||
// regionIds.push(item.regionId);
|
|
||||
// }
|
|
||||
// });
|
|
||||
|
|
||||
// const depts = await sequelize.query(`SELECT "id", "name", "type", "dependence" FROM "department" AS "department" WHERE "department"."id" IN (${regionIds.toString()});`, { type: QueryTypes.SELECT });
|
|
||||
const deptRelation = await sequelize.query(`SELECT "id", "name", "type", "dependence" FROM "department" AS "department";`, { type: QueryTypes.SELECT }); |
|
||||
const quArea = deptRelation.filter(f => f.type == 2); |
|
||||
quArea.map(item => { |
|
||||
relationRegion[item.id] = {}; |
|
||||
const xiang = deptRelation.filter(f => f.type == 3 && f.dependence == item.id).map(item => item.id); |
|
||||
|
|
||||
const cun = deptRelation.filter(f => f.type == 4 && xiang.some(ss => ss == f.dependence)).map(item => item.id); |
|
||||
relationRegion[item.id]['regionIds'] = [item.id, ...xiang, ...cun]; |
|
||||
relationRegion[item.id]['name'] = item.name; |
|
||||
}) |
|
||||
Object.keys(relationRegion).map(key => { |
|
||||
const { regionIds, name } = relationRegion[key]; |
|
||||
let data = list.filter(item => regionIds.some(id => id == item.regionId)) |
|
||||
let obj = {}; |
|
||||
obj['name'] = name; |
|
||||
obj['count'] = 0; |
|
||||
obj['regionId'] = key; |
|
||||
data.map(item => { |
|
||||
obj['count'] += Number(item.count) |
|
||||
}) |
|
||||
rslt.push(obj) |
|
||||
}) |
|
||||
|
|
||||
ctx.status = 200; |
|
||||
ctx.body = rslt; |
|
||||
|
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": "获取数据中台数据失败" |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
} |
|
||||
|
|
||||
async function dangerAreaQuery (ctx, next) { |
|
||||
const { userId } = ctx.fs.api |
|
||||
let rslt = { rows: [], count: 0, ids: [] }, relationRegion = {}; |
|
||||
try { |
|
||||
const { startDate, endDate, placeType, regionId, placeName, offset = 0, limit = 20 } = ctx.query; |
|
||||
const models = ctx.fs.dc.models; |
|
||||
const sequelize = ctx.fs.dc.orm; |
|
||||
|
|
||||
let options = { |
|
||||
audit2ManId: { $ne: null }, |
|
||||
}, places = [], dep4Ids = []; |
|
||||
if (startDate && endDate) { |
|
||||
options.time = { |
|
||||
$between: [ |
|
||||
moment(startDate).startOf('day').format('YYYY-MM-DD HH:mm:ss'), |
|
||||
moment(endDate).endOf('day').format('YYYY-MM-DD HH:mm:ss') |
|
||||
] |
|
||||
} |
|
||||
} |
|
||||
if (placeName) { |
|
||||
places = await models.Places.findAll({ |
|
||||
where: { |
|
||||
name: { $like: `%${placeName}%` } |
|
||||
} |
|
||||
}) |
|
||||
options.placeId = { |
|
||||
$in: places.map(item => item.id) |
|
||||
} |
|
||||
} else { |
|
||||
places = await models.Places.findAll() |
|
||||
} |
|
||||
|
|
||||
if (regionId && regionId != -1) { |
|
||||
let idList = []; |
|
||||
const curDeptRelation = await sequelize.query(`SELECT "id", "name", "type", "dependence" FROM "department" WHERE "id" in (${regionId});`, { type: QueryTypes.SELECT }); |
|
||||
|
|
||||
const type = curDeptRelation[0].type |
|
||||
if (type != 1) { |
|
||||
const deptRelation = await sequelize.query(`SELECT "id", "name", "type", "dependence" FROM "department" AS "department";`, { type: QueryTypes.SELECT }); |
|
||||
const quArea = deptRelation.filter(f => f.type == 2); |
|
||||
quArea.map(item => { |
|
||||
relationRegion[item.id] = {}; |
|
||||
deptRelation.filter(f => f.type == 3 && f.dependence == item.id).map(x => { |
|
||||
relationRegion[item.id][x.id] = deptRelation.filter(f => f.type == 4 && x.id == f.dependence).map(cun => cun.id); |
|
||||
}); |
|
||||
}) |
|
||||
if (type == 2) { |
|
||||
const quList = [regionId]; |
|
||||
const xiangList = Object.keys(relationRegion[regionId]) |
|
||||
let cunList = xiangList.map(key => { |
|
||||
return relationRegion[regionId][key] |
|
||||
}) |
|
||||
idList = quList.concat(xiangList).concat(cunList.flat(Infinity)) |
|
||||
|
|
||||
options.regionId = { $in: idList }; |
|
||||
} |
|
||||
if (type == 3) { |
|
||||
Object.keys(relationRegion).map(quKey => { |
|
||||
Object.keys(relationRegion[quKey]).map(xiangKey => { |
|
||||
if (xiangKey == regionId) { |
|
||||
const xiangList = [xiangKey]; |
|
||||
const cunList = relationRegion[quKey][xiangKey] |
|
||||
idList = xiangList.concat(cunList); |
|
||||
} |
|
||||
}) |
|
||||
}) |
|
||||
dep4Ids = idList |
|
||||
} |
|
||||
if (type == 4) { |
|
||||
const curUser = await models.User.findOne({ where: { id: userId } }) |
|
||||
const corUserDepId = curUser.departmentId |
|
||||
const corUseUserDepRes = await models.Department.findOne({ where: { id: corUserDepId } }) |
|
||||
if(corUseUserDepRes.type < 4){ |
|
||||
dep4Ids = [regionId] |
|
||||
} else { |
|
||||
options.userId = userId |
|
||||
} |
|
||||
// idList = [regionId]
|
|
||||
// options.userId = userId
|
|
||||
} |
|
||||
// options.departmentId = { $in: idList };
|
|
||||
} |
|
||||
} |
|
||||
|
|
||||
if (placeType != null && placeType != -1) { |
|
||||
|
|
||||
if (placeType == 0) { |
|
||||
options = Object.assign({}, options, { |
|
||||
$or: [ |
|
||||
{ |
|
||||
correctiveAction: { $ne: null }, |
|
||||
}, |
|
||||
{ |
|
||||
punishment: { $ne: null }, |
|
||||
} |
|
||||
] |
|
||||
}) |
|
||||
} |
|
||||
|
|
||||
if (placeType == 1) |
|
||||
options = Object.assign({}, options, { |
|
||||
$or: [ |
|
||||
{ |
|
||||
correctiveAction: { $eq: null }, |
|
||||
}, |
|
||||
{ |
|
||||
punishment: { $eq: null }, |
|
||||
} |
|
||||
], |
|
||||
hiddenDangerItem12: { |
|
||||
$ne: null |
|
||||
} |
|
||||
}) |
|
||||
|
|
||||
if (placeType == 2) |
|
||||
options.hiddenDangerItem12 = { |
|
||||
$eq: null |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
let findOption = { |
|
||||
where: options, |
|
||||
offset: offset, |
|
||||
limit: limit, |
|
||||
order: [['time', 'DESC']], |
|
||||
} |
|
||||
|
|
||||
if (dep4Ids.length) { |
|
||||
findOption.include = [{ |
|
||||
required: true, |
|
||||
model: models.User, |
|
||||
as: 'user', |
|
||||
where: { |
|
||||
departmentId: { $in: dep4Ids } |
|
||||
} |
|
||||
}] |
|
||||
} |
|
||||
|
|
||||
const list = await models.UserPlaceSecurityRecord.findAll(findOption) |
|
||||
|
|
||||
for (let item of list) { |
|
||||
const { name } = places.filter(p => p.id == item.placeId)[0] || {}; |
|
||||
const checkAreaName = await sequelize.query(`SELECT "dpt"."name" FROM "department" as "dpt" WHERE "dpt"."id" in (SELECT "department_id" FROM "user" WHERE "id" = ${item.userId} );`, { type: QueryTypes.SELECT }) |
|
||||
const checkUser = await sequelize.query(`SELECT "name", "phone" FROM "user" WHERE "id" = ${item.userId}`, { type: QueryTypes.SELECT }) |
|
||||
rslt.rows.push(Object.assign({}, item.dataValues, { placeName: name, checkAreaName: (checkAreaName[0] || {}).name || '', checkUserName: (checkUser[0] || {}).name || '', checkUserPhone: (checkUser[0] || {}).phone })) |
|
||||
} |
|
||||
|
|
||||
delete findOption.offset |
|
||||
delete findOption.limit |
|
||||
delete findOption.order |
|
||||
findOption.attributes = ['id'] |
|
||||
const dataAll = await models.UserPlaceSecurityRecord.findAll( |
|
||||
findOption |
|
||||
// {
|
|
||||
// attributes: ['id'],
|
|
||||
// where: options,
|
|
||||
// }
|
|
||||
); |
|
||||
rslt.count = dataAll.length; |
|
||||
rslt.ids = dataAll.map(item => item.dataValues.id); |
|
||||
|
|
||||
ctx.status = 200; |
|
||||
ctx.body = rslt; |
|
||||
|
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": "获取数据中台数据失败" |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
} |
|
||||
|
|
||||
module.exports = { |
|
||||
reportDailyStatistic, |
|
||||
reportAreaStatistic, |
|
||||
dangerAreaQuery, |
|
||||
} |
|
@ -1,483 +0,0 @@ |
|||||
'use strict'; |
|
||||
const moment = require('moment'); |
|
||||
//获取每日汇总
|
|
||||
async function getDayReport(ctx) { |
|
||||
try { |
|
||||
const { date, areaId } = ctx.query; |
|
||||
const models = ctx.fs.dc.models; |
|
||||
let range = [moment(date).startOf('day').format("YYYY-MM-DD HH:mm:ss"), moment(date).endOf('day').format("YYYY-MM-DD HH:mm:ss")] |
|
||||
let rslt = await models.ReportCollection.findAll({ |
|
||||
where: { |
|
||||
dateTime: { |
|
||||
$between: range |
|
||||
}, |
|
||||
regionId: areaId |
|
||||
}, |
|
||||
include: [{ |
|
||||
required: true, |
|
||||
model: models.User, |
|
||||
attributes: ['name', 'username', 'phone'] |
|
||||
}, { |
|
||||
required: false, |
|
||||
model: models.Department, |
|
||||
attributes: ['name'] |
|
||||
}] |
|
||||
}); |
|
||||
ctx.status = 200; |
|
||||
ctx.body = rslt; |
|
||||
} catch (error) { |
|
||||
console.log(error) |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": "获取全市每日汇总表失败" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
//获取排查整治汇总表
|
|
||||
async function getGovern(ctx) { |
|
||||
try { |
|
||||
const { date, areaId } = ctx.query; |
|
||||
const models = ctx.fs.dc.models; |
|
||||
let range = [moment(date).startOf('day').format("YYYY-MM-DD HH:mm:ss"), moment(date).endOf('day').format("YYYY-MM-DD HH:mm:ss")] |
|
||||
let rslt = await models.ReportRectify.findAndCountAll({ |
|
||||
where: { |
|
||||
dateTime: { |
|
||||
$between: range |
|
||||
}, |
|
||||
regionId: areaId |
|
||||
}, |
|
||||
include: [{ |
|
||||
required: true, |
|
||||
model: models.User, |
|
||||
attributes: ['id', 'name', 'username', 'phone'] |
|
||||
}, { |
|
||||
required: false, |
|
||||
model: models.Department, |
|
||||
attributes: ['id', 'name'] |
|
||||
}], |
|
||||
limit: 1 |
|
||||
}); |
|
||||
ctx.status = 200; |
|
||||
let obj = { count: 0 } |
|
||||
if (rslt.count > 0) { |
|
||||
obj.area = rslt.rows[0].department; |
|
||||
obj.dateTime = rslt.rows[0].dateTime; |
|
||||
obj.count = rslt.count; |
|
||||
obj.user = rslt.rows[0].user; |
|
||||
obj.isAudit = rslt.rows[0].isAudit |
|
||||
} |
|
||||
ctx.body = obj; |
|
||||
} catch (error) { |
|
||||
console.log(error) |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": "获取排查整治汇总表失败" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
//获取排查整治汇总详情
|
|
||||
async function getGovernDetail(ctx) { |
|
||||
try { |
|
||||
const { name, date, areaId, pageSize, pageIndex } = ctx.query; |
|
||||
const models = ctx.fs.dc.models; |
|
||||
let range = [moment(date).startOf('day').format("YYYY-MM-DD HH:mm:ss"), moment(date).endOf('day').format("YYYY-MM-DD HH:mm:ss")] |
|
||||
let whereObj = { |
|
||||
dateTime: { |
|
||||
$between: range |
|
||||
}, |
|
||||
regionId: areaId |
|
||||
}; |
|
||||
if (name) { |
|
||||
whereObj.name = { $like: `%${name}%` } |
|
||||
} |
|
||||
let findObj = { |
|
||||
where: whereObj, |
|
||||
include: [{ |
|
||||
required: true, |
|
||||
model: models.User, |
|
||||
attributes: ['id', 'name', 'username', 'phone'] |
|
||||
}, { |
|
||||
required: false, |
|
||||
model: models.Department, |
|
||||
attributes: ['id', 'name'] |
|
||||
}], |
|
||||
order: [['dateTime', 'desc']] |
|
||||
}; |
|
||||
if (Number(pageSize) > 0 && Number(pageIndex) >= 0) { |
|
||||
findObj.limit = Number(pageSize); |
|
||||
findObj.offset = Number(pageIndex) * Number(pageSize); |
|
||||
} |
|
||||
let rslt = await models.ReportRectify.findAndCountAll(findObj); |
|
||||
ctx.status = 200; |
|
||||
ctx.body = rslt; |
|
||||
} catch (error) { |
|
||||
console.log(error) |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": "获取排查整治汇总详情失败" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 确认整治汇总场所数据 |
|
||||
* body { |
|
||||
* governDetailIds:'1,2' |
|
||||
* } |
|
||||
*/ |
|
||||
async function operateGovern(ctx, next) { |
|
||||
try { |
|
||||
const data = ctx.request.body; |
|
||||
const models = ctx.fs.dc.models; |
|
||||
if (data.governDetailIds && data.governDetailIds.length > 0) { |
|
||||
await models.ReportRectify.update({ |
|
||||
isAudit: true |
|
||||
}, { where: { id: { $in: data.governDetailIds.split(',') } } }); |
|
||||
|
|
||||
ctx.body = { "message": "确认整治汇总下场所数据成功" }; |
|
||||
ctx.status = 200; |
|
||||
} else { |
|
||||
ctx.body = { "message": "确认参数有误" }; |
|
||||
ctx.status = 400; |
|
||||
} |
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "确认整治汇总下场所数据失败" } |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
//获取安全隐患排查详细数据列表
|
|
||||
async function getSecurityRiskList(ctx) { |
|
||||
try { |
|
||||
const { name, date, areaId, pageSize, pageIndex } = ctx.query; |
|
||||
const models = ctx.fs.dc.models; |
|
||||
|
|
||||
let whereObj = {}; |
|
||||
let wheres = { |
|
||||
audit1ManId: { $not: null }, |
|
||||
audit2ManId: { $not: null } |
|
||||
} |
|
||||
if (areaId) { |
|
||||
wheres.regionId = areaId; |
|
||||
} |
|
||||
if (name) |
|
||||
whereObj = { name: { $like: `%${name}%` } } |
|
||||
let findObj = { |
|
||||
attributes: ['id', 'time', 'placeId', 'userId'], |
|
||||
where: |
|
||||
// time: {
|
|
||||
// $between: range
|
|
||||
// },
|
|
||||
// regionId: areaId,
|
|
||||
// audit1ManId: { $not: null },
|
|
||||
// audit2ManId: { $not: null }
|
|
||||
wheres |
|
||||
, |
|
||||
include: [{ |
|
||||
required: true, |
|
||||
model: models.Places, |
|
||||
attributes: ['id', 'name'], |
|
||||
where: whereObj |
|
||||
}, { |
|
||||
required: true, |
|
||||
model: models.User, |
|
||||
as: 'user', |
|
||||
attributes: ['id', 'name', 'username', 'phone'] |
|
||||
}], |
|
||||
order: [['time', 'desc']] |
|
||||
}; |
|
||||
if (date) { |
|
||||
let range = [moment(date).startOf('day').format("YYYY-MM-DD HH:mm:ss"), moment(date).endOf('day').format("YYYY-MM-DD HH:mm:ss")] |
|
||||
findObj.where.time = { |
|
||||
$between: range |
|
||||
} |
|
||||
} |
|
||||
if (areaId) { |
|
||||
findObj.where.regionId = areaId |
|
||||
} |
|
||||
|
|
||||
if (Number(pageSize) > 0 && Number(pageIndex) >= 0) { |
|
||||
findObj.limit = Number(pageSize); |
|
||||
findObj.offset = Number(pageIndex) * Number(pageSize); |
|
||||
} |
|
||||
let rslt = await models.UserPlaceSecurityRecord.findAndCountAll(findObj); |
|
||||
ctx.status = 200; |
|
||||
ctx.body = rslt; |
|
||||
} catch (error) { |
|
||||
console.log(error) |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": "获取安全隐患排查详细数据列表失败" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
|
|
||||
//获取待处理数量
|
|
||||
async function getHomeCount(ctx) { |
|
||||
try { |
|
||||
let { userId, departmentId, userRegionType } = ctx.params; |
|
||||
const models = ctx.fs.dc.models; |
|
||||
const departmentRes = await models.Department.findOne({ where: { id: departmentId } }); |
|
||||
if (userRegionType != 2 && userRegionType != 3 && !departmentRes) { |
|
||||
ctx.body = { "message": "请求参数有误" }; |
|
||||
ctx.status = 400; |
|
||||
} else { |
|
||||
//获取当前用户数据范围管辖区域内所有用户ID
|
|
||||
let attentionRegionIds = [departmentRes.id]; |
|
||||
let regionType = departmentRes.type; |
|
||||
while (attentionRegionIds.length && regionType && regionType < 4) { |
|
||||
const departmentChilds = await models.Department.findAll({ where: { dependence: { $in: attentionRegionIds } } }); |
|
||||
regionType = departmentChilds.length ? departmentChilds[0].type : null; |
|
||||
attentionRegionIds = departmentChilds.map(d => d.id); |
|
||||
} |
|
||||
let users = await models.User.findAll({ where: { departmentId: { $in: attentionRegionIds } }, attributes: ['id'] }); |
|
||||
let userIds = users.map(u => u.id); |
|
||||
|
|
||||
let rslt = { recordCount: 0, reportCount: null } |
|
||||
if (userIds.length) { |
|
||||
let whereObj = { |
|
||||
userId: { $in: userIds }, |
|
||||
rejectManId: null, |
|
||||
isDraft: false |
|
||||
} |
|
||||
if (userRegionType == 3) { |
|
||||
whereObj.audit1ManId = null; |
|
||||
} else { |
|
||||
whereObj.audit1ManId = { $not: null }; |
|
||||
whereObj.audit2ManId = null; |
|
||||
} |
|
||||
let recordCount = await models.UserPlaceSecurityRecord.count({ |
|
||||
where: whereObj |
|
||||
}); |
|
||||
rslt.recordCount = recordCount; |
|
||||
if (userRegionType == 2) { |
|
||||
let reportCount = await models.ReportCollection.count({ |
|
||||
where: { |
|
||||
userId: null, |
|
||||
regionId: departmentId |
|
||||
} |
|
||||
}); |
|
||||
let reportRectify = await models.ReportRectify.findAll({ |
|
||||
where: { |
|
||||
userId: null, |
|
||||
regionId: departmentId |
|
||||
} |
|
||||
}); |
|
||||
let dateArr = []; |
|
||||
reportRectify.map(r => { |
|
||||
let date = moment(r.dateTime).format("YYYY-MM-DD"); |
|
||||
if (!dateArr.includes(date)) { |
|
||||
dateArr.push(date) |
|
||||
} |
|
||||
}) |
|
||||
rslt.reportCount = reportCount + dateArr.length; |
|
||||
} |
|
||||
} |
|
||||
ctx.status = 200; |
|
||||
ctx.body = rslt; |
|
||||
} |
|
||||
} catch (error) { |
|
||||
console.log(error) |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { |
|
||||
"message": "获取待处理数量失败" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
//每日汇总表上报
|
|
||||
async function operateReport(ctx, next) { |
|
||||
try { |
|
||||
let { id, userId } = ctx.params; |
|
||||
const models = ctx.fs.dc.models; |
|
||||
await models.ReportCollection.update({ |
|
||||
userId: userId |
|
||||
}, { where: { id: id } }); |
|
||||
|
|
||||
ctx.body = { "message": "每日汇总表上报成功" }; |
|
||||
ctx.status = 200; |
|
||||
|
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "每日汇总表上报失败" } |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 根据筛选条件获取用户审核报表信息 |
|
||||
* @query { |
|
||||
* approveUserId-审批人ID |
|
||||
* reportType-报表类型(1-整治汇总表,2-每日汇总表,null-整治汇总表+每日汇总表) |
|
||||
* timeRange-时间范围 |
|
||||
* regionId-区域ID |
|
||||
* state-审批状态 |
|
||||
* pageIndex-页码 |
|
||||
* pageSize-页宽 |
|
||||
* } ctx |
|
||||
*/ |
|
||||
async function getApproveReportCollections(ctx, next) { |
|
||||
try { |
|
||||
const models = ctx.fs.dc.models; |
|
||||
const { approveUserId, reportType, timeRange, regionId, state, pageIndex, pageSize } = ctx.query; |
|
||||
let whereCondition = {}; |
|
||||
if (approveUserId) { |
|
||||
let approveUser = await models.User.findOne({ where: { id: approveUserId } }); |
|
||||
if (approveUser) { |
|
||||
//市级用户可以看到所有报表数据
|
|
||||
const departmentRes = await models.Department.findOne({ where: { id: approveUser.departmentId } }); |
|
||||
if (departmentRes.dependence) { |
|
||||
if (departmentRes.type = 2) { |
|
||||
//区县人员只能看见自己区县下的报表信息
|
|
||||
whereCondition.regionId = departmentRes.id; |
|
||||
} else { |
|
||||
//其它层级无报表信息
|
|
||||
ctx.status = 200; |
|
||||
ctx.body = { |
|
||||
"count": 0, |
|
||||
"rows": [] |
|
||||
}; |
|
||||
return; |
|
||||
} |
|
||||
} |
|
||||
if (regionId) { |
|
||||
let region = await models.Department.findOne({ where: { id: regionId } }); |
|
||||
if (region) { |
|
||||
if (whereCondition.regionId && whereCondition.regionId != regionId) { |
|
||||
//区县人员只能看见自己区县下的报表信息
|
|
||||
ctx.status = 200; |
|
||||
ctx.body = { |
|
||||
"count": 0, |
|
||||
"rows": [] |
|
||||
}; |
|
||||
return; |
|
||||
} else { |
|
||||
whereCondition.regionId = regionId; |
|
||||
} |
|
||||
} else { |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "区域不存在!" } |
|
||||
return; |
|
||||
} |
|
||||
} |
|
||||
let times = timeRange; |
|
||||
if (timeRange && timeRange.indexOf(',')) { times = timeRange.split(',') } |
|
||||
if (times && times.length > 0) { |
|
||||
const len = times.length; |
|
||||
whereCondition.dateTime = { |
|
||||
$between: [ |
|
||||
moment(times[0]).startOf('day').format('YYYY-MM-DD HH:mm:ss'), |
|
||||
moment(times[len - 1]).endOf('day').format('YYYY-MM-DD HH:mm:ss') |
|
||||
] |
|
||||
}; |
|
||||
} |
|
||||
switch (Number(state)) { |
|
||||
case 1: //待审批:无审核人员
|
|
||||
whereCondition.userId = null; |
|
||||
break; |
|
||||
case 2://已审批:有审核人员
|
|
||||
whereCondition.userId = { $not: null }; |
|
||||
break; |
|
||||
default: break; |
|
||||
} |
|
||||
let findObj = { |
|
||||
where: whereCondition, |
|
||||
order: [["id", "desc"]], |
|
||||
include: [{ |
|
||||
model: models.User, |
|
||||
attributes: ['name', 'username', 'phone'] |
|
||||
}, { |
|
||||
model: models.Department, |
|
||||
attributes: ['id', 'name'] |
|
||||
}] |
|
||||
}; |
|
||||
if (Number(pageSize) > 0 && Number(pageIndex) >= 0) { |
|
||||
findObj.limit = Number(pageSize); |
|
||||
findObj.offset = Number(pageIndex) * Number(pageSize); |
|
||||
} |
|
||||
switch (Number(reportType)) { |
|
||||
case 1: //整治汇总表
|
|
||||
ctx.body = await models.ReportRectify.findAndCountAll(findObj); |
|
||||
break; |
|
||||
case 2://每日汇总表
|
|
||||
ctx.body = await models.ReportCollection.findAndCountAll(findObj); |
|
||||
break; |
|
||||
default: //整治汇总表+每日汇总表
|
|
||||
const rectifies = await models.ReportRectify.findAndCountAll(findObj); |
|
||||
const collections = await models.ReportCollection.findAndCountAll(findObj); |
|
||||
ctx.body = { |
|
||||
"totalCount": rectifies.count + collections.count, |
|
||||
"totalRows": { |
|
||||
"rectify": rectifies, |
|
||||
"collection": collections |
|
||||
} |
|
||||
}; |
|
||||
break; |
|
||||
} |
|
||||
ctx.status = 200; |
|
||||
} else { |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "用户不存在!" } |
|
||||
} |
|
||||
} else { |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "请传用户参数!" } |
|
||||
} |
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "获取审批报表信息失败" } |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 上报排查整治汇总表 |
|
||||
* query{ |
|
||||
* userId:1,//上报用户
|
|
||||
* } |
|
||||
* body { |
|
||||
* governDetailIds:'1,2' //排查整治汇总返回数据id字符串
|
|
||||
* } |
|
||||
*/ |
|
||||
async function operateGovernReport(ctx, next) { |
|
||||
try { |
|
||||
let { userId } = ctx.params; |
|
||||
const data = ctx.request.body; |
|
||||
const models = ctx.fs.dc.models; |
|
||||
if (data.governDetailIds && data.governDetailIds.length > 0) { |
|
||||
await models.ReportRectify.update({ |
|
||||
userId: userId |
|
||||
}, { where: { id: { $in: data.governDetailIds.split(',') } } }); |
|
||||
|
|
||||
ctx.body = { "message": "上报排查整治汇总表成功" }; |
|
||||
ctx.status = 200; |
|
||||
} else { |
|
||||
ctx.body = { "message": "上报排查整治汇总表参数有误" }; |
|
||||
ctx.status = 400; |
|
||||
} |
|
||||
} catch (error) { |
|
||||
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
|
||||
ctx.status = 400; |
|
||||
ctx.body = { "message": "上报排查整治汇总表失败" } |
|
||||
} |
|
||||
} |
|
||||
module.exports = { |
|
||||
getDayReport, |
|
||||
getGovern, |
|
||||
getGovernDetail, |
|
||||
operateGovern, |
|
||||
getSecurityRiskList, |
|
||||
getHomeCount, |
|
||||
operateReport, |
|
||||
getApproveReportCollections, |
|
||||
operateGovernReport |
|
||||
}; |
|
@ -1,61 +0,0 @@ |
|||||
/* eslint-disable*/ |
|
||||
'use strict'; |
|
||||
|
|
||||
module.exports = dc => { |
|
||||
const DataTypes = dc.ORM; |
|
||||
const sequelize = dc.orm; |
|
||||
const Places = sequelize.define("places", { |
|
||||
id: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: null, |
|
||||
primaryKey: true, |
|
||||
field: "id", |
|
||||
autoIncrement: true, |
|
||||
unique: "places_id_uindex" |
|
||||
}, |
|
||||
name: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: "场所名称", |
|
||||
primaryKey: false, |
|
||||
field: "name", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
describe: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "描述", |
|
||||
primaryKey: false, |
|
||||
field: "describe", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
userId: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: null, |
|
||||
primaryKey: false, |
|
||||
field: "userId", |
|
||||
autoIncrement: false, |
|
||||
references: { |
|
||||
key: "id", |
|
||||
model: "user" |
|
||||
} |
|
||||
}, |
|
||||
}, { |
|
||||
tableName: "places", |
|
||||
comment: "", |
|
||||
indexes: [] |
|
||||
}); |
|
||||
dc.models.Places = Places; |
|
||||
|
|
||||
const User = dc.models.User; |
|
||||
Places.belongsTo(User, { foreignKey: 'userId', targetKey: 'id' }); |
|
||||
User.hasMany(Places, { foreignKey: 'userId', sourceKey: 'id' }); |
|
||||
|
|
||||
return Places; |
|
||||
}; |
|
@ -1,47 +0,0 @@ |
|||||
/* eslint-disable*/ |
|
||||
'use strict'; |
|
||||
|
|
||||
module.exports = dc => { |
|
||||
const DataTypes = dc.ORM; |
|
||||
const sequelize = dc.orm; |
|
||||
const Post = sequelize.define("post", { |
|
||||
id: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: null, |
|
||||
primaryKey: true, |
|
||||
field: "id", |
|
||||
autoIncrement: true, |
|
||||
unique: "post_id_uindex" |
|
||||
}, |
|
||||
name: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: null, |
|
||||
primaryKey: false, |
|
||||
field: "name", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
departmentId: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: null, |
|
||||
primaryKey: false, |
|
||||
field: "department_id", |
|
||||
autoIncrement: false, |
|
||||
references: { |
|
||||
key: "id", |
|
||||
model: "department" |
|
||||
} |
|
||||
} |
|
||||
}, { |
|
||||
tableName: "post", |
|
||||
comment: "", |
|
||||
indexes: [] |
|
||||
}); |
|
||||
dc.models.Post = Post; |
|
||||
return Post; |
|
||||
}; |
|
@ -1,51 +0,0 @@ |
|||||
/* eslint-disable*/ |
|
||||
'use strict'; |
|
||||
|
|
||||
module.exports = dc => { |
|
||||
const DataTypes = dc.ORM; |
|
||||
const sequelize = dc.orm; |
|
||||
const PostResource = sequelize.define("postResource", { |
|
||||
id: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: null, |
|
||||
primaryKey: true, |
|
||||
field: "id", |
|
||||
autoIncrement: true, |
|
||||
unique: "post_resource_id_uindex" |
|
||||
}, |
|
||||
postId: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: null, |
|
||||
primaryKey: false, |
|
||||
field: "post_id", |
|
||||
autoIncrement: false, |
|
||||
references: { |
|
||||
key: "id", |
|
||||
model: "post" |
|
||||
} |
|
||||
}, |
|
||||
resource: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: null, |
|
||||
primaryKey: false, |
|
||||
field: "resource", |
|
||||
autoIncrement: false, |
|
||||
references: { |
|
||||
key: "code", |
|
||||
model: "resource" |
|
||||
} |
|
||||
} |
|
||||
}, { |
|
||||
tableName: "post_resource", |
|
||||
comment: "", |
|
||||
indexes: [] |
|
||||
}); |
|
||||
dc.models.PostResource = PostResource; |
|
||||
return PostResource; |
|
||||
}; |
|
@ -1,34 +0,0 @@ |
|||||
/* eslint-disable*/ |
|
||||
'use strict'; |
|
||||
|
|
||||
module.exports = dc => { |
|
||||
const DataTypes = dc.ORM; |
|
||||
const sequelize = dc.orm; |
|
||||
const RegionType = sequelize.define("regionType", { |
|
||||
id: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: null, |
|
||||
primaryKey: true, |
|
||||
field: "id", |
|
||||
autoIncrement: true, |
|
||||
unique: "region_type_id_uindex" |
|
||||
}, |
|
||||
type: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: null, |
|
||||
primaryKey: false, |
|
||||
field: "type", |
|
||||
autoIncrement: false |
|
||||
} |
|
||||
}, { |
|
||||
tableName: "region_type", |
|
||||
comment: "", |
|
||||
indexes: [] |
|
||||
}); |
|
||||
dc.models.RegionType = RegionType; |
|
||||
return RegionType; |
|
||||
}; |
|
@ -1,88 +0,0 @@ |
|||||
/* eslint-disable*/ |
|
||||
'use strict'; |
|
||||
|
|
||||
module.exports = dc => { |
|
||||
const DataTypes = dc.ORM; |
|
||||
const sequelize = dc.orm; |
|
||||
const ReportCollection = sequelize.define("reportCollection", { |
|
||||
id: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: null, |
|
||||
primaryKey: true, |
|
||||
field: "id", |
|
||||
autoIncrement: true, |
|
||||
unique: "report_collection_id_uindex" |
|
||||
}, |
|
||||
regionId: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "县区(id)", |
|
||||
primaryKey: false, |
|
||||
field: "regionId", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
dateTime: { |
|
||||
type: DataTypes.DATE, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: null, |
|
||||
primaryKey: false, |
|
||||
field: "dateTime", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
placeCount: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "场所总数", |
|
||||
primaryKey: false, |
|
||||
field: "placeCount", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
hiddenDangerCount: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "排查隐患总数", |
|
||||
primaryKey: false, |
|
||||
field: "hiddenDangerCount", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
hiddenDangerItem12Count: { |
|
||||
type: DataTypes.JSON, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "排查隐患详细类目 1-12 项 总数", |
|
||||
primaryKey: false, |
|
||||
field: "hiddenDangerItem12Count", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
userId: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "填报人(县区联络员)", |
|
||||
primaryKey: false, |
|
||||
field: "userId", |
|
||||
autoIncrement: false |
|
||||
} |
|
||||
}, { |
|
||||
tableName: "report_collection", |
|
||||
comment: "", |
|
||||
indexes: [] |
|
||||
}); |
|
||||
dc.models.ReportCollection = ReportCollection; |
|
||||
|
|
||||
const User = dc.models.User; |
|
||||
ReportCollection.belongsTo(User, { foreignKey: 'userId', targetKey: 'id' }); |
|
||||
User.hasMany(ReportCollection, { foreignKey: 'userId', sourceKey: 'id' }); |
|
||||
|
|
||||
const Department = dc.models.Department; |
|
||||
ReportCollection.belongsTo(Department, { foreignKey: 'regionId', targetKey: 'id' }); |
|
||||
Department.hasMany(ReportCollection, { foreignKey: 'regionId', sourceKey: 'id' }); |
|
||||
|
|
||||
return ReportCollection; |
|
||||
}; |
|
@ -1,74 +0,0 @@ |
|||||
/* eslint-disable*/ |
|
||||
'use strict'; |
|
||||
|
|
||||
module.exports = dc => { |
|
||||
const DataTypes = dc.ORM; |
|
||||
const sequelize = dc.orm; |
|
||||
const ReportConfigition = sequelize.define("reportConfigition", { |
|
||||
reportName: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "报表名称", |
|
||||
primaryKey: false, |
|
||||
field: "reportName", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
regionId: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "区域id", |
|
||||
primaryKey: false, |
|
||||
field: "regionId", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
reportTypeId: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "报表类型", |
|
||||
primaryKey: false, |
|
||||
field: "reportTypeId", |
|
||||
autoIncrement: false, |
|
||||
references: { |
|
||||
key: "id", |
|
||||
model: "reportType" |
|
||||
} |
|
||||
}, |
|
||||
excuteTime: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "生成时间 cron表达式", |
|
||||
primaryKey: false, |
|
||||
field: "excuteTime", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
isEnable: { |
|
||||
type: DataTypes.BOOLEAN, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "启用状态", |
|
||||
primaryKey: false, |
|
||||
field: "isEnable", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
id: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: "序号", |
|
||||
primaryKey: true, |
|
||||
field: "id", |
|
||||
autoIncrement: true, |
|
||||
unique: "report_configition_id_uindex" |
|
||||
} |
|
||||
}, { |
|
||||
tableName: "report_configition", |
|
||||
comment: "", |
|
||||
indexes: [] |
|
||||
}); |
|
||||
dc.models.ReportConfigition = ReportConfigition; |
|
||||
return ReportConfigition; |
|
||||
}; |
|
@ -1,69 +0,0 @@ |
|||||
/* eslint-disable*/ |
|
||||
'use strict'; |
|
||||
|
|
||||
module.exports = dc => { |
|
||||
const DataTypes = dc.ORM; |
|
||||
const sequelize = dc.orm; |
|
||||
const ReportCountyCollect = sequelize.define("reportCountyCollect", { |
|
||||
id: { |
|
||||
type: DataTypes.BIGINT, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "序号", |
|
||||
primaryKey: false, |
|
||||
field: "id", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
name: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "名称", |
|
||||
primaryKey: false, |
|
||||
field: "name", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
address: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "地址", |
|
||||
primaryKey: false, |
|
||||
field: "address", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
hiddenDanger: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "排查发现隐患", |
|
||||
primaryKey: false, |
|
||||
field: "hiddenDanger", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
correctiveAction: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "采取措施", |
|
||||
primaryKey: false, |
|
||||
field: "correctiveAction", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
punishment: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "实施处罚,强制措施情况", |
|
||||
primaryKey: false, |
|
||||
field: "punishment", |
|
||||
autoIncrement: false |
|
||||
} |
|
||||
}, { |
|
||||
tableName: "report_countyCollect", |
|
||||
comment: "", |
|
||||
indexes: [] |
|
||||
}); |
|
||||
dc.models.ReportCountyCollect = ReportCountyCollect; |
|
||||
return ReportCountyCollect; |
|
||||
}; |
|
@ -1,82 +0,0 @@ |
|||||
/* eslint-disable*/ |
|
||||
'use strict'; |
|
||||
|
|
||||
module.exports = dc => { |
|
||||
const DataTypes = dc.ORM; |
|
||||
const sequelize = dc.orm; |
|
||||
const ReportDownManage = sequelize.define("reportDownManage", { |
|
||||
id: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: false, |
|
||||
defaultValue: "nextval(\"report_downManage_id_seq\"::regclass)", |
|
||||
comment: null, |
|
||||
primaryKey: true, |
|
||||
field: "id", |
|
||||
autoIncrement: false, |
|
||||
unique: "report_downmanage_id_uindex" |
|
||||
}, |
|
||||
reportName: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: "报表名称", |
|
||||
primaryKey: false, |
|
||||
field: "reportName", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
regionId: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: "区域id", |
|
||||
primaryKey: false, |
|
||||
field: "regionId", |
|
||||
autoIncrement: false, |
|
||||
references: { |
|
||||
key: "id", |
|
||||
model: "department" |
|
||||
} |
|
||||
}, |
|
||||
reportTypeId: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: "报表类型id\n1.整治表\n2.汇总表", |
|
||||
primaryKey: false, |
|
||||
field: "reportTypeId", |
|
||||
autoIncrement: false, |
|
||||
references: { |
|
||||
key: "id", |
|
||||
model: "reportType" |
|
||||
} |
|
||||
}, |
|
||||
filePath: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: "文件路径", |
|
||||
primaryKey: false, |
|
||||
field: "filePath", |
|
||||
autoIncrement: false, |
|
||||
}, |
|
||||
creatTime: { |
|
||||
type: DataTypes.DATE, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: null, |
|
||||
primaryKey: false, |
|
||||
field: "creatTime", |
|
||||
autoIncrement: false |
|
||||
} |
|
||||
}, { |
|
||||
tableName: "report_downManage", |
|
||||
comment: "", |
|
||||
indexes: [] |
|
||||
}); |
|
||||
dc.models.ReportDownManage = ReportDownManage; |
|
||||
|
|
||||
const { ReportType, Department } = dc.models; |
|
||||
ReportDownManage.belongsTo(ReportType, { foreignKey: 'reportTypeId', targetKey: 'id' }); |
|
||||
ReportDownManage.belongsTo(Department, { foreignKey: 'regionId', targetKey: 'id' }); |
|
||||
return ReportDownManage; |
|
||||
}; |
|
@ -1,115 +0,0 @@ |
|||||
/* eslint-disable*/ |
|
||||
'use strict'; |
|
||||
|
|
||||
module.exports = dc => { |
|
||||
const DataTypes = dc.ORM; |
|
||||
const sequelize = dc.orm; |
|
||||
const ReportRectify = sequelize.define("reportRectify", { |
|
||||
id: { |
|
||||
type: DataTypes.BIGINT, |
|
||||
allowNull: true, |
|
||||
defaultValue: "nextval(\"report_countyCollect_id_seq\"::regclass)", |
|
||||
comment: "序号", |
|
||||
primaryKey: true, |
|
||||
field: "id", |
|
||||
autoIncrement: false, |
|
||||
unique: "report_countycollect_id_uindex" |
|
||||
}, |
|
||||
regionId: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "县区(id)", |
|
||||
primaryKey: false, |
|
||||
field: "regionId", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
dateTime: { |
|
||||
type: DataTypes.DATE, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: null, |
|
||||
primaryKey: false, |
|
||||
field: "dateTime", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
name: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "名称", |
|
||||
primaryKey: false, |
|
||||
field: "name", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
address: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "地址", |
|
||||
primaryKey: false, |
|
||||
field: "address", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
hiddenDanger: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "排查发现隐患", |
|
||||
primaryKey: false, |
|
||||
field: "hiddenDanger", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
correctiveAction: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "采取措施", |
|
||||
primaryKey: false, |
|
||||
field: "correctiveAction", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
punishment: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "实施处罚,强制措施情况", |
|
||||
primaryKey: false, |
|
||||
field: "punishment", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
userId: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "web端上报", |
|
||||
primaryKey: false, |
|
||||
field: "userId", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
isAudit: { |
|
||||
type: DataTypes.BOOLEAN, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "市级 确认审核", |
|
||||
primaryKey: false, |
|
||||
field: "isAudit", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
}, { |
|
||||
tableName: "report_rectify", |
|
||||
comment: "", |
|
||||
indexes: [] |
|
||||
}); |
|
||||
dc.models.ReportRectify = ReportRectify; |
|
||||
|
|
||||
const User = dc.models.User; |
|
||||
ReportRectify.belongsTo(User, { foreignKey: 'userId', targetKey: 'id' }); |
|
||||
User.hasMany(ReportRectify, { foreignKey: 'userId', sourceKey: 'id' }); |
|
||||
|
|
||||
const Department = dc.models.Department; |
|
||||
ReportRectify.belongsTo(Department, { foreignKey: 'regionId', targetKey: 'id' }); |
|
||||
Department.hasMany(ReportRectify, { foreignKey: 'regionId', sourceKey: 'id' }); |
|
||||
|
|
||||
return ReportRectify; |
|
||||
}; |
|
@ -1,33 +0,0 @@ |
|||||
/* eslint-disable*/ |
|
||||
'use strict'; |
|
||||
|
|
||||
module.exports = dc => { |
|
||||
const DataTypes = dc.ORM; |
|
||||
const sequelize = dc.orm; |
|
||||
const ReportType = sequelize.define("reportType", { |
|
||||
id: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: null, |
|
||||
primaryKey: true, |
|
||||
field: "id", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
name: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: null, |
|
||||
primaryKey: false, |
|
||||
field: "name", |
|
||||
autoIncrement: false |
|
||||
} |
|
||||
}, { |
|
||||
tableName: "report_type", |
|
||||
comment: "", |
|
||||
indexes: [] |
|
||||
}); |
|
||||
dc.models.ReportType = ReportType; |
|
||||
return ReportType; |
|
||||
}; |
|
@ -1,44 +0,0 @@ |
|||||
/* eslint-disable*/ |
|
||||
'use strict'; |
|
||||
|
|
||||
module.exports = dc => { |
|
||||
const DataTypes = dc.ORM; |
|
||||
const sequelize = dc.orm; |
|
||||
const Resource = sequelize.define("resource", { |
|
||||
code: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: null, |
|
||||
primaryKey: true, |
|
||||
field: "code", |
|
||||
autoIncrement: false, |
|
||||
unique: "resource_code_uindex" |
|
||||
}, |
|
||||
name: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: null, |
|
||||
primaryKey: false, |
|
||||
field: "name", |
|
||||
autoIncrement: false, |
|
||||
unique: "resource_name_uindex" |
|
||||
}, |
|
||||
parentResource: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: null, |
|
||||
primaryKey: false, |
|
||||
field: "parent_resource", |
|
||||
autoIncrement: false |
|
||||
} |
|
||||
}, { |
|
||||
tableName: "resource", |
|
||||
comment: "", |
|
||||
indexes: [] |
|
||||
}); |
|
||||
dc.models.Resource = Resource; |
|
||||
return Resource; |
|
||||
}; |
|
@ -1,311 +0,0 @@ |
|||||
/* eslint-disable*/ |
|
||||
'use strict'; |
|
||||
|
|
||||
module.exports = dc => { |
|
||||
const DataTypes = dc.ORM; |
|
||||
const sequelize = dc.orm; |
|
||||
const UserPlaceSecurityRecord = sequelize.define("userPlaceSecurityRecord", { |
|
||||
id: { |
|
||||
type: DataTypes.BIGINT, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: "id", |
|
||||
primaryKey: true, |
|
||||
field: "id", |
|
||||
autoIncrement: true, |
|
||||
unique: "user_placesecurityrecord_id_uindex" |
|
||||
}, |
|
||||
time: { |
|
||||
type: DataTypes.DATE, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "录入时间", |
|
||||
primaryKey: false, |
|
||||
field: "time", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
placeId: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "场所id", |
|
||||
primaryKey: false, |
|
||||
field: "placeId", |
|
||||
autoIncrement: false, |
|
||||
references: { |
|
||||
key: "id", |
|
||||
model: "places" |
|
||||
} |
|
||||
}, |
|
||||
hiddenDangerItem12: { |
|
||||
type: DataTypes.JSON, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "12项隐患信息", |
|
||||
primaryKey: false, |
|
||||
field: "hiddenDangerItem12", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
description: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "存在具体问题描述", |
|
||||
primaryKey: false, |
|
||||
field: "description", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
audit1ManId: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "乡镇人审核", |
|
||||
primaryKey: false, |
|
||||
field: "audit1ManId", |
|
||||
autoIncrement: false, |
|
||||
references: { |
|
||||
key: "id", |
|
||||
model: "user" |
|
||||
} |
|
||||
}, |
|
||||
audit2ManId: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "区县人复核", |
|
||||
primaryKey: false, |
|
||||
field: "audit2ManId", |
|
||||
autoIncrement: false, |
|
||||
references: { |
|
||||
key: "id", |
|
||||
model: "user" |
|
||||
} |
|
||||
}, |
|
||||
regionId: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "所属县/区", |
|
||||
primaryKey: false, |
|
||||
field: "regionId", |
|
||||
autoIncrement: false, |
|
||||
references: { |
|
||||
key: "id", |
|
||||
model: "department" |
|
||||
} |
|
||||
}, |
|
||||
userId: { |
|
||||
type: DataTypes.BIGINT, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "用户id,填报人", |
|
||||
primaryKey: false, |
|
||||
field: "userId", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
placeType: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "场所性质", |
|
||||
primaryKey: false, |
|
||||
field: "placeType", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
address: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "场所地址", |
|
||||
primaryKey: false, |
|
||||
field: "address", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
phone: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: "负责人手机号", |
|
||||
primaryKey: false, |
|
||||
field: "phone", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
dimension: { |
|
||||
type: DataTypes.REAL, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "面积", |
|
||||
primaryKey: false, |
|
||||
field: "dimension", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
floors: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "多少层", |
|
||||
primaryKey: false, |
|
||||
field: "floors", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
numberOfPeople: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "常住人数", |
|
||||
primaryKey: false, |
|
||||
field: "numberOfPeople", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
location: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "经纬度", |
|
||||
primaryKey: false, |
|
||||
field: "location", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
isEnable: { |
|
||||
type: DataTypes.BOOLEAN, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "是否为合用场所", |
|
||||
primaryKey: false, |
|
||||
field: "isEnable", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
rejectManId: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "驳回人", |
|
||||
primaryKey: false, |
|
||||
field: "rejectManId", |
|
||||
autoIncrement: false, |
|
||||
references: { |
|
||||
key: "id", |
|
||||
model: "user" |
|
||||
} |
|
||||
}, |
|
||||
rejectReasons: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "驳回意见", |
|
||||
primaryKey: false, |
|
||||
field: "rejectReasons", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
isDraft: { |
|
||||
type: DataTypes.BOOLEAN, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "是否草稿", |
|
||||
primaryKey: false, |
|
||||
field: "isDraft", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
placeOwner: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "场所负责人", |
|
||||
primaryKey: false, |
|
||||
field: "placeOwner", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
localtionDescribe: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "经纬度定位描述", |
|
||||
primaryKey: false, |
|
||||
field: "localtionDescribe", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
correctiveAction: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "采取措施", |
|
||||
primaryKey: false, |
|
||||
field: "correctiveAction", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
type: { |
|
||||
type: DataTypes.BOOLEAN, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "是否重新发起", |
|
||||
primaryKey: false, |
|
||||
field: "type", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
punishment: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "实施处罚,强制措施情况", |
|
||||
primaryKey: false, |
|
||||
field: "punishment", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
audit1ManIdTime: { |
|
||||
type: DataTypes.DATE, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "乡镇人审核时间", |
|
||||
primaryKey: false, |
|
||||
field: "audit1ManIdTime", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
audit2ManIdTime: { |
|
||||
type: DataTypes.DATE, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "区县人复核时间", |
|
||||
primaryKey: false, |
|
||||
field: "audit2ManIdTime", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
rejectTime: { |
|
||||
type: DataTypes.DATE, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
comment: "驳回日期", |
|
||||
primaryKey: false, |
|
||||
field: "rejectTime", |
|
||||
autoIncrement: false |
|
||||
}, |
|
||||
departmentId: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: true, |
|
||||
defaultValue: null, |
|
||||
primaryKey: false, |
|
||||
field: "department_id", |
|
||||
autoIncrement: false, |
|
||||
}, |
|
||||
}, { |
|
||||
tableName: "user_placeSecurityRecord", |
|
||||
comment: "", |
|
||||
indexes: [] |
|
||||
}); |
|
||||
dc.models.UserPlaceSecurityRecord = UserPlaceSecurityRecord; |
|
||||
|
|
||||
const Places = dc.models.Places; |
|
||||
UserPlaceSecurityRecord.belongsTo(Places, { foreignKey: 'placeId', targetKey: 'id' }); |
|
||||
Places.hasMany(UserPlaceSecurityRecord, { foreignKey: 'placeId', sourceKey: 'id' }); |
|
||||
|
|
||||
const User = dc.models.User; |
|
||||
UserPlaceSecurityRecord.belongsTo(User, { as: 'user', foreignKey: 'userId', targetKey: 'id' }); |
|
||||
User.hasMany(UserPlaceSecurityRecord, { foreignKey: 'userId', sourceKey: 'id' }); |
|
||||
|
|
||||
UserPlaceSecurityRecord.belongsTo(User, { as: 'audit1ManUser', foreignKey: 'audit1ManId', targetKey: 'id' }); |
|
||||
|
|
||||
UserPlaceSecurityRecord.belongsTo(User, { as: 'audit2ManUser', foreignKey: 'audit2ManId', targetKey: 'id' }); |
|
||||
|
|
||||
UserPlaceSecurityRecord.belongsTo(User, { as: 'rejectManUser', foreignKey: 'rejectManId', targetKey: 'id' }); |
|
||||
|
|
||||
return UserPlaceSecurityRecord; |
|
||||
}; |
|
@ -1,61 +0,0 @@ |
|||||
/* eslint-disable*/ |
|
||||
'use strict'; |
|
||||
|
|
||||
module.exports = dc => { |
|
||||
const DataTypes = dc.ORM; |
|
||||
const sequelize = dc.orm; |
|
||||
const UserResource = sequelize.define("userResource", { |
|
||||
id: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: null, |
|
||||
primaryKey: true, |
|
||||
field: "id", |
|
||||
autoIncrement: true, |
|
||||
unique: "post_resource_id_uindex" |
|
||||
}, |
|
||||
userId: { |
|
||||
type: DataTypes.INTEGER, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: null, |
|
||||
primaryKey: false, |
|
||||
field: "user_id", |
|
||||
autoIncrement: false, |
|
||||
references: { |
|
||||
key: "id", |
|
||||
model: "post" |
|
||||
} |
|
||||
}, |
|
||||
resourceId: { |
|
||||
type: DataTypes.STRING, |
|
||||
allowNull: false, |
|
||||
defaultValue: null, |
|
||||
comment: null, |
|
||||
primaryKey: false, |
|
||||
field: "resource", |
|
||||
autoIncrement: false, |
|
||||
references: { |
|
||||
key: "code", |
|
||||
model: "resource" |
|
||||
} |
|
||||
} |
|
||||
}, { |
|
||||
tableName: "user_resource", |
|
||||
comment: "", |
|
||||
indexes: [] |
|
||||
}); |
|
||||
dc.models.UserResource = UserResource; |
|
||||
|
|
||||
const User = dc.models.User; |
|
||||
UserResource.belongsTo(User, { foreignKey: 'userId', targetKey: 'id' }); |
|
||||
User.hasMany(UserResource, { foreignKey: 'userId', sourceKey: 'id' }); |
|
||||
|
|
||||
const Resource = dc.models.Resource; |
|
||||
UserResource.belongsTo(Resource, { foreignKey: 'resourceId', targetKey: 'code' }); |
|
||||
Resource.hasMany(UserResource, { foreignKey: 'resourceId', sourceKey: 'code' }); |
|
||||
Resource.hasMany(Resource, { foreignKey: 'parentResource', sourceKey: 'code' }); |
|
||||
|
|
||||
return UserResource; |
|
||||
}; |
|
@ -1,13 +0,0 @@ |
|||||
'use strict'; |
|
||||
|
|
||||
const Approval = require('../../controllers/approval/index'); |
|
||||
|
|
||||
module.exports = function (app, router, opts) { |
|
||||
/** |
|
||||
* @api {POST} approval/submit 提交审批、驳回修改. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup Approval |
|
||||
*/ |
|
||||
app.fs.api.logAttr['GET/approval/submit'] = { content: '提交审批、驳回修改', visible: true }; |
|
||||
router.post('/approval/submit', Approval.submitApproval); |
|
||||
}; |
|
@ -1,9 +0,0 @@ |
|||||
'use strict'; |
|
||||
|
|
||||
const common = require('../../controllers/common'); |
|
||||
|
|
||||
module.exports = function (app, router, opts) { |
|
||||
|
|
||||
router.get('/data-dictionary/:model', common.getDataDictionary); |
|
||||
router.put('/data-dictionary/:model', common.putDataDictionary); |
|
||||
}; |
|
@ -1,13 +0,0 @@ |
|||||
'use strict'; |
|
||||
|
|
||||
const Department = require('../../controllers/department/index'); |
|
||||
|
|
||||
module.exports = function (app, router, opts) { |
|
||||
/** |
|
||||
* @api {GET} counties/list 获取南昌市下所有区县. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup Department |
|
||||
*/ |
|
||||
app.fs.api.logAttr['GET/counties/list'] = { content: '获取南昌市下所有区县', visible: true }; |
|
||||
router.get('/counties/list', Department.getCountiesList); |
|
||||
}; |
|
@ -1,28 +0,0 @@ |
|||||
'use strict'; |
|
||||
|
|
||||
const Authority = require('../../controllers/organization/authority'); |
|
||||
|
|
||||
module.exports = function (app, router, opts) { |
|
||||
/** |
|
||||
* @api {GET} resource 查询所有权限码. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup Org |
|
||||
*/ |
|
||||
app.fs.api.logAttr['GET/resource'] = { content: '查询所有权限码', visible: true }; |
|
||||
router.get('resource', Authority.getResource); |
|
||||
/** |
|
||||
* @api {GET} user/resource 查询用户权限. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup Org |
|
||||
*/ |
|
||||
app.fs.api.logAttr['GET/user/resource'] = { content: '查询用户权限', visible: true }; |
|
||||
router.get('user/resource', Authority.getUserResource); |
|
||||
|
|
||||
/** |
|
||||
* @api {POST} user/resource 更新用户权限. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup Org |
|
||||
*/ |
|
||||
app.fs.api.logAttr['POST/user/resource'] = { content: '更新用户权限', visible: true }; |
|
||||
router.post('user/resource', Authority.updateUserRes); |
|
||||
}; |
|
@ -1,32 +0,0 @@ |
|||||
'use strict'; |
|
||||
|
|
||||
const user = require('../../controllers/organization/user'); |
|
||||
|
|
||||
module.exports = function (app, router, opts) { |
|
||||
|
|
||||
app.fs.api.logAttr['GET/organization/department'] = { content: '获取部门信息', visible: false }; |
|
||||
router.get('/organization/department', user.getDepMessage); |
|
||||
|
|
||||
app.fs.api.logAttr['GET/organization/department/:depId/user'] = { content: '获取部门下用户信息', visible: false }; |
|
||||
router.get('/organization/department/:depId/user', user.getUser); |
|
||||
|
|
||||
app.fs.api.logAttr['POST/organization/department/user'] = { content: '创建部门下用户信息', visible: false }; |
|
||||
router.post('/organization/department/user', user.creatUser); |
|
||||
|
|
||||
app.fs.api.logAttr['PUT/organization/department/user/:id'] = { content: '修改部门下用户信息', visible: false }; |
|
||||
router.put('/organization/department/user/:id', user.updateUser); |
|
||||
|
|
||||
app.fs.api.logAttr['DEL/organization/department/user/:ids'] = { content: '删除部门下用户信息', visible: false }; |
|
||||
router.del('/organization/department/user/:ids', user.deleteUser); |
|
||||
|
|
||||
app.fs.api.logAttr['PUT/organization/department/user/resetPwd/:id'] = { content: '重置用户密码', visible: false }; |
|
||||
router.put('/organization/department/user/resetPwd/:id', user.resetPwd); |
|
||||
|
|
||||
/** |
|
||||
* @api {PUT} user/password/:id 修改用户密码 |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup Organization |
|
||||
*/ |
|
||||
app.fs.api.logAttr['PUT/user/password/:userId'] = { content: '修改用户密码', visible: false }; |
|
||||
router.put('/user/password/:userId', user.updateUserPassword); |
|
||||
}; |
|
@ -1,70 +0,0 @@ |
|||||
'use strict'; |
|
||||
|
|
||||
const placeSecurityRecord = require('../../controllers/placeSecurityRecord'); |
|
||||
|
|
||||
module.exports = function (app, router, opts) { |
|
||||
/** |
|
||||
* @api {POST} /add/placeSecurityRecord 提交填报信息/保存填报草稿. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup placeSecurityRecord |
|
||||
*/ |
|
||||
app.fs.api.logAttr['POST/add/placeSecurityRecord'] = { content: '提交填报信息/保存填报草稿', visible: true }; |
|
||||
router.post('/add/placeSecurityRecord', placeSecurityRecord.addPlaceSecurityRecord); |
|
||||
|
|
||||
/** |
|
||||
* @api {PUT} /placeSecurityRecord/:id 编辑填报信息. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup placeSecurityRecord |
|
||||
*/ |
|
||||
app.fs.api.logAttr['PUT/placeSecurityRecord/:id'] = { content: '编辑填报信息', visible: true }; |
|
||||
router.put('/placeSecurityRecord/:id', placeSecurityRecord.editPlaceSecurityRecord); |
|
||||
|
|
||||
/** |
|
||||
* @api {PUT} /placeSecurityRecord/:id 修改type字段 |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup placeSecurityRecord |
|
||||
*/ |
|
||||
app.fs.api.logAttr['PUT/updateType/:id'] = { content: '修改type字段', visible: true }; |
|
||||
router.put('/updateType/:id', placeSecurityRecord.updateType); |
|
||||
|
|
||||
/** |
|
||||
* @api {DELETE} /placeSecurityRecord/:id 删除填报信息. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup placeSecurityRecord |
|
||||
*/ |
|
||||
app.fs.api.logAttr['DELETE/placeSecurityRecord/:id'] = { content: '删除填报信息', visible: true }; |
|
||||
router.del('/placeSecurityRecord/:id', placeSecurityRecord.deletePlaceSecurityRecord); |
|
||||
|
|
||||
/** |
|
||||
* @api {GET} /placeSecurityRecord/:id 根据填报信息ID查询填报信息. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup placeSecurityRecord |
|
||||
*/ |
|
||||
app.fs.api.logAttr['GET/placeSecurityRecord/:id'] = { content: '根据填报信息ID查询填报信息', visible: true }; |
|
||||
router.get('/placeSecurityRecord/:id', placeSecurityRecord.getPlaceSecurityRecordById); |
|
||||
|
|
||||
/** |
|
||||
* @api {GET} /recently/placeSecurityRecord/:placeId 根据场所ID获取该场所最近用户填报信息. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup placeSecurityRecord |
|
||||
*/ |
|
||||
app.fs.api.logAttr['GET/recently/placeSecurityRecord/:placeId'] = { content: '根据场所ID获取该场所最近用户填报信息', visible: true }; |
|
||||
router.get('/recently/placeSecurityRecord/:placeId', placeSecurityRecord.getRecentlyPlaceSecurityRecordByPlaceId); |
|
||||
|
|
||||
/** |
|
||||
* @api {GET} /placeSecurityRecords 根据筛选条件获取用户填报信息. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup placeSecurityRecord |
|
||||
*/ |
|
||||
app.fs.api.logAttr['GET/placeSecurityRecords'] = { content: '根据筛选条件获取用户填报信息', visible: true }; |
|
||||
router.get('/placeSecurityRecords', placeSecurityRecord.getPlaceSecurityRecords); |
|
||||
|
|
||||
/** |
|
||||
* @api {GET} /approve/placeSecurityRecords 根据筛选条件获取用户审批填报信息. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup placeSecurityRecord |
|
||||
*/ |
|
||||
app.fs.api.logAttr['GET/approve/placeSecurityRecords'] = { content: '根据筛选条件获取用户审批填报信息', visible: true }; |
|
||||
router.get('/approve/placeSecurityRecords', placeSecurityRecord.getApprovePlaceSecurityRecords); |
|
||||
|
|
||||
}; |
|
@ -1,30 +0,0 @@ |
|||||
'use strict'; |
|
||||
|
|
||||
const places = require('../../controllers/places'); |
|
||||
|
|
||||
module.exports = function (app, router, opts) { |
|
||||
/** |
|
||||
* @api {GET} /user/places/:userId 根据用户ID获取该用户创建的所有场所信息. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup places |
|
||||
*/ |
|
||||
app.fs.api.logAttr['GET/user/places/:userId'] = { content: '根据用户ID获取该用户创建的所有场所信息', visible: true }; |
|
||||
router.get('/user/places/:userId', places.getPlacesByUserId); |
|
||||
|
|
||||
/** |
|
||||
* @api {GET} /approveUser/places/:approveUserId 根据审批用户ID获取该审批用户范围内填报人创建的场所信息. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup places |
|
||||
*/ |
|
||||
app.fs.api.logAttr['GET/approveUser/places/:approveUserId'] = { content: '根据审批用户ID获取该审批用户范围内填报人创建的场所信息', visible: true }; |
|
||||
router.get('/approveUser/places/:approveUserId', places.getPlacesByApproveUserId); |
|
||||
|
|
||||
/** |
|
||||
* @api {GET} /all/places 获取所有场所信息. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup places |
|
||||
*/ |
|
||||
app.fs.api.logAttr['GET/all/places'] = { content: '获取所有场所信息', visible: true }; |
|
||||
router.get('/all/places', places.getAllPlaces); |
|
||||
|
|
||||
}; |
|
@ -1,41 +0,0 @@ |
|||||
'use strict'; |
|
||||
|
|
||||
const report = require('../../controllers/report'); |
|
||||
const reportConfig = require('../../controllers/report/config') |
|
||||
const reportRectify = require('../../controllers/report/compile') |
|
||||
|
|
||||
module.exports = function (app, router, opts) { |
|
||||
/** |
|
||||
* @api {GET} report 报表. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup report |
|
||||
*/ |
|
||||
app.fs.api.logAttr['GET/report/list'] = { content: '报表下载列表', visible: true }; |
|
||||
router.get('/report/list', report.getReportList); |
|
||||
|
|
||||
// 报表配置
|
|
||||
app.fs.api.logAttr['GET/allAreas'] = { content: '获取全部区域', visible: true }; |
|
||||
router.get('/allAreas', reportConfig.getAreas); |
|
||||
|
|
||||
app.fs.api.logAttr['POST/report/config'] = { content: '添加报表配置', visible: true }; |
|
||||
router.post('/report/config', reportConfig.addReportConfig); |
|
||||
|
|
||||
app.fs.api.logAttr['GET/report/config'] = { content: '获取报表配置', visible: true }; |
|
||||
router.get('/report/config', reportConfig.getReportConfig); |
|
||||
|
|
||||
app.fs.api.logAttr['PUT/report/:reportId/config'] = { content: '编辑报表配置', visible: true }; |
|
||||
router.put('/report/:reportId/config', reportConfig.editReportConfig); |
|
||||
|
|
||||
app.fs.api.logAttr['DEL/report/:reportId/config'] = { content: '删除报表配置', visible: true }; |
|
||||
router.del('/report/:reportId/config', reportConfig.delReportConfig); |
|
||||
|
|
||||
// 报表编辑
|
|
||||
app.fs.api.logAttr['GET/report/rectify'] = { content: '获取合用场所安全隐患排查整治汇总表', visible: true }; |
|
||||
router.get('/report/rectify', reportRectify.getReportRectify); |
|
||||
|
|
||||
app.fs.api.logAttr['GET/report/rectify/detail'] = { content: '获取合用场所安全隐患排查整治汇总表详情', visible: true }; |
|
||||
router.get('/report/rectify/detail', reportRectify.getReportRectifyDetail); |
|
||||
|
|
||||
app.fs.api.logAttr['POST/report/rectify/detail'] = { content: '保存合用场所安全隐患排查整治汇总表编辑信息', visible: true }; |
|
||||
router.post('/report/rectify/detail', reportRectify.compileReportRectifyDetail); |
|
||||
}; |
|
@ -1,28 +0,0 @@ |
|||||
'use strict'; |
|
||||
|
|
||||
const statistic = require('../../controllers/statistic') |
|
||||
module.exports = function (app, router, opts) { |
|
||||
/** |
|
||||
* @api {GET} getGovern 获取数据中台. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup wxReport |
|
||||
*/ |
|
||||
app.fs.api.logAttr['GET/daily/report/data/statistic'] = { content: '获取数据中台', visible: true }; |
|
||||
router.get('/daily/report/data/statistic', statistic.reportDailyStatistic); |
|
||||
/** |
|
||||
* @api {GET} getGovern 获取数据中台地区填报数量. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup wxReport |
|
||||
*/ |
|
||||
app.fs.api.logAttr['GET/daily/report/area/statistic'] = { content: '获取数据中台地区填报数量', visible: true }; |
|
||||
router.get('/daily/report/area/statistic', statistic.reportAreaStatistic); |
|
||||
|
|
||||
/** |
|
||||
* @api {GET} getGovern 获取填报管理数据. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup wxReport |
|
||||
*/ |
|
||||
app.fs.api.logAttr['GET/report/management/statistic'] = { content: '获取填报管理数据', visible: true }; |
|
||||
router.get('/report/management/statistic', statistic.dangerAreaQuery); |
|
||||
|
|
||||
} |
|
@ -1,78 +0,0 @@ |
|||||
'use strict'; |
|
||||
|
|
||||
const wxReport = require('../../controllers/wxReport/index'); |
|
||||
module.exports = function (app, router, opts) { |
|
||||
/*******************首页-市级***************************/ |
|
||||
/** |
|
||||
* @api {GET} getDayReport 获取每日汇总. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup wxReport |
|
||||
*/ |
|
||||
app.fs.api.logAttr['GET/getDayReport'] = { content: '获取每日汇总', visible: true }; |
|
||||
router.get('/getDayReport', wxReport.getDayReport); |
|
||||
|
|
||||
/** |
|
||||
* @api {GET} getGovern 获取排查整治汇总. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup wxReport |
|
||||
*/ |
|
||||
app.fs.api.logAttr['GET/getGovern'] = { content: '获取排查整治汇总', visible: true }; |
|
||||
router.get('/getGovern', wxReport.getGovern); |
|
||||
|
|
||||
/** |
|
||||
* @api {GET} getGovernDetail 获取排查整治汇总详情. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup wxReport |
|
||||
*/ |
|
||||
app.fs.api.logAttr['GET/getGovernDetail'] = { content: '获取排查整治汇总详情', visible: true }; |
|
||||
router.get('/getGovernDetail', wxReport.getGovernDetail); |
|
||||
|
|
||||
/** |
|
||||
* @api {PUT} /operateGovern 确认整治汇总场所数据. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup wxReport |
|
||||
*/ |
|
||||
app.fs.api.logAttr['PUT/operateGovern'] = { content: '确认整治汇总场所数据', visible: true }; |
|
||||
router.put('/operateGovern', wxReport.operateGovern); |
|
||||
|
|
||||
/** |
|
||||
* @api {GET} getSecurityRiskList 获取安全隐患排查详细数据列表. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup wxReport |
|
||||
*/ |
|
||||
app.fs.api.logAttr['GET/getSecurityRiskList'] = { content: '获取安全隐患排查详细数据列表', visible: true }; |
|
||||
router.get('/getSecurityRiskList', wxReport.getSecurityRiskList); |
|
||||
|
|
||||
/** |
|
||||
* @api {GET} /getHomeCount/:userId/:departmentId/:userRegionType 获取待处理数量. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup wxReport |
|
||||
*/ |
|
||||
app.fs.api.logAttr['GET/getHomeCount/:userId/:departmentId/:userRegionType'] = { content: '获取待处理数量', visible: true }; |
|
||||
router.get('/getHomeCount/:userId/:departmentId/:userRegionType', wxReport.getHomeCount); |
|
||||
|
|
||||
|
|
||||
/** |
|
||||
* @api {PUT} /operateReport/:id/:userId 每日汇总表上报. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup wxReport |
|
||||
*/ |
|
||||
app.fs.api.logAttr['PUT/operateReport/:id/:userId'] = { content: '每日汇总表上报', visible: true }; |
|
||||
router.put('/operateReport/:id/:userId', wxReport.operateReport); |
|
||||
|
|
||||
/** |
|
||||
* @api {GET} /approve/reportCollections 根据筛选条件获取用户审核报表信息. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup wxReport |
|
||||
*/ |
|
||||
app.fs.api.logAttr['GET/approve/reportCollections'] = { content: '根据筛选条件获取用户审核报表信息', visible: true }; |
|
||||
router.get('/approve/reportCollections', wxReport.getApproveReportCollections); |
|
||||
|
|
||||
/** |
|
||||
* @api {PUT} /operateGovernReport/:userId 上报排查整治汇总表. |
|
||||
* @apiVersion 1.0.0 |
|
||||
* @apiGroup wxReport |
|
||||
*/ |
|
||||
app.fs.api.logAttr['PUT/operateGovernReport/:userId'] = { content: '上报排查整治汇总表', visible: true }; |
|
||||
router.put('/operateGovernReport/:userId', wxReport.operateGovernReport); |
|
||||
} |
|
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue