Răsfoiți Sursa

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

fancy 5 ani în urmă
părinte
comite
0ff4851b5f

+ 4 - 0
o2ios/O2Platform.xcodeproj/project.pbxproj

@@ -246,6 +246,7 @@
 		B1B0103023586B34002BF874 /* CFFileTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = B1B0102E23586B34002BF874 /* CFFileTableViewCell.xib */; };
 		B1B110E2223622C400775BEF /* O2BioLocalAuth.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1B110AB223622C400775BEF /* O2BioLocalAuth.swift */; };
 		B1B110E422363F7200775BEF /* BioAuthLoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1B110E322363F7200775BEF /* BioAuthLoginViewController.swift */; };
+		B1B1303025021EAC003B99DF /* WorkInfoResData.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1B1302F25021EAC003B99DF /* WorkInfoResData.swift */; };
 		B1B2148F216073B400D9CA7E /* ScanHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1B21459216073B400D9CA7E /* ScanHelper.swift */; };
 		B1B214912160A69E00D9CA7E /* Tuling123API.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1B214902160A69E00D9CA7E /* Tuling123API.swift */; };
 		B1B214932160A8A300D9CA7E /* TulingPostModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1B214922160A8A300D9CA7E /* TulingPostModel.swift */; };
@@ -1414,6 +1415,7 @@
 		B1B0102E23586B34002BF874 /* CFFileTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CFFileTableViewCell.xib; sourceTree = "<group>"; };
 		B1B110AB223622C400775BEF /* O2BioLocalAuth.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = O2BioLocalAuth.swift; sourceTree = "<group>"; };
 		B1B110E322363F7200775BEF /* BioAuthLoginViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BioAuthLoginViewController.swift; sourceTree = "<group>"; };
+		B1B1302F25021EAC003B99DF /* WorkInfoResData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WorkInfoResData.swift; sourceTree = "<group>"; };
 		B1B21459216073B400D9CA7E /* ScanHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScanHelper.swift; sourceTree = "<group>"; };
 		B1B214902160A69E00D9CA7E /* Tuling123API.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tuling123API.swift; sourceTree = "<group>"; };
 		B1B214922160A8A300D9CA7E /* TulingPostModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TulingPostModel.swift; sourceTree = "<group>"; };
@@ -4111,6 +4113,7 @@
 				E4B888501D9D48F1002E1A46 /* TodoTask.swift */,
 				B1908E1322685E8F00D75632 /* O2WebViewModels.swift */,
 				B1BA42B724133AC40081CED8 /* TaskCreateData.swift */,
+				B1B1302F25021EAC003B99DF /* WorkInfoResData.swift */,
 			);
 			path = m;
 			sourceTree = "<group>";
@@ -5410,6 +5413,7 @@
 				09E02E8C1F16319600579887 /* Haneke.swift in Sources */,
 				B1E95F7B23750CC2004876B7 /* CloudFilePreviewController.swift in Sources */,
 				E4C24C52208D7EDE00E426B0 /* OOContactUnitHeader.swift in Sources */,
+				B1B1303025021EAC003B99DF /* WorkInfoResData.swift in Sources */,
 				B165CD662242093500373B66 /* OOAlertViewController.swift in Sources */,
 				E428AF5D20AC1CD100D964B9 /* OOAttandanceViewModel.swift in Sources */,
 				E4B8886F1D9D48F1002E1A46 /* ContactHomeViewController.swift in Sources */,

+ 18 - 1
o2ios/O2Platform/App/IM-聊天/IMChatViewController.swift

@@ -620,10 +620,27 @@ extension IMChatViewController: IMChatMessageDelegate {
     }
     
     func openWork(workId: String) {
+        self.showLoading()
+        self.viewModel.isWorkCompleted(work: workId).always {
+            self.hideLoading()
+        }.then{ result in
+            if result {
+                self.showMessage(msg: "工作已经完成了!")
+            }else {
+                self.openWorkPage(work: workId)
+            }
+        }.catch {_ in
+            self.showMessage(msg: "工作已经完成了!")
+        }
+        
+        
+    }
+    
+    private func openWorkPage(work: String) {
         let storyBoard = UIStoryboard(name: "task", bundle: nil)
         let destVC = storyBoard.instantiateViewController(withIdentifier: "todoTaskDetailVC") as! TodoTaskDetailViewController
         let json = """
-        {"work":"\(workId)", "workCompleted":"", "title":""}
+        {"work":"\(work)", "workCompleted":"", "title":""}
         """
         let todo = TodoTask(JSONString: json)
         destVC.todoTask = todo

+ 18 - 2
o2ios/O2Platform/App/IM-聊天/IMInstantMessageViewController.swift

@@ -106,10 +106,27 @@ extension IMInstantMessageViewController : IMChatMessageDelegate {
     }
     
     func openWork(workId: String) {
+        self.showLoading()
+        self.viewModel.isWorkCompleted(work: workId).always {
+            self.hideLoading()
+        }.then{ result in
+            if result {
+                self.showMessage(msg: "工作已经完成了!")
+            }else {
+                self.openWorkPage(work: workId)
+            }
+        }.catch {_ in
+            self.showMessage(msg: "工作已经完成了!")
+        }
+        
+        
+    }
+    
+    private func openWorkPage(work: String) {
         let storyBoard = UIStoryboard(name: "task", bundle: nil)
         let destVC = storyBoard.instantiateViewController(withIdentifier: "todoTaskDetailVC") as! TodoTaskDetailViewController
         let json = """
-        {"work":"\(workId)", "workCompleted":"", "title":""}
+        {"work":"\(work)", "workCompleted":"", "title":""}
         """
         let todo = TodoTask(JSONString: json)
         destVC.todoTask = todo
@@ -117,5 +134,4 @@ extension IMInstantMessageViewController : IMChatMessageDelegate {
         self.show(destVC, sender: nil)
     }
     
-    
 }

+ 15 - 0
o2ios/O2Platform/App/IM-聊天/IMViewModel.swift

@@ -16,6 +16,7 @@ class IMViewModel: NSObject {
 
 
     private let communicateAPI = OOMoyaProvider<CommunicateAPI>()
+    private let workAPI = OOMoyaProvider<OOWorkAPI>()
 }
 
 extension IMViewModel {
@@ -206,4 +207,18 @@ extension IMViewModel {
                 })
         }
     }
+    
+    ///判断是否工作已经完成
+    func isWorkCompleted(work: String) -> Promise<Bool> {
+        return Promise { fulfill, reject in
+            self.workAPI.request(.getWork(work), completion: {result in
+                let response = OOResult<BaseModelClass<WorkInfoResData>>(result)
+                if response.isResultSuccess() {
+                    fulfill(false)
+                }else {
+                    fulfill(true)
+                }
+            })
+        }
+    }
 }

+ 56 - 0
o2ios/O2Platform/App/Work-工作/m/WorkInfoResData.swift

@@ -0,0 +1,56 @@
+//
+//  WorkInfoResData.swift
+//  O2Platform
+//
+//  Created by FancyLou on 2020/9/4.
+//  Copyright © 2020 zoneland. All rights reserved.
+//
+
+import Foundation
+import HandyJSON
+
+class WorkInfoRes: NSObject,DataModel {
+    @objc var id: String?
+    @objc var job: String?
+    @objc var title: String?
+    @objc var startTime: String?
+    @objc var startTimeMonth: String?
+    @objc var creatorPerson: String?
+    @objc var creatorIdentity: String?
+    @objc var creatorUnit: String?
+    @objc var application: String?
+    @objc var applicationName: String?
+    @objc var applicationAlias: String?
+    @objc var process: String?
+    @objc var processName: String?
+    @objc var processAlias: String?
+    @objc var activity: String?
+    @objc var activityType: String?
+    @objc var activityName: String?
+    @objc var activityAlias: String?
+    @objc var activityDescription: String?
+    @objc var activityToken: String?
+    @objc var activityArrivedTime: String?
+    @objc var serial: String?
+    @objc var workCreateType: String?
+    @objc var workStatus: String?
+    @objc var manualTaskIdentityText: String?
+    @objc var form: String?
+    @objc var destinationRoute: String?
+    @objc var destinationRouteName: String?
+    @objc var destinationActivityType: String?
+    @objc var destinationActivity: String?
+    
+    
+    required override init() {
+        
+    }
+}
+
+class WorkInfoResData: NSObject,DataModel {
+    @objc var work: WorkInfoRes?
+    
+    required override init() {
+        
+    }
+}

+ 12 - 2
o2ios/O2Platform/Framework/O2API/TaskAPI/OOWorkAPI.swift

@@ -13,6 +13,7 @@ import O2OA_Auth_SDK
 // MARK:- 所有调用的API枚举
 enum OOWorkAPI {
     case createTask(String,Dictionary<String,String>)
+    case getWork(String)//获取工作对象 如果工作已经结束了 500错误
 }
 
 // MARK:- 上下文实现
@@ -41,11 +42,18 @@ extension OOWorkAPI:TargetType {
         switch self {
         case .createTask(let processId,_):
             return "/jaxrs/work/process/\(processId)"
+        case .getWork(let workId):
+            return "/jaxrs/work/\(workId)"
         }
     }
     
     var method: Moya.Method {
-        return .post
+        switch self {
+            case .createTask(_,_):
+                return .post
+            case .getWork(_):
+                return .get
+        }
     }
     
     var sampleData: Data {
@@ -56,7 +64,9 @@ extension OOWorkAPI:TargetType {
         switch self {
         case .createTask(_,let param):
             return .requestParameters(parameters: param, encoding: JSONEncoding.default)
-        }
+        default:
+           return .requestPlain
+       }
     }
     
     var headers: [String : String]? {

+ 2 - 2
o2ios/O2Platform/Info.plist

@@ -23,7 +23,7 @@
 	<key>CFBundlePackageType</key>
 	<string>APPL</string>
 	<key>CFBundleShortVersionString</key>
-	<string>5.1.7</string>
+	<string>5.1.8</string>
 	<key>CFBundleURLTypes</key>
 	<array>
 		<dict>
@@ -38,7 +38,7 @@
 		</dict>
 	</array>
 	<key>CFBundleVersion</key>
-	<string>77</string>
+	<string>78</string>
 	<key>LSRequiresIPhoneOS</key>
 	<true/>
 	<key>NSAppTransportSecurity</key>