БД: Панель "Мониторинг сборки изделия" - доработка алгоритма расчета прогресса (относительно плана, а не норматива)
This commit is contained in:
parent
b686ae7513
commit
95ddde190c
@ -5682,11 +5682,11 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
/* Получение таблицы записей "Планы и отчеты производства изделий" */
|
/* Получение таблицы записей "Планы и отчеты производства изделий" */
|
||||||
procedure FCPRODPLAN_GET
|
procedure FCPRODPLAN_GET
|
||||||
(
|
(
|
||||||
NCRN in number, -- Рег. номер каталога
|
NCRN in number, -- Рег. номер каталога
|
||||||
COUT out clob -- Сериализованная таблица данных
|
COUT out clob -- Сериализованная таблица данных
|
||||||
)
|
)
|
||||||
is
|
is
|
||||||
NPROGRESS PKG_STD.TNUMBER; -- Прогресс плана
|
NPROGRESS PKG_STD.TLNUMBER; -- Прогресс плана
|
||||||
|
|
||||||
/* Получение номера плана из примечания */
|
/* Получение номера плана из примечания */
|
||||||
function NUMB_BY_NOTE_GET
|
function NUMB_BY_NOTE_GET
|
||||||
@ -5730,11 +5730,12 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
for REC in (select P.RN NRN,
|
for REC in (select P.RN NRN,
|
||||||
P.NOTE SNOTE,
|
P.NOTE SNOTE,
|
||||||
D_YEAR(EN.STARTDATE) NYEAR,
|
D_YEAR(EN.STARTDATE) NYEAR,
|
||||||
COALESCE(SUM(SP.LABOUR_FACT), 0) NLABOUR_FACT,
|
COALESCE(sum(SP.LABOUR_FACT), 0) NLABOUR_FACT,
|
||||||
COALESCE(SUM(SP.LABOUR_NORM), 0) NLABOUR_NORM
|
COALESCE(sum(SP.LABOUR_PLAN), 0) NLABOUR_PLAN
|
||||||
from FCPRODPLAN P left outer join FCPRODPLANSP SP on P.RN = SP.PRN and ((SP.LABOUR_NORM is not null) or (SP.LABOUR_FACT is not null)),
|
from FCPRODPLAN P
|
||||||
FINSTATE FS,
|
left outer join FCPRODPLANSP SP
|
||||||
ENPERIOD EN
|
on P.RN = SP.PRN
|
||||||
|
and ((SP.LABOUR_PLAN is not null) or (SP.LABOUR_FACT is not null)), FINSTATE FS, ENPERIOD EN
|
||||||
where P.CRN = NCRN
|
where P.CRN = NCRN
|
||||||
and P.CATEGORY = NFCPRODPLAN_CATEGORY_MON
|
and P.CATEGORY = NFCPRODPLAN_CATEGORY_MON
|
||||||
and P.STATUS = NFCPRODPLAN_STATUS_MON
|
and P.STATUS = NFCPRODPLAN_STATUS_MON
|
||||||
@ -5757,8 +5758,10 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
where UP.JUR_PERS = P.JUR_PERS
|
where UP.JUR_PERS = P.JUR_PERS
|
||||||
and UP.UNITCODE = 'CostProductPlans'
|
and UP.UNITCODE = 'CostProductPlans'
|
||||||
and UP.AUTHID = UTILIZER())
|
and UP.AUTHID = UTILIZER())
|
||||||
group by P.RN, P.NOTE, EN.STARTDATE
|
group by P.RN,
|
||||||
order by EN.STARTDATE asc)
|
P.NOTE,
|
||||||
|
EN.STARTDATE
|
||||||
|
order by EN.STARTDATE asc)
|
||||||
loop
|
loop
|
||||||
/* Открываем план */
|
/* Открываем план */
|
||||||
PKG_XFAST.DOWN_NODE(SNAME => 'XFCPRODPLAN_INFO');
|
PKG_XFAST.DOWN_NODE(SNAME => 'XFCPRODPLAN_INFO');
|
||||||
@ -5766,7 +5769,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
PKG_XFAST.ATTR(SNAME => 'NRN', NVALUE => REC.NRN);
|
PKG_XFAST.ATTR(SNAME => 'NRN', NVALUE => REC.NRN);
|
||||||
PKG_XFAST.ATTR(SNAME => 'SNUMB', SVALUE => NUMB_BY_NOTE_GET(SNOTE => REC.SNOTE));
|
PKG_XFAST.ATTR(SNAME => 'SNUMB', SVALUE => NUMB_BY_NOTE_GET(SNOTE => REC.SNOTE));
|
||||||
/* Определяем прогресс */
|
/* Определяем прогресс */
|
||||||
if (REC.NLABOUR_NORM = 0) then
|
if (REC.NLABOUR_PLAN = 0) then
|
||||||
/* Не можем определить прогресс */
|
/* Не можем определить прогресс */
|
||||||
NPROGRESS := 0;
|
NPROGRESS := 0;
|
||||||
else
|
else
|
||||||
@ -5775,8 +5778,8 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
/* Не можем определить прогресс */
|
/* Не можем определить прогресс */
|
||||||
NPROGRESS := 0;
|
NPROGRESS := 0;
|
||||||
else
|
else
|
||||||
/* Не можем определить прогресс */
|
/* Определим прогресс */
|
||||||
NPROGRESS := REC.NLABOUR_FACT / REC.NLABOUR_NORM;
|
NPROGRESS := ROUND(REC.NLABOUR_FACT / REC.NLABOUR_PLAN * 100, 2);
|
||||||
end if;
|
end if;
|
||||||
end if;
|
end if;
|
||||||
PKG_XFAST.ATTR(SNAME => 'NPROGRESS', NVALUE => NPROGRESS);
|
PKG_XFAST.ATTR(SNAME => 'NPROGRESS', NVALUE => NPROGRESS);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user