From 43bbfa5aa205d2c600e6503d1097836c95d1f8ac Mon Sep 17 00:00:00 2001 From: "gao.zhiyuan" Date: Wed, 22 Feb 2023 11:44:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A1=E6=A3=80=E8=AE=B0=E5=BD=95=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E9=87=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/patrolManage/patrolRecord.js | 59 +++++++++++--- api/app/lib/index.js | 6 +- .../patrolManage/containers/patrolRecord.js | 81 ++++++++++++++----- 3 files changed, 114 insertions(+), 32 deletions(-) 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 ? '' :
{record.points.project.name}
+ return !record.points?.project ? '' :
{record.points.project.name}
} }, { - title: '巡检人', + title: '巡检计划', + dataIndex: 'name', + key: 'name', + width: '10%', + showInDetail: true, + render: (text, record, index) => { + return !record.patrolPlan ? '' :
{record.patrolPlan.name}
+ } + }, { + title: '巡检点位', dataIndex: 'type', key: 'type', + showInDetail: true, + width: '10%', render: (text, record, index) => { - return !record.points?.user ? '' :
{record.points.user.name}
+ return !record.points?.user ? '' :
{record.points.itemData.name}
} }, { - title: '巡检点位', + title: '巡检人', dataIndex: 'type', key: 'type', + showInDetail: true, + width: '10%', render: (text, record, index) => { - return !record.points?.user ? '' :
{record.points.itemData.name}
+ return !record.points?.user ? '' :
{record.points.user.name}
} }, { title: '巡检单位', dataIndex: 'type', + showInDetail: true, key: 'type', + width: '10%', render: (text, record, index) => { - return !record.points?.user ? '' :
{record.points.user.department.name}
+ return !record.points?.user ? '' :
{record.points.user.department.name}
} }, { title: '巡检频次', dataIndex: 'describe', key: 'describe', + showInDetail: true, + width: '10%', render: (text, record, index) => { - return !record.points ? '' :
{record.points.frequency}
+ return !record.points ? '' :
{record.points.frequency}
} }, { title: '上次巡检日期', dataIndex: 'describe', + showInDetail: true, key: 'describe', render: (text, record, index) => moment(record.lastInspectionTime).format('YYYY-MM-DD HH:mm:ss') || '--' }, { title: '本次巡检日期', dataIndex: 'describe', key: 'describe', + showInDetail: true, render: (text, record, index) => moment(record.inspectionTime).format('YYYY-MM-DD HH:mm:ss') || '--' }, { title: '巡检结果', @@ -168,32 +189,50 @@ const PatrolRecord = (props) => { onCancel={() => setShowDetail(false)} footer={[]} > - + {(() => { + let dataArr = [] + columns.forEach(c => { + if (c.showInDetail) { + dataArr.push( + <> + + {c.title} : + {c.render('', modelData)} + + + ) + } + }) + return dataArr + })()} + {/* 当前点位:{modelData?.points?.itemData?.name} 当前位置:{modelData?.points?.address} - 巡检结果:{modelData.alarm? '异常':'正常'} + 巡检结果:{modelData.alarm ? '异常' : '正常'} - { !modelData.alarm? '': - - 巡检详情:{modelData?.points?.msgInp} - } - { !modelData.alarm? '': - - 异常等级:{modelData?.points?.changeThree} - } - { !modelData.alarm? '': - { modelData?.points?.imgs?.map(rs => )} - } + {!modelData.alarm ? '' : + + 巡检详情:{modelData?.points?.msgInp} + } + {!modelData.alarm ? '' : + + 异常等级:{modelData?.points?.changeThree} + } + {!modelData.alarm ? '' : + {modelData?.points?.imgs?.map(rs => )} + } */} ) } -function mapStateToProps(state) { +function mapStateToProps (state) { const { auth, global } = state; return { user: auth.user,