Browse Source

1.审批流

time 6 years ago
parent
commit
6a9d6c6fe0

+ 14 - 0
shiku_im/shiku_im/controller/myOA/NSString+regular.h

@@ -61,5 +61,19 @@
 
 +(BOOL)isMoreThanSixtyWith:(NSString *)date;
 
+/**
+ 转换小数点
+
+ */
++(NSString *)reviseString: (NSString *)str;
+
+/**
+ 计算小数点后位数
+ 
+ */
++(int)calculPointLength:(NSString *)str;
+
+//判断字符串是不是浮点型数据
++(BOOL)isPureFloat:(NSString*)string;
 
 @end

+ 47 - 0
shiku_im/shiku_im/controller/myOA/NSString+regular.m

@@ -314,5 +314,52 @@
     
 }
 
++(NSString *)reviseString: (NSString *)str{
+    //直接传入精度丢失有问题的Double类型
+    double conversionValue = [str doubleValue];
+    NSString *doubleString = [NSString stringWithFormat:@"%lf", conversionValue];
+    NSDecimalNumber *decNumber = [NSDecimalNumber decimalNumberWithString:doubleString];
+    return [decNumber stringValue];
+    
+}
+
+
++(int)calculPointLength:(NSString *)str{
+    
+    int length = 0;
+    
+    if ([str containsString:@"."]) {
+        
+        NSArray<NSString *> *strArr = [str componentsSeparatedByString:@"."];
+        
+        if (strArr.count == 2) {
+            
+            length = strArr[1].length;
+            
+        }else{
+            
+            length = 0;
+            
+        }
+        
+        
+    }else{
+        
+        length = 0;
+        
+    }
+    
+    
+    return length;
+}
+
+
+//判断字符串是不是浮点型数据
++(BOOL)isPureFloat:(NSString*)string{
+
+    NSScanner* scan = [NSScanner scannerWithString:string];
+    float val;
+    return [scan scanFloat:&val] && [scan isAtEnd];
+}
 
 @end

+ 68 - 7
shiku_im/shiku_im/controller/审批流详情/LYYApprovalDetailVC.m

@@ -741,7 +741,12 @@
     [manager.requestSerializer setValue:paramSessionId forHTTPHeaderField:@"Cookie"];
     [manager.requestSerializer setValue:[NSString stringWithFormat:@"%@",g_sessionUser] forHTTPHeaderField:@"sessionUser"];
     [manager request:url method:POST parameters:nil progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
-        
+  
+        if ([responseObject isKindOfClass:NSData.class]) {
+            
+            responseObject = (NSDictionary *)[NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:nil];
+            
+        }
   
         //主表的属性数组
         NSMutableArray *formconfigsArr = [[NSMutableArray alloc]init];
@@ -1857,8 +1862,18 @@
 -(UILabel *)creatRightLabelWithHeight:(int)hang text:(NSString *)text withinter:(NSInteger)aa withtype:(NSString *)type
 {
     if ([self isPureFloat:text] && [text containsString:@"."]) {
+        
+        //还原小数位
+        text = [NSString reviseString:text];
+        
         if ([type containsString:@"floatcolumn"] && type.length>11) {
-                NSInteger aa = [[type substringWithRange:NSMakeRange(type.length-2, 1)] integerValue];
+            
+               NSString *typeStr = [type stringByReplacingOccurrencesOfString:@"floatcolumn" withString:@""];
+                //处理特殊情况下的0
+               typeStr = [typeStr stringByReplacingOccurrencesOfString:@"0" withString:@""];
+            
+                NSInteger aa = [typeStr integerValue];
+            
                 if (aa <= 8) {
                     switch (aa) {
                         case 1:
@@ -1891,11 +1906,29 @@
                             break;
                     }
                 }else{
+                    
                     text = FORMAT(@"%.8lf",[text floatValue]);
+                    
                 }
             
         }else{
+            
+            
+            if ([text containsString:@"."]){
+                
+                text = [NSString reviseString:text];
+                
+            }
+            
+            int length = [NSString calculPointLength:text];
+            
+            if (length > 2) {
+                
             text = FORMAT(@"%.2lf",[text floatValue]);
+                
+            }
+            
+            
         }
     }
     CGSize size = [self getSizeWithText:text];
@@ -1936,8 +1969,17 @@
 {
     text = [NSDictionary changeType:text];
     if ([self isPureFloat:text] && [text containsString:@"."] ) {
+        //还原小数位
+        text = [NSString reviseString:text];
+        
        if ([type containsString:@"floatcolumn"] && type.length>11) {
-                NSInteger aa = [[type substringWithRange:NSMakeRange(type.length-2, 1)] integerValue];
+           
+           NSString *typeStr = [type stringByReplacingOccurrencesOfString:@"floatcolumn" withString:@""];
+           
+           typeStr = [typeStr stringByReplacingOccurrencesOfString:@"0" withString:@""];
+           
+           NSInteger aa = [typeStr integerValue];
+           
                 if (aa <= 8) {
                     switch (aa) {
                         case 1:
@@ -1969,11 +2011,28 @@
                         default:
                             break;
                     }
-                }else{
+                }else{//最高取8位
+                    
                     text = FORMAT(@"%.8lf",[text floatValue]);
+                    
                 }
-        }else{
-            text = FORMAT(@"%.2lf",[text floatValue]);
+           
+        }else{//最高取6位
+        
+            if ([text containsString:@"."]){
+                
+                text = [NSString reviseString:text];
+                
+            }
+            
+            int length = [NSString calculPointLength:text];
+            
+            if (length > 2) {
+             
+                text = FORMAT(@"%.2lf",[text floatValue]);
+                
+            }
+            
         }
         
     }
@@ -2626,6 +2685,7 @@
           [self PostAgree:sender];
     }else{
     NSString *formS1 = [NSString dictionaryToJson:formStore];
+        
     NSString *parm1 = FORMAT(@"[%@]",[parmArr componentsJoinedByString:@","]);
     
         
@@ -5656,9 +5716,10 @@
 }
 //判断字符串是不是浮点型数据
 - (BOOL)isPureFloat:(NSString*)string{
+
     NSScanner* scan = [NSScanner scannerWithString:string];
     float val;
-    return[scan scanFloat:&val] && [scan isAtEnd];
+    return [scan scanFloat:&val] && [scan isAtEnd];
 }
 
 @end