Формирование запроса на прогнозирование (начало, клиентские доработки)

This commit is contained in:
Mikhail Chechnev 2025-03-18 20:20:46 +03:00
parent 41a59b9477
commit 740d5e0aef

View File

@ -33,6 +33,7 @@ import {
useTechObjForecastHistList, useTechObjForecastHistList,
needLoadLevel needLoadLevel
} from "./forecast_tab_hooks"; //Вспомогательные хуки } from "./forecast_tab_hooks"; //Вспомогательные хуки
import { xml2JSON } from "../../core/utils"; //Вспомогательные функции
//--------- //---------
//Константы //Константы
@ -46,7 +47,7 @@ const REFRESH_INITIAL = {
}; };
//Начальное состояние диалогов //Начальное состояние диалогов
const DIALOGS_INITIAL = { makeEqRpSheet: false, makeEqDataSet: false, techObjCard: false, changeEqTchSrv: false }; const DIALOGS_INITIAL = { makeEqRpSheet: false, makeEqDataSet: false, techObjCard: true, changeEqTchSrv: false };
//Начальное состояние спецификации технических объектов //Начальное состояние спецификации технических объектов
const TECH_OBJ_SPEC_INITIAL = { const TECH_OBJ_SPEC_INITIAL = {
@ -57,7 +58,7 @@ const TECH_OBJ_SPEC_INITIAL = {
}; };
//Начальное состояние выбранного технического объекта //Начальное состояние выбранного технического объекта
const TECH_OBJ_INITIAL = { id: null, objKind: null, measureUnit: null }; const TECH_OBJ_INITIAL = { id: 20005565, objKind: null, measureUnit: null };
//Стили //Стили
const STYLES = { const STYLES = {
@ -92,7 +93,7 @@ const ForecastTab = ({ onGoToAdmin }) => {
const { InlineMsgInfo } = useContext(MessagingСtx); const { InlineMsgInfo } = useContext(MessagingСtx);
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowUnit, pOnlineShowDictionary } = useContext(ApplicationСtx); const { pOnlineShowUnit, pOnlineShowDictionary, pOnlineUserProcedure } = useContext(ApplicationСtx);
//Собственное состояние - текущая загружаемая ветка //Собственное состояние - текущая загружаемая ветка
const [loadingTreeItem, setLoadingTreeItem] = useState(0); const [loadingTreeItem, setLoadingTreeItem] = useState(0);
@ -164,29 +165,47 @@ const ForecastTab = ({ onGoToAdmin }) => {
}; };
//При переходе к закладке администрирования из карточки технического объекта //При переходе к закладке администрирования из карточки технического объекта
const handleTechObjeCardGoToModel = model => { const handleTechObjCardGoToModel = model => {
handleTechObjeCardClose(); handleTechObjCardClose();
if (onGoToAdmin) onGoToAdmin(model.NEQUIPDS, model.NEQUIPDSCM); if (onGoToAdmin) onGoToAdmin(model.NEQUIPDS, model.NEQUIPDSCM);
}; };
//При запросе прогноза по модели из карточки технического объекта //При запросе прогноза по модели из карточки технического объекта
const handleTechObjeCardGetPrediction = async model => { const handleTechObjCardGetPrediction = async model => {
await executeStored({ stored: "UDO_PKG_EQUIPTCF.EQCONFIG_THOBJ_FORECAST", args: { NEQCONFIG: techObj.id, NEQUIPDSCMML: model.NRN } }); console.log(model);
setRefresh(pv => ({ ...pv, techObjForecastHistList: pv.techObjForecastHistList + 1 })); const j = await xml2JSON({
xmlDoc: `<data_config><item col_code="unit" col_name="экземпляр оборудования" data_type="string"></item><item col_code="time" col_name="DataTime" data_type="datetime"></item><item col_code="p1" col_name="Возраст оборудования" data_type="string"></item><item col_code="s1" col_name="Время движения" data_type="string"></item><item col_code="s2" col_name="Длина маршрута" data_type="string"></item><item col_code="s3" col_name="Коэффициент пересчета из объема в вес" data_type="string"></item><item col_code="s4" col_name="Общий пробег" data_type="string"></item><item col_code="s5" col_name="Пробег с грузом" data_type="string"></item><item col_code="s6" col_name="Работа в карьерах на участках горизонтальных дорог IV и V категорий" data_type="string"></item><item col_code="s7" col_name="Сезонный коэффициент" data_type="string"></item><item col_code="s8" col_name="Средняя загрузка самосвала" data_type="string"></item><item col_code="s9" col_name="Эксплуатация" data_type="string"></item><item col_code="s10" col_name="Резерв" data_type="string"></item><item col_code="s11" col_name="Аварийный" data_type="string"></item><item col_code="s12" col_name="Ремонт" data_type="string"></item><item col_code="s13" col_name="Виртуальный объект" data_type="string"></item><item col_code="s14" col_name="Монтаж" data_type="string"></item><item col_code="s15" col_name="Демонтаж" data_type="string"></item><item col_code="s16" col_name="Списано" data_type="string"></item><item col_code="s17" col_name="Неисправное" data_type="string"></item><item col_code="s18" col_name="Продано" data_type="string"></item><item col_code="s19" col_name="ТО 001" data_type="string"></item><item col_code="s20" col_name="Наладка" data_type="string"></item><item col_code="s21" col_name="ДолгХран" data_type="string"></item><item col_code="s22" col_name="Ремонт на Уч4" data_type="string"></item><item col_code="s23" col_name="В Ремоте" data_type="string"></item><item col_code="s24" col_name="ДЕМО Эксплуатация" data_type="string"></item></data_config>`
});
console.log(j.data_config.item.map(itm => ({ col_name: itm.col_code, data_type: itm.data_type })));
/*pOnlineUserProcedure({
code: model.SUSERPROCS_FRCST_DATA,
inputParameters: [{ name: "NEQCONFIG", value: techObj.id }],
callBack: async res => {
if (res.success) {
const wrkData = await executeStored({
stored: "UDO_PKG_EQUIPTCF.EQCONFIG_THOBJ_WRKDATA",
args: { NDATASET_CONFIG_IDENT: res.outParameters.NDATASET_CONFIG_IDENT, NDATASET_IDENT: res.outParameters.NDATASET_IDENT }
});
console.log(wrkData);
}
}
});*/
//await executeStored({ stored: "UDO_PKG_EQUIPTCF.EQCONFIG_THOBJ_FORECAST", args: { NEQCONFIG: techObj.id, NEQUIPDSCMML: model.NRN } });
//setRefresh(pv => ({ ...pv, techObjForecastHistList: pv.techObjForecastHistList + 1 }));
}; };
//При закрытии карточки технического объекта //При закрытии карточки технического объекта
const handleTechObjeCardClose = () => { const handleTechObjCardClose = () => {
refreshTechObjSpec(); refreshTechObjSpec();
setDialogs(pv => ({ ...pv, techObjCard: false })); setDialogs(pv => ({ ...pv, techObjCard: false }));
setTechObj(TECH_OBJ_INITIAL); setTechObj(TECH_OBJ_INITIAL);
}; };
//При нажатии на "Изменить график ТО" в карточке технического объекта //При нажатии на "Изменить график ТО" в карточке технического объекта
const handleTechObjeCardChangeEqTchSrv = () => setDialogs(pv => ({ ...pv, changeEqTchSrv: true })); const handleTechObjCardChangeEqTchSrv = () => setDialogs(pv => ({ ...pv, changeEqTchSrv: true }));
//При нажатии на "Ремонтировать" в карточке технического объекта //При нажатии на "Ремонтировать" в карточке технического объекта
const handleTechObjeCardMakeEqRpSheet = () => setDialogs(pv => ({ ...pv, makeEqRpSheet: true })); const handleTechObjCardMakeEqRpSheet = () => setDialogs(pv => ({ ...pv, makeEqRpSheet: true }));
//При необходимости обновления карточки технического объекта //При необходимости обновления карточки технического объекта
const handleCardDataRefresh = () => const handleCardDataRefresh = () =>
@ -287,11 +306,11 @@ const ForecastTab = ({ onGoToAdmin }) => {
cardData={techObjCard} cardData={techObjCard}
modelsList={techObjModelsList} modelsList={techObjModelsList}
forecastHistList={techObjForecastHistList} forecastHistList={techObjForecastHistList}
onClose={handleTechObjeCardClose} onClose={handleTechObjCardClose}
onGoToModel={handleTechObjeCardGoToModel} onGoToModel={handleTechObjCardGoToModel}
onGetPrediction={handleTechObjeCardGetPrediction} onGetPrediction={handleTechObjCardGetPrediction}
onChangeEqTchSrv={handleTechObjeCardChangeEqTchSrv} onChangeEqTchSrv={handleTechObjCardChangeEqTchSrv}
onMakeEqRpSheet={handleTechObjeCardMakeEqRpSheet} onMakeEqRpSheet={handleTechObjCardMakeEqRpSheet}
onCardDataRefresh={handleCardDataRefresh} onCardDataRefresh={handleCardDataRefresh}
/> />
) : null ) : null