123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285 |
- import {
- analysisResultList,
- getAutoPatrolByRouteId,
- getPatrolDumuList,
- getPatrolRecordMandateInfo,
- getRecentAutoPatrolByRouteId,
- getRouteList,
- patrolRelationList,
- queryAnalysisDict,
- queryPatrolRecord,
- queryUserList,
- } from '@/services/eqSelfInspection';
- export default {
- namespace: 'eqSelfInspection',
- state: {
- autoReport: {
- warningTotalNum: 0,
- },
- patrolList: [],
- mandateInfo: [],
- },
- effects: {
- *getAutoPatrol({ payload, callback }, { call, put }) {
- const response = yield call(getRecentAutoPatrolByRouteId, payload);
- if (response) {
- // 查询数据报表详情
- yield put({
- type: 'getPatrolDataById',
- payload: { routeId: response.data[0].Id },
- callback: callback,
- });
- }
- },
- *fetchUserList({ payload }, { call, put }) {
- const response = yield call(queryUserList, payload);
- if (response) {
- yield put({
- type: 'userListHandler',
- payload: response.data,
- });
- }
- },
- *getPatrolDataById({ payload, callback }, { call, put, select }) {
- const { data } = yield call(queryPatrolRecord, {
- recordId: payload.routeId,
- });
- if (data) {
- const cacheData = yield select(
- (state) => state.eqSelfInspection.autoReport,
- );
- if (cacheData.Id === data.Id) {
- callback?.(cacheData);
- return;
- }
- const creatorName = data.CreatorUser && data.CreatorUser.CName;
- var status = {};
- let Items = [],
- sensor = [];
- const getItems = (item, patrolType) => {
- let key;
- if (patrolType == 1) {
- key = item.PatrolName;
- } else {
- key = item.DeviceCode + '-' + item.DeviceName;
- }
- item.TemplateItem = item.TemplateItem || {};
- item.patrolType = patrolType;
- item.ThresholdEnum = item.TemplateItem.ThresholdEnum;
- item.Type = item.TemplateItem.Type;
- if (!status[key]) status[key] = { normal: 0, error: 0 };
- if (item.Status == 1) {
- status[key].error++;
- } else {
- status[key].normal++;
- }
- return item;
- };
- let patrolCard = {};
- let arr = [];
- (data.ItemsExtend || []).forEach((item) => {
- console.log(Items);
- if (item.PatrolCardRecordItemAssocThreshold) {
- var arr = item.PatrolCardRecordItemAssocThreshold.map((i) =>
- getItems(i, 1),
- );
- Items = Items.concat(arr);
- patrolCard[item.DeviceCode] =
- item.PatrolCardRecordItemAssocThreshold;
- } else {
- Items.push(getItems(item, 0));
- if (!patrolCard[item.DeviceCode]) patrolCard[item.DeviceCode] = [];
- patrolCard[item.DeviceCode].push(item);
- }
- });
- (data.ItemsSensor || []).forEach((item) => {
- if (item.PatrolCardRecordItemAssocThreshold) {
- var arr = item.PatrolCardRecordItemAssocThreshold.map((i) =>
- getItems(i, 1),
- );
- sensor = sensor.concat(arr);
- } else {
- sensor.push(getItems(item, 0));
- }
- });
- data.Items = Items;
- data.sensor = sensor;
- (data.Points || []).forEach((item) => {
- let key;
- if (item.PatrolType == 1) {
- key = item.DeviceName;
- } else {
- key = item.DeviceCode + '-' + item.DeviceName;
- }
- item.creatorName = creatorName;
- item.level = `${item.ExceptionLevel || '-'}/${
- item.DeviceLevel || '-'
- }`;
- item.status = status[key] || { normal: 0, error: 0 };
- if (patrolCard[item.DeviceCode] instanceof Array) {
- arr = [...arr, ...patrolCard[item.DeviceCode]];
- }
- });
- var ruleList = [46, 65, 92, 94];
- if (ruleList.indexOf(data.ProjectId) != -1) {
- const analysisDict = yield call(queryAnalysisDict, {
- pageSize: 9999,
- });
- const analysisResult = yield call(analysisResultList, {
- project_id: data.ProjectId,
- id: data.Id,
- });
- const patrolRelation = yield call(patrolRelationList, {
- ids: analysisResult?.data,
- project_id: data.ProjectId,
- page: 1,
- page_size: 9999,
- });
- if (patrolRelation) {
- let FaultAnalysis = [];
- patrolRelation?.data?.list?.map((item) => {
- var reason = analysisDict?.data.find(
- (reason) => reason.id == item.Reason,
- );
- if (reason) {
- item.Reason = reason.content;
- }
- var FixPlanArr = item.FixPlan.split(',');
- if (FixPlanArr.length > 0) {
- var FixPlan = [];
- FixPlanArr.map((fixItem) => {
- var fixPlan = analysisDict?.data.find(
- (reason) => reason.id == fixItem,
- );
- if (fixPlan) FixPlan.push(fixPlan);
- });
- console.log(FixPlan);
- }
- FaultAnalysis.push({
- device_name: item.DeviceName,
- device_code: item.DeviceCode,
- reason: item.Reason,
- fix_plan: FixPlan,
- c_time: item.CTime,
- });
- });
- data.FaultAnalysis = FaultAnalysis;
- console.log(data.FaultAnalysis);
- }
- }
- const dumuList = yield call(getPatrolDumuList, {
- record_id: payload.routeId,
- project_id: data.ProjectId,
- });
- if (dumuList) {
- data.dumuList = dumuList.data || [];
- }
- console.log(data);
- data.sensorWaringData =
- data.sensor?.filter(
- (item) => item.Status === 2 || item.Status === 1,
- ) || [];
- data.sensorWaringNum = data.sensorWaringData.filter(
- (item) => item.Status === 1,
- ).length;
- data.extendWarningAllData = arr;
- data.extendWarningData =
- arr?.filter((item) => item.Status === 2 || item.Status === 1) || [];
- data.extendWarningNum =
- arr?.filter((item) => item.Status === 1)?.length || 0;
- //获取液位检测异常数量
- const errorNum = data.FluidLevelList?.filter(
- (item) => item.status == 1,
- );
- let num = 0;
- if (data?.extendWarningData?.length > 0) num += 1;
- if (data?.sensorWaringNum > 0) num += 1;
- if (data?.dumuList?.length > 0) num += 1;
- if (data?.FaultAnalysis?.length > 0) num += 1;
- if (errorNum?.length > 0) num += errorNum;
- data.warningTotalNum = num;
- data.patrolStatus = data?.extendWarningNum?.length > 0 ? 1 : 0;
- data.faultAnalysisStatus = data?.FaultAnalysis?.length > 0 ? 1 : 0;
- // data.secureStatus =
- // data?.dumuList?.length > 0 || data?.sensorWaringNum > 0 ? 1 : 0;
- data.secureStatus =
- data?.dumuList?.length > 0 || errorNum?.length > 0 ? 1 : 0;
- let secureChild = [];
- let dumuStatus = 0;
- if (data?.dumuList?.length > 0) {
- dumuStatus = 1;
- }
- secureChild.push({ label: '安防检测', status: dumuStatus });
- let sensorStatus = 0;
- if (data?.sensorWaringNum > 0) {
- sensorStatus = 1;
- }
- secureChild.push({ label: '环境检测', status: sensorStatus });
- secureChild.push({ label: '电气检测', status: 0 });
- secureChild.push({ label: '密闭空间检测', status: 0 });
- data.secureChild = secureChild;
- callback?.(data);
- yield put({
- type: 'save',
- payload: { autoReport: data },
- });
- }
- },
- *getList({ payload }, { call, put }) {
- const response = yield call(getRouteList, payload);
- if (response) {
- yield put({
- type: 'save',
- payload: {
- patrolList: response.data?.filter((item) => item.IsAuto === 1),
- },
- });
- }
- },
- *getPatrolRecordMandateInfo({ payload }, { call, put }) {
- const response = yield call(getPatrolRecordMandateInfo, payload);
- if (response) {
- yield put({
- type: 'save',
- payload: {
- mandateInfo: response?.data,
- },
- });
- }
- },
- *inspectionRoute({ payload, callback }, { call, put, select }) {
- //先通过巡检路线的Id申请接口,拿到最新的巡检记录Id,去查询
- const response = yield call(getAutoPatrolByRouteId, payload);
- if (response) {
- yield put({
- type: 'getAutoPatrol',
- payload: { projectId: payload.projectId, route_id: payload.routeId },
- callback: callback,
- });
- }
- },
- },
- reducers: {
- save(state, action) {
- return {
- ...state,
- ...action.payload,
- };
- },
- },
- };
|