| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509 |
- //
- // JOOutWorkPlanVC.m
- // shiku_im
- //
- // Created by jobor Zhou on 2016/12/30.
- // Copyright © 2016年 Reese. All rights reserved.
- //
- //系统版本号是否大于8.0
- #define IS_SystemVersionGreaterThanEight ([UIDevice currentDevice].systemVersion.doubleValue >= 8.0)
- #import "JOOutWorkPlanVC.h"
- #import "AFNetworking.h"
- #import "MJExtension.h"
- #import "OutWorkingSettingViewController.h"//外勤设置
- #import "OutWorkModel.h"//外勤模型
- #import "JOWQJHDATAModel.h"//外勤计划数据源模型
- #import "BGLogation.h"//单例定位
- #import "HypTextView.h"//textView
- #import "JOOAViewController.h"//OA主页面
- #import "ZQDayPickerViewController.h"//时间控件
- #import <MAMapKit/MAMapKit.h>
- #import <AMapSearchKit/AMapSearchKit.h>
- #import "JZLocationConverter.h"//经纬度转码库
- #import "JOOAEmergencyViewController.h"//目的选择
- #import "JONavigationController.h"
- #import <MAMapKit/MAMapKit.h>
- #import <AMapSearchKit/AMapSearchKit.h>
- #import "JOOAOutSelectAddressVC.h"//选择目的地
- #import "JOOutAddressModel.h"//拜访公司地址模型
- #import "LYAlerterView.h"
- #import "IndependentOAViewController.h"
- #import <AMapFoundationKit/AMapFoundationKit.h>
- #import <AMapLocationKit/AMapLocationKit.h>
- #import "Reachability.h"
- #import "NSDictionary+JOExtension.h"
- #import "JORouteNaviVC.h"//导航
- #import <MapKit/MapKit.h>
- #import <CoreLocation/CoreLocation.h>
- #import "JOGetShenPiManVC.h"
- #import "UASChooseAddDetailVc.h"
- #import "UASWorkManager.h"
- #import "UASLocaManager.h"
- //人脸识别
- #import "DetectionViewController.h"
- #import "NetAccessModel.h"
- #import <IDLFaceSDK/IDLFaceSDK.h>
- #pragma mark -- 自定义的cell
- @interface JOCell : UITableViewCell
- @property (nonatomic , copy) NSString * nameString;
- @property (nonatomic , strong) UIActivityIndicatorView * indicator;
- -(void)setModel:(JOWQJHDATAModel *)model withIndex:(NSInteger)rowIndex;
- -(void)B2BsetModel:(JOWQJHDATAModel *)model withIndex:(NSInteger)rowIndex canUserEnditing:(BOOL)yesOrNo;
- @end
- @implementation JOCell
- -(void)setModel:(JOWQJHDATAModel *)model withIndex:(NSInteger)rowIndex canUserEnditing:(BOOL)yesOrNo
- {
- self.userInteractionEnabled=yesOrNo;
- /**cell标题名字*/
- UILabel * nameLabel=[[UILabel alloc]initWithFrame:CGRectMake(10, 0, 120, 40)];;
- nameLabel.font=FONT_SIZE(14);
- nameLabel.textColor=[UIColor colorWithRed:87/255.0 green:87/255.0 blue:87/255.0 alpha:1.0];;
- nameLabel.text=_nameString;
- [self.contentView addSubview:nameLabel];
-
-
- if(rowIndex==9||rowIndex==10)
- {
- nameLabel.textColor=Color(150, 149, 149, 1.0);
- }
-
-
- UILabel * label=[[UILabel alloc]init];
- #pragma mark -- setUI
- //创建时间,距离,实时距离,实际到达时间,实际离开时间,拜访目的
- if (rowIndex==2||rowIndex==3||rowIndex==6||rowIndex==9||rowIndex==10||rowIndex==4||rowIndex==1)
- {
- label.frame=CGRectMake(100,0,[UIScreen mainScreen].bounds.size.width-110,40);
- label.textColor=Color(150, 149, 149, 1.0);
- label.textAlignment=2;
- label.font=FONT_SIZE(12);
- [self.contentView addSubview:label];
- //出访单位
- }else if (rowIndex==0)
- {
- UIImageView * images=[[UIImageView alloc]initWithFrame:CGRectMake(SCREEN_WIDTH-25, 12.5, 15, 15)];
- images.image=[UIImage imageNamed:@"oa_waiqin_comName"];
- [self.contentView addSubview:images];
-
- label.frame=CGRectMake(120,0,[UIScreen mainScreen].bounds.size.width-145,40);
- label.textColor=Color(150, 149, 149, 1.0);
- label.textAlignment=2;
- label.font=FONT_SIZE(12);
- [self.contentView addSubview:label];
-
- //预计到达时间
- }else if (rowIndex==8)
- {
- NSString * str=@"";
-
- if (model.YujiTime==nil)
- {
- str=FORMAT(@"%@>",Localized(@"UU_custom_pleaseSelect"));
- /*富文本,为了必填项的红色“*”*/
- NSString *titleName = _nameString;
- NSMutableAttributedString *AttributedStr = [[NSMutableAttributedString alloc]initWithString:FORMAT(@"%@*",titleName)];
- [AttributedStr addAttribute:NSForegroundColorAttributeName
- value:[UIColor redColor]
- range:NSMakeRange(titleName.length, 1)];
- nameLabel.attributedText = AttributedStr;
- }else{
-
- // if (model.YujiTime.length>10)
- // {
- // str=[self timeWithTimeIntervalString:model.YujiTime];
- // }else{
-
- str=model.YujiTime;
- // }
-
- }
- nameLabel.width = 130;
- label.frame=CGRectMake(140,0,SCREEN_WIDTH-150,40);
- label.textColor=Color(150, 149, 149, 1.0);
- label.textAlignment=2;
- label.font=FONT_SIZE(12);
- label.text=str;
- label.userInteractionEnabled=YES;
- [self.contentView addSubview:label];
-
- //实时距离
- }else if (rowIndex==7)
- {
- label.frame=CGRectMake([UIScreen mainScreen].bounds.size.width-255,0,180,40);
- label.textColor=Color(17,76,160,1.0);
- label.textAlignment=NSTextAlignmentRight;
-
- label.font=FONT_SIZE(12);
- [self.contentView addSubview:label];
- self.userInteractionEnabled=YES;
-
- }
-
-
-
-
- #pragma mark -- setValue
- //创建位子
- if (rowIndex==5)
- {
-
- label.frame=CGRectMake(100,0,[UIScreen mainScreen].bounds.size.width-110,40);
- label.textColor=Color(150, 149, 149, 1.0);
- label.textAlignment=2;
- label.numberOfLines=0;
- label.font=FONT_SIZE(12);
-
-
- DLog(@"%@",model.CreateAddress);
-
- if ([model.CreateAddress isEqualToString:@"未获取到当前位置"]||[model.CreateAddress isEqualToString:@""])
- {
-
- // label.text=@"重新获取位置信息";
- // label.textColor=[UIColor redColor];
-
- UIButton * btn=[UIButton buttonWithType:UIButtonTypeCustom];
- btn.frame=CGRectMake([UIScreen mainScreen].bounds.size.width-160,0,150,40);
- if (yesOrNo) {
- [btn setTitle:Localized(@"UU_work_OA_WorkOutsideSign_RetrieveLocationInformation") forState:UIControlStateNormal];
- }
- btn.titleLabel.font=FONT_SIZE(12);
- btn.titleLabel.textAlignment=2;
- [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
- [btn addTarget:self action:@selector(clickOutIndicator:) forControlEvents:UIControlEventTouchUpInside];
-
- [self.contentView addSubview:btn];
-
- _indicator = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
- //设置显示位置
- _indicator.center = CGPointMake([UIScreen mainScreen].bounds.size.width-60,20);
- //将这个控件加到父容器中。
- [self.contentView addSubview:_indicator];
-
- }else{
- label.text=model.CreateAddress;
- [self.contentView addSubview:label];
- }
-
-
- //创建时间
- }
- else if (rowIndex==6)
- {
- if ([model.CreateTime isEqualToString:@""]||model.CreateTime==nil)
- {
- label.text=@"";
- }else{
-
- label.text=model.CreateTime;
- }
-
-
- //出访单位
- }
- else if (rowIndex==0)
- {
- if ([model.CFdanwei isEqualToString:@""]||model.CFdanwei==nil)
- {
- label.text=FORMAT(@"%@>",Localized(@"UU_custom_pleaseSelect"));
- /*富文本,为了必填项的红色“*”*/
- NSString *titleName = _nameString;
- NSMutableAttributedString *AttributedStr = [[NSMutableAttributedString alloc]initWithString:FORMAT(@"%@*",titleName)];
- [AttributedStr addAttribute:NSForegroundColorAttributeName
- value:[UIColor redColor]
- range:NSMakeRange(titleName.length, 1)];
- nameLabel.attributedText = AttributedStr;
- }else{
-
- label.text=model.CFdanwei;
- }
-
-
-
- //出访地址
- }
- else if (rowIndex==1)
- {
-
- label.textAlignment=2;
- label.numberOfLines=0;
- if ([model.CFdizhi isEqualToString:@""]||model.CFdizhi==nil)
- {
- label.text=@"";
- }else{
-
- label.text=model.CFdizhi;
- }
-
-
- }
- //出访目的
- else if(rowIndex==2)
- {
- if ([model.CFmudi isEqualToString:@""]||model.CFmudi==nil)
- {
- label.text=FORMAT(@"%@>",Localized(@"UU_custom_pleaseSelect"));
- /*富文本,为了必填项的红色“*”*/
- NSString *titleName = _nameString;
- NSMutableAttributedString *AttributedStr = [[NSMutableAttributedString alloc]initWithString:FORMAT(@"%@*",titleName)];
- [AttributedStr addAttribute:NSForegroundColorAttributeName
- value:[UIColor redColor]
- range:NSMakeRange(titleName.length, 1)];
- nameLabel.attributedText = AttributedStr;
- }else{
- label.text=[NSString stringWithFormat:@"%@",model.CFmudi];
-
- }
-
- }
- //距离
- else if (rowIndex==4)
- {
- DLog(@"%@",model.Juli);
- if ([model.Juli isEqualToString:@""]||model.Juli==nil)
- {
- label.text=@"";
- }else{
-
-
- if ([model.Juli intValue]>999)
- {
- label.text=[NSString stringWithFormat:@"%.2f千米",[model.Juli floatValue]/1000];
- }else{
-
- label.text=[NSString stringWithFormat:@"%@%@",model.Juli,Localized(@"UU_work_OA_punchClock_rice")];
- }
-
-
- }
- //实时距离
- }
- else if (rowIndex==7)
- {
- if ([model.ShiSjuli isEqualToString:@""]||model.ShiSjuli==nil)
- {
- label.text=@"";
- }else{
-
- label.textColor=[UIColor blueColor];
-
- if ([model.ShiSjuli intValue]>999)
- {
- label.text=[NSString stringWithFormat:@"%.2f千米",[model.ShiSjuli floatValue]/1000];
- }else{
-
- label.text=[NSString stringWithFormat:@"%@%@",model.ShiSjuli,Localized(@"UU_work_OA_punchClock_rice")];
- }
-
- }
-
- //实际到达时间
- }
-
- else if (rowIndex==9)
- {
- if ([model.ShijArriveTime isEqualToString:@""]||model.ShijArriveTime==nil)
- {
- label.text=@"";
- }else{
- label.text=[self timeWithTimeIntervalString:model.ShijArriveTime];
-
- }
-
- //实际离开时间
- }
- else if (rowIndex==10)
- {
- if ([model.ShijLeaveTime isEqualToString:@""]||model.ShijLeaveTime==nil)
- {
- label.text=@"";
- }else{
- label.text=[self timeWithTimeIntervalString:model.ShijLeaveTime];
- label.textColor=[UIColor blueColor];
- }
- }
-
- }
- -(void)B2BsetModel:(JOWQJHDATAModel *)model withIndex:(NSInteger)rowIndex canUserEnditing:(BOOL)yesOrNo
- {
- self.userInteractionEnabled=yesOrNo;
-
- //表名
- UILabel * nameLabel=[[UILabel alloc]initWithFrame:CGRectMake(10, 0, 100, 40)];;
- nameLabel.font=FONT_SIZE(14);
- nameLabel.textColor=[UIColor colorWithRed:87/255.0 green:87/255.0 blue:87/255.0 alpha:1.0];;
- nameLabel.text=_nameString;
- [self.contentView addSubview:nameLabel];
-
- if(rowIndex==9||rowIndex==10)
- {
- nameLabel.textColor=Color(150, 149, 149, 1.0);
- }
-
-
- UILabel * label=[[UILabel alloc]init];
- #pragma mark -- setUI
- //创建时间,距离,实时距离,实际到达时间,实际离开时间,拜访目的
- if (rowIndex==2||rowIndex==3||rowIndex==6||rowIndex==9||rowIndex==10||rowIndex==4||rowIndex==1)
- {
- label.frame=CGRectMake(100,0,[UIScreen mainScreen].bounds.size.width-110,40);
- label.textColor=Color(150, 149, 149, 1.0);
- label.textAlignment=2;
- label.font=FONT_SIZE(12);
- [self.contentView addSubview:label];
- //出访单位
- }else if (rowIndex==0)
- {
- UIImageView * images=[[UIImageView alloc]initWithFrame:CGRectMake(SCREEN_WIDTH-25, 12.5, 15, 15)];
- images.image=[UIImage imageNamed:@"oa_waiqin_comName"];
- [self.contentView addSubview:images];
-
- label.frame=CGRectMake(100,0,[UIScreen mainScreen].bounds.size.width-130,40);
- label.textColor=Color(150, 149, 149, 1.0);
- label.textAlignment=2;
- label.font=FONT_SIZE(12);
- [self.contentView addSubview:label];
-
- //预计到达时间
- }else if (rowIndex==8)
- {
- NSString * str=@"";
-
- if (model.YujiTime==nil)
- {
- str=FORMAT(@"%@>",Localized(@"UU_custom_pleaseSelect"));
- /*富文本,为了必填项的红色“*”*/
- NSString *titleName = _nameString;
- NSMutableAttributedString *AttributedStr = [[NSMutableAttributedString alloc]initWithString:FORMAT(@"%@*",titleName)];
- [AttributedStr addAttribute:NSForegroundColorAttributeName
- value:[UIColor redColor]
- range:NSMakeRange(titleName.length, 1)];
- nameLabel.attributedText = AttributedStr;
- }else if (model.YujiTime.length>16)
- {
-
- str=model.YujiTime;
-
- }
- else{
- str=[self timeWithTimeIntervalString:model.YujiTime];
- }
-
- label.frame=CGRectMake(100,0,SCREEN_WIDTH-110,40);
- label.textColor=Color(150, 149, 149, 1.0);
- label.textAlignment=2;
- label.font=FONT_SIZE(12);
- label.text=str;
- label.userInteractionEnabled=YES;
- [self.contentView addSubview:label];
-
- //实时距离
- }
- else if (rowIndex==7)
- {
- label.frame=CGRectMake([UIScreen mainScreen].bounds.size.width-120,0,60,40);
- label.textColor=Color(50,150,250,1.0);
- label.textAlignment=0;
- label.font=FONT_SIZE(12);
- [self.contentView addSubview:label];
-
- self.userInteractionEnabled=YES;
-
- }
-
- if (rowIndex==5)
- {
-
- label.frame=CGRectMake(100,0,[UIScreen mainScreen].bounds.size.width-110,40);
- label.textColor=Color(150, 149, 149, 1.0);
- label.textAlignment=2;
- label.numberOfLines=0;
- label.font=FONT_SIZE(12);
-
-
- //DLog(@"%@",model.CreateAddress);
-
- if ([model.CreateAddress isEqualToString:@"未获取到当前位置"]||[model.CreateAddress isEqualToString:@""])
- {
-
-
- UIButton * btn=[UIButton buttonWithType:UIButtonTypeCustom];
- btn.frame=CGRectMake([UIScreen mainScreen].bounds.size.width-110,0,100,40);
- [btn setTitle:Localized(@"UU_work_OA_WorkOutsideSign_RetrieveLocationInformation") forState:UIControlStateNormal];
- btn.titleLabel.font=FONT_SIZE(12);
- btn.titleLabel.textAlignment=2;
- [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
- [btn addTarget:self action:@selector(clickOutIndicator:) forControlEvents:UIControlEventTouchUpInside];
-
- [self.contentView addSubview:btn];
-
- _indicator = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
- //设置显示位置
- _indicator.center = CGPointMake([UIScreen mainScreen].bounds.size.width-60,20);
- //将这个控件加到父容器中。
- [self.contentView addSubview:_indicator];
-
- }else{
-
- label.text=model.CreateAddress;
- [self.contentView addSubview:label];
-
- }
-
-
-
- //创建时间
- }
- else if (rowIndex==6)
- {
- if ([model.CreateTime isEqualToString:@""]||model.CreateTime==nil)
- {
- label.text=@"";
- }else if (model.CreateTime.length>16)
- {
-
- label.text=model.CreateTime;
-
- }
- else{
- label.text=[self timeWithTimeIntervalString:model.CreateTime];
- }
- }
- //出访单位
- else if (rowIndex==0)
- {
- if ([model.CFdanwei isEqualToString:@""]||model.CFdanwei==nil)
- {
- label.text=FORMAT(@"%@>",Localized(@"UU_custom_pleaseSelect"));
- /*富文本,为了必填项的红色“*”*/
- NSString *titleName = _nameString;
- NSMutableAttributedString *AttributedStr = [[NSMutableAttributedString alloc]initWithString:FORMAT(@"%@*",titleName)];
- [AttributedStr addAttribute:NSForegroundColorAttributeName
- value:[UIColor redColor]
- range:NSMakeRange(titleName.length, 1)];
- nameLabel.attributedText = AttributedStr;
- }else{
-
- label.text=model.CFdanwei;
- }
-
-
- }
- //出访地址
- else if (rowIndex==1)
- {
- if ([model.CFdizhi isEqualToString:@""]||model.CFdizhi==nil)
- {
- label.text=@"";
- }else{
-
- label.text=model.CFdizhi;
- }
-
-
-
- }
- //出访目的
- else if(rowIndex==2)
- {
- if ([model.CFmudi isEqualToString:@""]||model.CFmudi==nil)
- {
- label.text=FORMAT(@"%@>",Localized(@"UU_custom_pleaseSelect"));
- /*富文本,为了必填项的红色“*”*/
- NSString *titleName = _nameString;
- NSMutableAttributedString *AttributedStr = [[NSMutableAttributedString alloc]initWithString:FORMAT(@"%@*",titleName)];
- [AttributedStr addAttribute:NSForegroundColorAttributeName
- value:[UIColor redColor]
- range:NSMakeRange(titleName.length, 1)];
- nameLabel.attributedText = AttributedStr;
- }else{
- label.text=[NSString stringWithFormat:@"%@",model.CFmudi];
-
- }
-
- }
- //距离
- else if (rowIndex==4)
- {
-
- if ([model.Juli isEqualToString:@""]||model.Juli==nil)
- {
- label.text=@"";
- }else{
-
-
- if ([model.Juli intValue]>999)
- {
- label.text=[NSString stringWithFormat:@"%.2f千米",[model.Juli floatValue]/1000];
- }else{
-
- label.text=[NSString stringWithFormat:@"%@%@",model.Juli,Localized(@"UU_work_OA_punchClock_rice")];
- }
-
-
- }
-
-
- }
- //实时距离
- else if (rowIndex==7)
- {
- if ([model.ShiSjuli isEqualToString:@""]||model.ShiSjuli==nil)
- {
- label.text=@"";
- }else{
-
- label.textColor=[UIColor blueColor];
-
- if ([model.ShiSjuli intValue]>999)
- {
- label.text=[NSString stringWithFormat:@"%.2f千米",[model.ShiSjuli floatValue]/1000];
- }else{
-
- label.text=[NSString stringWithFormat:@"%@%@",model.ShiSjuli,Localized(@"UU_work_OA_punchClock_rice")];
- }
-
-
- }
-
-
-
- }
- //实际到达时间
- else if (rowIndex==9)
- {
- DLog(@"%@",model.ShijArriveTime);
- if ([model.ShijArriveTime isEqualToString:@"<null>"]||model.ShijArriveTime==nil||[model.ShijArriveTime isEqualToString:@""]||model.ShijArriveTime.length<=5)
- {
- label.text=@"";
- }else{
- label.text=[self timeWithTimeIntervalString:model.ShijArriveTime];
-
- }
-
-
- }
- //实际离开时间
- else if (rowIndex==10)
- {
- if ([model.ShijLeaveTime isEqualToString:@"<null>"]||model.ShijLeaveTime==nil||[model.ShijLeaveTime isEqualToString:@""]||model.ShijLeaveTime.length<=5)
- {
- label.text=@"";
- }
- else{
-
- label.text=[self timeWithTimeIntervalString:model.ShijLeaveTime];
- label.textColor=[UIColor blueColor];
- }
-
- }
-
- }
- //时间戳转字符串
- - (NSString *)timeWithTimeIntervalString:(NSString *)timeString
- {
- // 格式化时间
- NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
- formatter.timeZone = [NSTimeZone systemTimeZone];
- [formatter setDateStyle:NSDateFormatterMediumStyle];
- [formatter setTimeStyle:NSDateFormatterShortStyle];
- [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
- // 毫秒值转化为秒
- NSDate* date = [NSDate dateWithTimeIntervalSince1970:[timeString doubleValue]/ 1000.0];
- NSString* dateString = [formatter stringFromDate:date];
-
- DLog(@"%@",dateString);
- return dateString;
- }
- - (void)clickOutIndicator:(UIButton *)btn
- {
- [_indicator startAnimating];
- btn.hidden=YES;
- [[NSNotificationCenter defaultCenter] postNotificationName:@"initLocatonWithClick" object:nil];
- }
- @end
- #pragma mark --------------------------------------------------------------------------------
- @interface JOOutWorkPlanVC ()<UITableViewDelegate,UITableViewDataSource,ZQDayPickerViewControllerDelegate,HypTextViewDelegate,AMapSearchDelegate,UIAlertViewDelegate,LYAlerterViewDelegate>
- {
- UITableView * _tableView;
- //cellTitle数据源
- NSArray * _cellTitleSource;
- //OutWorkModel接口模型数组
- NSMutableArray * _sectionSource;
- //JOWQJHModel数据源模型数组
- NSMutableArray * _cellDataSource;
-
- ZQDayPickerViewController * _dayPickerViewController;
- //记录是否可被编辑
- NSMutableArray * _yesOrNoEntingArr;
-
- //装ID和code
- NSMutableArray * _idAndCodeArr;
-
- //装添加目标经纬度
- NSMutableArray * _jingweiduArr;
-
- NSMutableArray * _jingweidubrr;
-
- }
- @property (nonatomic,strong) AMapSearchAPI * searchAPI;
- @property (nonatomic,strong) AMapLocationManager * JOlocationManager;//手动定位
- @property (nonatomic, strong) Reachability *conn;//网络监控
- @property(nonatomic,strong)UIButton * uploadBtn;
- @property(weak,nonatomic)LYAlerterView *tishiView;
- /**
- 获取地址搜索关键字
- */
- @property(copy,nonatomic)NSString *keyWord;
- @property(assign,nonatomic)BOOL isPunchHand;
- /**
- 为了防止手动外勤对象提前释放后调用某个方法导致闪退
- */
- @property(strong,nonatomic)UASWorkManager *outManager;
- @end
- @implementation JOOutWorkPlanVC
- - (void)viewDidLoad
- {
-
- [super viewDidLoad];
-
-
- //1,初始化变量
- [self initQJBL];
-
- //2,设置导航栏
- [self setUpNavi];
-
- //3,设置tableView
- [self setUptableView];
-
- //4,获取外勤计划列表
- if (g_B2BUser)
- {
- [MBProgressHUD showMessage:@"" toView:self.view];
- [self b2bGetAlldataOfOutPlans];
-
- }else{
- [MBProgressHUD showMessage:@"" toView:self.view];
- [self getAlldataOfOutPlans];
- }
-
- //5,路线规划
- [self initRountSearch];
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(initLocation) name:@"initLocatonWithClick" object:nil];
-
-
- //监听
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange) name:kReachabilityChangedNotification object:nil];
-
-
- self.conn = [Reachability reachabilityForInternetConnection];
-
- [self.conn startNotifier];
-
-
- NSString * str=[self getNetWorkStates];
- DLog(@"%@",str);
- if ([str isEqualToString:@"2G"]||[str isEqualToString:@"3G"])
- {
- [JOShowMessageFromNavi showDropViewWithMessage:@"当前网络环境不佳,建议切换到4G网络" ToNavi:self.navigationController withColor:nil];
- }
-
- }
- -(void)shouldRefreshData{
-
-
- if (g_B2BUser)
- {
-
- [self b2bGetAlldataOfOutPlans];
-
- }else{
-
- [self getAlldataOfOutPlans];
-
- }
-
-
-
- }
- - (void)viewWillAppear:(BOOL)animated
- {
- //DLog(@"哈哈哈哈哈哈哈哈");
- [MobClick beginEvent:@"OutWorkPlan"];
- [[NSNotificationCenter defaultCenter] postNotificationName:@"hideBottomView" object:nil];
- }
- -(void)viewWillDisappear:(BOOL)animated{
- //DLog(@"嘻嘻嘻嘻我嘻嘻嘻");
- [MobClick endEvent:@"OutWorkPlan"];
-
- }
- //1,初始化全局变量
- - (void)initQJBL
- {
- _cellTitleSource=[[NSArray alloc]initWithObjects:Localized(@"UU_work_OA_WorkOutsideSign_VisitingUnit"),Localized(@"UU_work_OA_WorkOutsideSign_VisitingAddress"),Localized(@"UU_work_OA_WorkOutsideSign_VisitingPurpose"),Localized(@"UU_work_OA_WorkOutsideSign_TimeInterval"),Localized(@"UU_work_OA_WorkOutsideSign_Distance"),Localized(@"UU_work_OA_WorkOutsideSign_CreateLocation"),Localized(@"UU_work_OA_WorkOutsideSign_CreateTime"),Localized(@"UU_work_OA_WorkOutsideSign_RealtimeDistance"),Localized(@"UU_work_OA_WorkOutsideSign_EstimatedTimeOfArrival"),Localized(@"UU_work_OA_WorkOutsideSign_ActualTimeOfArrival"),Localized(@"UU_work_OA_WorkOutsideSign_RecentRecordTime"), nil];
- _sectionSource=[[NSMutableArray alloc]init];
-
- _cellDataSource=[[NSMutableArray alloc]init];
-
- _yesOrNoEntingArr=[[NSMutableArray alloc]init];
-
- _idAndCodeArr=[[NSMutableArray alloc]init];
-
- _jingweiduArr=[[NSMutableArray alloc]init];
-
- self.isPunchHand = NO;
-
- }
- //2,设置导航栏
- - (void)setUpNavi
- {
-
- self.title =Localized(@"UU_work_OA_WorkOutPlan");
-
- // UIButton * right=[UIButton buttonWithType:UIButtonTypeCustom];
- // right.frame=CGRectMake(0, 0,20, 20);
- // [right setBackgroundImage:[UIImage imageNamed:@"oa_daka_alarm"] forState:UIControlStateNormal];
- // [right addTarget:self action:@selector(pushToSetting) forControlEvents:UIControlEventTouchUpInside];
- // UIBarButtonItem * rightBtn =[[UIBarButtonItem alloc]initWithCustomView:right];
- // self.navigationItem.rightBarButtonItem =rightBtn;
-
-
- UIButton *btn2 = [UIButton buttonWithType:UIButtonTypeSystem];
- btn2.frame = CGRectMake(0, 5, 22, 22);
- UIImageView *image = [[UIImageView alloc]initWithFrame:CGRectMake(0, iOS11?5:0, 22, 22)];
- image.image = [UIImage imageNamed:@"icon_back_nor3"];
- [btn2 addSubview:image];
- [btn2 addTarget:self action:@selector(backView) forControlEvents:UIControlEventTouchUpInside];
- UIBarButtonItem *bbi2 = [[UIBarButtonItem alloc]initWithCustomView:btn2];
- UIBarButtonItem *rightBtn = [[UIBarButtonItem alloc]initWithTitle:Localized(@"UU_work_OA_WorkOutPlanPunchByHand") style:UIBarButtonItemStylePlain target:self action:@selector(punchCard)];
- rightBtn.tintColor = [UIColor whiteColor];
- self.navigationItem.leftBarButtonItems = @[bbi2];
- self.navigationItem.rightBarButtonItem = rightBtn;
- self.view.backgroundColor = [UIColor colorWithRed:235/255.0 green:233/255.0 blue:233/255.0 alpha:1.0];
-
-
- }
- #pragma mark --- 手动签到第一步
- -(void)punchCard
- {
- if (self.faceGo.length != 0) {
-
- if ([self.faceGo isEqualToString:@"1"]) {
-
- [self FaceLoginJudgeMyself];
-
- }
- else if ([self.faceGo isEqualToString:@"fail"]) {
-
- //以防万一:工作台页面获取外勤设置接口失败时,重新获取外勤设置
-
- [MBProgressHUD showMessage:@""];
-
- NSString *url = [NSString stringWithFormat:@"%@/mobile/getOutSetInfo.action?master=%@&sessionUser=%@&sessionId=%@",g_id,g_master,g_sessionUser,g_sessionId];
-
- url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-
- UASNetworkManager *mannage = [UASNetworkManager shareManager];
-
- mannage.responseSerializer = [AFJSONResponseSerializer serializer];
-
- [mannage request:url method:POST parameters:nil progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
- [MBProgressHUD hideHUD];
-
- NSDictionary *rootDic = responseObject;
-
- if ([rootDic objectForKey:@"result"] == nil)
- {
- return ;
- }
- if ([[rootDic objectForKey:@"result"] isKindOfClass:[NSNull class]]) {
-
- return;
- }
-
- NSMutableArray * arr = [[NSMutableArray alloc]initWithArray:[NSDictionary changeType:[rootDic objectForKey:@"result"]]];
-
- if (arr.count == 0)
- {
- return;
- }
-
- for (id obj in rootDic[@"result"])
- {
-
- if ([[obj allKeys] containsObject:@"MO_FACESIGN"]) {
-
- NSString *faceSign = [NSString stringWithFormat:@"%@",obj[@"MO_FACESIGN"]];
-
- if ([faceSign isEqualToString:@"1"]) {
-
- self.faceGo = faceSign;
-
- }
- }
-
- }
-
- if ([self.faceGo isEqualToString:@"1"]) {
- [self FaceLoginJudgeMyself];
- }else{
- [self startPunchCard:nil];
- }
-
- } failure:^(NSURLSessionDataTask *task, NSError *error) {
-
- [MBProgressHUD hideHUD];
-
- //万一此接口崩溃,还是要打卡的。
- [self startPunchCard:nil];
-
- }];
-
- }
-
- else{
- [self startPunchCard:nil];
- }
-
- }else{
- //其余公司无mo_facesign直接打卡
- [self startPunchCard:nil];
- }
- }
- #pragma mark --- 外勤打卡开始
- -(void)startPunchCard:(NSData *)imageData
- {
- self.isPunchHand = YES;
- //重新创建,防止数据错乱
- self.outManager = [UASWorkManager manager];
- @weakify(self)
- [self.outManager outWorkPunchByHandWithImageData:imageData Completed:^(BOOL success, NSString *str) {
- @strongify(self)
- if (success) {
-
- [self shouldRefreshData];
-
- }
-
- }];
- }
- #pragma mark --- 人脸识别开始
- -(void)FaceLoginJudgeMyself
- {
- // 设置鉴权
- NSString* licensePath = [[NSBundle mainBundle] pathForResource:FACE_LICENSE_NAME ofType:FACE_LICENSE_SUFFIX];
- NSAssert([[NSFileManager defaultManager] fileExistsAtPath:licensePath], @"license文件路径不对,请仔细查看文档");
- [[FaceSDKManager sharedInstance] setLicenseID:FACE_LICENSE_ID andLocalLicenceFile:licensePath];
-
- [SVProgressHUD appearance].defaultStyle = SVProgressHUDStyleDark;
-
- [[NetAccessModel sharedInstance] getAccessTokenWithAK:FACE_API_KEY SK:FACE_SECRET_KEY];
-
- __weak typeof(self) weakSelf = self;
- DetectionViewController *dvc = [[DetectionViewController alloc] init];
- dvc.completion = ^(NSDictionary* images, UIImage* originImage){
- if (images[@"bestImage"] != nil && [images[@"bestImage"] count] != 0) {
- NSData* data = [[NSData alloc] initWithBase64EncodedString:[images[@"bestImage"] lastObject] options:NSDataBase64DecodingIgnoreUnknownCharacters];
- UIImage* bestImage = [UIImage imageWithData:data];
- DLog(@"bestImage = %@",bestImage);
- NSString* bestImageStr = [[images[@"bestImage"] lastObject] copy];
- [weakSelf identify:bestImageStr originImage:images[@"cropImage"]?:originImage andViewController:dvc andImageData:data];
- }
- };
-
- [self presentViewController:dvc animated:YES completion:nil];
-
- }
- #pragma mark --- 人脸验证流程
- - (void)identify:(NSString*)bestImageStr originImage:(UIImage *)originImage andViewController:(DetectionViewController *)dvc andImageData:(NSData *)imageData{
-
- // 设置鉴权
- NSString* licensePath = [[NSBundle mainBundle] pathForResource:FACE_LICENSE_NAME ofType:FACE_LICENSE_SUFFIX];
- NSAssert([[NSFileManager defaultManager] fileExistsAtPath:licensePath], @"license文件路径不对,请仔细查看文档");
- [[FaceSDKManager sharedInstance] setLicenseID:FACE_LICENSE_ID andLocalLicenceFile:licensePath];
-
- [SVProgressHUD appearance].defaultStyle = SVProgressHUDStyleDark;
-
- [[NetAccessModel sharedInstance] getAccessTokenWithAK:FACE_API_KEY SK:FACE_SECRET_KEY];
-
- dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-
- __weak typeof(self) weakSelf = self;
- [[NetAccessModel sharedInstance] identifyUserLivenessWithFaceImageStr:bestImageStr completion:^(NSError *error, id resultObject) {
-
- if (resultObject) {
- NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:resultObject options:NSJSONReadingAllowFragments error:nil];
- SLog(@"人脸识别数据:%@",dict);
-
- //先判断接口请求是否成功
- NSString *success = FORMAT(@"%@",dict[@"error_msg"]);
- if ([success isEqualToString:@"SUCCESS"]) {
- //判断人脸库是否存在当前用户
- NSArray *userList = dict[@"result"][@"user_list"];
- if (userList.count == 0) {
- //无此用户走人脸注册流程
- [UASAlertView showWithTitle:nil content:@"您未录入人脸照片,点击“确定”录入系统" sureTitle:@"确定录入" cancelTitle:Localized(@"UU_custom_cancle") click:^(NSInteger index) {
- if (index == 2) {
- [weakSelf RegisterUserFactToBaiduFaceListWithFaceImageString:bestImageStr andViewController:dvc andImageData:imageData];
- }
- if (index == 1) {
- [dvc dismissViewControllerAnimated:YES completion:nil];
- }
- }];
-
- }else{
- NSDictionary *userDic = userList[0];
- float score = [[userDic objectForKey:@"score"] floatValue];
- if (score > 85) {
- //是本人,走打卡流程
- [dvc dismissViewControllerAnimated:YES completion:nil];
-
- [self startPunchCard:imageData];
- }else{
- //不是本人
- [UASAlertView showWithTitle:nil content:@"抱歉,没有认出你哦" sureTitle:@"再试一次" cancelTitle:Localized(@"UU_custom_cancle") click:^(NSInteger index) {
- if (index == 2) {
- [IDLFaceDetectionManager.sharedInstance reset];
- [[IDLFaceDetectionManager sharedInstance] startInitial];
- dvc.hasFinished = NO;
- [dvc startCapture];
- }
- if (index == 1) {
- [dvc dismissViewControllerAnimated:YES completion:nil];
- }
- }];
- }
- }
- }
- else if ([success isEqualToString:@"liveness check fail"]){
- [UASAlertView showWithTitle:nil content:@"不能拿照片骗我哦" sureTitle:@"再试一次" cancelTitle:Localized(@"UU_custom_cancle") click:^(NSInteger index) {
- if (index == 2) {
- [IDLFaceDetectionManager.sharedInstance reset];
- [[IDLFaceDetectionManager sharedInstance] startInitial];
- dvc.hasFinished = NO;
- [dvc startCapture];
- }
- if (index == 1) {
- [dvc dismissViewControllerAnimated:YES completion:nil];
- }
- }];
- }
- else{
- if ([FORMAT(@"%@",[dict objectForKey:@"error_code"])isEqualToString:@"222207"]) {
- //无此用户走人脸注册流程,先到ERP看是否传过人脸
- [self getERPhaveFace:bestImageStr originImage:originImage andViewController:dvc andImageData:imageData];
- }else{
- [UASAlertView showWithTitle:nil content:success sureTitle:@"再试一次" cancelTitle:Localized(@"UU_custom_cancle") click:^(NSInteger index) {
- if (index == 2) {
- [IDLFaceDetectionManager.sharedInstance reset];
- [[IDLFaceDetectionManager sharedInstance] startInitial];
- dvc.hasFinished = NO;
- [dvc startCapture];
- }
- if (index == 1) {
- [dvc dismissViewControllerAnimated:YES completion:nil];
- }
- }];
- }
- }
- }
-
- }];
-
- });
- }
- #pragma mark --- 勉强操作:百度会抽风,所以在ERP做是否传过人脸的标识
- - (void)getERPhaveFace:(NSString*)bestImageStr originImage:(UIImage *)originImage andViewController:(DetectionViewController *)dvc andImageData:(NSData *)imageData{
-
- __weak typeof(self) weakSelf = self;
-
- NSString *url = [NSString stringWithFormat:@"%@/mobile/getUploadPictureSign.action",g_id];
-
- NSDictionary *param = @{
- @"master":g_master,
- @"em_imid":g_server.myself.userId,
- @"emcode":g_emcode
- };
-
- url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-
- UASNetworkManager *mannage = [UASNetworkManager shareManager];
-
- mannage.responseSerializer = [AFJSONResponseSerializer serializer];
-
- [mannage request:url method:POST parameters:param progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
-
- NSString *faceStr = FORMAT(@"%@",responseObject[@"em_uploadsign"]);
-
- if ([faceStr isEqualToString:@"1"]) {
-
- [UASAlertView showWithTitle:nil content:@"抱歉,没有认出你哦" sureTitle:@"再试一次" cancelTitle:Localized(@"UU_custom_cancle") click:^(NSInteger index) {
- if (index == 2) {
- [IDLFaceDetectionManager.sharedInstance reset];
- [[IDLFaceDetectionManager sharedInstance] startInitial];
- dvc.hasFinished = NO;
- [dvc startCapture];
- }
- if (index == 1) {
- [dvc dismissViewControllerAnimated:YES completion:nil];
- }
- }];
-
- }else{
-
- //无此用户走人脸注册流程
- [UASAlertView showWithTitle:nil content:@"您未录入人脸照片,点击“确定”录入系统" sureTitle:@"确定录入" cancelTitle:Localized(@"UU_custom_cancle") click:^(NSInteger index) {
- if (index == 2) {
- [weakSelf RegisterUserFactToBaiduFaceListWithFaceImageString:bestImageStr andViewController:dvc andImageData:imageData];
- }
- if (index == 1) {
- [dvc dismissViewControllerAnimated:YES completion:nil];
- }
- }];
-
- }
-
- } failure:^(NSURLSessionDataTask *task, NSError *error) {
-
- [UASAlertView showWithTitle:nil content:@"抱歉,没有认出你哦" sureTitle:@"再试一次" cancelTitle:Localized(@"UU_custom_cancle") click:^(NSInteger index) {
- if (index == 2) {
- [IDLFaceDetectionManager.sharedInstance reset];
- [[IDLFaceDetectionManager sharedInstance] startInitial];
- dvc.hasFinished = NO;
- [dvc startCapture];
- }
- if (index == 1) {
- [dvc dismissViewControllerAnimated:YES completion:nil];
- }
- }];
-
- }];
- }
- #pragma mark --- 人脸注册
- -(void)RegisterUserFactToBaiduFaceListWithFaceImageString:(NSString*)bestImageStr andViewController:(DetectionViewController *)dvc andImageData:(NSData *)imageData
- {
- // __weak typeof(self) weakSelf = self;
- [[NetAccessModel sharedInstance] registerFaceWithImageBaseString:bestImageStr completion:^(NSError *error, id resultObject) {
- NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:resultObject options:NSJSONReadingAllowFragments error:nil];
- SLog(@"人脸识别数据:%@",dict);
-
- //先判断接口请求是否成功
- NSString *success = FORMAT(@"%@",dict[@"error_msg"]);
- if ([success isEqualToString:@"SUCCESS"]) {
-
- [dvc dismissViewControllerAnimated:YES completion:nil];
- //在ERP上做标识
- [self changeFaceStateToERP];
- //注册成功后,走打卡流程
- [self startPunchCard:imageData];
- }
- }];
- }
- #pragma mark --- 百度人脸注册成功后,在ERP上做个标识
- -(void)changeFaceStateToERP
- {
- NSString *url = [NSString stringWithFormat:@"%@/mobile/updateUploadPictureSign.action",g_id];
-
- NSDictionary *param = @{
- @"master":g_master,
- @"em_imid":g_server.myself.userId,
- @"emcode":g_emcode,
- @"em_uploadsign":@"1"
- };
-
- url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-
- UASNetworkManager *mannage = [UASNetworkManager shareManager];
-
- mannage.responseSerializer = [AFJSONResponseSerializer serializer];
-
- [mannage request:url method:POST parameters:param progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
-
-
- } failure:^(NSURLSessionDataTask *task, NSError *error) {
-
-
- }];
- }
- //2.1导航栏右按钮--设置界面
- - (void)pushToSetting
- {
- OutWorkingSettingViewController * osv =[[OutWorkingSettingViewController alloc]init];
-
- [self.navigationController pushViewController:osv animated:YES];
-
- }
- //2.2导航栏左边按钮
- -(void)backView
- {
- /*JOOAViewController * ovc =[[JOOAViewController alloc]init];
- IndependentOAViewController * ivc = [[IndependentOAViewController alloc]init];
- UIViewController *target = nil;
- for (UIViewController * controller in self.navigationController.viewControllers)
- { //遍历
- if ([controller isKindOfClass:[ovc class]]||[controller isKindOfClass:[ivc class]]) { //这里判断是否为你想要跳转的页面
- target = controller;
- }
- }
- if (target) {
- [self.navigationController popToViewController:target animated:YES]; //跳转
-
- }*/
- [self.navigationController popViewControllerAnimated:YES];
-
- }
- //3,初始化tableView
- - (void)setUptableView
- {
- _tableView=[[UITableView alloc]initWithFrame:CGRectMake(0,0,self_width,self_height-64) style:UITableViewStyleGrouped];
- _tableView.delegate=self;
- _tableView.dataSource=self;
- _tableView.backgroundColor = [UIColor colorWithRed:235/255.0 green:233/255.0 blue:233/255.0 alpha:1.0];
- [self.view addSubview:_tableView];
-
- }
- //4,获取所有的外勤计划列表
- - (void)getAlldataOfOutPlans
- {
-
-
- NSString * emcode = [[NSUserDefaults standardUserDefaults] stringForKey:@"erpaccount"];
- NSString * ipStr = [[NSUserDefaults standardUserDefaults] stringForKey:@"ipAndPort"];
- NSString *sessionId = [[NSUserDefaults standardUserDefaults] stringForKey:@"sessionId"];
-
-
- NSString *url = [NSString stringWithFormat:@"%@mobile/mobileoutplan.action?master=%@&sessionUser=%@&emcode=%@&sessionId=%@",g_id,g_master,g_sessionUser,emcode,sessionId];
-
- url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-
-
- UASNetworkManager *mannage = [UASNetworkManager shareManager];
-
- //拼接sessionID
- NSString *paramSessionId=[@"" stringByAppendingFormat:@"JSESSIONID=%@",sessionId];
- //设置cookie
- [mannage.requestSerializer setValue:paramSessionId forHTTPHeaderField:@"Cookie"];
- [mannage.requestSerializer setValue:FORMAT(@"%@",g_sessionUser) forHTTPHeaderField:@"sessionUser"];
- mannage.responseSerializer = [AFJSONResponseSerializer serializer];
- [mannage request:url method:POST parameters:nil progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
-
-
- self.isPunchHand = NO;
-
- [MBProgressHUD hideHUDForView:self.view];
- //1,获取数据
- NSMutableArray * allData = [[NSMutableArray alloc]init];
-
- for (id obj in responseObject[@"data"])
- {
- [allData addObject:obj];
- }
-
- allData =[NSDictionary changeType:allData];
-
- SLog(@"多少条:%@",allData);
-
- //更新时调用,如果有新的数据存入数据库
- if (_cellDataSource.count>_sectionSource.count)
- {
-
- [[TIFmdbManager shareManager] createOrOpenDatabasaWithDbName:WAIQINGJIHUA completed:^(BOOL result) {
-
- if (result) {
-
- [[TIFmdbManager shareManager] executeWithDb:WAIQINGJIHUA excuteBlock:^(FMDatabaseQueue *dbQueue) {
-
- [dbQueue inDatabase:^(FMDatabase *db) {
-
-
- NSDictionary *modelDic = [allData lastObject];
-
- NSString *states = [modelDic objectForKey:@"MPD_STATUS"];
- if (states == nil || states.length == 0) {
-
- states = @"0";
-
- }
-
-
- NSString *statesOne = @"0";
- //为了实现更换手机打卡,有记录时间,状态为1,不需要重新签到,>6防止出现<null>字段,
- if ([NSString stringWithFormat:@"%@",modelDic[@"MPD_ACTDATE"]].length > 6) {
-
- statesOne = [@"1" mutableCopy];
-
- }
-
- NSString *sql = [NSString stringWithFormat:@"INSERT INTO %@ (%@, %@,%@, %@, %@, %@, %@, %@, %@, %@,%@, %@, %@, %@, %@, %@,%@,%@,%@) VALUES ( ?, ?, ? ,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?,?,?)",@"outWorkTable",
-
- @"MD_LATITUDE",
- @"MD_LONGITUDE",
- @"MPD_ACTDATE",
- @"MPD_ADDRESS",
- @"MPD_ARRIVEDATE",
- @"MPD_COMPANY",
- @"MPD_DISTANCE",
- @"MPD_ID",
- @"MPD_KIND",
- @"MPD_LOCATION",
- @"MPD_MPID",
- @"MPD_OUTDATE",
- @"MPD_RECORDDATE",
- @"MPD_REMARK",
- @"MPD_STATUS",
- @"MP_ID",
- @"JO_STATUS",
- @"JO_ZHANGTAO",
- @"JO_UUID"
- ];
-
- if (![db executeUpdate:sql,
- [modelDic objectForKey:@"MD_LATITUDE"],
- [modelDic objectForKey:@"MD_LONGITUDE"],
- [modelDic objectForKey:@"MPD_ACTDATE"],
- [modelDic objectForKey:@"MPD_ADDRESS"],
- [modelDic objectForKey:@"MPD_ARRIVEDATE"],
- [modelDic objectForKey:@"MPD_COMPANY"],
- [modelDic objectForKey:@"MPD_DISTANCE"],
- [modelDic objectForKey:@"MPD_ID"],
- [modelDic objectForKey:@"MPD_KIND"],
- [modelDic objectForKey:@"MPD_LOCATION"],
- [modelDic objectForKey:@"MPD_MPID"],
- [modelDic objectForKey:@"MPD_OUTDATE"],
- [modelDic objectForKey:@"MPD_RECORDDATE"],
- [modelDic objectForKey:@"MPD_REMARK"],
- states,
- [modelDic objectForKey:@"MP_ID"],
- statesOne,
- g_master,
- g_emcode
- ])
-
- { }
-
- }];
-
-
- } completed:^{
-
- OutWorkModel * model=[OutWorkModel mj_objectWithKeyValues:[allData lastObject]];
-
- NSString *str = model.MPD_STATUS;
- if (str == nil || str.length == 0) {
-
- str = @"0";
-
- }
- NSString *statesOne = @"0";
- //为了实现更换手机打卡,有记录时间,状态为1,不需要重新签到,>6防止出现<null>字段,
- if ([NSString stringWithFormat:@"%@",model.MPD_ACTDATE].length > 6) {
-
- statesOne = [@"1" mutableCopy];
-
- }
-
- [[TIFmdbManager shareManager] executeWithDb:WAIQINGJIHUA excuteBlock:^(FMDatabaseQueue *dbQueue) {
-
- [dbQueue inDatabase:^(FMDatabase *db) {
-
- [db executeUpdate:[@"" stringByAppendingFormat:@"UPDATE '%@' SET JO_STATUS='%@',JO_ZHANGTAO='%@',JO_UUID='%@' WHERE MPD_ID='%@'",@"outWorkTable",statesOne,g_master,emcode,model.MPD_ID]];
-
- }];
-
- } completed:^{
-
- [[NSNotificationCenter defaultCenter] postNotificationName:@"kaiqizidongwaiqing" object:nil];
-
- }];
-
- }];
-
- }
-
- }];
- // [fmdb_obj isTableOK:@"outWorkTable"];
- //
- // [self InsetTableForOutWork:[allData lastObject]];
-
- // OutWorkModel * model=[OutWorkModel mj_objectWithKeyValues:[allData lastObject]];
- //
- // NSString *str = model.MPD_STATUS;
- // if (str == nil || str.length == 0) {
- //
- // str = @"0";
- //
- // }
- //
- // [self up_FMDB_DataWithTableName:[@"" stringByAppendingFormat:@"UPDATE '%@' SET JO_STATUS='%@',JO_ZHANGTAO='%@',JO_UUID='%@' WHERE MPD_ID='%@'",@"outWorkTable",str,g_master,emcode,model.MPD_ID]];
- //
- // [[NSNotificationCenter defaultCenter] postNotificationName:@"kaiqizidongwaiqing" object:nil];
- //
-
-
- }
-
- //清空数组
- [_cellDataSource removeAllObjects];
- [_sectionSource removeAllObjects];
- [_yesOrNoEntingArr removeAllObjects];
-
-
- for (int i=0; i<allData.count; i++)
- {
- OutWorkModel * model=[OutWorkModel mj_objectWithKeyValues:allData[i]];
-
- [_sectionSource addObject:model];
-
- }
-
- //DLog(@"有多少个外勤计划:%@",_sectionSource);
-
- if (_sectionSource.count!=0) {
-
- //转模型
- for (int i=0; i<_sectionSource.count; i++)
- {
- [_cellDataSource addObject:[self changgeModel:_sectionSource[i]]];
- [_yesOrNoEntingArr addObject:@"no"];
-
- }
- if (self.BusinessAddOutWork == YES) {
- // self.model = [[JOWQJHDATAModel alloc]init];
- [self calculateTowPoint:self.model.Latitude With:self.model.Longetude];
- self.model.CreateTime = [self getCurrentTime];
- self.model.CreateAddress = [self getCurrentAddress];
- self.model.Shiduan = @"半天";
- self.model.ShijArriveTime=@"";
- self.model.ShijLeaveTime=@"";
- self.model.Juli = [self getGaoWithBaidu:self.model.Latitude with:self.model.Longetude];
- self.model.ShiSjuli =[self getGaoWithBaidu:self.model.Latitude with:self.model.Longetude];
- self.model.WhatLocation = @"中国百度";
- [_cellDataSource addObject:self.model];
- [_yesOrNoEntingArr addObject:@"yes"];
-
- }
- }
- else{
- if (self.BusinessAddOutWork == YES) {
- // self.model = [[JOWQJHDATAModel alloc]init];
- [self calculateTowPoint:self.model.Latitude With:self.model.Longetude];
- self.model.CreateTime = [self getCurrentTime];
- self.model.CreateAddress = [self getCurrentAddress];
- self.model.Shiduan = @"半天";
- self.model.ShijArriveTime=@"";
- self.model.ShijLeaveTime=@"";
- self.model.Juli = [self getGaoWithBaidu:self.model.Latitude with:self.model.Longetude];
- self.model.ShiSjuli =[self getGaoWithBaidu:self.model.Latitude with:self.model.Longetude];
- self.model.WhatLocation = @"中国百度";
-
- [_cellDataSource addObject:self.model];
- [_yesOrNoEntingArr addObject:@"yes"];
-
- }else{
-
- JOWQJHDATAModel * model=[[JOWQJHDATAModel alloc]init];
- model.CreateTime=[self getCurrentTime];
- model.CreateAddress=[self getCurrentAddress];
- model.Shiduan=@"半天";//默认
- model.ShijArriveTime=@"";
- model.ShijLeaveTime=@"";
- model.WhatLocation=@"";
- [_cellDataSource addObject:model];
- [_yesOrNoEntingArr addObject:@"yes"];
- }
- }
-
- //刷新数据
-
- [MBProgressHUD hideHUDForView:self.view];
- [_tableView reloadData];
-
- } failure:^(NSURLSessionDataTask *task, NSError *error) {
- self.isPunchHand = NO;
- [MBProgressHUD hideHUDForView:self.view];
- if (error)
- {
- JOWQJHDATAModel * model=[[JOWQJHDATAModel alloc]init];
- model.CreateTime=[self getCurrentTime];
- model.CreateAddress=[self getCurrentAddress];
- model.Shiduan=@"半天";//默认
- model.ShijArriveTime=@"";
- model.ShijLeaveTime=@"";
-
- [_cellDataSource addObject:model];
- [_yesOrNoEntingArr addObject:@"yes"];
-
- [_tableView reloadData];
-
- // [JOShowMessageFromNavi showDropViewWithMessage:@"请求失败,请检查网络" ToNavi:self.navigationController withColor:nil];
- if (error.code==-1009)
- {
- [JOShowMessageFromNavi showDropViewWithMessage:Localized(@"UU_custom_networkDisconnect") ToNavi:self.navigationController withColor:nil];
- }else if (error.code==-1001)
- {
- [JOShowMessageFromNavi showDropViewWithMessage:Localized(@"UU_custom_networkTimeOut") ToNavi:self.navigationController withColor:nil];
- }
- else{
- [JOShowMessageFromNavi showDropViewWithMessage:Localized(@"UU_custom_getDataFaild") ToNavi:self.navigationController withColor:nil];
-
- }
-
- }
- }];
- }
- #pragma mark -- B2B接口
- - (void)b2bGetAlldataOfOutPlans
- {
-
-
- NSString * emcode = [[NSUserDefaults standardUserDefaults] stringForKey:@"erpaccount"];
-
- [B2BHTTPRequest Get:B2B_GET_OUTP_PLANDATA pageSize:0 condition:@"" Completion:^(id ObjectData, NSError *error) {
-
- if (error==nil)
- {
- SLog(@"多少组%@",ObjectData);
- self.isPunchHand = NO;
- //1,获取数据
- [MBProgressHUD hideHUDForView:self.view];
- ObjectData=[NSDictionary changeType:ObjectData];
-
- NSMutableArray * allData = [[NSMutableArray alloc]init];
-
- for (id obj in ObjectData[@"data"])
- {
- [allData insertObject:obj atIndex:0];
- }
-
- //更新时调用,如果有新的数据存入数据库
- if (_cellDataSource.count>_sectionSource.count)
- {
-
- OutWorkModel * model=[[OutWorkModel alloc]init];
-
- /*
- "md_latitude" = "22.54051796280508";
- "md_longitude" = "113.953009331281";
- "mp_firsttime" = 1491472413863;
- "mp_id" = 810;
- "mp_lasttime" = 1491472586565;
- "mpd_address" = "\U6df1\U5733\U5e02\U5357\U5c71\U533a\U79d1\U6280\U5357\U4e94\U8def5\U53f7";
- "mpd_arrivedate" = 1491472769000;
- "mpd_company" = "\U82f1\U5510\U5927\U53a6";
- "mpd_distance" = 67;
- "mpd_id" = 849;
- "mpd_kind" = "\U534a\U5929";
- "mpd_location" = "\U5e7f\U4e1c\U7701\U6df1\U5733\U5e02\U5357\U5c71\U533a\U9ad8\U65b0\U5357\U56db\U9053\U9760\U8fd1\U82f1\U5510\U5927\U53a6";
- "mpd_mpid" = 810;
- "mpd_recorddate" = 1491472354621;
- "mpd_remark" = "\U4e1a\U52a1\U5904\U7406";
- "mpd_status" = "\U5728\U5f55\U5165";
- */
-
- model.MD_LATITUDE=FORMAT(@"%@",[[allData lastObject] objectForKey:@"md_latitude"]);
- model.MD_LONGITUDE=FORMAT(@"%@",[[allData lastObject] objectForKey:@"md_longitude"]);
- model.MP_ID=FORMAT(@"%@",[[allData lastObject] objectForKey:@"mp_id"]);
- model.MPD_ADDRESS=FORMAT(@"%@",[[allData lastObject] objectForKey:@"mpd_address"]);
- model.MPD_ARRIVEDATE=FORMAT(@"%@",[[allData lastObject] objectForKey:@"mpd_arrivedate"]);
- model.MPD_DISTANCE=FORMAT(@"%@",[[allData lastObject] objectForKey:@"mpd_distance"]);
- model.MPD_ID=FORMAT(@"%@",[[allData lastObject] objectForKey:@"mpd_id"]);
- model.MPD_KIND=FORMAT(@"%@",[[allData lastObject] objectForKey:@"mpd_kind"]);
- model.MPD_LOCATION=FORMAT(@"%@",[[allData lastObject] objectForKey:@"mpd_location"]);
- model.MPD_MPID=FORMAT(@"%@",[[allData lastObject] objectForKey:@"mpd_mpid"]);
- model.MPD_RECORDDATE=FORMAT(@"%@",[[allData lastObject] objectForKey:@"mpd_recorddate"]);
- model.MPD_REMARK=FORMAT(@"%@",[[allData lastObject] objectForKey:@"mpd_remark"]);
- model.MPD_STATUS=FORMAT(@"%@",[[allData lastObject] objectForKey:@"mpd_status"]);
- model.MPD_COMPANY=FORMAT(@"%@",[[allData lastObject] objectForKey: @"mpd_company"]);
- model.MPD_OUTDATE=FORMAT(@"%@",[[allData lastObject] objectForKey: @"mp_lasttime"]);
- model.MPD_ACTDATE=FORMAT(@"%@",[[allData lastObject] objectForKey: @"mp_firsttime"]);
-
-
- [[TIFmdbManager shareManager] createOrOpenDatabasaWithDbName:WAIQINGJIHUA completed:^(BOOL result) {
-
- if (result) {
-
- [[TIFmdbManager shareManager] executeWithDb:WAIQINGJIHUA excuteBlock:^(FMDatabaseQueue *dbQueue) {
-
- [dbQueue inDatabase:^(FMDatabase *db) {
-
- NSString *states = model.MPD_STATUS;
- if (states == nil || states.length == 0) {
-
- states = @"0";
-
- }
-
- NSString *strOne = @"0";
-
- if ([NSString stringWithFormat:@"%@",model.MPD_ACTDATE].length > 6) {
-
- strOne = @"1";
-
- }
-
- NSString *sql = [NSString stringWithFormat:@"INSERT INTO %@ (%@, %@,%@, %@, %@, %@, %@, %@, %@, %@,%@, %@, %@, %@, %@, %@,%@,%@,%@) VALUES ( ?, ?, ? ,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?,?,?)",@"outWorkTable",
-
- @"MD_LATITUDE",
- @"MD_LONGITUDE",
- @"MPD_ACTDATE",
- @"MPD_ADDRESS",
- @"MPD_ARRIVEDATE",
- @"MPD_COMPANY",
- @"MPD_DISTANCE",
- @"MPD_ID",
- @"MPD_KIND",
- @"MPD_LOCATION",
- @"MPD_MPID",
- @"MPD_OUTDATE",
- @"MPD_RECORDDATE",
- @"MPD_REMARK",
- @"MPD_STATUS",
- @"MP_ID",
- @"JO_STATUS",
- @"JO_ZHANGTAO",
- @"JO_UUID"
- ];
-
- if (![db executeUpdate:sql,
- model.MD_LATITUDE,
- model.MD_LONGITUDE,
- model.MPD_ACTDATE,
- model.MPD_ADDRESS,
- model.MPD_ARRIVEDATE,
- model.MPD_COMPANY,
- model.MPD_DISTANCE,
- model.MPD_ID,
- model.MPD_KIND,
- model.MPD_LOCATION,
- model.MPD_MPID,
- model.MPD_OUTDATE,
- model.MPD_RECORDDATE,
- model.MPD_REMARK,
- model.MPD_STATUS,
- model.MP_ID,
- strOne,
- g_master,
- g_emcode
- ])
-
- {
- }
-
-
- }];
-
-
- } completed:^{
-
- NSString *strOne = @"0";
-
- if ([NSString stringWithFormat:@"%@",model.MPD_ACTDATE].length > 6) {
-
- strOne = @"1";
-
- }
-
- [[TIFmdbManager shareManager] executeWithDb:WAIQINGJIHUA excuteBlock:^(FMDatabaseQueue *dbQueue) {
-
- [dbQueue inDatabase:^(FMDatabase *db) {
-
- [db executeUpdate:[@"" stringByAppendingFormat:@"UPDATE '%@' SET JO_STATUS='%@',JO_ZHANGTAO='%@',JO_UUID='%@' WHERE MPD_ID='%@'",@"outWorkTable",strOne,@"B2BMaster",emcode,model.MPD_ID]];
-
-
- }];
-
- } completed:^{
-
- [[NSNotificationCenter defaultCenter] postNotificationName:@"kaiqizidongwaiqing" object:nil];
-
-
- }];
-
-
- }];
-
-
- }
-
- }];
-
-
- // [self B2BInsetTableForOutWork:model];
-
- //
- // [self up_FMDB_DataWithTableName:[@"" stringByAppendingFormat:@"UPDATE '%@' SET JO_STATUS='%@',JO_ZHANGTAO='%@',JO_UUID='%@' WHERE MPD_ID='%@'",@"outWorkTable",@"0",@"B2BMaster",emcode,model.MPD_ID]];
- //
- // [[NSNotificationCenter defaultCenter] postNotificationName:@"kaiqizidongwaiqing" object:nil];
-
- }
-
- //清空数组
- [_cellDataSource removeAllObjects];
- [_sectionSource removeAllObjects];
- [_yesOrNoEntingArr removeAllObjects];
-
-
-
- for (int i=0; i<allData.count; i++)
- {
- /*
- "md_latitude" = "22.61805489345343";
- "md_longitude" = "114.1416624713691";
- "mp_id" = 201;
- "mpd_address" = "\U6df1\U60e0\U8def318\U53f7\U9644\U8fd1";
- "mpd_arrivedate" = 1489830723000;
- "mpd_company" = "\U597d\U4e45\U4e0d\U89c111";
- "mpd_distance" = "21182.76";
- "mpd_id" = 221;
- "mpd_kind" = "\U534a\U5929";
- "mpd_location" = "\U5728\U82f1\U5510\U5927\U53a6\U9644\U8fd1";
- "mpd_mpid" = 201;
- "mpd_recorddate" = 1489744861002;
- "mpd_remark" = "\U5ba2\U60c5\U7ef4\U62a4";
- "mpd_status" = "\U5728\U5f55\U5165";
- */
-
- OutWorkModel * model=[[OutWorkModel alloc]init];
-
-
- model.MD_LATITUDE=FORMAT(@"%@",[allData[i] objectForKey:@"md_latitude"]);
- model.MD_LONGITUDE=FORMAT(@"%@",[allData[i] objectForKey:@"md_longitude"]);
- model.MP_ID=FORMAT(@"%@",[allData[i] objectForKey:@"mp_id"]);
- model.MPD_ADDRESS=FORMAT(@"%@",[allData[i] objectForKey:@"mpd_address"]);
- model.MPD_ARRIVEDATE=FORMAT(@"%@",[allData[i] objectForKey:@"mpd_arrivedate"]);
- model.MPD_DISTANCE=FORMAT(@"%@",[allData[i] objectForKey:@"mpd_distance"]);
- model.MPD_ID=FORMAT(@"%@",[allData[i] objectForKey:@"mpd_id"]);
- model.MPD_KIND=FORMAT(@"%@",[allData[i] objectForKey:@"mpd_kind"]);
- model.MPD_LOCATION=FORMAT(@"%@",[allData[i] objectForKey:@"mpd_location"]);
- model.MPD_MPID=FORMAT(@"%@",[allData[i] objectForKey:@"mpd_mpid"]);
- model.MPD_RECORDDATE=FORMAT(@"%@",[allData[i] objectForKey:@"mpd_recorddate"]);
- model.MPD_REMARK=FORMAT(@"%@",[allData[i] objectForKey:@"mpd_remark"]);
- model.MPD_STATUS=FORMAT(@"%@",[allData[i] objectForKey:@"mpd_status"]);
- model.MPD_COMPANY=FORMAT(@"%@",[allData[i] objectForKey:@"mpd_company"]);
-
- if ([[allData[i] allKeys] containsObject:@"mp_lasttime"])
- {
- model.MPD_OUTDATE=FORMAT(@"%@",[allData[i] objectForKey: @"mp_lasttime"]);
- }else{
- model.MPD_OUTDATE=@"";
- }
-
- if ([[allData[i] allKeys] containsObject:@"mp_firsttime"])
- {
- model.MPD_ACTDATE=FORMAT(@"%@",[allData[i] objectForKey: @"mp_firsttime"]);
- }else{
-
- model.MPD_ACTDATE=@"";
- }
-
-
- [_sectionSource addObject:model];
-
- }
-
- //DLog(@"有多少个外勤计划:%@",_sectionSource);
-
- //转模型
- for (int i=0; i<_sectionSource.count; i++)
- {
- [_cellDataSource addObject:[self changgeModel:_sectionSource[i]]];
- [_yesOrNoEntingArr addObject:@"no"];
-
- }
-
- //如果为空,设置一个空数据模型
- if (_sectionSource.count==0)
- {
- JOWQJHDATAModel * model=[[JOWQJHDATAModel alloc]init];
- model.CreateTime=[self getCurrentTime];
- model.CreateAddress=[self getCurrentAddress];
- model.Shiduan=@"半天";//默认
- model.ShijArriveTime=@"";
- model.ShijLeaveTime=@"";
-
- [_cellDataSource addObject:model];
- [_yesOrNoEntingArr addObject:@"yes"];
-
-
- }
-
- //刷新数据
-
- [_tableView reloadData];
-
-
-
- }
- else
- {
-
- DLog(@"%@",error);
- self.isPunchHand = NO;
- [MBProgressHUD hideHUDForView:self.view];
- JOWQJHDATAModel * model=[[JOWQJHDATAModel alloc]init];
- model.CreateTime=[self getCurrentTime];
- model.CreateAddress=[self getCurrentAddress];
- model.Shiduan=@"半天";//默认
- model.ShijArriveTime=@"";
- model.ShijLeaveTime=@"";
-
- [_cellDataSource addObject:model];
- [_yesOrNoEntingArr addObject:@"yes"];
-
- [_tableView reloadData];
-
- [MBProgressHUD hideHUDForView:self.view];
-
- [JOShowMessageFromNavi showDropViewWithMessage:@"请求失败,请检查网络" ToNavi:self.navigationController withColor:nil];
- }
-
- [MBProgressHUD hideHUDForView:self.view];
-
- }];
-
- }
- //5,初始化路线规划
- -(void)initRountSearch
- {
- self.searchAPI = [[AMapSearchAPI alloc] init];
- self.searchAPI.delegate = self;
- }
- //6,手动定位
- - (void)initLocation
- {
-
- if (![UASUserInfo shareManager].inRegion) {//境外
-
- [UASLocaManager getAddressWithWaitInteval:10 completed:^(CLLocation *location, NSString *address, NSError *error) {
-
- if (error) {
- [JOShowMessageFromNavi showDropViewWithMessage:Localized(@"UU_work_OA_WorkOutPlanTitle") ToNavi:self.navigationController withColor:nil];
- JOWQJHDATAModel * model=[_cellDataSource lastObject];
- model.CreateAddress=@"";
-
- [_tableView reloadData];
-
- }else{
-
- //将当前位子信息存入沙河
- NSUserDefaults * user=[NSUserDefaults standardUserDefaults];
- [user setObject:address forKey:@"UUCurrentAddress"];
- [user setObject:address forKey:@"UUCurrentCity"];
- [user setObject:[NSString stringWithFormat:@"%f",location.coordinate.latitude] forKey:@"UUCurrentLati"];
- [user setObject:[NSString stringWithFormat:@"%f",location.coordinate.longitude] forKey:@"UUCurrentLong"];
-
- JOWQJHDATAModel * model=[_cellDataSource lastObject];
- model.CreateAddress=address;
- [_tableView reloadData];
-
- }
-
- }];
-
- }else{
-
- self.JOlocationManager=[[AMapLocationManager alloc]init];
- // 带逆地理信息的一次定位(返回坐标和地址信息)
- [self.JOlocationManager setDesiredAccuracy:kCLLocationAccuracyBest];
- // 定位超时时间,最低2s,此处设置为10s
- self.JOlocationManager.locationTimeout =10;
- // 逆地理请求超时时间,最低2s,此处设置为10s
- self.JOlocationManager.reGeocodeTimeout = 10;
-
- // 带逆地理(返回坐标和地址信息)。将下面代码中的 YES 改成 NO ,则不会返回地址信息。
- [self.JOlocationManager requestLocationWithReGeocode:YES completionBlock:^(CLLocation *location, AMapLocationReGeocode *regeocode, NSError *error) {
-
- if (error)
- {
-
- [JOShowMessageFromNavi showDropViewWithMessage:Localized(@"UU_work_OA_WorkOutPlanTitle") ToNavi:self.navigationController withColor:nil];
- JOWQJHDATAModel * model=[_cellDataSource lastObject];
- model.CreateAddress=@"";
- [_tableView reloadData];
-
- if (error.code == AMapLocationErrorLocateFailed)
- {
- return;
- }
- }
-
-
-
- if (regeocode)
- {
-
- //将当前位子信息存入沙河
- NSUserDefaults * user=[NSUserDefaults standardUserDefaults];
- [user setObject:regeocode.formattedAddress forKey:@"UUCurrentAddress"];
- [user setObject:regeocode.city forKey:@"UUCurrentCity"];
- [user setObject:[NSString stringWithFormat:@"%f",location.coordinate.latitude] forKey:@"UUCurrentLati"];
- [user setObject:[NSString stringWithFormat:@"%f",location.coordinate.longitude] forKey:@"UUCurrentLong"];
- JOWQJHDATAModel * model=[_cellDataSource lastObject];
- model.CreateAddress=regeocode.formattedAddress;
- [_tableView reloadData];
- }
- }];
- }
- }
- #pragma mark -- 路线规划方法
- /* 路径规划搜索回调. */
- - (void)onRouteSearchDone:(AMapRouteSearchBaseRequest *)request response:(AMapRouteSearchResponse *)response
- {
- if (response.route == nil)
- {
- return;
-
- }else{
-
-
- AMapPath *path =response.route.paths[0];
-
- JOWQJHDATAModel * model=[_cellDataSource lastObject];
- model.YujiTime=[self timeFormatted:path.duration];
- [_cellDataSource replaceObjectAtIndex:_cellDataSource.count-1 withObject:model];
- [_tableView reloadData];
-
- }
-
-
- }
- //获取预计到达时间
- - (NSString *)timeFormatted:(int)totalSeconds
- {
- //获取当前时间的秒数
- NSTimeInterval nowtime = [[NSDate date] timeIntervalSince1970];
- long long theTime = [[NSNumber numberWithDouble:nowtime] longLongValue];
- DLog(@"%lld",theTime);
- //设置时间格式
- NSDateFormatter * formatter = [[NSDateFormatter alloc ] init];
- [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
- //设置date数据
- NSDate *date = [NSDate dateWithTimeIntervalSince1970:totalSeconds+theTime];
- NSString * str=[formatter stringFromDate:date];
- return str;
- }
- - (void)AMapSearchRequest:(id)request didFailWithError:(NSError *)error
- {
- [JOShowMessageFromNavi showDropViewWithMessage:@"计算预计到达时间失败,请手动输入" ToNavi:self.navigationController withColor:nil];
- DLog(@"Error: %@", error);
- }
- - (void)calculateTowPoint:(NSString *)lat With:(NSString *)loo
- {
- NSUserDefaults * user=[NSUserDefaults standardUserDefaults];
- NSString * str1=[user objectForKey:@"UUCurrentLati"];
- NSString * str2=[user objectForKey:@"UUCurrentLong"];
-
- AMapDrivingRouteSearchRequest *navi = [[AMapDrivingRouteSearchRequest alloc] init];
-
- navi.requireExtension = YES;
- navi.strategy = 5;
-
-
- /* 出发点. */
- navi.origin = [AMapGeoPoint locationWithLatitude:[str1 doubleValue]
- longitude:[str2 doubleValue]];
- /* 目的地. */
- navi.destination = [AMapGeoPoint locationWithLatitude:[lat doubleValue]
- longitude:[loo doubleValue]];
-
- [self.searchAPI AMapDrivingRouteSearch:navi];
-
- }
- #pragma mark -- 上传接口
- //更新上传数据
- - (void)uploadAction
- {
-
- //当没有新单据表时不予更新
- if (_cellDataSource.count==_sectionSource.count)
- {
- [JOShowMessageFromNavi showDropViewWithMessage:Localized(@"UU_work_OA_WorkOutsideSign_PleaseCreateANewDocument") ToNavi:self.navigationController withColor:nil];
- return;
- }
-
- JOWQJHDATAModel * model=[_cellDataSource lastObject];
-
- //DLog(@"内容有哪些:%@ %@ %@ %@ %@ %@ %@ %@",model.CreateTime,model.CreateAddress,model.CFmudi,model.Shiduan,model.YujiTime,model.CFdanwei,model.CFdizhi,model.ShiSjuli);
-
-
- //拦截,单据不完整不允许提交
- if ((model.Latitude == nil || model.Latitude.length == 0) || (model.Longetude == nil || model.Longetude.length == 0)) {
-
- [JOShowMessageFromNavi showDropViewWithMessage:Localized(@"UU_work_OA_WorkOutsideSign_PleaseFillinAgain") ToNavi:self.navigationController withColor:nil];
- return;
-
- }
- if (model.CFdanwei==nil||[model.CFdanwei isEqualToString:@""])
- {
- [JOShowMessageFromNavi showDropViewWithMessage:Localized(@"UU_work_OA_WorkOutsideSign_PleaseVisitTheUnit") ToNavi:self.navigationController withColor:nil];
-
- return;
- }
- if (model.CFdizhi==nil||[model.CFdizhi isEqualToString:@""])
- {
- [JOShowMessageFromNavi showDropViewWithMessage:Localized(@"UU_work_OA_WorkOutsideSign_PleaseSelectAddress") ToNavi:self.navigationController withColor:nil];
- return;
- }
- if (model.CFmudi==nil||[model.CFmudi isEqualToString:@""])
- {
- [JOShowMessageFromNavi showDropViewWithMessage:Localized(@"UU_work_OA_WorkOutsideSign_PleaseEnterYourVisit") ToNavi:self.navigationController withColor:nil];
- return;
- }
- if (model.YujiTime==nil||[model.YujiTime isEqualToString:@""])
- {
- [JOShowMessageFromNavi showDropViewWithMessage:Localized(@"UU_work_OA_WorkOutsideSign_PleaseEnterExpectedArrivalTime") ToNavi:self.navigationController withColor:nil];
- return;
- }
- if (model.CreateAddress==nil||[model.CreateAddress isEqualToString:@""]||[model.CreateAddress isEqualToString:@"未获取到当前位置"])
- {
- [JOShowMessageFromNavi showDropViewWithMessage:Localized(@"UU_work_OA_WorkOutsideSign_InitialPositionAnomaly") ToNavi:self.navigationController withColor:nil];
- return;
- }
- //4,获取外勤计划列表
- if (g_B2BUser)
- {
-
- [self B2BpostOutWorkDataToServer];
-
- }else{
- //上传地址
- _uploadBtn.enabled = NO;
-
- [self postAddressToServer];
-
- [self getCodeAndId];
-
- }
- }
- #pragma mark -- 上传外勤计划
- //1.B2B上传外勤计划列表
- - (void)B2BpostOutWorkDataToServer
- {
-
- JOWQJHDATAModel * model=[_cellDataSource lastObject];
-
- /*
- @"mpd_distance":model.Juli,//距离
- @"mpd_mpid":_idAndCodeArr[1],//mpid
- @"mpd_kind":model.Shiduan,//类型,(全天,半天)
- @"mpd_detno":@"1",//???
- @"mpd_address":model.CFdizhi,//出访公司地址
- @"mpd_remark":model.CFmudi,//出访目的
- @"mpd_id":@"",//id
- @"mpd_location":model.CreateAddress,//当前位子
- @"mpd_arrivedate":model.YujiTime,//预计到达日期
- @"mpd_company":model.CFdanwei,//出访公司
- @"mpd_recorddate":model.CreateTime,//创建日期
- */
-
- NSArray * params;
-
- params = @[@{
- @"mpd_distance":FORMAT(@"%@",model.Juli),//距离
- @"mpd_kind":FORMAT(@"%@",model.Shiduan),//类型,(全天,半天)
- @"longitude":FORMAT(@"%@",model.Longetude),
- @"latitude":FORMAT(@"%@",model.Latitude),
- @"mpd_address":FORMAT(@"%@",model.CFdizhi),
- @"mpd_remark":FORMAT(@"%@",model.CFmudi),
- @"mpd_location":FORMAT(@"%@",model.CreateAddress),
- @"mpd_arrivedate":FORMAT(@"%@",model.YujiTime),
- @"mpd_company":FORMAT(@"%@",model.CFdanwei),
- @"mpd_recorddate":FORMAT(@"%@",model.CreateTime),
- @"enuu":FORMAT(@"%@",g_B2B_enuu),
- @"emcode":FORMAT(@"%@",g_emcode)
- },];
-
- NSDictionary * formStore1;
-
- formStore1=@{
- @"mp_visittime":FORMAT(@"%@",model.YujiTime),
- @"mp_address":FORMAT(@"%@",model.CreateAddress),
- @"mp_recorder":@"独立版",
- @"recorderCode":FORMAT(@"%@",g_emcode),
- @"enuu":FORMAT(@"%@",g_B2B_enuu),
- @"emcode":FORMAT(@"%@",g_emcode)
- };
-
- NSString *str1=[NSString dictionaryToJson:formStore1];
-
- NSString *str2= [NSString dictionaryToJson:params];
-
- NSDictionary *dic11 = [NSDictionary dictionaryWithObjectsAndKeys:str2,@"param",
- str1,@"formStore",
- nil];
-
-
- [B2BHTTPRequest Post:B2B_POST_OUTP_SAVENEWPLAN pageSize:0 condictonOne:nil condictonTwo:dic11 Completion:^(id ObjectData, NSError *error) {
-
- if (error==nil)
- {
- DLog(@"保存成功:%@",ObjectData);
- [MBProgressHUD hideHUDForView:self.view];
-
- [MBProgressHUD showSuccess:Localized(@"UU_custom_saveSuccess")];
-
- if(self.scheduleBlock){
-
- self.scheduleBlock();
-
- }
-
- [self B2BpostAddress];
-
-
- }else{
-
- DLog(@"失败原因%@",error);
-
- [MBProgressHUD hideHUDForView:self.view];
-
- [MBProgressHUD showError:Localized(@"UU_custom_saveFaild")];
- }
-
- }];
-
-
- }
- //2.b2b上传地址
- -(void)B2BpostAddress
- {
- JOWQJHDATAModel * model=[_cellDataSource lastObject];
-
- NSDictionary * formStore;
-
- formStore=@{
- @"Md_latitude":FORMAT(@"%@",model.Latitude),
- @"Md_address":FORMAT(@"%@",model.CFdizhi),
- @"Md_longitude":FORMAT(@"%@",model.Longetude),
- @"Md_visitcount":@"1",
- @"Md_visittime":FORMAT(@"%@",model.CreateTime),
- @"company":FORMAT(@"%@",model.CFdanwei),
- @"emcode":FORMAT(@"%@",g_emcode),
- @"enuu":FORMAT(@"%@",g_B2B_enuu)
- };
-
- NSString *str = [NSString dictionaryToJson:formStore];
-
- NSDictionary *dic1 = [NSDictionary dictionaryWithObjectsAndKeys:
- str,@"formStore",nil];
-
-
- DLog(@"%@",formStore);
-
- [B2BHTTPRequest Post:B2B_POST_OUTP_SAVEADDRESS pageSize:0 condictonOne:@"" condictonTwo:dic1 Completion:^(id ObjectData, NSError *error) {
-
- if (error==nil)
- {
- DLog(@"上传地址%@",ObjectData);
- }else{
-
- [self b2bGetAlldataOfOutPlans];
-
- }
-
- }];
-
- }
- //1,单独上传地址
- - (void)postAddressToServer
- {
-
-
- //NSString * emcode = [[NSUserDefaults standardUserDefaults] stringForKey:@"erpaccount"];
- NSString * ipStr = [[NSUserDefaults standardUserDefaults] stringForKey:@"ipAndPort"];
- NSString * sessionId = [[NSUserDefaults standardUserDefaults] stringForKey:@"sessionId"];
-
- /*
- url:http://218.17.158.219:8090/ERP/mobile/addOutAddress.action
- parms:{master=UAS, sessionUser=U0736, sessionId=6C49764C9228E8B5200110015F803667, caller=lp, formStore={
- "Md_latitude":22.544227600097656,
- "Md_address":"南山区科技南路55号",
- "Md_longitude":113.95539093017578,
- "Md_visitcount":1,
- "Md_visittime":"2017-01-04 09:23:08",
- "Md_company":"中兴"
- }}
- */
-
- NSString * str1=@"";
- NSString * str2=@"";
- NSString * str3=@"";
- NSString * str4=@"";
-
- //要转码
- if (_jingweiduArr.count==4)
- {
- CLLocationCoordinate2D point=[JZLocationConverter gcj02ToBd09:CLLocationCoordinate2DMake([_jingweiduArr[0] doubleValue] ,[_jingweiduArr[1] doubleValue])];
-
- str1=[NSString stringWithFormat:@"%f",point.latitude];
- str2=[NSString stringWithFormat:@"%f",point.longitude];
- str3=_jingweiduArr[2];
- str4=_jingweiduArr[3];
- }
- //不用转码
- if (_jingweiduArr.count==5)
- {
- str1=_jingweiduArr[0];
- str2=_jingweiduArr[1];
- str3=_jingweiduArr[2];
- str4=_jingweiduArr[3];
-
- }
-
- if ((str1 == nil || str1.length == 0) || (str2 == nil ||str2.length == 0)) {
-
- [JOShowMessageFromNavi showDropViewWithMessage:Localized(@"UU_work_OA_WorkOutsideSign_PleaseFillinAgain") ToNavi:self.navigationController withColor:nil];
-
- return;
-
- }
-
- NSString * emcode = [[NSUserDefaults standardUserDefaults] stringForKey:@"erpaccount"];
- NSDictionary * formStore;
-
- formStore=@{
- @"Md_latitude":str1,
- @"Md_longitude":str2,
- @"Md_address":str3,
- @"Md_visitcount":@"1",
- @"Md_visittime":[self getCurrentTime],
- @"Md_company":str4,
- @"Md_emcode":emcode
- };
- NSData *jsonData = [NSJSONSerialization dataWithJSONObject:formStore options:NSJSONWritingPrettyPrinted error:nil];
- NSString *gridStr=[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
-
- DLog(@"%@",formStore);
-
- NSString *url = [NSString stringWithFormat:@"%@mobile/addOutAddress.action?caller=OUTADDRESS&formStore=%@&master=%@&sessionUser=%@&sessionId=%@",ipStr,gridStr,g_master,g_sessionUser,sessionId];
-
- url = [NSString stringWithFormat:@"%@mobile/addOutAddress.action",g_id];
-
- url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-
- NSDictionary *param = [@{
- @"master":g_master,
- @"sessionId":sessionId,
- @"caller":@"lp",
- @"formStore": gridStr,
- } mutableCopy];
- UASNetworkManager *mannage = [UASNetworkManager shareManager];
-
- //拼接sessionID
- NSString *paramSessionId=[@"" stringByAppendingFormat:@"JSESSIONID=%@",sessionId];
- //设置cookie
- [mannage.requestSerializer setValue:paramSessionId forHTTPHeaderField:@"Cookie"];
- [mannage.requestSerializer setValue:[NSString stringWithFormat:@"%@",g_sessionUser] forHTTPHeaderField:@"sessionUser"];
- mannage.responseSerializer = [AFJSONResponseSerializer serializer];
-
- [mannage request:url method:POST parameters:param progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
- DLog(@"上传地址成功");
- if ([responseObject[@"success"] boolValue]) {
-
- [[NSUserDefaults standardUserDefaults] setObject:responseObject[@"sessionId"] forKey:@"sessionId"];
-
- }
-
-
- } failure:^(NSURLSessionDataTask *task, NSError *error) {
- _uploadBtn.enabled = YES;
- DLog(@"上传地址失败");
-
- }];
- }
- //2,先获取新单据编号和单据id
- - (void)getCodeAndId
- {
- [_idAndCodeArr removeAllObjects];
- [MBProgressHUD showMessage:@"" toView:self.view];
-
-
- NSString *ip = [UASUserInfo shareManager].urlIp;
- NSString *sessionId = [[NSUserDefaults standardUserDefaults] stringForKey:@"sessionId"];
-
- //caller =@"MOBILEOUTPLAN";
- NSString *url = [NSString stringWithFormat:@"%@common/getCodeString.action?&caller=%@&sessionId=%@&type=2",g_id,@"MOBILEOUTPLAN",sessionId];
-
- //DLog(@"各大单据获取编号URL:%@",url);
-
- url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-
- UASNetworkManager *manager = [UASNetworkManager shareManager];
- manager.responseSerializer = [AFJSONResponseSerializer serializer];
-
- //拼接sessionID
- NSString *paramSessionId=[@"" stringByAppendingFormat:@"JSESSIONID=%@",sessionId];
- //设置cookie
- [manager.requestSerializer setValue:paramSessionId forHTTPHeaderField:@"Cookie"];
- [manager request:url method:POST parameters:nil progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
- //DLog(@"单据编号是:%@",responseObject);
-
- [_idAndCodeArr addObject:[NSString stringWithFormat:@"%@",responseObject[@"code"]]];
-
-
- NSString *urlid = [NSString stringWithFormat:@"%@common/getId.action?seq=%@&sessionId=%@",g_id,@"MOBILE_OUTPLAN_SEQ",sessionId];
-
-
- urlid = [urlid stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-
- [manager request:urlid method:POST parameters:nil progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
- DLog(@"Id是:%@",responseObject);
- [_idAndCodeArr addObject:[NSString stringWithFormat:@"%@",responseObject[@"id"]]];
-
- [self postOutWorkDataToServer:_idAndCodeArr];
- } failure:^(NSURLSessionDataTask *task, NSError *error) {
-
-
- [MBProgressHUD hideHUDForView:self.view];
-
- [MBProgressHUD showError:@"获取编号ID失败"];
- }];
- } failure:^(NSURLSessionDataTask *task, NSError *error) {
-
- _uploadBtn.enabled = YES;
- [MBProgressHUD hideHUDForView:self.view];
- [MBProgressHUD showError:@"获取编号失败"];
- dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-
- [MBProgressHUD hideHUDForView:self.view];
-
- });
- }];
-
-
- }
- //3,上传外勤计划列表---上传成功后重新调用接口刷新界面
- - (void)postOutWorkDataToServer:(NSMutableArray *)dataArr
- {
- /*
- url:http://218.17.158.219:8090/ERP/mobile/addOutPlan.action
- parms:{master=UAS, sessionUser=U0736, sessionId=DA4C26A6E80A99E488865EDF370718B1, caller=lp, param=[{
- "mpd_distance":"85.91",
- "mpd_mpid":111236,
- "mpd_kind":"全天",
- "mpd_detno":2131623952,
- "mpd_address":"深圳市南山区高新南五道金证科技大楼8-9楼",
- "mpd_remark":"下班那些年",
- "mpd_id":"",
- "mpd_location":"在英唐大厦附近",
- "mpd_arrivedate":"2016-12-30 14:46:28",
- "mpd_company":"金证股份",
- "mpd_recorddate":"2016-12-30 14:43:59"
- }],
- formStore={
- "mp_visittime":"2016-12-30 14:46:28",
- "mp_address":"中国广东省深圳市南山区科技南五路5",
- "mp_recorder":"龚鹏明",
- "mp_recordercode":"U0736",
- "mp_id":111236,
- "mp_code":"2016128317"
- }}
- */
-
- JOWQJHDATAModel * model=[_cellDataSource lastObject];
-
-
- NSString *sessionId=[[NSUserDefaults standardUserDefaults] stringForKey:@"sessionId"];
- NSString *ip=[UASUserInfo shareManager].urlIp;
- //NSString * userID=[[NSUserDefaults standardUserDefaults] objectForKey:@"erpaccount"];
- //NSString *master=[[[NSUserDefaults standardUserDefaults] objectForKey:@"masterDic"]objectForKey:@"ma_user"];
- if ((model.Latitude == nil || model.Latitude.length == 0) || (model.Longetude == nil || model.Longetude.length == 0)) {
-
- [JOShowMessageFromNavi showDropViewWithMessage:Localized(@"UU_work_OA_WorkOutsideSign_PleaseFillinAgain") ToNavi:self.navigationController withColor:nil];
- return;
-
- }
-
- NSDictionary * params;
-
- params = @{
- @"mpd_distance":model.Juli,//距离
- @"mpd_mpid":_idAndCodeArr[1],//mpid
- @"mpd_kind":model.Shiduan,//类型,(全天,半天)
- @"mpd_detno":@"1",//???
- @"mpd_address":model.CFdizhi,//出访公司地址
- @"mpd_remark":model.CFmudi,//出访目的
- @"mpd_id":@"",//id
- @"mpd_location":model.CreateAddress,//当前位子
- @"mpd_arrivedate":model.YujiTime,//预计到达日期
- @"mpd_company":model.CFdanwei,//出访公司
- @"mpd_recorddate":model.CreateTime,//创建日期
- };
- /*
- 增加 mp_status 默认值【在录入】,mp_statuscode 默认值【ENTERING】
- */
-
- NSDictionary * formStore;
-
- formStore=@{
- @"mp_visittime":model.YujiTime,//预计到达日期,
- @"mp_address":model.CreateAddress,//当前位子地址
- @"mp_recorder":[[NSUserDefaults standardUserDefaults] stringForKey:@"personName"],
- @"mp_recordercode":[[NSUserDefaults standardUserDefaults] objectForKey:@"erpaccount"],
- @"mp_id":_idAndCodeArr[1],
- @"mp_code":_idAndCodeArr[0],
- @"mp_status":@"在录入",
- @"mp_statuscode":@"ENTERING",
- };
-
-
-
- //DLog(@"两个字典分别是:%@ %@",params,formStore);
-
-
- NSData *jsonData1 = [NSJSONSerialization dataWithJSONObject:params options:NSJSONWritingPrettyPrinted error:nil];
-
- NSString *str1=[[NSString alloc] initWithData:jsonData1 encoding:NSUTF8StringEncoding];
-
- NSData *jsonData2 = [NSJSONSerialization dataWithJSONObject:formStore options:NSJSONWritingPrettyPrinted error:nil];
-
- NSString *str2=[[NSString alloc] initWithData:jsonData2 encoding:NSUTF8StringEncoding];
-
-
- NSString *url = [NSString stringWithFormat:@"%@mobile/addOutPlan.action?caller=lp&formStore=%@¶m=[%@]&master=%@&sessionUser=%@&sessionId=%@",g_id,str2,str1,g_master,g_sessionUser,sessionId];
-
- //DLog(@"URL%@",url);
-
- url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-
-
- UASNetworkManager *manager = [UASNetworkManager shareManager];
- //拼接sessionID
- NSString *paramSessionId=[@"" stringByAppendingFormat:@"JSESSIONID=%@",sessionId];
- //设置cookie
- [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) {
- [MBProgressHUD hideHUDForView:self.view];
-
- [MBProgressHUD showSuccess:Localized(@"UU_custom_submitSuccess")];
- _uploadBtn.enabled = YES;
-
- self.BusinessAddOutWork = NO;
-
-
- [self getAlldataOfOutPlans];
-
- if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"JOOUTisOrNoPostSPL"] isEqualToString:@"1"])
- {
- [self postSplToServer:_idAndCodeArr[1]];
- }
- // JOGetShenPiManVC * vc=[[JOGetShenPiManVC alloc]init];
- // vc.seqCode=_idAndCodeArr[1];
- // vc.caller = @"MOBILEOUTPLAN";
- // [self.navigationController pushViewController:vc animated:YES];
-
- } failure:^(NSURLSessionDataTask *task, NSError *error) {
- [MBProgressHUD hideHUDForView:self.view];
- _uploadBtn.enabled = YES;
- NSData *returnData = [[error userInfo] objectForKey:@"com.alamofire.serialization.response.error.data"];
- if (returnData) {
- NSDictionary *content = [NSJSONSerialization JSONObjectWithData:returnData options:NSJSONReadingMutableContainers error:nil];
- // 转换数据格式
- NSString *errorStr = [NSString stringWithFormat:@"%@",[content objectForKey:@"exceptionInfo"]];
-
- DLog(@"错误的原因:%@",errorStr);
- [JOShowMessageFromNavi showDropViewWithMessage:errorStr ToNavi:self.navigationController withColor:nil];
- }
- else{
- [JOShowMessageFromNavi showDropViewWithMessage:@"请检查网络情况" ToNavi:self.navigationController withColor:nil];
- }
- }];
-
- }
- - (void)postSplToServer:(NSString *)code
- {
- //1,创建一个网络请求管理对象
- UASNetworkManager *manager1 = [UASNetworkManager shareManager];
- manager1.responseSerializer=[AFHTTPResponseSerializer serializer];
-
-
- //2,取出sessionID和IP
- NSUserDefaults *userDefault=[NSUserDefaults standardUserDefaults];
-
- NSString *sessionId=[userDefault stringForKey:@"sessionId"];
-
- NSString * ips=[UASUserInfo shareManager].urlIp;
-
- NSString * userID=[[NSUserDefaults standardUserDefaults] objectForKey:@"erpaccount"];
- NSString *master=[[[NSUserDefaults standardUserDefaults] objectForKey:@"masterDic"]objectForKey:@"ma_user"];
-
-
- //3.拼接sessionID
- NSString *paramSessionId=[@"" stringByAppendingFormat:@"JSESSIONID=%@",sessionId];
- //4.设置cookie
- [manager1.requestSerializer setValue:paramSessionId forHTTPHeaderField:@"Cookie"];
- //5,接口
- NSString * urlAddress1=@"/common/submitCommon.action";
- //6,Caller
- NSString * caller=@"MOBILEOUTPLAN";
-
- //url
- NSString * url2=[@"" stringByAppendingFormat:@"%@%@?caller=%@&id=%@&sessionId=%@&master=%@&sessionUser=%@",g_id,urlAddress1,caller,code,sessionId,master,userID];
-
- DLog(@"审批流%@",url2);
- [manager1 request:url2 method:GET parameters:nil progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
- NSData *data=responseObject;
- id rootDic =[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
-
- SLog(@"这个返回的是ID吗:%@",rootDic);
-
-
- //[MBProgressHUD showSuccess:@"审批流提交成功"];
- } failure:^(NSURLSessionDataTask *task, NSError *error) {
- SLog(@"请求失败%@",error);
-
- //[MBProgressHUD showError:@"审批流未开通"];
- }];
-
- }
- -(void)getAddressDetailFromServer{
-
- NSUserDefaults *userDefault=[NSUserDefaults standardUserDefaults];
-
- NSString * ips=[UASUserInfo shareManager].urlIp;
-
- NSString *urlAdd = [NSString stringWithFormat:@"/mobile/crm/searchCustomer.action"];
-
- if (self.keyWord == nil) {
-
- self.keyWord = @"";
-
- }
- NSString *url = [NSString stringWithFormat:@"%@%@?likestr=%@&page=1&pageSize=20",g_id,urlAdd,self.keyWord];
-
- UASNetworkManager *manager = [UASNetworkManager shareManager];
-
- url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-
- [manager request:url method:POST parameters:nil progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
- NSDictionary *dict = nil;
- if ([responseObject isKindOfClass:[NSData class]]) {
-
- dict =[NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
-
- }else{
-
- dict = responseObject;
-
- }
- dict = [NSDictionary changeType:dict];
-
-
- NSString *sessionId = dict[@"sessionId"];
- if (sessionId.length > 0) {
- [[NSUserDefaults standardUserDefaults] setObject:sessionId forKey:@"sessionId"];
- }
- if ([dict[@"success"] boolValue]) {
-
- NSMutableArray *dataArr = dict[@"datas"];
- UASChooseAddDetailVc *detailVc = [UASChooseAddDetailVc new];
- detailVc.dataArr = dataArr;
- detailVc.callBack = ^(NSString *address) {
-
- self.tishiView.unitNameTextField.text = address;
-
- };
-
- [self.navigationController pushViewController:detailVc animated:YES];
-
- }
-
-
-
-
- } failure:^(NSURLSessionDataTask *task, NSError *error) {
-
-
-
- }];
-
-
- }
- #pragma mark - tableView
- //headerView
- - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
- {
- UIView *headerView = [[UIView alloc] init];
- headerView.userInteractionEnabled = YES;
- headerView.backgroundColor = [UIColor clearColor];
- // headerView.backgroundColor = [UIColor redColor];
- UILabel *lbl = [[UILabel alloc]initWithFrame:CGRectMake(0, 4, SCREEN_WIDTH, 40)];
- lbl.text =[NSString stringWithFormat:@" 目的地 %ld",(long)section+1];
- lbl.backgroundColor = Color(250, 249, 249, 1);
- lbl.textColor = Color(250, 85, 4, 1);
- lbl.font = FONT_SIZE(13);
- // [headerView addSubview:lbl];
- if (section>=_sectionSource.count&§ion!=0)
- {
- UIButton *deleteBtn = [UIButton buttonWithType:UIButtonTypeCustom];
- deleteBtn.frame = CGRectMake(SCREEN_WIDTH-60, 4, 60, 40);
- deleteBtn.tag = section;
- [deleteBtn addTarget:self action:@selector(deleteWQlist:) forControlEvents:UIControlEventTouchUpInside];
- deleteBtn.tag=section;
- [headerView addSubview:deleteBtn];
-
- UILabel *lbl = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 60, 25)];
- lbl.text = Localized(@"UU_custom_delete");
- // lbl.backgroundColor = Color(250, 249, 249, 1);
- lbl.textColor = Color(47, 149, 221, 1);
- lbl.textAlignment = NSTextAlignmentCenter;
- lbl.font = FONT_SIZE(12);
- [deleteBtn addSubview:lbl];
-
- }
-
- return headerView;
-
-
- }
- //删除外勤列表
- - (void)deleteWQlist:(UIButton *)btn
- {
- [UASAlertView showWithTitle:nil content:Localized(@"UU_custom_deleteData") sureTitle:Localized(@"UU_custom_sure") cancelTitle:Localized(@"UU_custom_cancle") click:^(NSInteger index) {
- if (index == 2) {
- [_cellDataSource removeObjectAtIndex:btn.tag];
- [_yesOrNoEntingArr removeObjectAtIndex:btn.tag];
- [_tableView reloadData];
- }
- }];
-
- }
- - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
- {
- if (buttonIndex==0)
- {
-
- }else if (buttonIndex==1)
- {
- [_cellDataSource removeObjectAtIndex:alertView.tag];
- [_yesOrNoEntingArr removeObjectAtIndex:alertView.tag];
- [_tableView reloadData];
- }
- }
- //FooterView
- - (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
- {
- if (section == _cellDataSource.count-1)
- {
- UIView *footerView = [[UIView alloc]init];
- footerView.userInteractionEnabled = YES;
- footerView.backgroundColor = [UIColor clearColor];
-
-
- UIButton *addBtn = [UIButton buttonWithType:UIButtonTypeCustom];
- addBtn.frame = CGRectMake(0, 0, SCREEN_WIDTH, 40);
- [addBtn addTarget:self action:@selector(addMoreWQlist) forControlEvents:UIControlEventTouchUpInside];
- [footerView addSubview:addBtn];
-
- UILabel *lbl = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 40)];
- lbl.text = Localized(@"UU_work_OA_WorkOutsideSign_newFieldPlan");
- lbl.backgroundColor = Color(250, 249, 249, 1);
- lbl.textColor = Color(47, 149, 221, 1);
- lbl.textAlignment = NSTextAlignmentCenter;
- lbl.font = FONT_SIZE(14);
- [addBtn addSubview:lbl];
-
- UIButton *uploadBtn = [UIButton sureButtonWithTitle:Localized(@"UU_custom_submit")];
- uploadBtn.frame = CGRectMake(35, CGRectGetMaxY(addBtn.frame)+15, SCREEN_WIDTH - 70, 30);
- [uploadBtn addTarget:self action:@selector(uploadAction) forControlEvents:UIControlEventTouchUpInside];
- self.uploadBtn = uploadBtn;
- [footerView addSubview:uploadBtn];
-
- [uploadBtn mas_makeConstraints:^(MASConstraintMaker *make) {
-
- make.left.equalTo(footerView).offset(20);
- make.right.equalTo(footerView).offset(-20);
- make.top.equalTo(addBtn.mas_bottom).offset(15);
- make.height.mas_equalTo(40);
-
- }];
-
-
- return footerView;
- }
- else{
- return nil;
- }
- }
- //添加外勤计划列表
- - (void)addMoreWQlist
- {
- //一次只能编辑一个
- if ([[_yesOrNoEntingArr lastObject] isEqualToString:@"yes"])
- {
-
- [JOShowMessageFromNavi showDropViewWithMessage:Localized(@"UU_work_OA_WorkOutsideSign_PleaseUpdateListEditNewDocuments") ToNavi:self.navigationController withColor:nil];
-
- return;
- }
-
- JOWQJHDATAModel * model=[[JOWQJHDATAModel alloc]init];
- model.CreateTime=[self getCurrentTime];
- model.CreateAddress=[self getCurrentAddress];
- model.Shiduan=@"半天";//默认
- model.ShijArriveTime=@"";
- model.ShijLeaveTime=@"";
- model.WhatLocation=@"";
-
- [_cellDataSource addObject:model];
- [_yesOrNoEntingArr addObject:@"yes"];
-
- [_tableView reloadData];
- }
- //cell初始化
- - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
- {
- //1.cell初始化
- static NSString *identifier = @"cell";
- JOCell * cell=[[JOCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:identifier];
- cell.selectionStyle = UITableViewCellSelectionStyleNone;
- cell.backgroundColor=Color(250, 249, 249, 1);
-
- //标题
- cell.nameString=_cellTitleSource[indexPath.row];
- JOWQJHDATAModel * model=_cellDataSource[indexPath.section];
-
- if (g_B2BUser)
- {
- [cell B2BsetModel:model withIndex:indexPath.row canUserEnditing:[_yesOrNoEntingArr[indexPath.section] boolValue]];
- }else{
- [cell setModel:model withIndex:indexPath.row canUserEnditing:[_yesOrNoEntingArr[indexPath.section] boolValue]];
- }
-
-
- if (indexPath.row==3)
- {
- UISegmentedControl * segment = [[UISegmentedControl alloc]initWithItems:@[@"半天",@"全天"]];
- segment.frame =CGRectMake(SCREEN_WIDTH-70, 10, 65, 20);
- [segment addTarget:self action:@selector(clickSegment:) forControlEvents:UIControlEventValueChanged];
- segment.tag=indexPath.section;
- if ([model.Shiduan isEqualToString:@"全天"])
- {
- segment.selectedSegmentIndex=1;
- }else {
-
- segment.selectedSegmentIndex=0;
-
- }
- [cell.contentView addSubview:segment];
- }else if (indexPath.row==7)
- {
-
- UIButton * btn=[UIButton buttonWithType:UIButtonTypeCustom];
- btn.frame=CGRectMake(SCREEN_WIDTH-60,0,60,40);
- //[btn setImage:[UIImage imageNamed:@"JO_naviRoad"] forState:UIControlStateNormal];
- [btn setTitle:@"" forState:UIControlStateNormal];
- btn.tag=indexPath.section;
- [btn addTarget:self action:@selector(roadNavi:) forControlEvents:UIControlEventTouchUpInside];
- [cell.contentView addSubview:btn];
-
- UILabel * label=[[UILabel alloc]init];
- label.text=Localized(@"UU_work_OA_WorkOutsideSign_Navigation");
- label.frame=CGRectMake(SCREEN_WIDTH-70,10,50,20);
- label.font=FONT_SIZE(12);
- label.textColor=Color(17,76,160,1.0);
- [cell.contentView addSubview:label];
-
- UIImageView * image=[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"JO_naviRoad"]];
- image.frame=CGRectMake(SCREEN_WIDTH-20,12,16,16);
- [cell.contentView addSubview:image];
- }
-
-
- return cell;
- }
- //点击选择cell
- - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
- {
- // DLog(@"第%ld组 第%ld行 被点击了",(long)indexPath.section,(long)indexPath.row);
-
- //点击拜访单位
- if (indexPath.row==0)
- {
- JOOAOutSelectAddressVC * vc=[[JOOAOutSelectAddressVC alloc]init];
- vc.titleStr = Localized(@"UU_work_OA_WorkOutsideSign_SelectDestination");
- vc.backAddress=^(JOOutAddressModel * model){
-
-
- [_jingweiduArr removeAllObjects];
- JOWQJHDATAModel * models=[_cellDataSource lastObject];
-
- LYAlerterView *tishiView = [[LYAlerterView alloc] initWithFrame:self.view.bounds];
- self.tishiView = tishiView;
- @weakify(self)
- tishiView.chooseAddress = ^{
- @strongify(self)
-
- [self getAddressDetailFromServer];
-
- };
-
- tishiView.tag = 91821;
-
-
- NSString *str = model.MD_COMPANY;
-
- self.keyWord = [str mutableCopy];
-
- NSInteger bb = (str.length +6)/20;
-
- NSInteger cc = (str.length+6) % 20;
-
- if (bb != 0 && cc == 0) {
- tishiView.aa = 20 *bb-20;
-
- }else if (bb != 0 && cc != 0)
- {
- tishiView.aa = 20 *bb;
- }else{
- tishiView.aa = 0;
- }
- [tishiView sendUintName:model.MD_COMPANY detailAddress:model.MD_ADDRESS];
-
- tishiView.delegate = self;
- [tishiView setBlock:^(NSString *set) {
- DLog(@"说句:%@",set);
-
- if ([set isEqualToString:@"skipTheStep"]) {
- models.CFdanwei=model.MD_COMPANY;
- }else{
-
- models.CFdanwei=set;
- }
-
-
- models.CFdizhi=model.MD_ADDRESS;
-
- NSString * dis=[self getGaoWithBaidu:model.MD_LATITUDE with:model.MD_LONGITUDE];
- models.Juli=dis;
- models.ShiSjuli=dis;
- models.Latitude=FORMAT(@"%@",model.MD_LATITUDE);
- models.Longetude=FORMAT(@"%@",model.MD_LONGITUDE);
- models.WhatLocation=@"中国百度";
- [_cellDataSource replaceObjectAtIndex:_cellDataSource.count-1 withObject:models];
- [_tableView reloadData];
- //装进数组
- [_jingweiduArr addObject:model.MD_LATITUDE];
- [_jingweiduArr addObject:model.MD_LONGITUDE];
- [_jingweiduArr addObject:model.MD_ADDRESS];
- [_jingweiduArr addObject:set];
- [_jingweiduArr addObject:@""];
-
- //计算时间
- [self calculateTowPoint:model.MD_LATITUDE With:model.MD_LONGITUDE];
- }];
- [self.view addSubview:tishiView];
-
- //这个是高德API模型
-
-
-
- //这个模型的经纬度是百度的
-
-
- };
-
- vc.backNewAddress=^(AMapPOI * model){
-
- [_jingweiduArr removeAllObjects];
-
- JOWQJHDATAModel * models=[_cellDataSource lastObject];
-
- LYAlerterView *tishiView = [[LYAlerterView alloc] initWithFrame:self.view.bounds];
- tishiView.tag = 91821;
-
- NSString *str = model.address;
- models.CFdanwei=model.name;
- NSInteger bb = (str.length +6)/20;
-
- NSInteger cc = (str.length+6) % 20;
-
- if (bb != 0 && cc == 0) {
- tishiView.aa = 20 *bb-20;
-
- }else if (bb != 0 && cc != 0)
- {
- tishiView.aa = 20 *bb;
- }else{
- tishiView.aa = 0;
- }
- [tishiView sendUintName:model.name detailAddress:model.address];
-
- tishiView.delegate = self;
- [tishiView setBlock:^(NSString *set) {
- DLog(@"说句:%@",set);
-
- if ([set isEqualToString:@"skipTheStep"]) {
- models.CFdanwei=model.name;
- }else{
-
- models.CFdanwei=set;
- }
- //DLog(@"说句:%@",models.CFdanwei);
- models.CFdizhi=FORMAT(@"%@%@%@%@",model.province,model.city,model.district,model.address);
- NSString * dis=[self getDistanceNoChanges:[NSString stringWithFormat:@"%f",model.location.latitude] with:[NSString stringWithFormat:@"%f",model.location.longitude]];
- models.Juli=dis;
- models.ShiSjuli=dis;
-
- //装进数组
- [_jingweiduArr addObject:[NSString stringWithFormat:@"%f",model.location.latitude]];
- [_jingweiduArr addObject:[NSString stringWithFormat:@"%f",model.location.longitude]];
- [_jingweiduArr addObject:model.address];
- [_jingweiduArr addObject:set]; // 这个你要改的
- CLLocationCoordinate2D point=[JZLocationConverter gcj02ToBd09:CLLocationCoordinate2DMake([_jingweiduArr[0] doubleValue] ,[_jingweiduArr[1] doubleValue])];
-
- models.Latitude=FORMAT(@"%f",point.latitude);
- models.Longetude=FORMAT(@"%f",point.longitude);
- models.WhatLocation=@"中国高德";
-
- [_cellDataSource replaceObjectAtIndex:_cellDataSource.count-1 withObject:models];
- [_tableView reloadData];
-
-
-
- //计算时间
- [self calculateTowPoint:[NSString stringWithFormat:@"%f",model.location.latitude] With:[NSString stringWithFormat:@"%f",model.location.longitude]];
-
- }];
- [self.view addSubview:tishiView];
-
- //这个是高德API模型
-
-
- };
-
- [self.navigationController pushViewController:vc animated:YES];
-
- }
- //点击选择出访目的
- if (indexPath.row==2)
- {
- JOOAEmergencyViewController * vc=[[JOOAEmergencyViewController alloc]init];
- NSMutableArray * arr=[[NSMutableArray alloc]initWithObjects:Localized(@"UU_work_OA_WorkOutsideSign_CustomerMaintenance"),Localized(@"UU_work_OA_WorkOutsideSign_BusinessProcess"),Localized(@"UU_work_OA_WorkOutsideSign_OtherVisit"), nil];
- vc.dataArray=arr;
- vc.naviColor=Color(215,145,71,1.0);
-
- JONavigationController * navi=[[JONavigationController alloc]initWithRootViewController:vc];
-
- [self presentViewController:navi animated:YES completion:^{
-
- [vc backAddressName:^(NSString *degree) {
-
- JOWQJHDATAModel * model=[_cellDataSource lastObject];
- model.CFmudi=degree;
- [_cellDataSource replaceObjectAtIndex:_cellDataSource.count-1 withObject:model];
- [_tableView reloadData];
-
- }];
-
- }];
-
- }
- //点击选择时间
- else if (indexPath.row==8)
- {
- _dayPickerViewController = [[ZQDayPickerViewController alloc] initWithNibName:NSStringFromClass([ZQDayPickerViewController class]) bundle:nil];
- _dayPickerViewController.selectedColor = [UIColor blackColor];
- _dayPickerViewController.hintTitle = @"请选择";
-
- _dayPickerViewController.delegate = self;
-
- [self presentViewController:_dayPickerViewController animated:YES completion:nil];
-
- }
-
- }
- - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
- {
- //固定个数
- return _cellTitleSource.count;
-
- }
- - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
- {
- //新增和获取外勤计划列表时,默认为1
- return _cellDataSource.count;
- }
- - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
- {
-
- return 40;
- }
- - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
- {
- if (section == 0) {
- return CGFLOAT_MIN;
- }else
- return 25;
-
- }
- - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
- {
-
- if (section==(_cellDataSource.count-1))
- {
- return 100;
- }
- else{
-
- return CGFLOAT_MIN;
- }
-
-
- }
- //点击选择拜访类型(半天或者全天)
- - (void)clickSegment:(UISegmentedControl *)seg
- {
-
- NSString *str=@"";
- if (seg.selectedSegmentIndex==0)
- {
- str=@"半天";
- }else if(seg.selectedSegmentIndex==1)
- {
- str=@"全天";
- }
- JOWQJHDATAModel * model=[_cellDataSource lastObject];
- model.Shiduan=str;
- [_cellDataSource replaceObjectAtIndex:_cellDataSource.count-1 withObject:model];
- [_tableView reloadData];
-
- }
- #pragma mark -- 导航按钮
- - (void)roadNavi:(UIButton *)seg
- {
-
- JOWQJHDATAModel * model=_cellDataSource[seg.tag];
- NSString * latStr = FORMAT(@"%@",model.Latitude);
- if ([latStr isEqualToString:@"(null)"]||latStr==nil||[latStr isEqualToString:@""])
- {
- [JOShowMessageFromNavi showDropViewWithMessage:Localized(@"UU_work_OA_WorkOutsideSign_PleaseSelectAddressField") ToNavi:self.navigationController withColor:nil];
-
- return;
- }
-
- // JORouteNaviVC * vc=[[JORouteNaviVC alloc]init];
- //
- // vc.locationArr=[NSArray arrayWithObjects:model.Latitude,model.Longetude,nil];
- //
- // [self.navigationController pushViewController:vc animated:YES];
-
-
- if ([model.WhatLocation isEqualToString:@""]||model.WhatLocation==nil)
- {
- [JOShowMessageFromNavi showDropViewWithMessage:Localized(@"UU_work_OA_WorkOutsideSign_STAINTDOLALN") ToNavi:self.navigationController withColor:nil];
-
- return;
-
- }
- CLLocationCoordinate2D Location1;
- CLLocationCoordinate2D location2;
- CLLocationCoordinate2D location3;
-
-
- if ([model.WhatLocation isEqualToString:@"中国高德"])
- {
- //百度坐标
- Location1=[JZLocationConverter gcj02ToBd09:CLLocationCoordinate2DMake([model.Latitude doubleValue], [model.Longetude doubleValue])];
-
- //高德国际
- location2 = [JZLocationConverter gcj02ToWgs84:CLLocationCoordinate2DMake([model.Latitude doubleValue] ,[model.Longetude doubleValue])];
-
- //高德坐标
- location3 =CLLocationCoordinate2DMake([model.Latitude doubleValue] ,[model.Longetude doubleValue]);
-
- }else if ([model.WhatLocation isEqualToString:@"中国百度"])
- {
- //百度坐标
- Location1=CLLocationCoordinate2DMake([model.Latitude doubleValue], [model.Longetude doubleValue]);
-
- //高德国际
- location2 = [JZLocationConverter bd09ToWgs84:CLLocationCoordinate2DMake([model.Latitude doubleValue] ,[model.Longetude doubleValue])];
-
- //高德坐标
- location3 = [JZLocationConverter changeBaiduCoordinateToCOMMON:CLLocationCoordinate2DMake([model.Latitude doubleValue] ,[model.Longetude doubleValue])];
-
- }
-
- // DLog(@"原始:%f,%f",[model.Latitude doubleValue],[model.Longetude doubleValue]);
- // DLog(@"百度:%f,%f",Location1.latitude,Location1.longitude);
- // DLog(@"高国际:%f,%f",location2.latitude,location2.longitude);
- // DLog(@"高中国:%f,%f",location3.latitude,location3.longitude);
- /*
- 2017-03-29 15:19:37.034609 shiku_im[16068:6289701] 原始:22.576816,113.876476
- 2017-03-29 15:19:37.034876 shiku_im[16068:6289701] 百度:22.583136,113.882932
- 2017-03-29 15:19:37.035077 shiku_im[16068:6289701] 高国际:22.579853,113.871577
- 2017-03-29 15:19:37.035271 shiku_im[16068:6289701] 高中国:22.576816,113.876476
- */
- //系统版本高于8.0,使用UIAlertController
- if (IS_SystemVersionGreaterThanEight)
- {
-
- UIAlertController * alertController = [UIAlertController alertControllerWithTitle:Localized(@"UU_work_OA_WorkOutsideSign_NavigationToDevice") message:nil preferredStyle:UIAlertControllerStyleActionSheet];
- //自带地图
- [alertController addAction:[UIAlertAction actionWithTitle:Localized(@"UU_work_OA_WorkOutsideSign_AppleMap") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
-
- //使用自带地图导航
- MKMapItem * currentLocation =[MKMapItem mapItemForCurrentLocation];
-
- MKMapItem *toLocation = [[MKMapItem alloc] initWithPlacemark:[[MKPlacemark alloc] initWithCoordinate:location2 addressDictionary:nil]];
-
- [MKMapItem openMapsWithItems:@[currentLocation,toLocation] launchOptions:@{MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeDriving,
- MKLaunchOptionsShowsTrafficKey:[NSNumber numberWithBool:YES]}];
-
-
- }]];
-
- //判断是否安装了高德地图,如果安装了高德地图,则使用高德地图导航
- if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"iosamap://"]]) {
-
- [alertController addAction:[UIAlertAction actionWithTitle:Localized(@"UU_work_OA_WorkOutsideSign_gaodeMaps") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
-
- DLog(@"alertController -- 高德地图");
- NSString *urlsting =[[NSString stringWithFormat:@"iosamap://navi?sourceApplication=UU互联&backScheme=IOSJOBOR &lat=%f&lon=%f&dev=0&style=2",location3.latitude,location3.longitude]stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
- [[UIApplication sharedApplication]openURL:[NSURL URLWithString:urlsting]];
-
- }]];
- }
-
- //判断是否安装了百度地图,如果安装了百度地图,则使用百度地图导航
- if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"baidumap://"]]) {
- [alertController addAction:[UIAlertAction actionWithTitle:Localized(@"UU_work_OA_WorkOutsideSign_BaiduMaps") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
-
- DLog(@"alertController -- 百度地图");
- NSString *urlsting =[[NSString stringWithFormat:@"baidumap://map/direction?origin={{我的位置}}&destination=latlng:%f,%f|name=目的地&mode=driving&coord_type=gcj02",Location1.latitude,Location1.longitude] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
- [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlsting]];
-
- }]];
- }
-
-
-
-
- //添加取消选项
- [alertController addAction:[UIAlertAction actionWithTitle:Localized(@"UU_custom_cancle") style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
-
- [alertController dismissViewControllerAnimated:YES completion:nil];
-
- }]];
-
- //显示alertController
- [self presentViewController:alertController animated:YES completion:nil];
-
- }
- else{
-
- [JOShowMessageFromNavi showDropViewWithMessage:@"抱歉,手机系统版本太低无法打开" ToNavi:self.navigationController withColor:nil];
-
- }
-
- }
- #pragma mark -- textViewDelegate 暂时没用到
- - (void)HypTextView:(HypTextView *)HypTextView textDidEnd:(NSString *)text
- {
-
- JOWQJHDATAModel * model=[_cellDataSource lastObject];
- model.CFmudi=text;
- [_cellDataSource replaceObjectAtIndex:_cellDataSource.count-1 withObject:model];
- [_tableView reloadData];
- DLog(@"输入的字符:%@",text);
-
- }
- - (void)HypTextView:(HypTextView *)HypTextView textDidChanged:(NSString *)text
- {
-
- if (HypTextView.text.length>30)
- {
- HypTextView.text=[HypTextView.text substringToIndex:30];
- [self.view endEditing:YES];
- [KPromptBox showKPromptBoxWithMassage:Localized(@"UU_work_OA_WorkOutsideSign_WordLimit")];
- }
-
- }
- - (BOOL)textView:(HypTextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
- {
- return YES;
- }
- - (BOOL)textViewShouldBeginEditing:(HypTextView *)textView
- {
- return YES;
- }
- - (void)textViewDidEndEditing:(HypTextView *)textView
- {
- }
- //日历选择时间
- - (void)dayPickerViewControllerChoosedDate:(ZQDayPickerViewController *)dayPickerViewController
- {
- NSString * str = [self dateStringFromDate:dayPickerViewController.date];
-
- JOWQJHDATAModel * model=[_cellDataSource lastObject];
- model.YujiTime=str;
- [_cellDataSource replaceObjectAtIndex:_cellDataSource.count-1 withObject:model];
- [_tableView reloadData];
-
- DLog(@"选了时间是:%@",str);
-
- }
- //设置返回时间的格式
- - (NSString *)dateStringFromDate:(NSDate *)date
- {
- NSDateFormatter *formatter = [NSDateFormatter new];
- formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
- return [formatter stringFromDate:date];
- }
- //获取当前位子
- - (NSString *)getCurrentAddress
- {
- NSUserDefaults * user=[NSUserDefaults standardUserDefaults];
- NSString * weizi=[user objectForKey:@"UUCurrentAddress"];
- //DLog(@"当前位子:%@",weizi);
- //weizi=@"";
- if (weizi.length==0||weizi==nil)
- {
- [JOShowMessageFromNavi showDropViewWithMessage:Localized(@"UU_work_OA_WorkOutsideSign_NoAccessToCurrentPosition") ToNavi:self.navigationController withColor:nil];
-
- return Localized(@"UU_work_OA_WorkOutsideSign_NoAccessToCurrentPosition");
- }
- return weizi;
- }
- //获取当前时间
- -(NSString *)getCurrentTime
- {
-
- NSDateFormatter * dataFormatter = [[NSDateFormatter alloc]init];
- [dataFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
- NSString * dateStr =[dataFormatter stringFromDate:[NSDate date]];
- DLog(@"%@",dateStr);
- return dateStr;
- }
- //模型转模型
- - (JOWQJHDATAModel *)changgeModel:(OutWorkModel *)model
- {
- JOWQJHDATAModel * models=[[JOWQJHDATAModel alloc]init];
- models.CreateAddress=model.MPD_LOCATION;
- models.CreateTime=model.MPD_RECORDDATE;
- models.CFdanwei=model.MPD_COMPANY;
- models.CFdizhi=model.MPD_ADDRESS;
- models.CFmudi=model.MPD_REMARK;
- models.Shiduan=model.MPD_KIND;
- models.Juli=model.MPD_DISTANCE;
- models.ShiSjuli=[self getGaoWithBaidu:model.MD_LATITUDE with:model.MD_LONGITUDE];
- models.YujiTime=model.MPD_ARRIVEDATE;
- models.ShijArriveTime=model.MPD_ACTDATE;
- models.ShijLeaveTime=model.MPD_OUTDATE;
- models.Latitude=model.MD_LATITUDE;
- models.Longetude=model.MD_LONGITUDE;
- models.WhatLocation=@"中国百度";
- return models;
-
- }
- //计算本地高德世界与百度坐标距离
- -(NSString * )getGaoWithBaidu:(NSString * )lat with:(NSString * )loo
- {
-
-
- NSUserDefaults * user=[NSUserDefaults standardUserDefaults];
- NSString * str1=[user objectForKey:@"UUCurrentLati"];
- NSString * str2=[user objectForKey:@"UUCurrentLong"];
-
- //DLog(@"本地%@,%@",str1,str2);
- //DLog(@"服务器 %@,%@",lat,loo);
-
- //高德世界转火星
- //MAMapPoint point1 = MAMapPointForCoordinate([JZLocationConverter wgs84ToGcj02:CLLocationCoordinate2DMake([str1 doubleValue],[str2 doubleValue])]);
- MAMapPoint point1 = MAMapPointForCoordinate(CLLocationCoordinate2DMake([str1 doubleValue],[str2 doubleValue]));
-
- //百度转火星
- MAMapPoint point2 = MAMapPointForCoordinate([JZLocationConverter changeBaiduCoordinateToCOMMON:CLLocationCoordinate2DMake([lat doubleValue] ,[loo doubleValue])]);
- //MAMapPoint point2 =MAMapPointForCoordinate(CLLocationCoordinate2DMake([lat doubleValue], [loo doubleValue]));
-
- // CLLocationCoordinate2D in1=[JZLocationConverter wgs84ToGcj02:CLLocationCoordinate2DMake([str1 doubleValue],[str2 doubleValue])];
- //
- // CLLocationCoordinate2D in2=[JZLocationConverter changeBaiduCoordinateToCOMMON:CLLocationCoordinate2DMake([lat doubleValue] ,[loo doubleValue])];
- //
- // DLog(@"本地转火星%f,%f",in1.latitude,in1.longitude);
- // DLog(@"百度转火星%f,%f",in2.latitude,in2.longitude);
-
- CLLocationDistance distance = MAMetersBetweenMapPoints(point1,point2);
- NSString * dis = [NSString stringWithFormat:@"%.f",distance];
- // DLog(@"%@",dis);
- return dis;
- }
- //计算两点距离
- - (NSString * )getDistanceNoChanges:(NSString * )lats with:(NSString * )loos
- {
-
- NSUserDefaults * user=[NSUserDefaults standardUserDefaults];
- NSString * str1=[user objectForKey:@"UUCurrentLati"];
- NSString * str2=[user objectForKey:@"UUCurrentLong"];
- //当前经纬度,转火星坐标
- MAMapPoint point1 = MAMapPointForCoordinate(CLLocationCoordinate2DMake([str1 doubleValue],[str2 doubleValue]));
- //MAMapPoint point1 = MAMapPointForCoordinate([JZLocationConverter wgs84ToGcj02:CLLocationCoordinate2DMake([str1 doubleValue],[str2 doubleValue])]);
-
- //搜索出来的高德坐标
- MAMapPoint point2=MAMapPointForCoordinate(CLLocationCoordinate2DMake([lats doubleValue],[loos doubleValue]));
-
- CLLocationDistance distance = MAMetersBetweenMapPoints(point1,point2);
- NSString * dis = [NSString stringWithFormat:@"%.f",distance];
-
- return dis;
- }
- #pragma makr -LYAlerterViewDelegate
- -(void)LypTextField:(UITextField *)LYTextField textDidChanged:(NSString *)text
- {
- LYAlerterView *aa = (LYAlerterView *)[self.view viewWithTag:91821];
- self.keyWord = [text mutableCopy];
- if (text.length == 0) {
- [aa.SkipThisStepbtn setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
- }else{
- [aa.SkipThisStepbtn setTitleColor:Color(59, 174, 255, 1.0) forState:UIControlStateNormal];
- }
-
-
-
- }
- - (void)LypTextField:(UITextField *)LYTextField textDidEnd:(NSString *)text
- {
- LYAlerterView *aa = (LYAlerterView *)[self.view viewWithTag:91821];
- self.keyWord = [text mutableCopy];
- if (text.length == 0) {
- [aa.SkipThisStepbtn setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
- }else{
- [aa.SkipThisStepbtn setTitleColor:Color(59, 174, 255, 1.0) forState:UIControlStateNormal];
- }
-
- }
- #pragma mark -- 网络监控
- -(void)dealloc
- {
- [self.conn stopNotifier];
- [[NSNotificationCenter defaultCenter] removeObserver:self];
- }
- - (void)networkStateChange
- {
- [self checkNetworkState];
- }
- - (void)checkNetworkState
- {
- // 1.检测wifi状态
- Reachability *wifi = [Reachability reachabilityForLocalWiFi];
-
- // 2.检测手机是否能上网络(WIFI\3G\2.5G)
- Reachability *conn = [Reachability reachabilityForInternetConnection];
-
- // 3.判断网络状态
- if ([wifi currentReachabilityStatus] != NotReachable)
- { // 有wifi
- NSString * str=[self getNetWorkStates];
- DLog(@"%@",str);
- if ([str isEqualToString:@"2G"]||[str isEqualToString:@"3G"])
- {
- [JOShowMessageFromNavi showDropViewWithMessage:@"当前网络环境不佳,建议切换到4G网络" ToNavi:self.navigationController withColor:nil];
- }
-
- } else if ([conn currentReachabilityStatus] != NotReachable)
- { // 没有使用wifi, 使用手机自带网络进行上网
-
- NSString * str=[self getNetWorkStates];
- DLog(@"%@",str);
- if ([str isEqualToString:@"2G"]||[str isEqualToString:@"3G"])
- {
- [JOShowMessageFromNavi showDropViewWithMessage:@"当前网络环境不佳,建议切换到4G网络" ToNavi:self.navigationController withColor:nil];
- }
-
- } else{ // 没有网络
-
- // [KPromptBox showKPromptBoxWithMassage:@"网络已断开,请检查网络"];
- }
- }
- - (NSString *)getNetWorkStates
- {
-
- if (statusX) {
-
- return @"4G";
-
- }
-
- if (iOS13) {
-
- return @"4G";
-
- }
-
- UIApplication *app = [UIApplication sharedApplication];
- NSArray *children = [[[app valueForKeyPath:@"statusBar"]valueForKeyPath:@"foregroundView"]subviews];
- NSString *state = [[NSString alloc]init];
- int netType = 0;
- //获取到网络返回码
- for (id child in children) {
- if ([child isKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")]) {
- //获取到状态栏
- netType = [[child valueForKeyPath:@"dataNetworkType"]intValue];
-
- switch (netType) {
- case 0:
- state = @"无网络";
- //无网模式
- break;
- case 1:
- state = @"2G";
- break;
- case 2:
- state = @"3G";
- break;
- case 3:
- state = @"4G";
- break;
- case 5:
- {
- state = @"wifi";
- break;
- default:
- break;
- }
- }
- }
- //根据状态选择
- }
- return state;
- }
- @end
|