Kaynağa Gözat

refactor: 优化业务流程中间件的错误处理和异步操作

- 在 businessFlowMiddlewareLogic.ts 中改进 setExpDisable 的错误处理逻辑
- 全曝光退出检查时,通知服务端用于更改状态

改动文件:
- src/states/businessFlowMiddlewareLogic.ts
sw 3 gün önce
ebeveyn
işleme
f17f3132ff
1 değiştirilmiş dosya ile 11 ekleme ve 3 silme
  1. 11 3
      src/states/businessFlowMiddlewareLogic.ts

+ 11 - 3
src/states/businessFlowMiddlewareLogic.ts

@@ -196,11 +196,11 @@ const businessFlowMiddlewareLogic: Middleware =
             `[businessFlowMiddleware] Exiting exam flow, last key was: ${state.lastKey}`
           );
           // 离开检查前,禁止发生器曝光
-            try {
+          try {
             await setExpDisable();
-            } catch (error) {
+          } catch (error) {
             console.error('[businessFlowMiddleware] setExpDisable Failed to disable exposure:', error);
-            }
+          }
           unprepare();
         }
       } else {
@@ -296,6 +296,14 @@ const businessFlowMiddlewareLogic: Middleware =
         console.log(
           '[businessFlowMiddleware] Fully Exposed, notifying backend'
         );
+        const studyId =
+          (store.getState() as RootState)?.bodyPositionList?.selectedBodyPosition
+            ?.work?.StudyID ?? '';
+        suspendOrCompleteStudy(studyId, 'Completed').then(() => {
+          console.log(`[businessFlowMiddleware] 全曝光,通知后端完成`)
+        }).catch((error) => {
+          console.log(`[businessFlowMiddleware] 全曝光,通知后端失败 ${error}`);
+        });
         // Proceed with the action
         return next(action);
       } else if (exposureStatus === 'Not Exposed') {