refactor: Exclude `seq=0` from historical data, simplify CM prediction logic, and remove hardcoded assetnum from run script.

main
MrWaradana 3 weeks ago
parent fa4ea74d9b
commit 0dd0ce1fe2

@ -95,6 +95,7 @@ class Prediksi:
FROM lcc_equipment_tr_data
WHERE assetnum = %s
and is_actual=1
and seq != 0
;
"""
cursor.execute(query, (equipment_id,))
@ -711,7 +712,6 @@ class Prediksi:
if df is None:
print("Data tidak tersedia untuk prediksi.")
return
# Mendapatkan tahun proyeksi dari DB
par_tahun_target = self.__get_param(assetnum)
@ -769,19 +769,14 @@ class Prediksi:
try:
# Case untuk kolom yang terkait dengan corrective maintenance (cm)
if "cm" in col_lower:
# Tentukan jumlah baris recent yang dianggap actual jika kolom is_actual ada
if "is_actual" in df.columns:
recent_df = df[df["is_actual"] == 1]
recent_n = recent_df.shape[0]
avg_recent = recent_df[column].mean()
print(f"avg_recent: {avg_recent}")
else:
recent_df = df
recent_n = df.shape[0]
recent_n = max(1, recent_n)
recent_vals = (
recent_df.sort_values("year", ascending=True)
recent_df
.sort_values("year", ascending=True)
.head(recent_n)[column]
.dropna()
)
@ -798,7 +793,7 @@ class Prediksi:
avg = 0.0 if pd.isna(avg) else float(avg)
preds = np.repeat(float(avg), n_future)
print(preds)
# print(preds)
else:
# Untuk kolom non-cm, gunakan nilai dari last actual year bila ada,
# jika tidak ada gunakan last available non-NA value, jika tidak ada pakai 0.0

@ -10,14 +10,14 @@ from src.modules.equipment.Eac import Eac, main as eac_run
async def main():
start_time = time.time()
try:
await query_data()
except Exception as e:
print(f"Error in query_data: {str(e)}")
return
# try:
# await query_data()
# except Exception as e:
# print(f"Error in query_data: {str(e)}")
# return
try:
prediction_result = await predict_run(assetnum="A22277")
prediction_result = await predict_run()
if prediction_result is False:
print("Prediction step failed or was skipped. Skipping EAC run.")
return

Loading…
Cancel
Save