فهرست منبع

5.1.8版本 修复了工作消息打不开的问题

fancy 5 سال پیش
والد
کامیت
d2b4351c77

+ 15 - 6
o2android/app/src/main/java/net/zoneland/x/bpm/mobile/v1/zoneXBPM/app/im/O2InstantMessageActivity.kt

@@ -25,6 +25,7 @@ import net.zoneland.x.bpm.mobile.v1.zoneXBPM.core.component.enums.ApplicationEnu
 import net.zoneland.x.bpm.mobile.v1.zoneXBPM.flutter.FlutterConnectActivity
 import net.zoneland.x.bpm.mobile.v1.zoneXBPM.flutter.FlutterConnectActivity
 import net.zoneland.x.bpm.mobile.v1.zoneXBPM.model.bo.api.InstantMessage
 import net.zoneland.x.bpm.mobile.v1.zoneXBPM.model.bo.api.InstantMessage
 import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.DateHelper
 import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.DateHelper
+import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.XToast
 import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.extension.go
 import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.extension.go
 import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.extension.visible
 import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.extension.visible
 import net.zoneland.x.bpm.mobile.v1.zoneXBPM.widgets.CircleImageView
 import net.zoneland.x.bpm.mobile.v1.zoneXBPM.widgets.CircleImageView
@@ -84,6 +85,15 @@ class O2InstantMessageActivity : BaseMVPActivity<O2InstantMessageContract.View,
         }
         }
     }
     }
 
 
+    override fun workIsCompleted(flag: Boolean, workId: String) {
+        hideLoadingDialog()
+        if (!flag) {
+            go<TaskWebViewActivity>(TaskWebViewActivity.start(workId, "", ""))
+        }else {
+            XToast.toastShort(this, "工作已经结束!")
+        }
+    }
+
     private fun messageTypeEvent(textView: TextView, msg: InstantMessage) {
     private fun messageTypeEvent(textView: TextView, msg: InstantMessage) {
         val type = msg.type
         val type = msg.type
         if (type.startsWith("task_")) {
         if (type.startsWith("task_")) {
@@ -92,9 +102,7 @@ class O2InstantMessageActivity : BaseMVPActivity<O2InstantMessageContract.View,
             }
             }
         }else if (type.startsWith("taskCompleted_")) {
         }else if (type.startsWith("taskCompleted_")) {
             if (!type.contains("_delete")) {
             if (!type.contains("_delete")) {
-                setLinkStyle(textView) {
-
-                }
+                openWork(msg, textView)
             }
             }
         }else if (type.startsWith("read_")) {
         }else if (type.startsWith("read_")) {
             if (!type.contains("_delete")) {
             if (!type.contains("_delete")) {
@@ -140,10 +148,11 @@ class O2InstantMessageActivity : BaseMVPActivity<O2InstantMessageContract.View,
         val json = JSONTokener(msg.body).nextValue()
         val json = JSONTokener(msg.body).nextValue()
         if (json is JSONObject) {
         if (json is JSONObject) {
             val work = try {json.getString("work")}catch (e: Exception){null}
             val work = try {json.getString("work")}catch (e: Exception){null}
-            val workCompleted = try {json.getString("workCompleted")}catch (e: Exception){null}
-            if (!TextUtils.isEmpty(work) || !TextUtils.isEmpty(workCompleted)) {
+            if (!TextUtils.isEmpty(work)) {
                 setLinkStyle(textView) {
                 setLinkStyle(textView) {
-                    go<TaskWebViewActivity>(TaskWebViewActivity.start(work, workCompleted, ""))
+                    //先查询work对象
+                    showLoadingDialog()
+                    mPresenter.getWorkInfo(work!!)
                 }
                 }
             }
             }
         }
         }

+ 2 - 2
o2android/app/src/main/java/net/zoneland/x/bpm/mobile/v1/zoneXBPM/app/im/O2InstantMessageContract.kt

@@ -10,9 +10,9 @@ import net.zoneland.x.bpm.mobile.v1.zoneXBPM.app.base.BaseView
  */
  */
 object O2InstantMessageContract {
 object O2InstantMessageContract {
     interface View: BaseView {
     interface View: BaseView {
-
+        fun workIsCompleted(flag: Boolean, workId: String)
     }
     }
     interface Presenter: BasePresenter<View> {
     interface Presenter: BasePresenter<View> {
-
+        fun getWorkInfo(workId: String)
     }
     }
 }
 }

+ 23 - 0
o2android/app/src/main/java/net/zoneland/x/bpm/mobile/v1/zoneXBPM/app/im/O2InstantMessagePresenter.kt

@@ -1,6 +1,10 @@
 package net.zoneland.x.bpm.mobile.v1.zoneXBPM.app.im
 package net.zoneland.x.bpm.mobile.v1.zoneXBPM.app.im
 
 
 import net.zoneland.x.bpm.mobile.v1.zoneXBPM.app.base.BasePresenterImpl
 import net.zoneland.x.bpm.mobile.v1.zoneXBPM.app.base.BasePresenterImpl
+import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.XLog
+import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.extension.o2Subscribe
+import rx.android.schedulers.AndroidSchedulers
+import rx.schedulers.Schedulers
 
 
 
 
 /**
 /**
@@ -9,5 +13,24 @@ import net.zoneland.x.bpm.mobile.v1.zoneXBPM.app.base.BasePresenterImpl
  */
  */
 
 
 class O2InstantMessagePresenter : BasePresenterImpl<O2InstantMessageContract.View>(), O2InstantMessageContract.Presenter  {
 class O2InstantMessagePresenter : BasePresenterImpl<O2InstantMessageContract.View>(), O2InstantMessageContract.Presenter  {
+    override fun getWorkInfo(workId: String) {
+        val service = getProcessAssembleSurfaceServiceAPI(mView?.getContext())
+        if (service != null) {
+            service.getWorkInfo(workId)
+                    .subscribeOn(Schedulers.io())
+                    .observeOn(AndroidSchedulers.mainThread())
+                    .o2Subscribe {
+                        onNext {
+                            mView?.workIsCompleted(false, workId)
+                        }
+                        onError { e, _ ->
+                            XLog.error("", e)
+                            mView?.workIsCompleted(true, workId)
+                        }
+                    }
+        }else {
+            mView?.workIsCompleted(true, workId)
+        }
+    }
 
 
 }
 }

+ 2 - 2
o2android/gradle.properties

@@ -23,6 +23,6 @@ android.enableJetifier=true
 
 
 
 
 # o2
 # o2
-o2.versionName=5.1.7
-o2.versionCode=117
+o2.versionName=5.1.8
+o2.versionCode=118
 
 

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

@@ -71,6 +71,13 @@ interface ProcessAssembleSurfaceService {
     @DELETE("jaxrs/work/{workId}")
     @DELETE("jaxrs/work/{workId}")
     fun deleteWorkForm(@Path("workId") workId: String): Observable<ApiResponse<IdData>>
     fun deleteWorkForm(@Path("workId") workId: String): Observable<ApiResponse<IdData>>
 
 
+    /**
+     * 获取工作对象
+     * 如果返回500错误就是工作已经结束了
+     */
+    @GET("jaxrs/work/{workId}")
+    fun getWorkInfo(@Path("workId") workId: String): Observable<ApiResponse<WorkInfoResData>>
+
     /**
     /**
      * 已阅列表
      * 已阅列表
      * @param lastId
      * @param lastId

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

@@ -0,0 +1,45 @@
+package net.zoneland.x.bpm.mobile.v1.zoneXBPM.model.bo.api.o2
+
+
+/**
+ * Created by fancyLou on 2020-09-04.
+ * Copyright © 2020 O2. All rights reserved.
+ */
+
+data class WorkInfoResData(
+        var work: WorkInfoRes? ,
+        var workLogList: List<WorkLog> = ArrayList()
+)
+
+data class WorkInfoRes(
+    var id: String = "",
+    var job: String = "",
+    var title: String = "",
+    var startTime: String = "",
+    var startTimeMonth: String = "",
+    var creatorPerson: String = "",
+    var creatorIdentity: String = "",
+    var creatorUnit: String = "",
+    var application: String = "",
+    var applicationName: String = "",
+    var applicationAlias: String = "",
+    var process: String = "",
+    var processName: String = "",
+    var processAlias: String = "",
+    var activity: String = "",
+    var activityType: String = "",
+    var activityName: String = "",
+    var activityAlias: String = "",
+    var activityDescription: String = "",
+    var activityToken: String = "",
+    var activityArrivedTime: String = "",
+    var serial: String = "",
+    var workCreateType: String = "",
+    var workStatus: String = "",
+    var manualTaskIdentityText: String = "",
+    var form: String = "",
+    var destinationRoute: String = "",
+    var destinationRouteName: String = "",
+    var destinationActivityType: String = "",
+    var destinationActivity: String = ""
+)