Эх сурвалжийг харах

android 启动流程的列表可配置是否显示

fancy 5 жил өмнө
parent
commit
16284e147f

+ 27 - 7
o2android/app/src/main/java/net/zoneland/x/bpm/mobile/v1/zoneXBPM/app/o2/process/StartProcessStepOnePresenter.kt

@@ -5,12 +5,10 @@ import net.muliba.accounting.app.ExceptionHandler
 import net.zoneland.x.bpm.mobile.v1.zoneXBPM.app.base.BasePresenterImpl
 import net.zoneland.x.bpm.mobile.v1.zoneXBPM.core.component.api.ResponseHandler
 import net.zoneland.x.bpm.mobile.v1.zoneXBPM.model.bo.api.main.identity.ProcessWOIdentityJson
-import net.zoneland.x.bpm.mobile.v1.zoneXBPM.model.bo.api.o2.ApplicationData
-import net.zoneland.x.bpm.mobile.v1.zoneXBPM.model.bo.api.o2.ProcessInfoData
-import net.zoneland.x.bpm.mobile.v1.zoneXBPM.model.bo.api.o2.ProcessStartBo
-import net.zoneland.x.bpm.mobile.v1.zoneXBPM.model.bo.api.o2.ProcessWorkData
+import net.zoneland.x.bpm.mobile.v1.zoneXBPM.model.bo.api.o2.*
 import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.XLog
 import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.extension.o2Subscribe
+import rx.Observable
 import rx.android.schedulers.AndroidSchedulers
 import rx.schedulers.Schedulers
 
@@ -28,11 +26,33 @@ class StartProcessStepOnePresenter : BasePresenterImpl<StartProcessStepOneContra
 
     override fun loadProcessListByAppId(appId: String) {
         getProcessAssembleSurfaceServiceAPI(mView?.getContext())?.let { service->
-            service.getApplicationProcess(appId)
+            val filter = ApplicationProcessFilter()
+            //先用新接口查询
+            service.getApplicationProcessFilter(appId, filter)
                     .subscribeOn(Schedulers.io())
                     .observeOn(AndroidSchedulers.mainThread())
-                    .subscribe(ResponseHandler<List<ProcessInfoData>>({list->mView?.loadProcessList(list)}),
-                            ExceptionHandler(mView?.getContext(), {e->mView?.loadProcessListFail()}))
+                    .o2Subscribe { 
+                        onNext { res ->
+                            mView?.loadProcessList(res.data)
+                        }
+                        onError { e, _ ->
+                            XLog.error("", e)
+                            //用老接口查询
+                            service.getApplicationProcess(appId)
+                                    .subscribeOn(Schedulers.io())
+                                    .observeOn(AndroidSchedulers.mainThread())
+                                    .o2Subscribe {
+                                        onNext { res1 ->
+                                            mView?.loadProcessList(res1.data)
+                                        }
+                                        onError { e, _ ->
+                                            XLog.error("", e)
+                                            mView?.loadProcessListFail()
+                                        }
+                                    }
+                        }
+                    }
+
         }
     }
 

+ 7 - 0
o2android/o2_auth_sdk/src/main/java/net/zoneland/x/bpm/mobile/v1/zoneXBPM/core/component/api/service/ProcessAssembleSurfaceService.kt

@@ -36,6 +36,13 @@ interface ProcessAssembleSurfaceService {
     @GET("jaxrs/process/list/application/{appId}")
     fun getApplicationProcess(@Path("appId") appId: String): Observable<ApiResponse<List<ProcessInfoData>>>
 
+    /**
+     * 获取应用下的流程
+     * @param filter 可启动流程终端类型,可选值 client,mobile,all
+     */
+    @POST("jaxrs/process/list/application/{appId}/filter")
+    fun getApplicationProcessFilter(@Path("appId") appId: String, @Body filter: ApplicationProcessFilter): Observable<ApiResponse<List<ProcessInfoData>>>
+
     /**
      * 获取应用列表 包含应用下的流程数据
      * @return

+ 10 - 0
o2android/o2_auth_sdk/src/main/java/net/zoneland/x/bpm/mobile/v1/zoneXBPM/model/bo/api/o2/ApplicationProcessFilter.kt

@@ -0,0 +1,10 @@
+package net.zoneland.x.bpm.mobile.v1.zoneXBPM.model.bo.api.o2
+
+/**
+ * Created by fancyLou on 2020-07-23.
+ * Copyright © 2020 O2. All rights reserved.
+ */
+
+data class ApplicationProcessFilter(
+        var startableTerminal: String = "mobile" //可启动流程终端类型,可选值 client,mobile,all
+)