ApplyCardViewController.m 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318
  1. //
  2. // ApplyCardViewController.m
  3. // shiku_im
  4. //
  5. // Created by on 16/11/17.
  6. // Copyright © 2016年 Reese. All rights reserved.
  7. //
  8. #import "ApplyCardViewController.h"
  9. #import "AFNetworking.h"
  10. #import "JOGetShenPiManVC.h"
  11. #import "JOTextview.h"
  12. @interface ApplyCardViewController ()<UITextViewDelegate,UIAlertViewDelegate,UIScrollViewDelegate>
  13. @property(nonatomic,strong)UIScrollView * sc;
  14. @property(nonatomic,strong)UIButton * btn;
  15. @end
  16. @implementation ApplyCardViewController
  17. {
  18. UITextView * _textView;
  19. }
  20. - (void)viewDidLoad {
  21. [super viewDidLoad];
  22. self.view.backgroundColor = Color(235, 233, 233, 1.0);
  23. self.title = Localized(@"UU_work_OA_PC_FillCard_Petition");
  24. BackView
  25. _sc =[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT-100)];
  26. _sc.contentSize = CGSizeMake(SCREEN_WIDTH, SCREEN_HEIGHT-100);
  27. _sc.delegate = self;
  28. [self.view addSubview:_sc];
  29. [self setUI];
  30. [self setBottomView];
  31. }
  32. -(void)setUI{
  33. UIView * uv1 = [[UIView alloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 56)];
  34. [_sc addSubview:uv1];
  35. UIView * uv2 =[[UIView alloc]initWithFrame:CGRectMake(0, 8, SCREEN_WIDTH, 40)];
  36. // uv2.backgroundColor =Color(235, 233, 233, 1.0);
  37. uv2.backgroundColor = Color(250, 249, 249, 1.0);
  38. [uv1 addSubview:uv2];
  39. UILabel * labl =[[UILabel alloc]initWithFrame:CGRectMake(10, 0, 120, 40)];
  40. labl.text = Localized(@"UU_work_OA_PC_FillCard_PetitionSCH");
  41. labl.font =FONT_SIZE(14);
  42. [uv2 addSubview:labl];
  43. UILabel * lab2 = [[UILabel alloc]initWithFrame:CGRectMake(130, 0, SCREEN_WIDTH-140, 40)];
  44. lab2.font = FONT_SIZE(13);
  45. lab2.numberOfLines = 0;
  46. lab2.textColor = [UIColor grayColor];
  47. lab2.text = _bukaTime;
  48. lab2.textAlignment = NSTextAlignmentRight;
  49. [uv2 addSubview:lab2];
  50. // DLog(@"获取的是:%@",_myMacAddress);
  51. UIImageView * imageV1 = [[UIImageView alloc]initWithFrame:CGRectMake(0, 56, SCREEN_WIDTH, 1)];
  52. imageV1.backgroundColor = [UIColor grayColor];
  53. // UIImageView * imageV2 = [[UIImageView alloc]initWithFrame:CGRectMake(0, 50, SCREEN_WIDTH, 1)];
  54. // imageV2.backgroundColor = [UIColor grayColor];
  55. // UIImageView *imageV3 = [[UIImageView alloc]initWithFrame:CGRectMake(10, 45, SCREEN_WIDTH-10, 1)];
  56. // imageV3.backgroundColor = [UIColor lightGrayColor];
  57. [uv1 addSubview:imageV1];
  58. // [_sc addSubview:imageV1];
  59. // [_sc addSubview:imageV2];
  60. // [_sc addSubview:imageV3];
  61. }
  62. -(void)setBottomView{
  63. UIView * view = [[UIView alloc]initWithFrame:CGRectMake(0,56, SCREEN_WIDTH,330)];
  64. view.backgroundColor = Color(250, 249, 249, 1.0);
  65. [_sc addSubview:view];
  66. JOTextView * textView = [[JOTextView alloc]initWithFrame:CGRectMake(6,86, SCREEN_WIDTH-12,300)];
  67. textView.placeholder = Localized(@"UU_custom_pleaseInputMust");
  68. textView.limitStr= @"NO";
  69. textView.delegate =self;
  70. textView.font = FONT_SIZE(13);
  71. textView.textColor = [UIColor grayColor];
  72. textView.returnKeyType = UIReturnKeyDone;
  73. textView.backgroundColor = Color(250, 249, 249, 1.0);
  74. _textView = textView;
  75. [_sc addSubview:textView];
  76. UILabel * lab3 = [[UILabel alloc]initWithFrame:CGRectMake(10, 56,SCREEN_WIDTH , 30)];
  77. lab3.text = Localized(@"UU_work_OA_PC_FillCard_PetitionGrounds");
  78. lab3.font = FONT_SIZE(14);
  79. // lab3.backgroundColor = [UIColor redColor];
  80. lab3.backgroundColor = Color(250, 249, 249, 1.0);
  81. [_sc addSubview:lab3];
  82. _btn = [UIButton sureButtonWithTitle:@"提交"];
  83. [_btn addTarget:self action:@selector(saveAndSubmitMobileSignCard) forControlEvents:UIControlEventTouchUpInside];
  84. [self.view addSubview:_btn];
  85. [_btn mas_makeConstraints:^(MASConstraintMaker *make) {
  86. make.left.equalTo(self.view).offset(20);
  87. make.right.equalTo(self.view).offset(-20);
  88. make.bottom.equalTo(self.view).offset(-40);
  89. make.height.mas_equalTo(40);
  90. }];
  91. }
  92. -(void)saveAndSubmitMobileSignCard{
  93. NSString * emcode = [[NSUserDefaults standardUserDefaults] stringForKey:@"erpaccount"];
  94. NSString * ipStr = [[NSUserDefaults standardUserDefaults] stringForKey:@"ipAndPort"];
  95. NSString *sessionId = [[NSUserDefaults standardUserDefaults] stringForKey:@"sessionId"];
  96. NSDateFormatter * formatter=[[NSDateFormatter alloc]init];
  97. [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
  98. NSString * currentTime=[formatter stringFromDate:[NSDate date]];
  99. DLog(@"afsdgdgtr:%@",currentTime);
  100. NSString * a = [_textView.text stringByReplacingOccurrencesOfString:@" " withString:@""];
  101. a = [a stringByReplacingOccurrencesOfString:@"\r" withString:@""];
  102. a = [a stringByReplacingOccurrencesOfString:@"\n" withString:@""];
  103. if ([a isEqualToString:@""]) {
  104. [((AppDelegate*)[[UIApplication sharedApplication] delegate]) showAlert:Localized(@"UU_work_OA_PC_FillCard_PetitionNONill")];
  105. }
  106. else{
  107. _btn.userInteractionEnabled = NO;
  108. NSDictionary * dic;NSString *url;
  109. NSDateFormatter * dateformatter = [[NSDateFormatter alloc]init];
  110. [dateformatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
  111. NSDate* Datestr = [dateformatter dateFromString:self.bukaTime];
  112. NSString *timeSp = [NSString stringWithFormat:@"%ld", (long)[Datestr timeIntervalSince1970]*1000];
  113. DLog(@"转换的数据是:%@",timeSp);
  114. if (g_B2BUser) {
  115. dic = @{
  116. @"mobile":[[NSUserDefaults standardUserDefaults] objectForKey:kMY_USER_LoginName],
  117. @"signtime":timeSp,
  118. @"address":self.bukaAddress!=nil?self.bukaAddress:@"",
  119. @"emuu":g_emcode,
  120. @"remark":_textView.text,
  121. @"uu":g_B2B_enuu,
  122. };
  123. NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:nil];
  124. NSString *str=[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
  125. url = [NSString stringWithFormat:@"%@mobile/signapp/saveSignApp?formStore=%@&sessionId=%@",ipStr,str,g_sessionId];
  126. }else{
  127. dic = @{
  128. @"ms_emcode":emcode,
  129. @"ms_emname":[[NSUserDefaults standardUserDefaults] stringForKey:@"personName"],
  130. @"ms_address":self.bukaAddress!=nil?self.bukaAddress:@"",
  131. @"ms_remark":_textView.text,
  132. @"ms_mobile":[[NSUserDefaults standardUserDefaults] objectForKey:kMY_USER_LoginName],
  133. @"ms_signtime":self.bukaTime,
  134. @"ms_status":@"在录入",
  135. @"ms_statuscode":@"ENTERING",
  136. };
  137. NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:nil];
  138. NSString *str=[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
  139. url = [NSString stringWithFormat:@"%@mobile/oa/saveAndSubmitMobileSignCard.action?caller=MobileSignCard&formStore=%@&master=%@&sessionUser=%@&sessionId=%@",ipStr,str,g_master,g_sessionUser,sessionId];
  140. }
  141. DLog(@"保存的url是:%@",url);
  142. url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
  143. UASNetworkManager *mannage = [UASNetworkManager shareManager];
  144. //拼接sessionID
  145. NSString *paramSessionId=[@"" stringByAppendingFormat:@"JSESSIONID=%@",sessionId];
  146. //设置cookie
  147. if (g_ERPUser) {
  148. [mannage.requestSerializer setValue:paramSessionId forHTTPHeaderField:@"Cookie"];
  149. [mannage.requestSerializer setValue:[NSString stringWithFormat:@"%@",g_sessionUser] forHTTPHeaderField:@"sessionUser"];
  150. }
  151. mannage.responseSerializer = [AFJSONResponseSerializer serializer];
  152. [mannage request:url method:POST parameters:nil progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
  153. _btn.userInteractionEnabled = YES;
  154. // DLog(@"%@",responseObject);
  155. [MBProgressHUD showSuccess:Localized(@"UU_work_OA_PC_FillCard_PetitionUpdateSucess")];
  156. if (g_ERPUser) {
  157. NSString * seqCode =responseObject[@"ms_id"];
  158. NSString * caller =@"MobileSignCard";
  159. [self getTheSelectShenpiRenDataSeq:seqCode andcaller:caller andsessionId:sessionId andips:ipStr];
  160. }
  161. else{
  162. [self.navigationController popViewControllerAnimated:YES];
  163. }
  164. } failure:^(NSURLSessionDataTask *task, NSError *error) {
  165. DLog(@"错误信息的详细信息是:%@",error);
  166. _btn.userInteractionEnabled = YES;
  167. NSData *returnData = [[error userInfo] objectForKey:@"com.alamofire.serialization.response.error.data"];
  168. if (returnData)
  169. {
  170. NSDictionary *content = [NSJSONSerialization JSONObjectWithData:returnData options:NSJSONReadingMutableContainers error:nil];//转换数据格式
  171. NSString *errorStr = [NSString stringWithFormat:@"%@",[content objectForKey:@"exceptionInfo"]];
  172. DLog(@"错误信息是:%@",errorStr);
  173. DLog(@"返回失败");
  174. NSString * times=[NSString getLongCurrenTime];
  175. NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:
  176. times,@"aa_date",
  177. @"打卡申诉失败",@"aa_type",
  178. @"errorStr",@"aa_remark",
  179. FORMAT(@"%@",url),@"aa_location",
  180. [[NSUserDefaults standardUserDefaults] objectForKey:kMY_USER_LoginName],@"aa_telephone",
  181. nil];
  182. [[NSNotificationCenter defaultCenter] postNotificationName:@"saveMonitorLogALLL" object:@"monitorLog" userInfo:dic];
  183. [JOShowMessageFromNavi showDropViewWithMessage:errorStr ToNavi:self.navigationController withColor:[UIColor grayColor]];
  184. }
  185. }];
  186. }
  187. }
  188. -(void)getTheSelectShenpiRenDataSeq:(NSString * )seqCode andcaller:(NSString * )caller andsessionId:(NSString * )sessionId andips:(NSString * )ips{
  189. /*
  190. 获取审批人列表
  191. */
  192. //1,创建一个网络请求管理对象
  193. UASNetworkManager *manager1 = [UASNetworkManager shareManager];
  194. manager1.responseSerializer=[AFHTTPResponseSerializer serializer];
  195. //3.拼接sessionID
  196. NSString *paramSessionId=[@"" stringByAppendingFormat:@"JSESSIONID=%@",sessionId];
  197. //4.设置cookie
  198. [manager1.requestSerializer setValue:paramSessionId forHTTPHeaderField:@"Cookie"];
  199. //5,接口
  200. NSString * urlAddress1=@"/common/getMultiNodeAssigns.action";
  201. //6,Caller
  202. // NSString * caller=@"MeetingDoc";
  203. //url
  204. NSString * url2=[@"" stringByAppendingFormat:@"%@%@?caller=%@&id=%@&sessionId=%@&master=%@&sessionUser=%@",ips,urlAddress1,caller,seqCode,sessionId,g_master,g_sessionUser];
  205. // DLog(@"获取审批人Url=%@",url2);
  206. [manager1 request:url2 method:GET parameters:nil progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
  207. NSData *data=responseObject;
  208. //1,系统自带的nsjson解析数据
  209. id rootDic =[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
  210. // DLog(@"获取的数据是什么啊:%@",rootDic);
  211. if ([rootDic count] == 0) {
  212. [self.navigationController popViewControllerAnimated:YES];
  213. }else{
  214. JOGetShenPiManVC * vc=[[JOGetShenPiManVC alloc]init];
  215. vc.seqCode=seqCode;
  216. vc.caller =caller;
  217. [self.navigationController pushViewController:vc animated:YES];
  218. }
  219. } failure:^(NSURLSessionDataTask *task, NSError *error) {
  220. DLog(@"什么错误呀==%@",error);
  221. [MBProgressHUD showError:@"提交失败"];
  222. }];
  223. }
  224. - (void)backAction
  225. {
  226. //[self dismissViewControllerAnimated:YES completion:nil];
  227. [self.navigationController popViewControllerAnimated:YES];
  228. }
  229. #pragma -mark TextviewDelegate
  230. //return键响应键盘时间
  231. -(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
  232. {
  233. if ([text isEqualToString:@"\n"])//判断输入的字是否是回车,即按下return
  234. {
  235. [textView resignFirstResponder];//在这里做你响应return键的代码
  236. return NO; //这里返回NO,就代表return键值失效,即页面上按下return,不会出现换行,如果为yes,则输入页面会换行
  237. }
  238. return YES;
  239. }
  240. - (void)textViewDidChange:(UITextView *)textView{
  241. // numberlines用来控制输入的行数
  242. if (textView.text.length > 100)
  243. {
  244. textView.text = [textView.text substringToIndex:30];
  245. // [((AppDelegate*)[[UIApplication sharedApplication] delegate]) showAlert:@"不能超过50个字"];
  246. [self.view endEditing:YES];
  247. [KPromptBox showKPromptBoxWithMassage:Localized(@"UU_work_OA_PC_FillCard_PetitionNOHad100Size")];
  248. }
  249. }
  250. -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
  251. {
  252. [self.navigationController popViewControllerAnimated:YES];
  253. }
  254. -(void)scrollViewDidScroll:(UIScrollView *)scrollView{
  255. [self.view endEditing:YES];
  256. }
  257. @end