|
|
|
|
@ -95,7 +95,7 @@ async def simulate_equipment(db_session: DbSession, assetnum: str):
|
|
|
|
|
yield f"data: {json.dumps({'status':'error','step':'checking update','message':f'Update simulation data failed: {str(e)}'})}\n\n"
|
|
|
|
|
|
|
|
|
|
# notify start of prediksi
|
|
|
|
|
yield f"data: {json.dumps({'status':'started','step':'prediksi','message':'Starting prediksi'})}\n\n"
|
|
|
|
|
yield f"data: {json.dumps({'status':'started','step':'prediksi','message':'Menghitung prediksi'})}\n\n"
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
prediksi = await prediksi_main(assetnum=assetnum)
|
|
|
|
|
@ -105,10 +105,10 @@ async def simulate_equipment(db_session: DbSession, assetnum: str):
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
# prediksi finished
|
|
|
|
|
yield f"data: {json.dumps({'status':'completed','step':'prediksi','message':'Prediksi completed','result_present': bool(prediksi)})}\n\n"
|
|
|
|
|
yield f"data: {json.dumps({'status':'completed','step':'prediksi','message':'Prediksi selesai','result_present': bool(prediksi)})}\n\n"
|
|
|
|
|
|
|
|
|
|
# start eac
|
|
|
|
|
yield f"data: {json.dumps({'status':'started','step':'eac','message':'Starting EAC calculation'})}\n\n"
|
|
|
|
|
yield f"data: {json.dumps({'status':'started','step':'eac','message':'Menghitung EAC'})}\n\n"
|
|
|
|
|
try:
|
|
|
|
|
eac = Eac()
|
|
|
|
|
hasil_eac = eac.hitung_eac_equipment(assetnum=assetnum)
|
|
|
|
|
@ -117,7 +117,7 @@ async def simulate_equipment(db_session: DbSession, assetnum: str):
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
# eac finished
|
|
|
|
|
yield f"data: {json.dumps({'status':'completed','step':'eac','message':'EAC calculation completed','result_present': bool(hasil_eac)})}\n\n"
|
|
|
|
|
yield f"data: {json.dumps({'status':'completed','step':'eac','message':'EAC selesai','result_present': bool(hasil_eac)})}\n\n"
|
|
|
|
|
|
|
|
|
|
# if both are empty, emit a not-found style event
|
|
|
|
|
if not prediksi and not hasil_eac:
|
|
|
|
|
@ -126,7 +126,7 @@ async def simulate_equipment(db_session: DbSession, assetnum: str):
|
|
|
|
|
|
|
|
|
|
# final result
|
|
|
|
|
combined = {'prediksi': prediksi, 'hasil_eac': hasil_eac}
|
|
|
|
|
yield f"data: {json.dumps({'status':'done','message':f'Simulation for {assetnum} completed successfully','data':combined})}\n\n"
|
|
|
|
|
yield f"data: {json.dumps({'status':'done','message':f'Simulation for {assetnum} selesai','data':combined})}\n\n"
|
|
|
|
|
|
|
|
|
|
headers = {
|
|
|
|
|
"Content-type": "text/event-stream",
|
|
|
|
|
@ -154,13 +154,13 @@ async def simulate_all_equipment(db_session: DbSession):
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
total = len(assetnums)
|
|
|
|
|
yield f"data: {json.dumps({'status':'started', 'message': f'Starting simulation for {total} assets'})}\\n\\n"
|
|
|
|
|
yield f"data: {json.dumps({'status':'started', 'message': f'Simulasi dimulai untuk {total} asset'})}\\n\\n"
|
|
|
|
|
|
|
|
|
|
success_count = 0
|
|
|
|
|
error_count = 0
|
|
|
|
|
|
|
|
|
|
for idx, assetnum in enumerate(assetnums, start=1):
|
|
|
|
|
yield f"data: {json.dumps({'status':'working', 'step':f'Processing {idx}/{total}', 'assetnum': assetnum})}\\n\\n"
|
|
|
|
|
yield f"data: {json.dumps({'status':'working', 'step':f'Proses {idx}/{total}', 'assetnum': assetnum})}\\n\\n"
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
# Update acquisition year and target year
|
|
|
|
|
@ -177,7 +177,7 @@ async def simulate_all_equipment(db_session: DbSession):
|
|
|
|
|
yield f"data: {json.dumps({'status':'partial_error', 'assetnum': assetnum, 'message': str(e)})}\\n\\n"
|
|
|
|
|
continue
|
|
|
|
|
|
|
|
|
|
yield f"data: {json.dumps({'status':'done', 'message':f'All simulations completed. Success: {success_count}, Errors: {error_count}'})}\\n\\n"
|
|
|
|
|
yield f"data: {json.dumps({'status':'done', 'message':f'Simulasi selesai. Success: {success_count}, Errors: {error_count}'})}\\n\\n"
|
|
|
|
|
|
|
|
|
|
headers = {
|
|
|
|
|
"Content-type": "text/event-stream",
|
|
|
|
|
|