|
|
|
@ -150,78 +150,90 @@ def get_labour_cost_totals(cursor, assetnum: str, worktype: str) -> dict:
|
|
|
|
if not assetnum or not worktype:
|
|
|
|
if not assetnum or not worktype:
|
|
|
|
return {}
|
|
|
|
return {}
|
|
|
|
|
|
|
|
|
|
|
|
worktype_condition = "AND a.worktype IN ('CM', 'PROACTIVE', 'WA')"
|
|
|
|
|
|
|
|
worktype_params = [assetnum]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if worktype.upper() != "CM":
|
|
|
|
|
|
|
|
worktype_condition = "AND a.worktype = %s"
|
|
|
|
|
|
|
|
worktype_params.append(worktype.upper())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
exclude_condition = "AND a.wojp8 != 'S1'" if worktype.upper() == "CM" else ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
query = f"""
|
|
|
|
query = f"""
|
|
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
|
|
EXTRACT(YEAR FROM x.reportdate)::int AS tahun,
|
|
|
|
|
|
|
|
SUM(x.upah_per_wonum) AS total_upah_per_tahun
|
|
|
|
|
|
|
|
FROM (
|
|
|
|
SELECT
|
|
|
|
SELECT
|
|
|
|
EXTRACT(YEAR FROM x.reportdate)::int AS tahun,
|
|
|
|
bw.wonum,
|
|
|
|
SUM(x.upah_per_wonum) AS total_upah_per_tahun
|
|
|
|
bw.reportdate,
|
|
|
|
|
|
|
|
bw.jumlah_jam_kerja,
|
|
|
|
|
|
|
|
CASE
|
|
|
|
|
|
|
|
WHEN COUNT(b.laborcode) FILTER (WHERE b.laborcode IS NOT NULL) > 0 THEN
|
|
|
|
|
|
|
|
SUM(
|
|
|
|
|
|
|
|
COALESCE(emp_cost.salary_per_hour_idr, (select salary_per_hour_idr from lcc_manpower_cost where upper(staff_job_level)= upper('Junior') limit 1))
|
|
|
|
|
|
|
|
* bw.jumlah_jam_kerja
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
ELSE
|
|
|
|
|
|
|
|
3 * (select salary_per_hour_idr from lcc_manpower_cost where upper(staff_job_level)= upper('Junior') limit 1) * bw.jumlah_jam_kerja
|
|
|
|
|
|
|
|
END AS upah_per_wonum
|
|
|
|
FROM (
|
|
|
|
FROM (
|
|
|
|
SELECT
|
|
|
|
SELECT
|
|
|
|
bw.wonum,
|
|
|
|
a.wonum,
|
|
|
|
bw.reportdate,
|
|
|
|
a.reportdate,
|
|
|
|
bw.jumlah_jam_kerja,
|
|
|
|
|
|
|
|
CASE
|
|
|
|
CASE
|
|
|
|
WHEN COUNT(b.laborcode) FILTER (WHERE b.laborcode IS NOT NULL) > 0 THEN
|
|
|
|
WHEN (EXTRACT(EPOCH FROM (a.actfinish - a.actstart)) / 3600.0) = 0
|
|
|
|
SUM(
|
|
|
|
THEN 1
|
|
|
|
COALESCE(emp_cost.salary_per_hour_idr,
|
|
|
|
ELSE (EXTRACT(EPOCH FROM (a.actfinish - a.actstart)) / 3600.0)
|
|
|
|
(SELECT salary_per_hour_idr FROM lcc_manpower_cost WHERE UPPER(staff_job_level) = UPPER('Junior') LIMIT 1))
|
|
|
|
END AS jumlah_jam_kerja
|
|
|
|
* bw.jumlah_jam_kerja
|
|
|
|
|
|
|
|
)
|
|
|
|
FROM public.wo_maximo a
|
|
|
|
ELSE
|
|
|
|
WHERE
|
|
|
|
3 * (SELECT salary_per_hour_idr FROM lcc_manpower_cost WHERE UPPER(staff_job_level) = UPPER('Junior') LIMIT 1) * bw.jumlah_jam_kerja
|
|
|
|
a.asset_unit = '3'
|
|
|
|
END AS upah_per_wonum
|
|
|
|
AND a.wonum NOT LIKE 'T%'
|
|
|
|
FROM (
|
|
|
|
AND a.asset_assetnum = '{assetnum}'
|
|
|
|
SELECT
|
|
|
|
AND (EXTRACT(EPOCH FROM (a.actfinish - a.actstart)) / 3600.0) <= 730
|
|
|
|
a.wonum,
|
|
|
|
AND a.worktype = '{worktype}'
|
|
|
|
a.reportdate,
|
|
|
|
AND (
|
|
|
|
CASE
|
|
|
|
a.description NOT ILIKE '%U4%'
|
|
|
|
WHEN (EXTRACT(EPOCH FROM (a.actfinish - a.actstart)) / 3600.0) = 0
|
|
|
|
OR (
|
|
|
|
THEN 1
|
|
|
|
a.description ILIKE '%U3%'
|
|
|
|
ELSE (EXTRACT(EPOCH FROM (a.actfinish - a.actstart)) / 3600.0)
|
|
|
|
AND a.description ILIKE '%U4%'
|
|
|
|
END AS jumlah_jam_kerja
|
|
|
|
)
|
|
|
|
FROM public.wo_maximo a
|
|
|
|
)
|
|
|
|
WHERE
|
|
|
|
) bw
|
|
|
|
a.asset_unit = '3'
|
|
|
|
LEFT JOIN public.wo_maximo_labtrans b
|
|
|
|
AND a.wonum NOT LIKE 'T%'
|
|
|
|
ON b.wonum = bw.wonum
|
|
|
|
AND a.asset_assetnum = %s
|
|
|
|
LEFT JOIN lcc_ms_manpower emp
|
|
|
|
AND (EXTRACT(EPOCH FROM (a.actfinish - a.actstart)) / 3600.0) <= 730
|
|
|
|
ON UPPER(TRIM(emp."ID Number")) = UPPER(TRIM(b.laborcode))
|
|
|
|
{worktype_condition}
|
|
|
|
LEFT JOIN lcc_manpower_cost emp_cost
|
|
|
|
{exclude_condition}
|
|
|
|
ON UPPER(TRIM(emp_cost.staff_job_level)) = UPPER(TRIM(emp."Position"))
|
|
|
|
) bw
|
|
|
|
GROUP BY
|
|
|
|
LEFT JOIN public.wo_maximo_labtrans b ON b.wonum = bw.wonum
|
|
|
|
bw.wonum, bw.reportdate, bw.jumlah_jam_kerja
|
|
|
|
LEFT JOIN lcc_ms_manpower emp ON UPPER(TRIM(emp."ID Number")) = UPPER(TRIM(b.laborcode))
|
|
|
|
) x
|
|
|
|
LEFT JOIN lcc_manpower_cost emp_cost ON UPPER(TRIM(emp_cost.staff_job_level)) = UPPER(TRIM(emp."Position"))
|
|
|
|
GROUP BY 1
|
|
|
|
GROUP BY bw.wonum, bw.reportdate, bw.jumlah_jam_kerja
|
|
|
|
ORDER BY 1;
|
|
|
|
) x
|
|
|
|
|
|
|
|
GROUP BY 1
|
|
|
|
|
|
|
|
ORDER BY 1;
|
|
|
|
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
cursor.execute(query, tuple(worktype_params))
|
|
|
|
cursor.execute(query)
|
|
|
|
rows = cursor.fetchall()
|
|
|
|
rows = cursor.fetchall()
|
|
|
|
except Exception as exc:
|
|
|
|
except Exception as exc:
|
|
|
|
print(f"Error fetching labour cost for {assetnum} ({worktype}): {exc}")
|
|
|
|
print(f"Error fetching labour cost for {assetnum} ({worktype}): {exc}")
|
|
|
|
return {}
|
|
|
|
return {}
|
|
|
|
|
|
|
|
|
|
|
|
labour_costs = {}
|
|
|
|
labour_costs = {}
|
|
|
|
for tahun, total in rows:
|
|
|
|
for row in rows:
|
|
|
|
|
|
|
|
if isinstance(row, dict):
|
|
|
|
|
|
|
|
tahun_value = row.get("tahun")
|
|
|
|
|
|
|
|
total_value = row.get("total_upah_per_tahun")
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
|
|
|
tahun_value, total_value = row[0], row[1]
|
|
|
|
|
|
|
|
except (IndexError, TypeError):
|
|
|
|
|
|
|
|
continue
|
|
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
year_int = int(tahun) if tahun is not None else None
|
|
|
|
year_int = int(tahun_value) if tahun_value is not None else None
|
|
|
|
except (TypeError, ValueError):
|
|
|
|
except (TypeError, ValueError):
|
|
|
|
year_int = None
|
|
|
|
year_int = None
|
|
|
|
|
|
|
|
|
|
|
|
if year_int is None:
|
|
|
|
if year_int is None:
|
|
|
|
continue
|
|
|
|
continue
|
|
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
labour_costs[year_int] = float(total) if total is not None else 0.0
|
|
|
|
labour_costs[year_int] = float(total_value) if total_value is not None else 0.0
|
|
|
|
except (TypeError, ValueError):
|
|
|
|
except (TypeError, ValueError):
|
|
|
|
labour_costs[year_int] = 0.0
|
|
|
|
labour_costs[year_int] = 0.0
|
|
|
|
|
|
|
|
|
|
|
|
@ -331,8 +343,6 @@ def _build_tr_row_values(
|
|
|
|
"raw_predictive_material_cost": 0,
|
|
|
|
"raw_predictive_material_cost": 0,
|
|
|
|
"raw_predictive_labor_time": 0,
|
|
|
|
"raw_predictive_labor_time": 0,
|
|
|
|
"raw_predictive_labor_human": 0,
|
|
|
|
"raw_predictive_labor_human": 0,
|
|
|
|
"raw_loss_output_MW": 0,
|
|
|
|
|
|
|
|
"raw_loss_output_price": 0,
|
|
|
|
|
|
|
|
"rc_cm_material_cost": 0,
|
|
|
|
"rc_cm_material_cost": 0,
|
|
|
|
"rc_cm_labor_cost": 0,
|
|
|
|
"rc_cm_labor_cost": 0,
|
|
|
|
"rc_pm_material_cost": 0,
|
|
|
|
"rc_pm_material_cost": 0,
|
|
|
|
@ -371,17 +381,6 @@ def _build_tr_row_values(
|
|
|
|
data_predictive_row, "raw_predictive_labor_human"
|
|
|
|
data_predictive_row, "raw_predictive_labor_human"
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
# raw_loss_output_MW = (
|
|
|
|
|
|
|
|
# data_tahunan_row.get("total_lost")
|
|
|
|
|
|
|
|
# if data_tahunan_row and data_tahunan_row.get("total_lost") is not None
|
|
|
|
|
|
|
|
# else 0
|
|
|
|
|
|
|
|
# )
|
|
|
|
|
|
|
|
# raw_loss_output_price = (
|
|
|
|
|
|
|
|
# data_tahunan_row.get("rp_per_kwh")
|
|
|
|
|
|
|
|
# if data_tahunan_row and data_tahunan_row.get("rp_per_kwh") is not None
|
|
|
|
|
|
|
|
# else 0
|
|
|
|
|
|
|
|
# )
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
man_hour_value = (
|
|
|
|
man_hour_value = (
|
|
|
|
data_tahunan_row.get("man_hour")
|
|
|
|
data_tahunan_row.get("man_hour")
|
|
|
|
if data_tahunan_row and data_tahunan_row.get("man_hour") is not None
|
|
|
|
if data_tahunan_row and data_tahunan_row.get("man_hour") is not None
|
|
|
|
@ -389,48 +388,48 @@ def _build_tr_row_values(
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
rc_cm_material_cost = raw_cm_material_cost_total
|
|
|
|
rc_cm_material_cost = raw_cm_material_cost_total
|
|
|
|
rc_cm_labor_cost = (
|
|
|
|
# rc_cm_labor_cost = (
|
|
|
|
data_cm_row.get("raw_cm_labor_time")
|
|
|
|
# data_cm_row.get("raw_cm_labor_time")
|
|
|
|
* data_cm_row.get("rc_cm_labor_human")
|
|
|
|
# * data_cm_row.get("rc_cm_labor_human")
|
|
|
|
* man_hour_value
|
|
|
|
# * man_hour_value
|
|
|
|
if data_cm_row
|
|
|
|
# if data_cm_row
|
|
|
|
and data_cm_row.get("rc_cm_labor_cost")
|
|
|
|
# and data_cm_row.get("rc_cm_labor_cost")
|
|
|
|
and data_cm_row.get("rc_cm_labor_human")
|
|
|
|
# and data_cm_row.get("rc_cm_labor_human")
|
|
|
|
and man_hour_value is not None
|
|
|
|
# and man_hour_value is not None
|
|
|
|
else 0
|
|
|
|
# else 0
|
|
|
|
)
|
|
|
|
# )
|
|
|
|
|
|
|
|
|
|
|
|
rc_pm_material_cost = raw_pm_material_cost
|
|
|
|
rc_pm_material_cost = raw_pm_material_cost
|
|
|
|
rc_pm_labor_cost = (
|
|
|
|
# rc_pm_labor_cost = (
|
|
|
|
data_pm_row.get("raw_pm_labor_time")
|
|
|
|
# data_pm_row.get("raw_pm_labor_time")
|
|
|
|
* data_pm_row.get("rc_pm_labor_human")
|
|
|
|
# * data_pm_row.get("rc_pm_labor_human")
|
|
|
|
* man_hour_value
|
|
|
|
# * man_hour_value
|
|
|
|
if data_pm_row
|
|
|
|
# if data_pm_row
|
|
|
|
and data_pm_row.get("rc_pm_labor_cost")
|
|
|
|
# and data_pm_row.get("rc_pm_labor_cost")
|
|
|
|
and data_pm_row.get("rc_pm_labor_human")
|
|
|
|
# and data_pm_row.get("rc_pm_labor_human")
|
|
|
|
and man_hour_value is not None
|
|
|
|
# and man_hour_value is not None
|
|
|
|
else 0
|
|
|
|
# else 0
|
|
|
|
)
|
|
|
|
# )
|
|
|
|
|
|
|
|
|
|
|
|
rc_oh_material_cost = raw_oh_material_cost
|
|
|
|
rc_oh_material_cost = raw_oh_material_cost
|
|
|
|
rc_oh_labor_cost = (
|
|
|
|
# rc_oh_labor_cost = (
|
|
|
|
data_oh_row.get("raw_oh_labor_time")
|
|
|
|
# data_oh_row.get("raw_oh_labor_time")
|
|
|
|
* data_oh_row.get("rc_oh_labor_human")
|
|
|
|
# * data_oh_row.get("rc_oh_labor_human")
|
|
|
|
* man_hour_value
|
|
|
|
# * man_hour_value
|
|
|
|
if data_oh_row
|
|
|
|
# if data_oh_row
|
|
|
|
and data_oh_row.get("rc_oh_labor_cost")
|
|
|
|
# and data_oh_row.get("rc_oh_labor_cost")
|
|
|
|
and data_oh_row.get("rc_oh_labor_human")
|
|
|
|
# and data_oh_row.get("rc_oh_labor_human")
|
|
|
|
and man_hour_value is not None
|
|
|
|
# and man_hour_value is not None
|
|
|
|
else 0
|
|
|
|
# else 0
|
|
|
|
)
|
|
|
|
# )
|
|
|
|
|
|
|
|
|
|
|
|
rc_predictive_labor_cost = (
|
|
|
|
# rc_predictive_labor_cost = (
|
|
|
|
data_predictive_row.get("raw_predictive_labor_human") * man_hour_value
|
|
|
|
# data_predictive_row.get("raw_predictive_labor_human") * man_hour_value
|
|
|
|
if data_predictive_row
|
|
|
|
# if data_predictive_row
|
|
|
|
and data_predictive_row.get("rc_predictive_labor_cost")
|
|
|
|
# and data_predictive_row.get("rc_predictive_labor_cost")
|
|
|
|
and man_hour_value is not None
|
|
|
|
# and man_hour_value is not None
|
|
|
|
else 0
|
|
|
|
# else 0
|
|
|
|
)
|
|
|
|
# )
|
|
|
|
|
|
|
|
|
|
|
|
if labour_cost_lookup and year is not None:
|
|
|
|
if labour_cost_lookup and year is not None:
|
|
|
|
cm_lookup = labour_cost_lookup.get("CM", {})
|
|
|
|
cm_lookup = labour_cost_lookup.get("CM", {})
|
|
|
|
@ -442,27 +441,10 @@ def _build_tr_row_values(
|
|
|
|
pm_value = pm_lookup.get(year)
|
|
|
|
pm_value = pm_lookup.get(year)
|
|
|
|
oh_value = oh_lookup.get(year)
|
|
|
|
oh_value = oh_lookup.get(year)
|
|
|
|
pdm_value = pdm_lookup.get(year)
|
|
|
|
pdm_value = pdm_lookup.get(year)
|
|
|
|
|
|
|
|
rc_cm_labor_cost = float(cm_value) if cm_value is not None else 0.0
|
|
|
|
if cm_value is not None:
|
|
|
|
rc_pm_labor_cost = float(pm_value) if pm_value is not None else 0.0
|
|
|
|
try:
|
|
|
|
rc_oh_labor_cost = float(oh_value) if oh_value is not None else 0.0
|
|
|
|
rc_cm_labor_cost = float(cm_value)
|
|
|
|
rc_predictive_labor_cost = float(pdm_value) if pdm_value is not None else 0.0
|
|
|
|
except (TypeError, ValueError):
|
|
|
|
|
|
|
|
rc_cm_labor_cost = 0.0
|
|
|
|
|
|
|
|
if pm_value is not None:
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
|
|
|
rc_pm_labor_cost = float(pm_value)
|
|
|
|
|
|
|
|
except (TypeError, ValueError):
|
|
|
|
|
|
|
|
rc_pm_labor_cost = 0.0
|
|
|
|
|
|
|
|
if oh_value is not None:
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
|
|
|
rc_oh_labor_cost = float(oh_value)
|
|
|
|
|
|
|
|
except (TypeError, ValueError):
|
|
|
|
|
|
|
|
rc_oh_labor_cost = 0.0
|
|
|
|
|
|
|
|
if pdm_value is not None:
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
|
|
|
rc_predictive_labor_cost = float(pdm_value)
|
|
|
|
|
|
|
|
except (TypeError, ValueError):
|
|
|
|
|
|
|
|
rc_predictive_labor_cost = 0.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
return {
|
|
|
|
"raw_cm_interval": raw_cm_interval,
|
|
|
|
"raw_cm_interval": raw_cm_interval,
|
|
|
|
@ -481,8 +463,6 @@ def _build_tr_row_values(
|
|
|
|
"raw_predictive_material_cost": raw_pdm_material_cost,
|
|
|
|
"raw_predictive_material_cost": raw_pdm_material_cost,
|
|
|
|
"raw_predictive_labor_time": raw_pdm_labor_time,
|
|
|
|
"raw_predictive_labor_time": raw_pdm_labor_time,
|
|
|
|
"raw_predictive_labor_human": raw_pdm_labor_human,
|
|
|
|
"raw_predictive_labor_human": raw_pdm_labor_human,
|
|
|
|
# "raw_loss_output_MW": raw_loss_output_MW,
|
|
|
|
|
|
|
|
# "raw_loss_output_price": raw_loss_output_price,
|
|
|
|
|
|
|
|
"rc_cm_material_cost": rc_cm_material_cost,
|
|
|
|
"rc_cm_material_cost": rc_cm_material_cost,
|
|
|
|
"rc_cm_labor_cost": rc_cm_labor_cost,
|
|
|
|
"rc_cm_labor_cost": rc_cm_labor_cost,
|
|
|
|
"rc_pm_material_cost": rc_pm_material_cost,
|
|
|
|
"rc_pm_material_cost": rc_pm_material_cost,
|
|
|
|
@ -931,7 +911,6 @@ async def query_data():
|
|
|
|
raw_pm_interval, raw_pm_material_cost, raw_pm_labor_time, raw_pm_labor_human,
|
|
|
|
raw_pm_interval, raw_pm_material_cost, raw_pm_labor_time, raw_pm_labor_human,
|
|
|
|
raw_oh_interval, raw_oh_material_cost, raw_oh_labor_time, raw_oh_labor_human,
|
|
|
|
raw_oh_interval, raw_oh_material_cost, raw_oh_labor_time, raw_oh_labor_human,
|
|
|
|
raw_predictive_interval, raw_predictive_material_cost, raw_predictive_labor_time, raw_predictive_labor_human,
|
|
|
|
raw_predictive_interval, raw_predictive_material_cost, raw_predictive_labor_time, raw_predictive_labor_human,
|
|
|
|
"raw_loss_output_MW", raw_loss_output_price,
|
|
|
|
|
|
|
|
"rc_cm_material_cost", "rc_cm_labor_cost",
|
|
|
|
"rc_cm_material_cost", "rc_cm_labor_cost",
|
|
|
|
"rc_pm_material_cost", "rc_pm_labor_cost",
|
|
|
|
"rc_pm_material_cost", "rc_pm_labor_cost",
|
|
|
|
"rc_oh_material_cost", "rc_oh_labor_cost",
|
|
|
|
"rc_oh_material_cost", "rc_oh_labor_cost",
|
|
|
|
@ -946,7 +925,6 @@ async def query_data():
|
|
|
|
%s, %s,
|
|
|
|
%s, %s,
|
|
|
|
%s, %s,
|
|
|
|
%s, %s,
|
|
|
|
%s, %s,
|
|
|
|
%s, %s,
|
|
|
|
%s, %s,
|
|
|
|
|
|
|
|
%s,
|
|
|
|
%s,
|
|
|
|
'Sys', NOW()
|
|
|
|
'Sys', NOW()
|
|
|
|
)
|
|
|
|
)
|
|
|
|
@ -972,8 +950,6 @@ async def query_data():
|
|
|
|
raw_predictive_material_cost = %s,
|
|
|
|
raw_predictive_material_cost = %s,
|
|
|
|
raw_predictive_labor_time = %s,
|
|
|
|
raw_predictive_labor_time = %s,
|
|
|
|
raw_predictive_labor_human = %s,
|
|
|
|
raw_predictive_labor_human = %s,
|
|
|
|
"raw_loss_output_MW" = %s,
|
|
|
|
|
|
|
|
raw_loss_output_price = %s,
|
|
|
|
|
|
|
|
"rc_cm_material_cost" = %s,
|
|
|
|
"rc_cm_material_cost" = %s,
|
|
|
|
"rc_cm_labor_cost" = %s,
|
|
|
|
"rc_cm_labor_cost" = %s,
|
|
|
|
"rc_pm_material_cost" = %s,
|
|
|
|
"rc_pm_material_cost" = %s,
|
|
|
|
@ -1114,8 +1090,6 @@ async def query_data():
|
|
|
|
row_values["raw_predictive_material_cost"],
|
|
|
|
row_values["raw_predictive_material_cost"],
|
|
|
|
row_values["raw_predictive_labor_time"],
|
|
|
|
row_values["raw_predictive_labor_time"],
|
|
|
|
row_values["raw_predictive_labor_human"],
|
|
|
|
row_values["raw_predictive_labor_human"],
|
|
|
|
row_values["raw_loss_output_MW"],
|
|
|
|
|
|
|
|
row_values["raw_loss_output_price"],
|
|
|
|
|
|
|
|
row_values["rc_cm_material_cost"],
|
|
|
|
row_values["rc_cm_material_cost"],
|
|
|
|
row_values["rc_cm_labor_cost"],
|
|
|
|
row_values["rc_cm_labor_cost"],
|
|
|
|
row_values["rc_pm_material_cost"],
|
|
|
|
row_values["rc_pm_material_cost"],
|
|
|
|
@ -1149,8 +1123,6 @@ async def query_data():
|
|
|
|
row_values["raw_predictive_material_cost"],
|
|
|
|
row_values["raw_predictive_material_cost"],
|
|
|
|
row_values["raw_predictive_labor_time"],
|
|
|
|
row_values["raw_predictive_labor_time"],
|
|
|
|
row_values["raw_predictive_labor_human"],
|
|
|
|
row_values["raw_predictive_labor_human"],
|
|
|
|
row_values["raw_loss_output_MW"],
|
|
|
|
|
|
|
|
row_values["raw_loss_output_price"],
|
|
|
|
|
|
|
|
row_values["rc_cm_material_cost"],
|
|
|
|
row_values["rc_cm_material_cost"],
|
|
|
|
row_values["rc_cm_labor_cost"],
|
|
|
|
row_values["rc_cm_labor_cost"],
|
|
|
|
row_values["rc_pm_material_cost"],
|
|
|
|
row_values["rc_pm_material_cost"],
|
|
|
|
@ -1162,6 +1134,8 @@ async def query_data():
|
|
|
|
year,
|
|
|
|
year,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
inserted_this_asset += 1
|
|
|
|
|
|
|
|
total_inserted += 1
|
|
|
|
seq = seq + 1
|
|
|
|
seq = seq + 1
|
|
|
|
|
|
|
|
|
|
|
|
# commit per asset to persist progress and free transaction
|
|
|
|
# commit per asset to persist progress and free transaction
|
|
|
|
|