diff --git a/api/app/lib/controllers/patrolManage/patrolRecord.js b/api/app/lib/controllers/patrolManage/patrolRecord.js index baefeb2..28d791b 100644 --- a/api/app/lib/controllers/patrolManage/patrolRecord.js +++ b/api/app/lib/controllers/patrolManage/patrolRecord.js @@ -1,33 +1,52 @@ 'use strict'; -async function findPatrolRecord(ctx, next) { +async function findPatrolRecord (ctx, next) { let rslt = []; let error = { name: 'FindError', message: '获取巡检记录失败' }; try { const models = ctx.fs.dc.models; const { startTime, endTime, alarm, patrolPlanId, pointId } = ctx.params; // patrolPlanId传all查所有 + let generalInclude = [{ + model: models.PatrolPlan, + attributes: ['name'] + }] if (patrolPlanId == 'all') { /* 如果有startTime && endTime,查询所有符合条件的数据 */ if (startTime !== 'null' && endTime !== 'null') { if (pointId !== 'null') { if (alarm == 'null') { rslt = await models.PatrolRecord.findAll({ - where: { inspectionTime: { $between: [startTime, endTime] }, pointId: { $in: pointId.split(',') } }, + where: { + inspectionTime: { $between: [startTime, endTime] }, + pointId: { $in: pointId.split(',') } + }, + include: generalInclude }); } else { rslt = await models.PatrolRecord.findAll({ - where: { alarm, inspectionTime: { $between: [startTime, endTime] }, pointId: { $in: pointId.split(',') } }, + where: { + alarm, + inspectionTime: { $between: [startTime, endTime] }, + pointId: { $in: pointId.split(',') } + }, + include: generalInclude }); } } else { if (alarm == 'null') { rslt = await models.PatrolRecord.findAll({ - where: { inspectionTime: { $between: [startTime, endTime] } }, + where: { + inspectionTime: { $between: [startTime, endTime] } + }, + include: generalInclude }); } else { rslt = await models.PatrolRecord.findAll({ - where: { alarm, inspectionTime: { $between: [startTime, endTime] } }, + where: { + alarm, inspectionTime: { $between: [startTime, endTime] } + }, + include: generalInclude }); } } @@ -37,7 +56,9 @@ async function findPatrolRecord(ctx, next) { if (pointId !== 'null') { a = await models.PatrolRecord.findAll({ where: { pointId: { $in: pointId.split(',') } }, + include: generalInclude }); + } rslt = pointId.split(',').map(i => { return a.filter(t => t.pointId == i).sort((a, b) => b.id - a.id)[0] || null @@ -47,11 +68,22 @@ async function findPatrolRecord(ctx, next) { if (startTime !== 'null' && endTime !== 'null') { if (pointId !== 'null') { rslt = await models.PatrolRecord.findAll({ - where: { patrolPlanId: { $in: patrolPlanId.split(',') }, alarm, inspectionTime: { $between: [startTime, endTime] }, pointId: { $in: pointId.split(',') } }, + where: { + patrolPlanId: { $in: patrolPlanId.split(',') }, + alarm, + inspectionTime: { $between: [startTime, endTime] }, + pointId: { $in: pointId.split(',') } + }, + include: generalInclude }); } else { rslt = await models.PatrolRecord.findAll({ - where: { patrolPlanId: { $in: patrolPlanId.split(',') }, alarm, inspectionTime: { $between: [startTime, endTime] } }, + where: { + patrolPlanId: { $in: patrolPlanId.split(',') }, + alarm, + inspectionTime: { $between: [startTime, endTime] } + }, + include: generalInclude }); } @@ -60,11 +92,18 @@ async function findPatrolRecord(ctx, next) { /* 如果没有startTime && endTime,查询每个点位最新一条符合条件的数据 */ if (pointId !== 'null') { a = await models.PatrolRecord.findAll({ - where: { patrolPlanId: { $in: patrolPlanId.split(',') }, pointId: { $in: pointId.split(',') } }, + where: { + patrolPlanId: { $in: patrolPlanId.split(',') }, + pointId: { $in: pointId.split(',') } + }, + include: generalInclude }); } else { a = await models.PatrolRecord.findAll({ - where: { patrolPlanId: { $in: patrolPlanId.split(',') } }, + where: { + patrolPlanId: { $in: patrolPlanId.split(',') } + }, + include: generalInclude }); } @@ -86,7 +125,7 @@ async function findPatrolRecord(ctx, next) { } } -async function addPatrolRecord(ctx, next) { +async function addPatrolRecord (ctx, next) { let error = { name: 'addError', message: '新增巡检记录失败' }; try { const models = ctx.fs.dc.models; diff --git a/api/app/lib/index.js b/api/app/lib/index.js index 66039c4..5b95ba3 100644 --- a/api/app/lib/index.js +++ b/api/app/lib/index.js @@ -53,11 +53,15 @@ module.exports.models = function (dc) { // dc = { orm: Sequelize对象, ORM: Seq require(`./models/${filename}`)(dc) }); - const { Department, User, UserResource, Resource, Project, Point, PatrolPlan, + const { Department, User, UserResource, Resource, Project, Point, + PatrolPlan, PatrolRecord, CheckItems, CheckItemsGroup, PatrolTemplate, PatrolTemplateCheckItems } = dc.models; + PatrolRecord.belongsTo(PatrolPlan, { foreignKey: 'patrolPlanId', targetKey: 'id' }); + PatrolPlan.hasMany(PatrolRecord, { foreignKey: 'patrolPlanId', sourceKey: 'id' }); + UserResource.belongsTo(User, { foreignKey: 'userId', targetKey: 'id' }); User.hasMany(UserResource, { foreignKey: 'userId', sourceKey: 'id' }); diff --git a/web/client/src/sections/patrolManage/containers/patrolRecord.js b/web/client/src/sections/patrolManage/containers/patrolRecord.js index 8ea229a..2813968 100644 --- a/web/client/src/sections/patrolManage/containers/patrolRecord.js +++ b/web/client/src/sections/patrolManage/containers/patrolRecord.js @@ -36,46 +36,67 @@ const PatrolRecord = (props) => { title: '结构物名称', dataIndex: 'name', key: 'name', + width: '10%', + showInDetail: true, render: (text, record, index) => { - return !record.points?.project ? '' :